From 5dcecf41a5bc48034ba5c36a213416de95ef44e2 Mon Sep 17 00:00:00 2001 From: SWHL Date: Wed, 19 Apr 2023 10:17:18 +0800 Subject: [PATCH] Remove rapid_structure --- .../gen_whl_to_pypi_rapid_layout.yml | 81 ---- .../gen_whl_to_pypi_rapid_orientation.yml | 86 ---- .../workflows/gen_whl_to_pypi_rapid_table.yml | 88 ---- README.md | 9 +- docs/README_en.md | 9 +- docs/doc_whl_rapid_layout.md | 60 --- docs/doc_whl_rapid_orientation.md | 51 -- docs/doc_whl_rapid_table.md | 41 -- python/rapid_structure/README.md | 15 - python/rapid_structure/demo.py | 85 ---- python/rapid_structure/docs/README_Layout.md | 73 --- .../docs/README_Orientation.md | 56 --- python/rapid_structure/docs/README_Table.md | 66 --- .../rapid_structure/rapid_layout/__init__.py | 14 - .../rapid_structure/rapid_layout/config.yaml | 24 - .../rapid_layout/models/.gitkeep | 0 .../rapid_layout/rapid_layout.py | 95 ---- python/rapid_structure/rapid_layout/utils.py | 443 ------------------ .../rapid_orientation/__init__.py | 4 - .../rapid_orientation/config.yaml | 16 - .../rapid_orientation/models/.gitkeep | 0 .../rapid_orientation/rapid_orientation.py | 82 ---- .../rapid_orientation/utils.py | 169 ------- .../rapid_structure/rapid_table/__init__.py | 4 - .../rapid_table/models/.gitkeep | 0 .../rapid_table/rapid_table.py | 95 ---- .../rapid_table/table_matcher/__init__.py | 4 - .../rapid_table/table_matcher/matcher.py | 158 ------- .../rapid_table/table_matcher/utils.py | 244 ---------- .../rapid_table/table_structure/__init__.py | 14 - .../table_structure/table_structure.py | 57 --- .../rapid_table/table_structure/utils.py | 349 -------------- python/rapid_structure/requirements.txt | 8 - python/rapid_structure/setup_layout.py | 87 ---- python/rapid_structure/setup_orientation.py | 87 ---- python/rapid_structure/setup_table.py | 91 ---- python/rapid_structure/test_images/layout.png | Bin 167921 -> 0 bytes python/rapid_structure/test_images/table.jpg | Bin 59389 -> 0 bytes .../tests/test_files/img_rot0_demo.jpg | Bin 80605 -> 0 bytes .../tests/test_files/img_rot180_demo.jpg | Bin 94278 -> 0 bytes python/rapid_structure/tests/test_layout.py | 24 - .../rapid_structure/tests/test_orientation.py | 28 -- python/rapid_structure/tests/test_table.py | 23 - 43 files changed, 10 insertions(+), 2830 deletions(-) delete mode 100644 .github/workflows/gen_whl_to_pypi_rapid_layout.yml delete mode 100644 .github/workflows/gen_whl_to_pypi_rapid_orientation.yml delete mode 100644 .github/workflows/gen_whl_to_pypi_rapid_table.yml delete mode 100644 docs/doc_whl_rapid_layout.md delete mode 100644 docs/doc_whl_rapid_orientation.md delete mode 100644 docs/doc_whl_rapid_table.md delete mode 100644 python/rapid_structure/README.md delete mode 100644 python/rapid_structure/demo.py delete mode 100644 python/rapid_structure/docs/README_Layout.md delete mode 100644 python/rapid_structure/docs/README_Orientation.md delete mode 100644 python/rapid_structure/docs/README_Table.md delete mode 100644 python/rapid_structure/rapid_layout/__init__.py delete mode 100644 python/rapid_structure/rapid_layout/config.yaml delete mode 100644 python/rapid_structure/rapid_layout/models/.gitkeep delete mode 100644 python/rapid_structure/rapid_layout/rapid_layout.py delete mode 100644 python/rapid_structure/rapid_layout/utils.py delete mode 100644 python/rapid_structure/rapid_orientation/__init__.py delete mode 100644 python/rapid_structure/rapid_orientation/config.yaml delete mode 100644 python/rapid_structure/rapid_orientation/models/.gitkeep delete mode 100644 python/rapid_structure/rapid_orientation/rapid_orientation.py delete mode 100644 python/rapid_structure/rapid_orientation/utils.py delete mode 100644 python/rapid_structure/rapid_table/__init__.py delete mode 100644 python/rapid_structure/rapid_table/models/.gitkeep delete mode 100644 python/rapid_structure/rapid_table/rapid_table.py delete mode 100644 python/rapid_structure/rapid_table/table_matcher/__init__.py delete mode 100644 python/rapid_structure/rapid_table/table_matcher/matcher.py delete mode 100644 python/rapid_structure/rapid_table/table_matcher/utils.py delete mode 100644 python/rapid_structure/rapid_table/table_structure/__init__.py delete mode 100644 python/rapid_structure/rapid_table/table_structure/table_structure.py delete mode 100644 python/rapid_structure/rapid_table/table_structure/utils.py delete mode 100644 python/rapid_structure/requirements.txt delete mode 100644 python/rapid_structure/setup_layout.py delete mode 100644 python/rapid_structure/setup_orientation.py delete mode 100644 python/rapid_structure/setup_table.py delete mode 100644 python/rapid_structure/test_images/layout.png delete mode 100644 python/rapid_structure/test_images/table.jpg delete mode 100644 python/rapid_structure/tests/test_files/img_rot0_demo.jpg delete mode 100644 python/rapid_structure/tests/test_files/img_rot180_demo.jpg delete mode 100644 python/rapid_structure/tests/test_layout.py delete mode 100644 python/rapid_structure/tests/test_orientation.py delete mode 100644 python/rapid_structure/tests/test_table.py diff --git a/.github/workflows/gen_whl_to_pypi_rapid_layout.yml b/.github/workflows/gen_whl_to_pypi_rapid_layout.yml deleted file mode 100644 index 62d9374..0000000 --- a/.github/workflows/gen_whl_to_pypi_rapid_layout.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Push rapidocr_layout to pypi - -on: - push: - branches: [ main ] - paths: - - 'python/rapid_structure/rapid_layout/**' - - 'docs/doc_whl_rapid_layout.md' - - 'python/rapid_structure/setup_layout.py' - - '.github/workflows/gen_whl_to_pypi_rapid_layout.yml' - - 'python/rapid_structure/tests/test_layout.py' - -env: - RESOURCES_URL: https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/rapid_layout_models.zip - -jobs: - UnitTesting: - runs-on: ubuntu-latest - steps: - - name: Pull latest code - uses: actions/checkout@v3 - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: '3.7' - architecture: 'x64' - - - name: Display Python version - run: python -c "import sys; print(sys.version)" - - - name: Unit testings - run: | - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $DIR_NAME - cp $DIR_NAME/*.onnx python/rapid_structure/rapid_layout/models/ - cd python/rapid_structure - pip install -r requirements.txt - pytest tests/test_layout.py - - GenerateWHL_PushPyPi: - needs: UnitTesting - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set SSH Environment - env: - DEPLOY_KEYS: ${{ secrets.GEN_PYTHON_SDK }} - run: | - mkdir -p ~/.ssh/ - echo "$DEPLOY_KEYS" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - chmod 700 ~/.ssh && chmod 600 ~/.ssh/* - - - name: Run setup - run: | - cd python/rapid_structure - pip install -r requirements.txt - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $ZIP_NAME - mv $DIR_NAME/*.onnx rapid_layout/models/ - python setup_layout.py bdist_wheel ${{ github.event.head_commit.message }} - - # - name: Publish distribution 📦 to Test PyPI - # uses: pypa/gh-action-pypi-publish@v1.5.0 - # with: - # password: ${{ secrets.TEST_PYPI_API_TOKEN }} - # repository_url: https://test.pypi.org/legacy/ - # packages_dir: dist/ - - - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@v1.5.0 - with: - password: ${{ secrets.RAPIDOCR_OPENVINO }} - packages_dir: python/rapid_structure/dist/ diff --git a/.github/workflows/gen_whl_to_pypi_rapid_orientation.yml b/.github/workflows/gen_whl_to_pypi_rapid_orientation.yml deleted file mode 100644 index cf6993f..0000000 --- a/.github/workflows/gen_whl_to_pypi_rapid_orientation.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Push rapidocr_orientation to pypi - -on: - push: - branches: [ main ] - paths: - - 'python/rapid_structure/rapid_orientation/**' - - 'docs/doc_whl_rapid_orientation.md' - - 'python/rapid_structure/setup_orientation.py' - - '.github/workflows/gen_whl_to_pypi_rapid_orientation.yml' - - 'python/rapid_structure/tests/test_orientation.py' - -env: - RESOURCES_URL: https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/rapid_orientation_models.zip - -jobs: - UnitTesting: - runs-on: ubuntu-latest - steps: - - name: Pull latest code - uses: actions/checkout@v3 - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: '3.7' - architecture: 'x64' - - - name: Unit testings - run: | - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $ZIP_NAME - rm python/rapid_structure/rapid_orientation/models/.gitkeep - mv $DIR_NAME/*.onnx python/rapid_structure/rapid_orientation/models/ - cd python/rapid_structure - pip install -r requirements.txt - cd tests - pytest test_orientation.py - - GenerateWHL_PushPyPi: - needs: UnitTesting - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: '3.7' - architecture: 'x64' - - - name: Set SSH Environment - env: - DEPLOY_KEYS: ${{ secrets.GEN_PYTHON_SDK }} - run: | - mkdir -p ~/.ssh/ - echo "$DEPLOY_KEYS" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - chmod 700 ~/.ssh && chmod 600 ~/.ssh/* - - - name: Run setup - run: | - cd python/rapid_structure - pip install -r requirements.txt - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $ZIP_NAME - mv $DIR_NAME/*.onnx rapid_orientation/models/ - python setup_orientation.py bdist_wheel ${{ github.event.head_commit.message }} - - # - name: Publish distribution 📦 to Test PyPI - # uses: pypa/gh-action-pypi-publish@v1.5.0 - # with: - # password: ${{ secrets.TEST_PYPI_API_TOKEN }} - # repository_url: https://test.pypi.org/legacy/ - # packages_dir: python/rapid_structure/dist/ - - - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@v1.5.0 - with: - password: ${{ secrets.RAPIDOCR_OPENVINO }} - packages_dir: python/rapid_structure/dist/ diff --git a/.github/workflows/gen_whl_to_pypi_rapid_table.yml b/.github/workflows/gen_whl_to_pypi_rapid_table.yml deleted file mode 100644 index 08e66fc..0000000 --- a/.github/workflows/gen_whl_to_pypi_rapid_table.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Push rapidocr_table to pypi - -on: - push: - branches: [ main ] - paths: - - 'python/rapid_structure/rapid_table/**' - - 'docs/doc_whl_rapid_table.md' - - 'python/rapid_structure/setup_table.py' - - '.github/workflows/gen_whl_to_pypi_rapid_table.yml' - - 'python/rapid_structure/tests/test_table.py' - -env: - RESOURCES_URL: https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/rapid_table_models.zip - -jobs: - UnitTesting: - runs-on: ubuntu-latest - steps: - - name: Pull latest code - uses: actions/checkout@v3 - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: '3.7' - architecture: 'x64' - - - name: Display Python version - run: python -c "import sys; print(sys.version)" - - - name: Unit testings - run: | - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $DIR_NAME - cp $DIR_NAME/*.onnx python/rapid_structure/rapid_table/models/ - cd python/rapid_structure - pip install -r requirements.txt - pip install rapidocr_onnxruntime - pytest tests/test_table.py - - GenerateWHL_PushPyPi: - needs: UnitTesting - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: '3.7' - architecture: 'x64' - - - name: Set SSH Environment - env: - DEPLOY_KEYS: ${{ secrets.GEN_PYTHON_SDK }} - run: | - mkdir -p ~/.ssh/ - echo "$DEPLOY_KEYS" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - chmod 700 ~/.ssh && chmod 600 ~/.ssh/* - - - name: Run setup - run: | - cd python/rapid_structure - pip install -r requirements.txt - wget $RESOURCES_URL - ZIP_NAME=${RESOURCES_URL##*/} - DIR_NAME=${ZIP_NAME%.*} - unzip $ZIP_NAME - mv $DIR_NAME/en_ppstructure_mobile_v2_SLANet.onnx rapid_table/models/ - python setup_table.py bdist_wheel ${{ github.event.head_commit.message }} - - # - name: Publish distribution 📦 to Test PyPI - # uses: pypa/gh-action-pypi-publish@v1.5.0 - # with: - # password: ${{ secrets.TEST_PYPI_API_TOKEN }} - # repository_url: https://test.pypi.org/legacy/ - # packages_dir: dist/ - - - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@v1.5.0 - with: - password: ${{ secrets.RAPIDOCR_OPENVINO }} - packages_dir: python/rapid_structure/dist/ diff --git a/README.md b/README.md index 81909ca..7564b44 100755 --- a/README.md +++ b/README.md @@ -81,13 +81,14 @@ - [网页版OCR](https://github.com/RapidAI/RapidOCR/blob/main/ocrweb/README.md) - [Nuitka打包rapdocr_web](https://github.com/RapidAI/RapidOCR/wiki/Nuitka%E6%89%93%E5%8C%85rapidocr_web%E6%93%8D%E4%BD%9C%E6%96%87%E6%A1%A3) - [多语言网页版OCR](https://github.com/RapidAI/RapidOCR/blob/main/ocrweb_multi/README.md) -- [版面结构化](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/README.md) - - [含文本的图像方向分类](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Orientation.md) - - [版面分析](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Layout.md) - - [表格还原](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Table.md) +- [版面结构化-RapidStructure](https://github.com/RapidAI/RapidStructure) + - [含文本的图像方向分类](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Orientation.md) + - [版面分析](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Layout.md) + - [表格还原](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Table.md) - 衍生项目 - [RapidOCR HTTP服务/win32程序/易语言编写](https://github.com/Physton/RapidOCRServer) - [垂直项目](https://github.com/RapidAI/RapidOCR/blob/main/docs/related_projects.md) + - [RapidOCRPDF](https://github.com/RapidAI/RapidOCRPDF):解析PDF文件 - [RapidVideOCR](https://github.com/SWHL/RapidVideOCR):基于RapidOCR,提取视频中的硬字幕 - [LGPMA_Infer](https://github.com/SWHL/LGPMA_Infer): 表格结构还原 | [博客解读论文和源码](http://t.csdn.cn/QNN3S) - [文档图像矫正-PaperEdge](https://github.com/cvlab-stonybrook/PaperEdge) | [Demo](https://huggingface.co/spaces/SWHL/PaperEdgeDemo) diff --git a/docs/README_en.md b/docs/README_en.md index 083ddb8..eee78b9 100644 --- a/docs/README_en.md +++ b/docs/README_en.md @@ -73,13 +73,14 @@ - [Web OCR](https://github.com/RapidAI/RapidOCR/blob/main/ocrweb/README.md) - [Nuitka package rapdocr_web](https://github.com/RapidAI/RapidOCR/wiki/Nuitka%E6%89%93%E5%8C%85rapidocr_web%E6%93%8D%E4%BD%9C%E6%96%87%E6%A1%A3) - [Multi Web OCR](https://github.com/RapidAI/RapidOCR/blob/main/ocrweb_multi/README.md) -- [Structure](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/README.md) - - [orientation](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Orientation.md) - - [layout](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Layout.md) - - [table recovery](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Table.md) +- [RapidStructure](https://github.com/RapidAI/RapidStructure) + - [orientation](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Orientation.md) + - [layout](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Layout.md) + - [table recovery](https://github.com/RapidAI/RapidStructure/blob/main/docs/README_Table.md) - Derivatives - [RapidOCR HTTP service/win32 program/easy language writing](https://github.com/Physton/RapidOCRServer) - [Related projects](https://github.com/RapidAI/RapidOCR/blob/main/docs/related_projects.md) + - [RapidOCRPDF](https://github.com/RapidAI/RapidOCRPDF):extract PDF content. - [RapidVideOCR](https://github.com/SWHL/RapidVideOCR): Extract hard subtitles in videos based on RapidOCR - [LGPMA_Infer](https://github.com/SWHL/LGPMA_Infer): table structure restoration | [blog interpretation papers and source code](http://t.csdn.cn/QNN3S) - [Document Unwarping-PaperEdge](https://github.com/cvlab-stonybrook/PaperEdge) | [Demo](https://huggingface.co/spaces/SWHL/PaperEdgeDemo) diff --git a/docs/doc_whl_rapid_layout.md b/docs/doc_whl_rapid_layout.md deleted file mode 100644 index 29f40cf..0000000 --- a/docs/doc_whl_rapid_layout.md +++ /dev/null @@ -1,60 +0,0 @@ -## rapid-layout Package -

- - - PyPI -

- -### 1. Install package by pypi. -```bash -$ pip install rapid-layout -``` - -### 2. Run by script. -- RapidLayout has the default `model_path` value, you can set the different value of `model_path` to use different models, e.g. `layout_engine = RapidLayout(model_path='layout_publaynet.onnx')` -- See details, for [README_Layout](https://github.com/RapidAI/RapidOCR/blob/f133ff008a1c60edd6e0ed882da83873aa7b113a/python/rapid_structure/docs/README_Layout.md) . -- 📌 `layout.png` source: [link](https://github.com/RapidAI/RapidOCR/blob/f133ff008a1c60edd6e0ed882da83873aa7b113a/python/rapid_structure/test_images/layout.png) - -```python -import cv2 -from rapid_layout import RapidLayout - -layout_engine = RapidLayout() - -img = cv2.imread('layout.png') - -layout_res, elapse = layout_engine(img) -print(layout_res) -``` - -### 3. Run by command line. -- Usage: - ```bash - $ rapid_layout -h - usage: rapid_layout [-h] [-v] -img IMG_PATH [-m MODEL_PATH] - - optional arguments: - -h, --help show this help message and exit - -v, --vis Wheter to visualize the layout results. - -img IMG_PATH, --img_path IMG_PATH - Path to image for layout. - -m MODEL_PATH, --model_path MODEL_PATH - The model path used for inference. - ``` -- Example: - ```bash - $ rapid_layout -v -img layout.png - ``` - -### 4. Result. -- Return value. - ```python - [ - {'bbox': array([321.4160495, 91.53214898, 562.06141263, 199.85522603]), 'label': 'text'}, - {'bbox': array([58.67292211, 107.29000663, 300.25448676, 199.68142]), 'label': 'table_caption'} - ] - ``` -- Visualize result. -
- -
diff --git a/docs/doc_whl_rapid_orientation.md b/docs/doc_whl_rapid_orientation.md deleted file mode 100644 index dd751ed..0000000 --- a/docs/doc_whl_rapid_orientation.md +++ /dev/null @@ -1,51 +0,0 @@ -## rapid-orientation Package -

- - - PyPI -

- -### 1. Install package by pypi. -```bash -$ pip install rapid-orientation -``` - -### 2. Run by script. -- RapidOrientation has the default `model_path` value, you can set the different value of `model_path` to use different models, e.g. `orientation_engine = RapidOrientation(model_path='rapid_orientation.onnx')` -- See details, for [README_Layout](https://github.com/RapidAI/RapidOCR/blob/f133ff008a1c60edd6e0ed882da83873aa7b113a/python/rapid_structure/docs/README_Layout.md) . -- 📌 `layout.png` source: [link](https://github.com/RapidAI/RapidOCR/blob/f133ff008a1c60edd6e0ed882da83873aa7b113a/python/rapid_structure/test_images/layout.png) - -```python -import cv2 -from rapid_orientation import RapidOrientation - -orientation_engine = RapidOrientation() - -img = cv2.imread('test_images/layout.png') - -orientation_res, elapse = orientation_engine(img) -print(orientation_res) -``` - -### 3. Run by command line. -- Usage: - ```bash - $ rapid_orientation -h - usage: rapid_orientation [-h] -img IMG_PATH [-m MODEL_PATH] - - optional arguments: - -h, --help show this help message and exit - -img IMG_PATH, --img_path IMG_PATH - Path to image for layout. - -m MODEL_PATH, --model_path MODEL_PATH - The model path used for inference - ``` -- Example: - ```bash - $ rapid_orientation -img layout.png - ``` - -### 4. Result. -```python -# Return str, four types::0 | 90 | 180 | 270 -``` \ No newline at end of file diff --git a/docs/doc_whl_rapid_table.md b/docs/doc_whl_rapid_table.md deleted file mode 100644 index 6534b24..0000000 --- a/docs/doc_whl_rapid_table.md +++ /dev/null @@ -1,41 +0,0 @@ -## rapid-table Package -

- - -

- -### 1. Install package by pypi. -```bash -$ pip install rapid-table -``` - -### 2. Run by script. -- RapidTable has the default `model_path` value, you can set the different value of `model_path` to use different models, e.g. `table_engine = RapidTable(model_path='ch_ppstructure_mobile_v2_SLANet.onnx')` -- See details, for [README_Table](https://github.com/RapidAI/RapidOCR/blob/a87133a6fc3b8ee696e246028e529f7b2319d138/python/rapid_structure/docs/README_Table.md) . -- 📌 `table.jpg` source: [link](https://github.com/RapidAI/RapidOCR/blob/a87133a6fc3b8ee696e246028e529f7b2319d138/python/rapid_structure/test_images/table.jpg) - -```python -import cv2 -from rapid_table import RapidTable - -table_engine = RapidTable() - -img = cv2.imread('table.jpg') -table_html_str, _ = table_engine(img) -print(table_html_str) -``` - -### 3. Run by command line. -```bash -$ rapid_table -v -img table.jpg -``` - -### 4. Result. -- Return value. - ```html - <>
MethodsFPS
SegLink [26]70.086d>77.08.9
PixelLink [4]73.283.077.8
TextSnake [18]73.983.278.31.1
TextField [37]75.987.481.35.2
MSR[38]76.787.87.481.7
FTSN [3]77.187.682.0
LSE[30]81.784.282.9
CRAFT [2]78.288.282.98.6
MCN[16]798883
ATRR[35]82.185.283.6
PAN [34]83.884.484.130.2
DB[12]79.291.584.932.0
DRRG[41]82.3088.0585.08
Ours (SynText)80.688582.9712.68
Ours (MLT-17)84.5486.6285.5712.31
- ``` -- Visualize result. -
- <>
MethodsFPS
SegLink [26]70.086d>77.08.9
PixelLink [4]73.283.077.8
TextSnake [18]73.983.278.31.1
TextField [37]75.987.481.35.2
MSR[38]76.787.87.481.7
FTSN [3]77.187.682.0
LSE[30]81.784.282.9
CRAFT [2]78.288.282.98.6
MCN[16]798883
ATRR[35]82.185.283.6
PAN [34]83.884.484.130.2
DB[12]79.291.584.932.0
DRRG[41]82.3088.0585.08
Ours (SynText)80.688582.9712.68
Ours (MLT-17)84.5486.6285.5712.31
-
diff --git a/python/rapid_structure/README.md b/python/rapid_structure/README.md deleted file mode 100644 index 0db38a2..0000000 --- a/python/rapid_structure/README.md +++ /dev/null @@ -1,15 +0,0 @@ -## Rapid Structure -- 该部分的功能主要针对文档类图像,包括文档图像分类、版面分析和表格识别。 - -### [版面分析](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Layout.md) - -### [表格识别](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Table.md) - -### [文档方向分类](https://github.com/RapidAI/RapidOCR/blob/main/python/rapid_structure/docs/README_Orientation.md) - -### 整体结构 -```mermaid -flowchart LR - A[/文档图像/] --> B(文档方向分类 rapid_orientation) --> C(版面分析 rapid_layout) & D(表格识别 rapid_table) --> E(OCR识别 rapidocr_onnxruntime) - E --> F(结构化输出) -``` \ No newline at end of file diff --git a/python/rapid_structure/demo.py b/python/rapid_structure/demo.py deleted file mode 100644 index 4745930..0000000 --- a/python/rapid_structure/demo.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import copy -from pathlib import Path - -import cv2 -import numpy as np - -from rapid_layout import RapidLayout -from rapid_orientation import RapidOrientation -from rapid_table import RapidTable - - -def vis_layout(img: np.ndarray, layout_res: list) -> None: - tmp_img = copy.deepcopy(img) - for v in layout_res: - bbox = np.round(v['bbox']).astype(np.int32) - label = v['label'] - - start_point = (bbox[0], bbox[1]) - end_point = (bbox[2], bbox[3]) - - cv2.rectangle(tmp_img, start_point, end_point, (0, 255, 0), 2) - cv2.putText(tmp_img, label, start_point, - cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 2) - - draw_img_save = Path("./inference_results/") - if not draw_img_save.exists(): - draw_img_save.mkdir(parents=True, exist_ok=True) - - image_save = str(draw_img_save / 'layout_result.jpg') - cv2.imwrite(image_save, tmp_img) - print(f'The infer result has saved in {image_save}') - - -def vis_table(table_res): - style_res = '''''' - prefix_table, suffix_table = table_res.split('') - new_table_res = f'{prefix_table}{style_res}{suffix_table}' - - draw_img_save = Path("./inference_results/") - if not draw_img_save.exists(): - draw_img_save.mkdir(parents=True, exist_ok=True) - - html_path = str(draw_img_save / 'table_result.html') - with open(html_path, 'w', encoding='utf-8') as f: - f.write(new_table_res) - print(f'The infer result has saved in {html_path}') - - -def demo_layout(): - layout_engine = RapidLayout() - - img = cv2.imread('test_images/layout.png') - - layout_res, _ = layout_engine(img) - - vis_layout(img, layout_res) - print(layout_res) - - -def demo_table(): - table_engine = RapidTable() - img = cv2.imread('test_images/table.jpg') - table_html_str, _ = table_engine(img) - - vis_table(table_html_str) - print(table_html_str) - - -def demo_orientation(): - orientation_engine = RapidOrientation() - img = cv2.imread('tests/test_files/img_rot180_demo.jpg') - cls_result, _ = orientation_engine(img) - print(cls_result) - - -if __name__ == '__main__': - demo_layout() - # demo_table() - # demo_orientation() diff --git a/python/rapid_structure/docs/README_Layout.md b/python/rapid_structure/docs/README_Layout.md deleted file mode 100644 index 7c83b37..0000000 --- a/python/rapid_structure/docs/README_Layout.md +++ /dev/null @@ -1,73 +0,0 @@ -## Rapid Layout -

- - - PyPI - -

- -#### 简介和说明 -- 该部分主要是做文档类图像的版面分析。模型来源:[PaddleOCR 版面分析](https://github.com/PaddlePaddle/PaddleOCR/blob/133d67f27dc8a241d6b2e30a9f047a0fb75bebbe/ppstructure/layout/README_ch.md) -- 具体来说,就是分析给定的文档类别图像(论文截图等),定位其中类别和位置,如标题、段落、表格和图片等各个部分。 -- 目前支持三种类别的版面分析模型:中文、英文和表格版面分析模型,具体可参见下面表格: - - | 模型类型 | 模型名称 | 模型大小 | 支持种类 | - |:---:|:---:|:---:|:---:| - | 表格 | `layout_table.onnx` | 7.06M | `table` | - | 英文 | `layout_publaynet.onnx` | 7.06M | `text title list table figure` | - | 中文 | `layout_cdla.onnx` | 7.07M | `text title figure figure_caption table table_caption`
`header footer reference equation` | -- 模型下载地址为:[百度网盘](https://pan.baidu.com/s/1PI9fksW6F6kQfJhwUkewWg?pwd=p29g) | [Google Drive](https://drive.google.com/drive/folders/1DAPWSN2zGQ-ED_Pz7RaJGTjfkN2-Mvsf?usp=sharing) - -#### 使用方式 -1. pip安装 - - 由于模型较小,预先将中文版面分析模型(`layout_cdla.onnx`)打包进了whl包内,如果做中文版面分析,可直接安装使用 - ```bash - $ pip install rapid-layout - ``` -2. python脚本运行 - ```python - import cv2 - from rapid_layout import RapidLayout - - # RapidLayout类提供model_path参数,可以自行指定上述3个模型,默认是layout_cdla.onnx - # layout_engine = RapidLayout(model_path='layout_publaynet.onnx') - layout_engine = RapidLayout() - - img = cv2.imread('test_images/layout.png') - - layout_res, elapse = layout_engine(img) - ``` - -3. 终端运行 - - 用法: - ```bash - $ rapid_layout -h - usage: rapid_layout [-h] [-v] -img IMG_PATH [-m MODEL_PATH] - - optional arguments: - -h, --help show this help message and exit - -v, --vis Wheter to visualize the layout results. - -img IMG_PATH, --img_path IMG_PATH - Path to image for layout. - -m MODEL_PATH, --model_path MODEL_PATH - The model path used for inference. - ``` - - 示例: - ```bash - $ rapid_layout -v -img test_images/layout.png - ``` - -4. 结果 - - 返回结果 - ```python - # bbox: [左上角x0,左上角y0, 右下角x0, 右上角x1] - # label: 类别 - [ - {'bbox': array([321.4160495, 91.53214898, 562.06141263, 199.85522603]), 'label': 'text'}, - {'bbox': array([58.67292211, 107.29000663, 300.25448676, 199.68142]), 'label': 'table_caption'} - ] - ``` - - 可视化结果 -
- -
diff --git a/python/rapid_structure/docs/README_Orientation.md b/python/rapid_structure/docs/README_Orientation.md deleted file mode 100644 index 19f2ac2..0000000 --- a/python/rapid_structure/docs/README_Orientation.md +++ /dev/null @@ -1,56 +0,0 @@ -## Rapid Orientation -

- - - PyPI - -

- -#### 简介和说明 -- 该部分主要是做含文字图像方向分类模型。模型来源:[PaddleClas 含文字图像方向分类模型](https://github.com/PaddlePaddle/PaddleClas/blob/177e4be74639c0960efeae2c5166d3226c9a02eb/docs/zh_CN/models/PULC/PULC_text_image_orientation.md) - - | 模型类型 | 模型名称 | 模型大小 | 支持种类 | - |:---:|:---:|:---:|:---:| - | 四方向分类 | `rapid_orientation.onnx` | 6.5M | `0 90 180 270`| - -#### 使用方式 -1. pip安装 - - 由于模型较小,已经将分类模型(`rapid_orientation.onnx`)打包进了whl包内: - ```bash - $ pip install rapid-orientation - ``` -2. python脚本运行 - ```python - import cv2 - from rapid_orientation import RapidOrientation - - orientation_engine = RapidOrientation() - - img = cv2.imread('test_images/layout.png') - - orientation_res, elapse = orientation_engine(img) - print(orientation_res) - ``` - -3. 终端运行 - - 用法: - ```bash - $ rapid_orientation -h - usage: rapid_orientation [-h] -img IMG_PATH [-m MODEL_PATH] - - optional arguments: - -h, --help show this help message and exit - -img IMG_PATH, --img_path IMG_PATH - Path to image for layout. - -m MODEL_PATH, --model_path MODEL_PATH - The model path used for inference. - ``` - - 示例: - ```bash - $ rapid_orientation -img test_images/layout.png - ``` - -4. 结果 - ```python - # 返回结果为str类型,有四类:0 | 90 | 180 | 270 - ``` diff --git a/python/rapid_structure/docs/README_Table.md b/python/rapid_structure/docs/README_Table.md deleted file mode 100644 index 08610bd..0000000 --- a/python/rapid_structure/docs/README_Table.md +++ /dev/null @@ -1,66 +0,0 @@ -## Rapid Table -

- - - PyPI - -

- -#### 简介和说明 -- 该部分主要是做文档类图像的表格结构还原。模型来源:[PaddleOCR 表格识别](https://github.com/PaddlePaddle/PaddleOCR/blob/133d67f27dc8a241d6b2e30a9f047a0fb75bebbe/ppstructure/table/README_ch.md) -- 具体来说,就是分析给定的表格图像,将表格还原为对应的html格式。 -- 目前支持两种类别的表格识别模型:中文和英文表格识别模型,具体可参见下面表格: - - | 模型类型 | 模型名称 | 模型大小 | - |:---:|:---:|:---:| - | 英文 | `en_ppstructure_mobile_v2_SLANet.onnx` | 7.3M | - | 中文 | `ch_ppstructure_mobile_v2_SLANet.onnx` | 7.4M | -- 模型下载地址为:[百度网盘](https://pan.baidu.com/s/1PI9fksW6F6kQfJhwUkewWg?pwd=p29g) | [Google Drive](https://drive.google.com/drive/folders/1DAPWSN2zGQ-ED_Pz7RaJGTjfkN2-Mvsf?usp=sharing) - -#### 使用方式 -1. pip安装 - - 由于模型较小,预先将英文表格识别模型(`en_ppstructure_mobile_v2_SLANet.onnx`)打包进了whl包内,如果做英文表格识别,可直接安装使用 - ```bash - $ pip install rapid-table - ``` -2. python脚本运行 - ```python - import cv2 - from rapid_table import RapidTable - - # RapidTable类提供model_path参数,可以自行指定上述2个模型,默认是en_ppstructure_mobile_v2_SLANet.onnx - # table_engine = RapidTable(model_path='ch_ppstructure_mobile_v2_SLANet.onnx') - table_engine = RapidTable() - - img = cv2.imread('test_images/table.jpg') - table_html_str, _ = table_engine(img) - print(table_html_str) - ``` -3. 终端运行 - - 用法: - ```bash - $ rapid_table -h - usage: rapid_table [-h] [-v] -img IMG_PATH [-m MODEL_PATH] - - optional arguments: - -h, --help show this help message and exit - -v, --vis Wheter to visualize the layout results. - -img IMG_PATH, --img_path IMG_PATH - Path to image for layout. - -m MODEL_PATH, --model_path MODEL_PATH - The model path used for inference. - ``` - - 示例: - ```bash - $ rapid_table -v -img test_images/table.jpg - ``` - -4. 结果 - - 返回结果 - ```html - <>
MethodsFPS
SegLink [26]70.086d>77.08.9
PixelLink [4]73.283.077.8
TextSnake [18]73.983.278.31.1
TextField [37]75.987.481.35.2
MSR[38]76.787.87.481.7
FTSN [3]77.187.682.0
LSE[30]81.784.282.9
CRAFT [2]78.288.282.98.6
MCN[16]798883
ATRR[35]82.185.283.6
PAN [34]83.884.484.130.2
DB[12]79.291.584.932.0
DRRG[41]82.3088.0585.08
Ours (SynText)80.688582.9712.68
Ours (MLT-17)84.5486.6285.5712.31
- ``` - - 可视化结果 -
- <>
MethodsFPS
SegLink [26]70.086d>77.08.9
PixelLink [4]73.283.077.8
TextSnake [18]73.983.278.31.1
TextField [37]75.987.481.35.2
MSR[38]76.787.87.481.7
FTSN [3]77.187.682.0
LSE[30]81.784.282.9
CRAFT [2]78.288.282.98.6
MCN[16]798883
ATRR[35]82.185.283.6
PAN [34]83.884.484.130.2
DB[12]79.291.584.932.0
DRRG[41]82.3088.0585.08
Ours (SynText)80.688582.9712.68
Ours (MLT-17)84.5486.6285.5712.31
-
\ No newline at end of file diff --git a/python/rapid_structure/rapid_layout/__init__.py b/python/rapid_structure/rapid_layout/__init__.py deleted file mode 100644 index 79e4a04..0000000 --- a/python/rapid_structure/rapid_layout/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from .rapid_layout import RapidLayout diff --git a/python/rapid_structure/rapid_layout/config.yaml b/python/rapid_structure/rapid_layout/config.yaml deleted file mode 100644 index 33a85d2..0000000 --- a/python/rapid_structure/rapid_layout/config.yaml +++ /dev/null @@ -1,24 +0,0 @@ -model_path: models/layout_cdla.onnx - -use_cuda: false -CUDAExecutionProvider: - device_id: 0 - arena_extend_strategy: kNextPowerOfTwo - cudnn_conv_algo_search: EXHAUSTIVE - do_copy_in_default_stream: true - -pre_process: - Resize: - size: [800, 608] - NormalizeImage: - std: [0.229, 0.224, 0.225] - mean: [0.485, 0.456, 0.406] - scale: 1./255. - order: hwc - ToCHWImage: - KeepKeys: - keep_keys: ['image'] - -post_process: - score_threshold: 0.5 - nms_threshold: 0.5 \ No newline at end of file diff --git a/python/rapid_structure/rapid_layout/models/.gitkeep b/python/rapid_structure/rapid_layout/models/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/python/rapid_structure/rapid_layout/rapid_layout.py b/python/rapid_structure/rapid_layout/rapid_layout.py deleted file mode 100644 index 178c015..0000000 --- a/python/rapid_structure/rapid_layout/rapid_layout.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import argparse -import time -from pathlib import Path - -import cv2 -import numpy as np - -from .utils import (OrtInferSession, PicoDetPostProcess, create_operators, - read_yaml, transform, vis_layout) - -root_dir = Path(__file__).resolve().parent - - -class RapidLayout(): - def __init__(self, - model_path: str = None): - config_path = str(root_dir / 'config.yaml') - config = read_yaml(config_path) - if model_path is None: - model_path = str(root_dir / 'models' / 'layout_cdla.onnx') - config['model_path'] = model_path - - self.session = OrtInferSession(config) - labels = self.session.get_metadata()['character'].splitlines() - - self.preprocess_op = create_operators(config['pre_process']) - self.postprocess_op = PicoDetPostProcess(labels, - **config['post_process']) - - def __call__(self, img): - ori_im = img.copy() - data = {'image': img} - data = transform(data, self.preprocess_op) - img = data[0] - - if img is None: - return None, 0 - - img = np.expand_dims(img, axis=0) - img = img.copy() - - preds, elapse = 0, 1 - starttime = time.time() - - preds = self.session(img) - - score_list, boxes_list = [], [] - num_outs = int(len(preds) / 2) - for out_idx in range(num_outs): - score_list.append(preds[out_idx]) - boxes_list.append(preds[out_idx + num_outs]) - preds = dict(boxes=score_list, boxes_num=boxes_list) - post_preds = self.postprocess_op(ori_im, img, preds) - elapse = time.time() - starttime - return post_preds, elapse - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('-v', '--vis', action='store_true', - help='Wheter to visualize the layout results.') - parser.add_argument('-img', '--img_path', type=str, required=True, - help='Path to image for layout.') - parser.add_argument('-m', '--model_path', type=str, - default=str(root_dir / 'models' / 'layout_cdla.onnx'), - help='The model path used for inference.') - args = parser.parse_args() - - layout_engine = RapidLayout(args.model_path) - - img = cv2.imread(args.img_path) - layout_res, elapse = layout_engine(img) - print(layout_res) - - if args.vis: - img_path = Path(args.img_path) - save_path = img_path.resolve().parent / f'vis_{img_path.name}' - vis_layout(img, layout_res, str(save_path)) - - -if __name__ == '__main__': - main() diff --git a/python/rapid_structure/rapid_layout/utils.py b/python/rapid_structure/rapid_layout/utils.py deleted file mode 100644 index 70f3b2f..0000000 --- a/python/rapid_structure/rapid_layout/utils.py +++ /dev/null @@ -1,443 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import copy -import warnings -from pathlib import Path - -import yaml -import cv2 -import numpy as np -from onnxruntime import (get_available_providers, get_device, - SessionOptions, InferenceSession, - GraphOptimizationLevel) - - -class OrtInferSession(): - def __init__(self, config): - sess_opt = SessionOptions() - sess_opt.log_severity_level = 4 - sess_opt.enable_cpu_mem_arena = False - sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL - - cuda_ep = 'CUDAExecutionProvider' - cpu_ep = 'CPUExecutionProvider' - cpu_provider_options = {"arena_extend_strategy": "kSameAsRequested",} - - EP_list = [] - if config['use_cuda'] and get_device() == 'GPU' \ - and cuda_ep in get_available_providers(): - EP_list = [(cuda_ep, config[cuda_ep])] - EP_list.append((cpu_ep, cpu_provider_options)) - - self._verify_model(config['model_path']) - self.session = InferenceSession(config['model_path'], - sess_options=sess_opt, - providers=EP_list) - - if config['use_cuda'] and cuda_ep not in self.session.get_providers(): - warnings.warn(f'{cuda_ep} is not avaiable for current env, the inference part is automatically shifted to be executed under {cpu_ep}.\n' - 'Please ensure the installed onnxruntime-gpu version matches your cuda and cudnn version, ' - 'you can check their relations from the offical web site: ' - 'https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html', - RuntimeWarning) - - def __call__(self, input_content: np.ndarray) -> np.ndarray: - input_dict = dict(zip(self.get_input_names(), [input_content])) - try: - return self.session.run(self.get_output_names(), input_dict) - except Exception as e: - raise ONNXRuntimeError('ONNXRuntime inferece failed.') from e - - def get_input_names(self, ): - return [v.name for v in self.session.get_inputs()] - - def get_output_names(self,): - return [v.name for v in self.session.get_outputs()] - - def get_metadata(self): - meta_dict = self.session.get_modelmeta().custom_metadata_map - return meta_dict - - @staticmethod - def _verify_model(model_path): - model_path = Path(model_path) - if not model_path.exists(): - raise FileNotFoundError(f'{model_path} does not exists.') - if not model_path.is_file(): - raise FileExistsError(f'{model_path} is not a file.') - - -class ONNXRuntimeError(Exception): - pass - - -def transform(data, ops=None): - """ transform """ - if ops is None: - ops = [] - - for op in ops: - data = op(data) - if data is None: - return None - return data - - -def create_operators(op_param_dict): - ops = [] - for op_name, param in op_param_dict.items(): - if param is None: - param = {} - op = eval(op_name)(**param) - ops.append(op) - return ops - - -class Resize(): - def __init__(self, size=(640, 640), **kwargs): - self.size = size - - def resize_image(self, img): - resize_h, resize_w = self.size - ori_h, ori_w = img.shape[:2] # (h, w, c) - ratio_h = float(resize_h) / ori_h - ratio_w = float(resize_w) / ori_w - img = cv2.resize(img, (int(resize_w), int(resize_h))) - return img, [ratio_h, ratio_w] - - def __call__(self, data): - img = data['image'] - if 'polys' in data: - text_polys = data['polys'] - - img_resize, [ratio_h, ratio_w] = self.resize_image(img) - if 'polys' in data: - new_boxes = [] - for box in text_polys: - new_box = [] - for cord in box: - new_box.append([cord[0] * ratio_w, cord[1] * ratio_h]) - new_boxes.append(new_box) - data['polys'] = np.array(new_boxes, dtype=np.float32) - data['image'] = img_resize - return data - - -class NormalizeImage(): - def __init__(self, scale=None, mean=None, std=None, order='chw', **kwargs): - if isinstance(scale, str): - scale = eval(scale) - self.scale = np.float32(scale if scale is not None else 1.0 / 255.0) - mean = mean if mean is not None else [0.485, 0.456, 0.406] - std = std if std is not None else [0.229, 0.224, 0.225] - - shape = (3, 1, 1) if order == 'chw' else (1, 1, 3) - self.mean = np.array(mean).reshape(shape).astype('float32') - self.std = np.array(std).reshape(shape).astype('float32') - - def __call__(self, data): - img = np.array(data['image']) - assert isinstance(img, - np.ndarray), "invalid input 'img' in NormalizeImage" - data['image'] = ( - img.astype('float32') * self.scale - self.mean) / self.std - return data - - -class ToCHWImage(): - def __init__(self, **kwargs): - pass - - def __call__(self, data): - img = np.array(data['image']) - data['image'] = img.transpose((2, 0, 1)) - return data - - -class KeepKeys(): - def __init__(self, keep_keys, **kwargs): - self.keep_keys = keep_keys - - def __call__(self, data): - data_list = [] - for key in self.keep_keys: - data_list.append(data[key]) - return data_list - - -def read_yaml(yaml_path): - with open(yaml_path, 'rb') as f: - data = yaml.load(f, Loader=yaml.Loader) - return data - - -class PicoDetPostProcess(): - def __init__(self, - labels, - strides=[8, 16, 32, 64], - score_threshold=0.4, - nms_threshold=0.5, - nms_top_k=1000, - keep_top_k=100): - self.labels = labels - self.strides = strides - self.score_threshold = score_threshold - self.nms_threshold = nms_threshold - self.nms_top_k = nms_top_k - self.keep_top_k = keep_top_k - - def __call__(self, ori_img, img, preds): - scores, raw_boxes = preds['boxes'], preds['boxes_num'] - batch_size = raw_boxes[0].shape[0] - reg_max = int(raw_boxes[0].shape[-1] / 4 - 1) - out_boxes_num = [] - out_boxes_list = [] - results = [] - ori_shape, input_shape, scale_factor = self.img_info(ori_img, img) - - for batch_id in range(batch_size): - # generate centers - decode_boxes = [] - select_scores = [] - for stride, box_distribute, score in zip(self.strides, raw_boxes, - scores): - box_distribute = box_distribute[batch_id] - score = score[batch_id] - # centers - fm_h = input_shape[0] / stride - fm_w = input_shape[1] / stride - h_range = np.arange(fm_h) - w_range = np.arange(fm_w) - ww, hh = np.meshgrid(w_range, h_range) - ct_row = (hh.flatten() + 0.5) * stride - ct_col = (ww.flatten() + 0.5) * stride - center = np.stack((ct_col, ct_row, ct_col, ct_row), axis=1) - - # box distribution to distance - reg_range = np.arange(reg_max + 1) - box_distance = box_distribute.reshape((-1, reg_max + 1)) - box_distance = self.softmax(box_distance, axis=1) - box_distance = box_distance * np.expand_dims(reg_range, axis=0) - box_distance = np.sum(box_distance, axis=1).reshape((-1, 4)) - box_distance = box_distance * stride - - # top K candidate - topk_idx = np.argsort(score.max(axis=1))[::-1] - topk_idx = topk_idx[:self.nms_top_k] - center = center[topk_idx] - score = score[topk_idx] - box_distance = box_distance[topk_idx] - - # decode box - decode_box = center + [-1, -1, 1, 1] * box_distance - - select_scores.append(score) - decode_boxes.append(decode_box) - - # nms - bboxes = np.concatenate(decode_boxes, axis=0) - confidences = np.concatenate(select_scores, axis=0) - picked_box_probs = [] - picked_labels = [] - for class_index in range(0, confidences.shape[1]): - probs = confidences[:, class_index] - mask = probs > self.score_threshold - probs = probs[mask] - if probs.shape[0] == 0: - continue - subset_boxes = bboxes[mask, :] - box_probs = np.concatenate( - [subset_boxes, probs.reshape(-1, 1)], axis=1) - box_probs = self.hard_nms( - box_probs, - iou_threshold=self.nms_threshold, - top_k=self.keep_top_k, ) - picked_box_probs.append(box_probs) - picked_labels.extend([class_index] * box_probs.shape[0]) - - if len(picked_box_probs) == 0: - out_boxes_list.append(np.empty((0, 4))) - out_boxes_num.append(0) - - else: - picked_box_probs = np.concatenate(picked_box_probs) - - # resize output boxes - picked_box_probs[:, :4] = self.warp_boxes( - picked_box_probs[:, :4], ori_shape[batch_id]) - im_scale = np.concatenate([ - scale_factor[batch_id][::-1], scale_factor[batch_id][::-1] - ]) - picked_box_probs[:, :4] /= im_scale - # clas score box - out_boxes_list.append( - np.concatenate( - [ - np.expand_dims( - np.array(picked_labels), - axis=-1), np.expand_dims( - picked_box_probs[:, 4], axis=-1), - picked_box_probs[:, :4] - ], - axis=1)) - out_boxes_num.append(len(picked_labels)) - - out_boxes_list = np.concatenate(out_boxes_list, axis=0) - out_boxes_num = np.asarray(out_boxes_num).astype(np.int32) - - for dt in out_boxes_list: - clsid, bbox, score = int(dt[0]), dt[2:], dt[1] - label = self.labels[clsid] - result = {'bbox': bbox, 'label': label} - results.append(result) - return results - - def load_layout_dict(self, layout_dict_path): - with open(layout_dict_path, 'r', encoding='utf-8') as fp: - labels = fp.readlines() - return [label.strip('\n') for label in labels] - - def warp_boxes(self, boxes, ori_shape): - """Apply transform to boxes - """ - width, height = ori_shape[1], ori_shape[0] - n = len(boxes) - if n: - # warp points - xy = np.ones((n * 4, 3)) - xy[:, :2] = boxes[:, [0, 1, 2, 3, 0, 3, 2, 1]].reshape( - n * 4, 2) # x1y1, x2y2, x1y2, x2y1 - # xy = xy @ M.T # transform - xy = (xy[:, :2] / xy[:, 2:3]).reshape(n, 8) # rescale - # create new boxes - x = xy[:, [0, 2, 4, 6]] - y = xy[:, [1, 3, 5, 7]] - xy = np.concatenate( - (x.min(1), y.min(1), x.max(1), y.max(1))).reshape(4, n).T - # clip boxes - xy[:, [0, 2]] = xy[:, [0, 2]].clip(0, width) - xy[:, [1, 3]] = xy[:, [1, 3]].clip(0, height) - return xy.astype(np.float32) - else: - return boxes - - def img_info(self, ori_img, img): - origin_shape = ori_img.shape - resize_shape = img.shape - im_scale_y = resize_shape[2] / float(origin_shape[0]) - im_scale_x = resize_shape[3] / float(origin_shape[1]) - scale_factor = np.array([im_scale_y, im_scale_x], dtype=np.float32) - img_shape = np.array(img.shape[2:], dtype=np.float32) - - input_shape = np.array(img).astype('float32').shape[2:] - ori_shape = np.array((img_shape, )).astype('float32') - scale_factor = np.array((scale_factor, )).astype('float32') - return ori_shape, input_shape, scale_factor - - @staticmethod - def softmax(x, axis=None): - def logsumexp(a, axis=None, b=None, keepdims=False): - a_max = np.amax(a, axis=axis, keepdims=True) - - if a_max.ndim > 0: - a_max[~np.isfinite(a_max)] = 0 - elif not np.isfinite(a_max): - a_max = 0 - - tmp = np.exp(a - a_max) - - # suppress warnings about log of zero - with np.errstate(divide='ignore'): - s = np.sum(tmp, axis=axis, keepdims=keepdims) - out = np.log(s) - - if not keepdims: - a_max = np.squeeze(a_max, axis=axis) - out += a_max - return out - - return np.exp(x - logsumexp(x, axis=axis, keepdims=True)) - - def hard_nms(self, box_scores, iou_threshold, top_k=-1, - candidate_size=200): - """ - Args: - box_scores (N, 5): boxes in corner-form and probabilities. - iou_threshold: intersection over union threshold. - top_k: keep top_k results. If k <= 0, keep all the results. - candidate_size: only consider the candidates with the highest scores. - Returns: - picked: a list of indexes of the kept boxes - """ - scores = box_scores[:, -1] - boxes = box_scores[:, :-1] - picked = [] - indexes = np.argsort(scores) - indexes = indexes[-candidate_size:] - while len(indexes) > 0: - current = indexes[-1] - picked.append(current) - if 0 < top_k == len(picked) or len(indexes) == 1: - break - current_box = boxes[current, :] - indexes = indexes[:-1] - rest_boxes = boxes[indexes, :] - iou = self.iou_of(rest_boxes, np.expand_dims(current_box, axis=0),) - indexes = indexes[iou <= iou_threshold] - - return box_scores[picked, :] - - def iou_of(self, boxes0, boxes1, eps=1e-5): - """Return intersection-over-union (Jaccard index) of boxes. - Args: - boxes0 (N, 4): ground truth boxes. - boxes1 (N or 1, 4): predicted boxes. - eps: a small number to avoid 0 as denominator. - Returns: - iou (N): IoU values. - """ - overlap_left_top = np.maximum(boxes0[..., :2], boxes1[..., :2]) - overlap_right_bottom = np.minimum(boxes0[..., 2:], boxes1[..., 2:]) - - overlap_area = self.area_of(overlap_left_top, overlap_right_bottom) - area0 = self.area_of(boxes0[..., :2], boxes0[..., 2:]) - area1 = self.area_of(boxes1[..., :2], boxes1[..., 2:]) - return overlap_area / (area0 + area1 - overlap_area + eps) - - @staticmethod - def area_of(left_top, right_bottom): - """Compute the areas of rectangles given two corners. - Args: - left_top (N, 2): left top corner. - right_bottom (N, 2): right bottom corner. - Returns: - area (N): return the area. - """ - hw = np.clip(right_bottom - left_top, 0.0, None) - return hw[..., 0] * hw[..., 1] - - -def vis_layout(img: np.ndarray, layout_res: list, save_path: str) -> None: - font = cv2.FONT_HERSHEY_COMPLEX - font_scale = 1 - font_color = (0, 0, 255) - font_thickness = 1 - - tmp_img = copy.deepcopy(img) - for v in layout_res: - bbox = np.round(v['bbox']).astype(np.int32) - label = v['label'] - - start_point = (bbox[0], bbox[1]) - end_point = (bbox[2], bbox[3]) - - cv2.rectangle(tmp_img, start_point, end_point, (0, 255, 0), 2) - - (w, h), _ = cv2.getTextSize(label, font, font_scale, font_thickness) - put_point = start_point[0], start_point[1] + h - cv2.putText(tmp_img, label, put_point, font, font_scale, - font_color, font_thickness) - - cv2.imwrite(save_path, tmp_img) - print(f'The infer result has saved in {save_path}') diff --git a/python/rapid_structure/rapid_orientation/__init__.py b/python/rapid_structure/rapid_orientation/__init__.py deleted file mode 100644 index 336271c..0000000 --- a/python/rapid_structure/rapid_orientation/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -from .rapid_orientation import RapidOrientation diff --git a/python/rapid_structure/rapid_orientation/config.yaml b/python/rapid_structure/rapid_orientation/config.yaml deleted file mode 100644 index 78847b2..0000000 --- a/python/rapid_structure/rapid_orientation/config.yaml +++ /dev/null @@ -1,16 +0,0 @@ -model_path: models/rapid_orientation.onnx - -use_cuda: false -CUDAExecutionProvider: - device_id: 0 - arena_extend_strategy: kNextPowerOfTwo - cudnn_conv_algo_search: EXHAUSTIVE - do_copy_in_default_stream: true - -PreProcess: - - ResizeImage: - resize_short: 256 - - CropImage: - size: 224 - - NormalizeImage: - - ToCHWImage: diff --git a/python/rapid_structure/rapid_orientation/models/.gitkeep b/python/rapid_structure/rapid_orientation/models/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/python/rapid_structure/rapid_orientation/rapid_orientation.py b/python/rapid_structure/rapid_orientation/rapid_orientation.py deleted file mode 100644 index 7694ab9..0000000 --- a/python/rapid_structure/rapid_orientation/rapid_orientation.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import argparse -import time -from pathlib import Path -import cv2 - -import numpy as np -import yaml - -from .utils import OrtInferSession, create_operators - -root_dir = Path(__file__).resolve().parent - - -class RapidOrientation(): - def __init__(self, model_path: str = None): - config_path = str(root_dir / 'config.yaml') - config = self.read_yaml(config_path) - if model_path is None: - model_path = str(root_dir / 'models' / 'rapid_orientation.onnx') - config['model_path'] = model_path - - self.session = OrtInferSession(config) - self.labels = self.session.get_metadata()['character'].splitlines() - - self.preprocess_ops = create_operators(config["PreProcess"]) - - def __call__(self, images): - s = time.time() - for ops in self.preprocess_ops: - images = ops(images) - image = np.array(images)[None, ...] - - pred_output = self.session(image)[0] - - pred_output = pred_output.squeeze() - pred_idx = np.argmax(pred_output) - pred_txt = self.labels[pred_idx] - elapse = time.time() - s - return pred_txt, elapse - - @staticmethod - def read_yaml(yaml_path): - with open(yaml_path, 'rb') as f: - data = yaml.load(f, Loader=yaml.Loader) - return data - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('-img', '--img_path', type=str, required=True, - help='Path to image for layout.') - parser.add_argument('-m', '--model_path', type=str, - default=str(root_dir / 'models' / - 'rapid_orientation.onnx'), - help='The model path used for inference.') - args = parser.parse_args() - - orientation_engine = RapidOrientation(args.model_path) - - img = cv2.imread(args.img_path) - orientaion_result, _ = orientation_engine(img) - print(orientaion_result) - - -if __name__ == '__main__': - main() diff --git a/python/rapid_structure/rapid_orientation/utils.py b/python/rapid_structure/rapid_orientation/utils.py deleted file mode 100644 index f2a43c5..0000000 --- a/python/rapid_structure/rapid_orientation/utils.py +++ /dev/null @@ -1,169 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import importlib -from pathlib import Path -import warnings - -import cv2 -import numpy as np -from onnxruntime import (GraphOptimizationLevel, InferenceSession, - SessionOptions, get_available_providers, get_device) - - -class OrtInferSession(): - def __init__(self, config): - sess_opt = SessionOptions() - sess_opt.log_severity_level = 4 - sess_opt.enable_cpu_mem_arena = False - sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL - - cuda_ep = 'CUDAExecutionProvider' - cpu_ep = 'CPUExecutionProvider' - cpu_provider_options = {"arena_extend_strategy": "kSameAsRequested", } - - EP_list = [] - if config['use_cuda'] and get_device() == 'GPU' \ - and cuda_ep in get_available_providers(): - EP_list = [(cuda_ep, config[cuda_ep])] - EP_list.append((cpu_ep, cpu_provider_options)) - - self._verify_model(config['model_path']) - self.session = InferenceSession(config['model_path'], - sess_options=sess_opt, - providers=EP_list) - - has_cuda_ep = cuda_ep not in self.session.get_providers() - if config['use_cuda'] and has_cuda_ep: - warnings.warn(f'{cuda_ep} is not avaiable for current env,' - f'the inference part is automatically shifted to ' - f'be executed under {cpu_ep}. ' - f'Please ensure the installed onnxruntime-gpu ' - f' version matches your cuda and cudnn version, ' - f'you can check their relations from the offical web site: ' - f'https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html', - RuntimeWarning) - - def __call__(self, input_content: np.ndarray) -> np.ndarray: - input_dict = dict(zip(self.get_input_names(), [input_content])) - try: - return self.session.run(self.get_output_names(), input_dict) - except Exception as e: - raise ONNXRuntimeError('ONNXRuntime inferece failed.') from e - - def get_input_names(self, ): - return [v.name for v in self.session.get_inputs()] - - def get_output_names(self,): - return [v.name for v in self.session.get_outputs()] - - def get_metadata(self): - meta_dict = self.session.get_modelmeta().custom_metadata_map - return meta_dict - - @staticmethod - def _verify_model(model_path): - model_path = Path(model_path) - if not model_path.exists(): - raise FileNotFoundError(f'{model_path} does not exists.') - if not model_path.is_file(): - raise FileExistsError(f'{model_path} is not a file.') - - -class ONNXRuntimeError(Exception): - pass - - -def create_operators(params): - """ - create operators based on the config - - Args: - params(list): a dict list, used to create some operators - """ - assert isinstance(params, list), ('operator config should be a list') - mod = importlib.import_module(__name__) - ops = [] - for operator in params: - assert isinstance(operator, - dict) and len(operator) == 1, "yaml format error" - op_name = list(operator)[0] - param = {} if operator[op_name] is None else operator[op_name] - op = getattr(mod, op_name)(**param) - ops.append(op) - return ops - - -class ResizeImage(): - def __init__(self, size=None, resize_short=None): - if resize_short is not None and resize_short > 0: - self.resize_short = resize_short - self.w, self.h = None, None - elif size is not None: - self.resize_short = None - self.w = size if isinstance(size, int) else size[0] - self.h = size if isinstance(size, int) else size[1] - else: - raise ValueError("invalid params for ReisizeImage for '\ - 'both 'size' and 'resize_short' are None") - - def __call__(self, img: np.ndarray): - img_h, img_w = img.shape[:2] - - if self.resize_short: - percent = float(self.resize_short) / min(img_w, img_h) - w = int(round(img_w * percent)) - h = int(round(img_h * percent)) - else: - w = self.w - h = self.h - return cv2.resize(img, (w, h)) - - -class NormalizeImage(): - def __init__(self,): - self.scale = np.float32(1.0 / 255.0) - mean = [0.485, 0.456, 0.406] - std = [0.229, 0.224, 0.225] - - shape = 1, 1, 3 - self.mean = np.array(mean).reshape(shape).astype('float32') - self.std = np.array(std).reshape(shape).astype('float32') - - def __call__(self, img): - img = np.array(img).astype(np.float32) - img = (img * self.scale - self.mean) / self.std - return img.astype(np.float32) - - -class ToCHWImage(): - def __init__(self): - pass - - def __call__(self, img): - img = np.array(img) - return img.transpose((2, 0, 1)) - - -class CropImage(): - def __init__(self, size): - self.size = size - if isinstance(size, int): - self.size = (size, size) - - def __call__(self, img): - w, h = self.size - img_h, img_w = img.shape[:2] - - if img_h < h or img_w < w: - raise ValueError( - f"The size({h}, {w}) of CropImage must be greater than " - f"size({img_h}, {img_w}) of image." - ) - - w_start = (img_w - w) // 2 - h_start = (img_h - h) // 2 - - w_end = w_start + w - h_end = h_start + h - return img[h_start:h_end, w_start:w_end, :] diff --git a/python/rapid_structure/rapid_table/__init__.py b/python/rapid_structure/rapid_table/__init__.py deleted file mode 100644 index e4a5ed5..0000000 --- a/python/rapid_structure/rapid_table/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -from .rapid_table import RapidTable diff --git a/python/rapid_structure/rapid_table/models/.gitkeep b/python/rapid_structure/rapid_table/models/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/python/rapid_structure/rapid_table/rapid_table.py b/python/rapid_structure/rapid_table/rapid_table.py deleted file mode 100644 index 27027e6..0000000 --- a/python/rapid_structure/rapid_table/rapid_table.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import argparse -import copy -import time -from pathlib import Path - -import cv2 -import numpy as np -from rapidocr_onnxruntime import RapidOCR - -from .table_matcher import TableMatch -from .table_structure import TableStructurer - -root_dir = Path(__file__).resolve().parent - - -class RapidTable(): - def __init__(self, model_path: str = None): - self.ocr_sys = RapidOCR() - - if model_path is None: - model_path = str(root_dir / 'models' / 'en_ppstructure_mobile_v2_SLANet.onnx') - - self.table_structure = TableStructurer(model_path) - self.table_matcher = TableMatch() - - def __call__(self, img): - s = time.time() - dt_boxes, rec_res = self._ocr(copy.deepcopy(img)) - - structure_res, _ = self.table_structure(copy.deepcopy(img)) - pred_html = self.table_matcher(structure_res, dt_boxes, rec_res) - - elapse = time.time() - s - return pred_html, elapse - - def _ocr(self, img): - h, w = img.shape[:2] - - ocr_result, _ = self.ocr_sys(img) - dt_boxes, rec_res, scores = list(zip(*ocr_result)) - rec_res = list(zip(rec_res, scores)) - - r_boxes = [] - for box in dt_boxes: - box = np.array(box) - x_min = max(0, box[:, 0].min() - 1) - x_max = min(w, box[:, 0].max() + 1) - y_min = max(0, box[:, 1].min() - 1) - y_max = min(h, box[:, 1].max() + 1) - box = [x_min, y_min, x_max, y_max] - r_boxes.append(box) - dt_boxes = np.array(r_boxes) - return dt_boxes, rec_res - - -def vis_table(table_res: str, save_path: str) -> None: - style_res = '''''' - prefix_table, suffix_table = table_res.split('') - new_table_res = f'{prefix_table}{style_res}{suffix_table}' - with open(save_path, 'w', encoding='utf-8') as f: - f.write(new_table_res) - print(f'The infer result has saved in {save_path}') - - -def main() -> None: - parser = argparse.ArgumentParser() - parser.add_argument('-v', '--vis', action='store_true', - help='Wheter to visualize the layout results.') - parser.add_argument('-img', '--img_path', type=str, required=True, - help='Path to image for layout.') - parser.add_argument('-m', '--model_path', type=str, - default=str(root_dir / 'models' / 'en_ppstructure_mobile_v2_SLANet.onnx'), - help='The model path used for inference.') - args = parser.parse_args() - - rapid_table = RapidTable(args.model_path) - - img = cv2.imread(args.img_path) - table_html_str, elapse = rapid_table(img) - print(table_html_str) - - if args.vis: - img_path = Path(args.img_path) - save_path = img_path.resolve().parent / f'vis_{img_path.stem}.html' - vis_table(table_html_str, str(save_path)) - - -if __name__ == '__main__': - main() diff --git a/python/rapid_structure/rapid_table/table_matcher/__init__.py b/python/rapid_structure/rapid_table/table_matcher/__init__.py deleted file mode 100644 index 9bff7d7..0000000 --- a/python/rapid_structure/rapid_table/table_matcher/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -from .matcher import TableMatch diff --git a/python/rapid_structure/rapid_table/table_matcher/matcher.py b/python/rapid_structure/rapid_table/table_matcher/matcher.py deleted file mode 100644 index d60ddb1..0000000 --- a/python/rapid_structure/rapid_table/table_matcher/matcher.py +++ /dev/null @@ -1,158 +0,0 @@ -# copyright (c) 2022 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -*- encoding: utf-8 -*- -import numpy as np - -from .utils import compute_iou, deal_bb, distance - - -class TableMatch(): - def __init__(self, filter_ocr_result=True, use_master=False): - self.filter_ocr_result = filter_ocr_result - self.use_master = use_master - - def __call__(self, structure_res, dt_boxes, rec_res): - pred_structures, pred_bboxes = structure_res - if self.filter_ocr_result: - dt_boxes, rec_res = self._filter_ocr_result(pred_bboxes, dt_boxes, - rec_res) - matched_index = self.match_result(dt_boxes, pred_bboxes) - pred_html, pred = self.get_pred_html(pred_structures, - matched_index, - rec_res) - return pred_html - - def match_result(self, dt_boxes, pred_bboxes): - matched = {} - for i, gt_box in enumerate(dt_boxes): - distances = [] - for j, pred_box in enumerate(pred_bboxes): - if len(pred_box) == 8: - pred_box = [ - np.min(pred_box[0::2]), np.min(pred_box[1::2]), - np.max(pred_box[0::2]), np.max(pred_box[1::2]) - ] - distances.append((distance(gt_box, pred_box), - 1. - compute_iou(gt_box, pred_box) - )) # compute iou and l1 distance - sorted_distances = distances.copy() - # select det box by iou and l1 distance - sorted_distances = sorted( - sorted_distances, key=lambda item: (item[1], item[0])) - if distances.index(sorted_distances[0]) not in matched.keys(): - matched[distances.index(sorted_distances[0])] = [i] - else: - matched[distances.index(sorted_distances[0])].append(i) - return matched - - def get_pred_html(self, pred_structures, matched_index, ocr_contents): - end_html = [] - td_index = 0 - for tag in pred_structures: - if '' in tag: - if '' == tag: - end_html.extend('') - if td_index in matched_index.keys(): - b_with = False - if '' in ocr_contents[matched_index[td_index][0]] \ - and len(matched_index[td_index]) > 1: - b_with = True - end_html.extend('') - for i, td_index_index in enumerate(matched_index[td_index]): - content = ocr_contents[td_index_index][0] - if len(matched_index[td_index]) > 1: - if len(content) == 0: - continue - - if content[0] == ' ': - content = content[1:] - - if '' in content: - content = content[3:] - - if '' in content: - content = content[:-4] - - if len(content) == 0: - continue - - if i != len(matched_index[td_index]) - 1 \ - and ' ' != content[-1]: - content += ' ' - end_html.extend(content) - if b_with: - end_html.extend('') - - if '' == tag: - end_html.append('') - else: - end_html.append(tag) - td_index += 1 - else: - end_html.append(tag) - return ''.join(end_html), end_html - - def get_pred_html_master(self, pred_structures, matched_index, - ocr_contents): - end_html = [] - td_index = 0 - for token in pred_structures: - if '' in token: - txt = '' - b_with = False - if td_index in matched_index.keys(): - if '' in ocr_contents[matched_index[td_index][ - 0]] and len(matched_index[td_index]) > 1: - b_with = True - for i, td_index_index in enumerate(matched_index[td_index]): - content = ocr_contents[td_index_index][0] - if len(matched_index[td_index]) > 1: - if len(content) == 0: - continue - if content[0] == ' ': - content = content[1:] - if '' in content: - content = content[3:] - if '' in content: - content = content[:-4] - if len(content) == 0: - continue - if i != len(matched_index[ - td_index]) - 1 and ' ' != content[-1]: - content += ' ' - txt += content - if b_with: - txt = '{}'.format(txt) - if '' == token: - token = '{}'.format(txt) - else: - token = '{}'.format(txt) - td_index += 1 - token = deal_eb_token(token) - end_html.append(token) - html = ''.join(end_html) - html = deal_bb(html) - return html, end_html - - def _filter_ocr_result(self, pred_bboxes, dt_boxes, rec_res): - y1 = pred_bboxes[:, 1::2].min() - new_dt_boxes = [] - new_rec_res = [] - - for box, rec in zip(dt_boxes, rec_res): - if np.max(box[1::2]) < y1: - continue - new_dt_boxes.append(box) - new_rec_res.append(rec) - return new_dt_boxes, new_rec_res diff --git a/python/rapid_structure/rapid_table/table_matcher/utils.py b/python/rapid_structure/rapid_table/table_matcher/utils.py deleted file mode 100644 index bb2b0cb..0000000 --- a/python/rapid_structure/rapid_table/table_matcher/utils.py +++ /dev/null @@ -1,244 +0,0 @@ -# copyright (c) 2022 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -*- encoding: utf-8 -*- -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import re - - -def deal_isolate_span(thead_part): - """ - Deal with isolate span cases in this function. - It causes by wrong prediction in structure recognition model. - eg. predict to rowspan="2">. - :param thead_part: - :return: - """ - # 1. find out isolate span tokens. - isolate_pattern = " rowspan=\"(\d)+\" colspan=\"(\d)+\">|" \ - " colspan=\"(\d)+\" rowspan=\"(\d)+\">|" \ - " rowspan=\"(\d)+\">|" \ - " colspan=\"(\d)+\">" - isolate_iter = re.finditer(isolate_pattern, thead_part) - isolate_list = [i.group() for i in isolate_iter] - - # 2. find out span number, by step 1 results. - span_pattern = " rowspan=\"(\d)+\" colspan=\"(\d)+\"|" \ - " colspan=\"(\d)+\" rowspan=\"(\d)+\"|" \ - " rowspan=\"(\d)+\"|" \ - " colspan=\"(\d)+\"" - corrected_list = [] - for isolate_item in isolate_list: - span_part = re.search(span_pattern, isolate_item) - spanStr_in_isolateItem = span_part.group() - # 3. merge the span number into the span token format string. - if spanStr_in_isolateItem is not None: - corrected_item = ''.format(spanStr_in_isolateItem) - corrected_list.append(corrected_item) - else: - corrected_list.append(None) - - # 4. replace original isolated token. - for corrected_item, isolate_item in zip(corrected_list, isolate_list): - if corrected_item is not None: - thead_part = thead_part.replace(isolate_item, corrected_item) - else: - pass - return thead_part - - -def deal_duplicate_bb(thead_part): - """ - Deal duplicate or after replace. - Keep one in a token. - :param thead_part: - :return: - """ - # 1. find out in . - td_pattern = "(.+?)|" \ - "(.+?)|" \ - "(.+?)|" \ - "(.+?)|" \ - "(.*?)" - td_iter = re.finditer(td_pattern, thead_part) - td_list = [t.group() for t in td_iter] - - # 2. is multiply in or not? - new_td_list = [] - for td_item in td_list: - if td_item.count('') > 1 or td_item.count('') > 1: - # multiply in case. - # 1. remove all - td_item = td_item.replace('', '').replace('', '') - # 2. replace -> , -> . - td_item = td_item.replace('', '').replace('', - '') - new_td_list.append(td_item) - else: - new_td_list.append(td_item) - - # 3. replace original thead part. - for td_item, new_td_item in zip(td_list, new_td_list): - thead_part = thead_part.replace(td_item, new_td_item) - return thead_part - - -def deal_bb(result_token): - """ - In our opinion, always occurs in text's context. - This function will find out all tokens in and insert by manual. - :param result_token: - :return: - """ - # find out parts. - thead_pattern = '(.*?)' - if re.search(thead_pattern, result_token) is None: - return result_token - thead_part = re.search(thead_pattern, result_token).group() - origin_thead_part = copy.deepcopy(thead_part) - - # check "rowspan" or "colspan" occur in parts or not . - span_pattern = "|||" - span_iter = re.finditer(span_pattern, thead_part) - span_list = [s.group() for s in span_iter] - has_span_in_head = True if len(span_list) > 0 else False - - if not has_span_in_head: - # not include "rowspan" or "colspan" branch 1. - # 1. replace to , and to - # 2. it is possible to predict text include or by Text-line recognition, - # so we replace to , and to - thead_part = thead_part.replace('', '')\ - .replace('', '')\ - .replace('', '')\ - .replace('', '') - else: - # include "rowspan" or "colspan" branch 2. - # Firstly, we deal rowspan or colspan cases. - # 1. replace > to > - # 2. replace to - # 3. it is possible to predict text include or by Text-line recognition, - # so we replace to , and to - - # Secondly, deal ordinary cases like branch 1 - - # replace ">" to "" - replaced_span_list = [] - for sp in span_list: - replaced_span_list.append(sp.replace('>', '>')) - for sp, rsp in zip(span_list, replaced_span_list): - thead_part = thead_part.replace(sp, rsp) - - # replace "" to "" - thead_part = thead_part.replace('', '') - - # remove duplicated by re.sub - mb_pattern = "()+" - single_b_string = "" - thead_part = re.sub(mb_pattern, single_b_string, thead_part) - - mgb_pattern = "()+" - single_gb_string = "" - thead_part = re.sub(mgb_pattern, single_gb_string, thead_part) - - # ordinary cases like branch 1 - thead_part = thead_part.replace('', '').replace('', - '') - - # convert back to , empty cell has no . - # but space cell( ) is suitable for - thead_part = thead_part.replace('', '') - # deal with duplicated - thead_part = deal_duplicate_bb(thead_part) - # deal with isolate span tokens, which causes by wrong predict by structure prediction. - # eg.PMC5994107_011_00.png - thead_part = deal_isolate_span(thead_part) - # replace original result with new thead part. - result_token = result_token.replace(origin_thead_part, thead_part) - return result_token - - -def deal_eb_token(master_token): - """ - post process with , , ... - emptyBboxTokenDict = { - "[]": '', - "[' ']": '', - "['', ' ', '']": '', - "['\\u2028', '\\u2028']": '', - "['', ' ', '']": '', - "['', '']": '', - "['', ' ', '']": '', - "['', '', '', '']": '', - "['', '', ' ', '', '']": '', - "['', '']": '', - "['', ' ', '\\u2028', ' ', '\\u2028', ' ', '']": '', - } - :param master_token: - :return: - """ - master_token = master_token.replace('', '') - master_token = master_token.replace('', ' ') - master_token = master_token.replace('', ' ') - master_token = master_token.replace('', '\u2028\u2028') - master_token = master_token.replace('', ' ') - master_token = master_token.replace('', '') - master_token = master_token.replace('', ' ') - master_token = master_token.replace('', - '') - master_token = master_token.replace('', - ' ') - master_token = master_token.replace('', '') - master_token = master_token.replace('', - ' \u2028 \u2028 ') - return master_token - - -def distance(box_1, box_2): - x1, y1, x2, y2 = box_1 - x3, y3, x4, y4 = box_2 - dis = abs(x3 - x1) + abs(y3 - y1) + abs(x4 - x2) + abs(y4 - y2) - dis_2 = abs(x3 - x1) + abs(y3 - y1) - dis_3 = abs(x4 - x2) + abs(y4 - y2) - return dis + min(dis_2, dis_3) - - -def compute_iou(rec1, rec2): - """ - computing IoU - :param rec1: (y0, x0, y1, x1), which reflects - (top, left, bottom, right) - :param rec2: (y0, x0, y1, x1) - :return: scala value of IoU - """ - # computing area of each rectangles - S_rec1 = (rec1[2] - rec1[0]) * (rec1[3] - rec1[1]) - S_rec2 = (rec2[2] - rec2[0]) * (rec2[3] - rec2[1]) - - # computing the sum_area - sum_area = S_rec1 + S_rec2 - - # find the each edge of intersect rectangle - left_line = max(rec1[1], rec2[1]) - right_line = min(rec1[3], rec2[3]) - top_line = max(rec1[0], rec2[0]) - bottom_line = min(rec1[2], rec2[2]) - - # judge if there is an intersect - if left_line >= right_line or top_line >= bottom_line: - return 0.0 - else: - intersect = (right_line - left_line) * (bottom_line - top_line) - return (intersect / (sum_area - intersect)) * 1.0 diff --git a/python/rapid_structure/rapid_table/table_structure/__init__.py b/python/rapid_structure/rapid_table/table_structure/__init__.py deleted file mode 100644 index a548391..0000000 --- a/python/rapid_structure/rapid_table/table_structure/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from .table_structure import TableStructurer diff --git a/python/rapid_structure/rapid_table/table_structure/table_structure.py b/python/rapid_structure/rapid_table/table_structure/table_structure.py deleted file mode 100644 index f63fcb3..0000000 --- a/python/rapid_structure/rapid_table/table_structure/table_structure.py +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import time -import numpy as np - -from .utils import (OrtInferSession, TableLabelDecode, TablePreprocess) - - -class TableStructurer(): - def __init__(self, model_path: str): - self.preprocess_op = TablePreprocess() - - self.session = OrtInferSession(model_path) - - self.character = self.session.get_metadata() - self.postprocess_op = TableLabelDecode(self.character) - - def __call__(self, img): - starttime = time.time() - data = {'image': img} - data = self.preprocess_op(data) - img = data[0] - if img is None: - return None, 0 - img = np.expand_dims(img, axis=0) - img = img.copy() - - outputs = self.session(img) - - preds = { - 'loc_preds': outputs[0], - 'structure_probs': outputs[1] - } - - shape_list = np.expand_dims(data[-1], axis=0) - post_result = self.postprocess_op(preds, [shape_list]) - - bbox_list = post_result['bbox_batch_list'][0] - - structure_str_list = post_result['structure_batch_list'][0] - structure_str_list = structure_str_list[0] - structure_str_list = [ - '', '', '' - ] + structure_str_list + ['
', '', ''] - elapse = time.time() - starttime - return (structure_str_list, bbox_list), elapse diff --git a/python/rapid_structure/rapid_table/table_structure/utils.py b/python/rapid_structure/rapid_table/table_structure/utils.py deleted file mode 100644 index 1d27c9b..0000000 --- a/python/rapid_structure/rapid_table/table_structure/utils.py +++ /dev/null @@ -1,349 +0,0 @@ -# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -from pathlib import Path - -import cv2 -import numpy as np -from onnxruntime import (GraphOptimizationLevel, InferenceSession, - SessionOptions) - - -class OrtInferSession(): - def __init__(self, onnx_path: str): - self._verify_model(onnx_path) - - sess_opt = SessionOptions() - sess_opt.log_severity_level = 4 - sess_opt.enable_cpu_mem_arena = False - sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL - - cpu_ep = 'CPUExecutionProvider' - cpu_provider_options = {"arena_extend_strategy": "kSameAsRequested",} - EP_list = [(cpu_ep, cpu_provider_options)] - - self._verify_model(onnx_path) - self.session = InferenceSession(onnx_path, - sess_options=sess_opt, - providers=EP_list) - - def __call__(self, input_content: np.ndarray) -> np.ndarray: - input_dict = dict(zip(self.get_input_names(), [input_content])) - try: - return self.session.run(self.get_output_names(), input_dict) - except Exception as e: - raise ONNXRuntimeError('ONNXRuntime inferece failed.') from e - - def get_input_names(self, ): - return [v.name for v in self.session.get_inputs()] - - def get_output_names(self,): - return [v.name for v in self.session.get_outputs()] - - def get_metadata(self, key: str = 'character') -> list: - meta_dict = self.session.get_modelmeta().custom_metadata_map - content_list = meta_dict[key].splitlines() - return content_list - - @staticmethod - def _verify_model(model_path): - model_path = Path(model_path) - if not model_path.exists(): - raise FileNotFoundError(f'{model_path} does not exists.') - if not model_path.is_file(): - raise FileExistsError(f'{model_path} is not a file.') - - -class ONNXRuntimeError(Exception): - pass - - -class TableLabelDecode(): - """ """ - def __init__(self, - dict_character, - merge_no_span_structure=True, - **kwargs): - if merge_no_span_structure: - if "" not in dict_character: - dict_character.append("") - if "" in dict_character: - dict_character.remove("") - - dict_character = self.add_special_char(dict_character) - self.dict = {} - for i, char in enumerate(dict_character): - self.dict[char] = i - self.character = dict_character - self.td_token = ['', ''] - - def __call__(self, preds, batch=None): - structure_probs = preds['structure_probs'] - bbox_preds = preds['loc_preds'] - shape_list = batch[-1] - result = self.decode(structure_probs, bbox_preds, shape_list) - if len(batch) == 1: # only contains shape - return result - - label_decode_result = self.decode_label(batch) - return result, label_decode_result - - def decode(self, structure_probs, bbox_preds, shape_list): - """convert text-label into text-index. - """ - ignored_tokens = self.get_ignored_tokens() - end_idx = self.dict[self.end_str] - - structure_idx = structure_probs.argmax(axis=2) - structure_probs = structure_probs.max(axis=2) - - structure_batch_list = [] - bbox_batch_list = [] - batch_size = len(structure_idx) - for batch_idx in range(batch_size): - structure_list = [] - bbox_list = [] - score_list = [] - for idx in range(len(structure_idx[batch_idx])): - char_idx = int(structure_idx[batch_idx][idx]) - if idx > 0 and char_idx == end_idx: - break - - if char_idx in ignored_tokens: - continue - - text = self.character[char_idx] - if text in self.td_token: - bbox = bbox_preds[batch_idx, idx] - bbox = self._bbox_decode(bbox, shape_list[batch_idx]) - bbox_list.append(bbox) - structure_list.append(text) - score_list.append(structure_probs[batch_idx, idx]) - structure_batch_list.append([structure_list, np.mean(score_list)]) - bbox_batch_list.append(np.array(bbox_list)) - result = { - 'bbox_batch_list': bbox_batch_list, - 'structure_batch_list': structure_batch_list, - } - return result - - def decode_label(self, batch): - """convert text-label into text-index. - """ - structure_idx = batch[1] - gt_bbox_list = batch[2] - shape_list = batch[-1] - ignored_tokens = self.get_ignored_tokens() - end_idx = self.dict[self.end_str] - - structure_batch_list = [] - bbox_batch_list = [] - batch_size = len(structure_idx) - for batch_idx in range(batch_size): - structure_list = [] - bbox_list = [] - for idx in range(len(structure_idx[batch_idx])): - char_idx = int(structure_idx[batch_idx][idx]) - if idx > 0 and char_idx == end_idx: - break - if char_idx in ignored_tokens: - continue - structure_list.append(self.character[char_idx]) - - bbox = gt_bbox_list[batch_idx][idx] - if bbox.sum() != 0: - bbox = self._bbox_decode(bbox, shape_list[batch_idx]) - bbox_list.append(bbox) - structure_batch_list.append(structure_list) - bbox_batch_list.append(bbox_list) - result = { - 'bbox_batch_list': bbox_batch_list, - 'structure_batch_list': structure_batch_list, - } - return result - - def _bbox_decode(self, bbox, shape): - h, w, ratio_h, ratio_w, pad_h, pad_w = shape - bbox[0::2] *= w - bbox[1::2] *= h - return bbox - - def get_ignored_tokens(self): - beg_idx = self.get_beg_end_flag_idx("beg") - end_idx = self.get_beg_end_flag_idx("end") - return [beg_idx, end_idx] - - def get_beg_end_flag_idx(self, beg_or_end): - if beg_or_end == "beg": - idx = np.array(self.dict[self.beg_str]) - elif beg_or_end == "end": - idx = np.array(self.dict[self.end_str]) - else: - assert False, "unsupport type %s in get_beg_end_flag_idx" \ - % beg_or_end - return idx - - def add_special_char(self, dict_character): - self.beg_str = "sos" - self.end_str = "eos" - dict_character = dict_character - dict_character = [self.beg_str] + dict_character + [self.end_str] - return dict_character - - -class TablePreprocess(): - def __init__(self): - self.table_max_len = 488 - self.build_pre_process_list() - self.ops = self.create_operators() - - def __call__(self, data): - """ transform """ - if self.ops is None: - self.ops = [] - - for op in self.ops: - data = op(data) - if data is None: - return None - return data - - def create_operators(self,): - """ - create operators based on the config - - Args: - params(list): a dict list, used to create some operators - """ - assert isinstance(self.pre_process_list, list), ('operator config should be a list') - ops = [] - for operator in self.pre_process_list: - assert isinstance(operator, - dict) and len(operator) == 1, "yaml format error" - op_name = list(operator)[0] - param = {} if operator[op_name] is None else operator[op_name] - op = eval(op_name)(**param) - ops.append(op) - return ops - - def build_pre_process_list(self): - resize_op = {'ResizeTableImage': {'max_len': self.table_max_len, }} - pad_op = { - 'PaddingTableImage': { - 'size': [self.table_max_len, self.table_max_len] - } - } - normalize_op = { - 'NormalizeImage': { - 'std': [0.229, 0.224, 0.225], - 'mean': [0.485, 0.456, 0.406], - 'scale': '1./255.', - 'order': 'hwc' - } - } - to_chw_op = {'ToCHWImage': None} - keep_keys_op = {'KeepKeys': {'keep_keys': ['image', 'shape']}} - self.pre_process_list = [ - resize_op, normalize_op, pad_op, to_chw_op, keep_keys_op - ] - - -class ResizeTableImage(): - def __init__(self, max_len, resize_bboxes=False, infer_mode=False, - **kwargs): - super(ResizeTableImage, self).__init__() - self.max_len = max_len - self.resize_bboxes = resize_bboxes - self.infer_mode = infer_mode - - def __call__(self, data): - img = data['image'] - height, width = img.shape[0:2] - ratio = self.max_len / (max(height, width) * 1.0) - resize_h = int(height * ratio) - resize_w = int(width * ratio) - resize_img = cv2.resize(img, (resize_w, resize_h)) - if self.resize_bboxes and not self.infer_mode: - data['bboxes'] = data['bboxes'] * ratio - data['image'] = resize_img - data['src_img'] = img - data['shape'] = np.array([height, width, ratio, ratio]) - data['max_len'] = self.max_len - return data - - -class PaddingTableImage(): - def __init__(self, size, **kwargs): - super(PaddingTableImage, self).__init__() - self.size = size - - def __call__(self, data): - img = data['image'] - pad_h, pad_w = self.size - padding_img = np.zeros((pad_h, pad_w, 3), dtype=np.float32) - height, width = img.shape[0:2] - padding_img[0:height, 0:width, :] = img.copy() - data['image'] = padding_img - shape = data['shape'].tolist() - shape.extend([pad_h, pad_w]) - data['shape'] = np.array(shape) - return data - - -class NormalizeImage(): - """ normalize image such as substract mean, divide std - """ - def __init__(self, scale=None, mean=None, std=None, order='chw', **kwargs): - if isinstance(scale, str): - scale = eval(scale) - self.scale = np.float32(scale if scale is not None else 1.0 / 255.0) - mean = mean if mean is not None else [0.485, 0.456, 0.406] - std = std if std is not None else [0.229, 0.224, 0.225] - - shape = (3, 1, 1) if order == 'chw' else (1, 1, 3) - self.mean = np.array(mean).reshape(shape).astype('float32') - self.std = np.array(std).reshape(shape).astype('float32') - - def __call__(self, data): - img = np.array(data['image']) - assert isinstance(img, - np.ndarray), "invalid input 'img' in NormalizeImage" - data['image'] = ( - img.astype('float32') * self.scale - self.mean) / self.std - return data - - -class ToCHWImage(): - """ convert hwc image to chw image - """ - def __init__(self, **kwargs): - pass - - def __call__(self, data): - img = np.array(data['image']) - data['image'] = img.transpose((2, 0, 1)) - return data - - -class KeepKeys(): - def __init__(self, keep_keys, **kwargs): - self.keep_keys = keep_keys - - def __call__(self, data): - data_list = [] - for key in self.keep_keys: - data_list.append(data[key]) - return data_list diff --git a/python/rapid_structure/requirements.txt b/python/rapid_structure/requirements.txt deleted file mode 100644 index e6c2ae9..0000000 --- a/python/rapid_structure/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -numpy>=1.21.6 -opencv_python>=4.6.0.66 -setuptools>=61.2.0 -PyYAML -pytest>=7.2.1 -pip>=22.3.1 -onnxruntime -wheel \ No newline at end of file diff --git a/python/rapid_structure/setup_layout.py b/python/rapid_structure/setup_layout.py deleted file mode 100644 index c6e1ca2..0000000 --- a/python/rapid_structure/setup_layout.py +++ /dev/null @@ -1,87 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import re -import subprocess -import sys -from pathlib import Path - -import setuptools - - -def get_latest_version(package_name): - output = subprocess.run(["pip", "index", "versions", package_name], - capture_output=True) - output = output.stdout.decode('utf-8') - if output: - return extract_version(output) - return None - - -def version_add_one(version, add_loc=-1): - if version: - version_list = version.split('.') - mini_version = str(int(version_list[add_loc]) + 1) - version_list[add_loc] = mini_version - new_version = '.'.join(version_list) - return new_version - return '0.0.1' - - -def get_readme(): - root_dir = Path(__file__).resolve().parent.parent.parent - readme_path = str(root_dir / 'docs' / 'doc_whl_rapid_layout.md') - with open(readme_path, 'r', encoding='utf-8') as f: - readme = f.read() - return readme - - -def extract_version(message: str) -> str: - pattern = r'\d+\.(?:\d+\.)*\d+' - matched_versions = re.findall(pattern, message) - if matched_versions: - return matched_versions[0] - return '' - - -MODULE_NAME = 'rapid_layout' -latest_version = get_latest_version(MODULE_NAME) -VERSION_NUM = version_add_one(latest_version) - -# 优先提取commit message中的语义化版本号,如无,则自动加1 -if len(sys.argv) > 2: - match_str = ' '.join(sys.argv[2:]) - matched_versions = extract_version(match_str) - if matched_versions: - VERSION_NUM = matched_versions -sys.argv = sys.argv[:2] - -setuptools.setup( - name=MODULE_NAME, - version=VERSION_NUM, - platforms="Any", - long_description=get_readme(), - long_description_content_type='text/markdown', - description='Tools for document layout analysis based ONNXRuntime.', - author="SWHL", - author_email="liekkaskono@163.com", - url="https://github.com/RapidAI/RapidOCR", - license='Apache-2.0', - include_package_data=True, - install_requires=["onnxruntime>=1.7.0", "PyYAML>=6.0", - "opencv_python>=4.5.1.48", "numpy>=1.21.6"], - packages=[MODULE_NAME, f'{MODULE_NAME}.models'], - package_data={'': ['layout_cdla.onnx', '*.yaml']}, - keywords=[ - 'ppstructure,layout,rapidocr,rapid_layout' - ], - classifiers=[ - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - ], - entry_points={ - 'console_scripts': [f'{MODULE_NAME}={MODULE_NAME}.{MODULE_NAME}:main'] - } -) diff --git a/python/rapid_structure/setup_orientation.py b/python/rapid_structure/setup_orientation.py deleted file mode 100644 index 64bdf5b..0000000 --- a/python/rapid_structure/setup_orientation.py +++ /dev/null @@ -1,87 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import re -import subprocess -import sys -from pathlib import Path - -import setuptools - - -def get_latest_version(package_name): - output = subprocess.run(["pip", "index", "versions", package_name], - capture_output=True) - output = output.stdout.decode('utf-8') - if output: - return extract_version(output) - return None - - -def version_add_one(version, add_loc=-1): - if version: - version_list = version.split('.') - mini_version = str(int(version_list[add_loc]) + 1) - version_list[add_loc] = mini_version - new_version = '.'.join(version_list) - return new_version - return '0.0.1' - - -def get_readme(): - root_dir = Path(__file__).resolve().parent.parent.parent - readme_path = str(root_dir / 'docs' / 'doc_whl_rapid_orientation.md') - with open(readme_path, 'r', encoding='utf-8') as f: - readme = f.read() - return readme - - -def extract_version(message: str) -> str: - pattern = r'\d+\.(?:\d+\.)*\d+' - matched_versions = re.findall(pattern, message) - if matched_versions: - return matched_versions[0] - return '' - - -MODULE_NAME = 'rapid_orientation' -latest_version = get_latest_version(MODULE_NAME) -VERSION_NUM = version_add_one(latest_version) - -# 优先提取commit message中的语义化版本号,如无,则自动加1 -if len(sys.argv) > 2: - match_str = ' '.join(sys.argv[2:]) - matched_versions = extract_version(match_str) - if matched_versions: - VERSION_NUM = matched_versions -sys.argv = sys.argv[:2] - -setuptools.setup( - name=MODULE_NAME, - version=VERSION_NUM, - platforms="Any", - long_description=get_readme(), - long_description_content_type='text/markdown', - description='Tools for classifying the direction of images containing text based ONNXRuntime.', - author="SWHL", - author_email="liekkaskono@163.com", - url="https://github.com/RapidAI/RapidOCR", - license='Apache-2.0', - include_package_data=True, - install_requires=["onnxruntime>=1.7.0", "PyYAML>=6.0", - "opencv_python>=4.5.1.48", "numpy>=1.21.6"], - packages=[MODULE_NAME, f'{MODULE_NAME}.models'], - package_data={'': ['*.onnx', '*.yaml']}, - keywords=[ - 'ppstructure,layout,rapidocr,rapid_orientation' - ], - classifiers=[ - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - ], - entry_points={ - 'console_scripts': [f'{MODULE_NAME}={MODULE_NAME}.{MODULE_NAME}:main'] - } -) diff --git a/python/rapid_structure/setup_table.py b/python/rapid_structure/setup_table.py deleted file mode 100644 index 50fa369..0000000 --- a/python/rapid_structure/setup_table.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import re -import subprocess -import sys -from pathlib import Path - -import setuptools - - -def get_latest_version(package_name): - output = subprocess.run(["pip", "index", "versions", package_name], - capture_output=True) - output = output.stdout.decode('utf-8') - if output: - return extract_version(output) - return None - - -def version_add_one(version, add_loc=-1): - if version: - version_list = version.split('.') - mini_version = str(int(version_list[add_loc]) + 1) - version_list[add_loc] = mini_version - new_version = '.'.join(version_list) - return new_version - return '0.0.1' - - -def get_readme(): - root_dir = Path(__file__).resolve().parent.parent.parent - readme_path = str(root_dir / 'docs' / 'doc_whl_rapid_table.md') - with open(readme_path, 'r', encoding='utf-8') as f: - readme = f.read() - return readme - - -def extract_version(message: str) -> str: - pattern = r'\d+\.(?:\d+\.)*\d+' - matched_versions = re.findall(pattern, message) - if matched_versions: - return matched_versions[0] - return '' - - -MODULE_NAME = 'rapid_table' -latest_version = get_latest_version(MODULE_NAME) -VERSION_NUM = version_add_one(latest_version) - -# 优先提取commit message中的语义化版本号,如无,则自动加1 -if len(sys.argv) > 2: - match_str = ' '.join(sys.argv[2:]) - matched_versions = extract_version(match_str) - if matched_versions: - VERSION_NUM = matched_versions -sys.argv = sys.argv[:2] - -setuptools.setup( - name=MODULE_NAME, - version=VERSION_NUM, - platforms="Any", - long_description=get_readme(), - long_description_content_type='text/markdown', - description='Tools for parsing table structures based ONNXRuntime.', - author="SWHL", - author_email="liekkaskono@163.com", - url="https://github.com/RapidAI/RapidOCR", - license='Apache-2.0', - include_package_data=True, - install_requires=["onnxruntime>=1.7.0", "PyYAML>=6.0", - "opencv_python>=4.5.1.48", "numpy>=1.21.6", - "rapidocr_onnxruntime>=1.1.18"], - packages=[MODULE_NAME, - f'{MODULE_NAME}.models', - f'{MODULE_NAME}.table_matcher', - f'{MODULE_NAME}.table_structure'], - package_data={'': ['en_ppstructure_mobile_v2_SLANet.onnx']}, - keywords=[ - 'ppstructure,table,rapidocr,rapid_table' - ], - classifiers=[ - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - ], - entry_points={ - 'console_scripts': [f'{MODULE_NAME}={MODULE_NAME}.{MODULE_NAME}:main'] - } -) diff --git a/python/rapid_structure/test_images/layout.png b/python/rapid_structure/test_images/layout.png deleted file mode 100644 index 29a1dc53f0b756e4102285bc265265e424744912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167921 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 diff --git a/python/rapid_structure/test_images/table.jpg b/python/rapid_structure/test_images/table.jpg deleted file mode 100644 index 95fdf84d92908d4b21f49fb516601334867163b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59389 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 diff --git a/python/rapid_structure/tests/test_files/img_rot0_demo.jpg b/python/rapid_structure/tests/test_files/img_rot0_demo.jpg deleted file mode 100644 index 412d41956ba48c8e3243bdeff746d389be7e762b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80605 zcmbTdWmMZu)IA#9-JPPv-QBG~@!~BWBoudd4Ni-e7D}OLad(1KoCbH7v`Byef1dYU z>)tQ-!@YO1ezTI5ndIy>GiT21edc-jc@sdWsj8t0KtcilkX~MZ=M{hw02%4O@?VYo zUqMCruSP>fML|VJLr4Fg2LlTe9Rmvk9UT(~6ASyl^70NB2OIal5C8qh|8_-2LqS2q z#z4pTpC$s%Oq z8Ht5WPC-dU&C169nuAkVL{v;%LQ+XtMO95*L({;}$k^nashO>vy@R6@(Amq|$Jft4 zATTOACN?fUAu%H}D?2Cm)91Xe-%88Am;b1!{MFFd)ZEhA*4{rbI5Z3y86BIQn_pO5 zTK)sw+TPjS+dnuwI)?rIcXfSp3%|Sn4;K;u<$qzl)c=pTh+c3Z|2GC0|KUPH_Ir6y zh)~g937``z=wW>DAYl@Wz$8^nFRAatViwZBB(w3H!6s)B-eQIQ2kn25{l5bi`Tq;q z{{`&-#svl7q9DBt9tsga4gd?I2%WUXmIF?b`p0ehCA@+iD}d-4R}u_#U?4C;4JiJg z&lbSg9^N`lwtZ7fAS;1jp63*@ZM_rn= zZgE5qJ_ByDA7i{bdQzSN0O=6f>a8w%pU)m#5HI_jJ3Es%WCMgk=}}XFYIiuhTHG@L z*aLsvw09dND-bMux!A=Xb5X^80P`9C$yQtojNGEzDRhWs;x!_p8wo3{k93);(4I>Q zA+RdQ+H>%cYbZY(-Q0lsZ8geaggIYe1LerQG0!GDpf0_AwZQiREPbB6+B8uk|AY>y z6lx7GA$`TkJ?Nd&)K7yO#QSi_W~2Z9d^ah4_|y#kO;sUwvT%;!s!?7sW!+{sjgmG( z>n8FU5a|~-zzYAma+3_ZjT3Rx(*1pgD+x~MWdB-db-ulJBR{7>Ou5#KZW4UPs`nX% zf8UL(Pts(#IHnqga%1vXdsdQiYIdRta{!l_udx+-kZUAvugf>AXbljWrY})Z4HJB( zZqT2xl67=0M{f))(tU7%KLa!$D-q_GygYJ>F!F=|cbH&^n*QZY*Ow$q1NDY*2HB(N znO{jRUU>h6$IJ+A+2n@+4Bv_|yIFw@G@)cpa^zRy_OUCLbBm5G9r6w4I#v2kY(^|B z^<%X(HKE4FbU%0Gz=3MX=LnR|4a(pUSmAz4r70ZPs7v8reEK_HWLUB`pDuef=XYsN z`fB`{(cUw_WKUaC*387~$of)eI-Z{K@;1KH=s^a4zj%XHbD&ECH#7f4^r3?SlR}St zmV@IX{jr1y-VFKMyo{QirtpV1snwGF<>J#p-#dH-CzxQA&RHzAc4ZWcN6s}NI?a$! zv$r2*BwJeTSWwRl)dN-B2tr$I7N9rE+(HV# z?9+qT>R`SzY!g=h4H&_>pH0OVfH?E}ZzpG-r~_~>Io<@g4ba-kUR4&@$H)qsQf1M7 z0jNslO=-w1e+$qYagN!DyGs@Ct9TWjK^2a)fj*~Lsr`h43r?o+tFEicuV%t>~nQw7ev z?!BXQY@=P|)gZ%c9u&y&_G)!H_a)rJGhTP#}j0qMq`5<&EiU z)BO0MEd8xz-&H_5LWd}QYNh}d3G7A2sGl}78!@rfqFeEO65cAh(yz?;ScTChj7jFl zZxKqmMdJktnV#bSTN zKuy;dj8x$2Jp!9GU(slHbVYa-I5Hw7Uze4uQSls|=*OVc%ITSwe`qUJqji+{Ff0Rn zkY_}KEEYCqCX>Jovay@-C9kHdauZZSu;Ro=@VD$ps^HiX&o(5S#L5G3UT6uI{nCSvPkGd?ajST_WsP;;D>4tv9} z&Q^ZTGy;XFp#WR4WQ>fykCHK9Bv$cJ`VRz2Hvbv8ybA)^gbg0$>n6xyQ;R204dznE zgfp$5X*lqHGCnTR0n{#n8T{YEceeKHHxte$T&kRIn*}8-VP{29r#_EHl|Q?Q=PqA7(a;5<%(5M~31P8FF02%?5)&@D>@K&b z^3qs6@t#hSqv}R>f(#WmEk(S7$wlt?Br+t+VF};y36F#u8b2+}@`Jdw-culn+BGv% zP5RucMaYsxe0%!c(||F!B6WuOST=r`mwcNi)35oHG-fMN?*_Oi5)<{BhDxAb!PZ*P zU+tz3zV;yI(gXADlnbzLQ}%-A54;uXVbkSu^yV1DKQTBf zj%A>p8_Lz#s&?sbpG>WwtDI)>BgBcfkKZ94@FV1(D2QrGoItwE+DzY&KMJ7A!BXP9 z-27;GPpE46K<~2cju*NpD*`8RD><@m)(xNQ4-Bb27w$=V2H;&V7+!w=ksl?{uCl>f z%s7gh$zgQY&}cH#Tul5O#?uv-;$2GyH^Y;(U!)WaL_}U+?hTz7;rkdS{PYVv;#p{%76XT7m95X2Mg! zGZ8jQwOUnbN9Z+;$}n8bX-`?-#|&7StE?#9sdP*qpE*zL|D&TMDliA|E>E&&ejR=; zogrzsXJb2py3Y&}(-kifSrbA-%9jn4pb zegfxKBIQ!mp4W_sZ;1(+<1`8w?kG%E3gipK+;RJKoZD?GI8(-UWriQoF)$L-k>r?> z3Ow@ENogCrisBN}<>C&*3bj_D`iC)k5s79TMq0GkIkQ5j7A;}@Wta+U1&_L#hDhQl zEo=ozU6H#4UZxVxxnt^1LZK< z+uA5u3emDHT{yQ~f?Ksh#B~rulZ9$|uHeeR4+;7%X!rR`92sntz0@rQ4|Mpjhp=^1 zWB~!pA2HOr#CO8&@(ixoy4hgbO)b$qn~i}ygU222oigr3Hb}^7m#`)|_`MqfFW9gt z@k-`YZg_h3a4$p3G?_=ZxCd1xFSd6T9q{@OsH4@FcDI&NV|{8z*+uKbqW4(eu!!~V zXAEPhUYaoId!#2q|L=dSNBLVc2q)N5xhp@)D9L&>gsXFpVQq38I;4tZtiNR!5cW#B za8=y2m6OcyXr=G*2e(sH2Z%6VSR85(9r_bMrk7DR{f1?P9&DB8dg{)p%v9B1@wo{w z@1fJ4gC!_24VweK$?lFGG{XAWLth8u!047zL+LG?C27CEscHGDNx$gJNUPKO2Yi3{ zh3~zt$O8s91<=iXSK*WSqjP-ouSiVj82&EC!?*o|j4umGBTQMMaAI{Uo?i;witqj; z?7B^V7nB5(YHY|;6iuau=V+j{Go51nSgDS zs&P0^qw4$nP=_cfkMu@6lS77~;y+7UrwmO5gKIbgR+Mo%EwE=mFHWK86CI~a0$(Bd zuNu{v`FImlq!IBG>rWXcp%QS`ZyK9?grU=cODVyuczIgDD!8K};W+l!pONdP*t2}= zBt!KrxM;=}MR~+G=58Tzl9k%URnGt$WUGmVR8{ z(r{i4Af;h)j`a$rTYua0hl*UnqK)#*<$m9FYE$+9%)aodG2|J$pZoTPZYYpCP`*<1 zpcZDBSb{%9cJgD*vLIE7S(PWJ_l9(*k)C4JrT{QHLduZ!QPQ{CkUKfQHNu>V`EpXk zFf*;~=1kXk4Vq5#VO4^xP`!c&+e9gV3O!sX)m!9MW6L@dS`y}{D+8>? z%BMv?%exILM(GYTNShXF#p&H(Q~xi{BBSkOk{gdi9E*lFnPW2o{?9-Gltz0wUGOM( zKi}l~qqK!NUT}p$6o4bP#vEY~yrTFuxxlYv2dGNr@z1eZ3J7pJ)Be6KQd)y9jKclp zKJRT}u}@&oZ&h9E{+uQaMrsnCX{y^YoXnJObg=bYsslO>O@1ooi2M0gdEP!EEn9bt zR?@xrg5>wUOojA-Wu%k!;%F-Y_@aA$zAD@DWQl^THFGuR*3@M|`mjbh<);cxNqXmZ zCF|%E;o`DAnsG4aK9!Mp$SaogWUsso8rSqROqoDhLzogt%*6Wwy9|8J55%_?2Q_$V z!p1|D&b+6ITy};6Zn#3D5P;##YkkdPSH~}9?-o4!$__I!6Ryu5wGwSkmHA-V9?HG2+Z^CT<8#XB)d%!1ad=#I$WKHvWKy5hqOSx zM0?6uQz*2sJN-}m=+`p-IFmX#4Q~4DpP(2b8Y=h#4IRvhP_?O`f&;qHY&)gaSY{-D z$W>ViCQd{$ehRb{TVUka)7iX3ScCP;`;tBs$`i%SzpZ^`U+`AnB4tRBalfxyRh8jL zA2v;32mhWgcVB~Sa!GVYk6w`%(u}C(BwZ{#EdAQU+!_r>wD3~Qo4ZE9WY@sizdNRoc!jn(Ffce z?A%6PZ_quh78CS1$whmqZHM8lT0tRIE`gZ9IqeKfGv9Z-Z$tksR}l~QbQ;nUN}9~j zOT9R73j}@R5=P=Pz@eDlAH1dW>n`&&5ckaMyDl#U+UdSjKe8H8qeqPdeYfQfIF_NA zub*aU@kt~YHENruI(4}O9(UP(V;`juXOJaMRW#_IVyEk5c;yT| z0izFhP5I{QgLDwX?$%w z2~d}MOwr$cEutw`d<&uk5?fS2zmVypuPc60I9dPYUi48PV(3%IyAHVwA-uV;idF#wn`D zk_fIJd|d<1VXQDZhPC#nA<9V5yDA@e^uzuA2FD|#l!xkZ|)0p(9#&!gwt z$xm`axjDN;8-U_ORr=fP&)WGas>;&Wpe|A zt$403h(EhEy5pYAu{J@iRfs84=Nkwb!Fl9=e+zxw1yMnM_t4f7^QFq+iM-pgBV4yI z>m2c8sqw*km4FKFXtK8wMA)4XA+1JTmz`qwWYsHZxjMzV z?;0N-rC$RoOHvn)6h_(p8r&M%Rz4O!vH5###+|uU1e01SLZ=mB-yl`~p(Eld&8;1u zOFEhqe)Fx6OU0l(h3=hMiuGPBQ{3pn6D|h^tjRk)E+6z4eG0wgf4S*s6;mBopiBcn z!kgQeHAZBJpUSGPppUXPF3V4pPZMDc<$Z2O!Ah6kHp5~Y>C{zc!kqsAD?t;k{39R+ z?^2?9^8M}>uJL->w2F!9cIgRiXMuvREz9S@oh0dC+uw6_-GzZOv}%mxz3lD#1@**8 z7!{k;_sdPTV|#ANt1^;7dTkm|9el~{?;PYfumYsa>o2O5LTvbf^IpxwN&5A~Z01yy zbjRvn*F8z!7kq51*a?^J7*#sO&?IvhM*VaFwjRs$P=%F$AhK0`RqFM~ahO zO1mG0{#MLb`qJY`go)d!!?c(AvGO2GgrXC42}e#~vHv^KMJw1UMwy@Goz?vHh$(EY1qdhp$l+VyeKbF} z1E#Ip#5Pp1lb{5^CMncSlnmM5*b(&&N!aQO73-i$q-$)#j&vB-K;lCV8(p5pRq~y* zq0(~;fp!Eo+7cgLnH1PvLD))DX$3IL%b7)pGenY+*NA>8=Xbk$ABObYU%&sFi#_%c zqn7HbG@4L@BV3niNZL_4`QDh=&;F#Yb#zo1DOD(s*NJ1Bro zV!J3_#}8jf7bo*KHfB~6^^Y|;)pk*R7GMXdOENF}tr%Z80E#aen$1G=v#=81Yl+e3 zXSNRoSK44S;7u|C3T4HsMnhxVQcqc%z{ETndtb_hDMkUfUo&sIh*k5C;up`;1q1;m9XLc%Qg&rC%VG)D3$ zmz;=wuPVOY8Aj2|;3@V+aRbvZjE8he6lfB}AKI$yt|fg_(zAbBo2@F6yj6;`H{9WT zS5IX*-ju&PygE{GO)&nTq0DKs$Oxc=;W zmDW>E`5wvtL?LsswN4>CU*9q%eEaf z>dYSjsh+CNos%M2ky@WvHX3d-%&$=K$|YEF@RkRplhst%%Xq{fc`gVQ23&`tM|Y60 zCS(%o2@DN2I%qCnhQ+S{^juzn=4ntpkNUNAn1{+hjHRLaf+SO@?2@@x8vjT2AP!?^!v#rI((i)!yk8q2|lx zn~9bMoSTsP@Z{nxZu#YXpmEQj9FE1R|G4$cH4eq!i@nHwD$58GWxa3qD8HpA)atd?OW;R2~DT zCx1Tu6K3!X0GpIVEea}6wv0UkYU0MM>n{e2vCI1iun;oyB2Fdq)u&AwDs9=gMQS(e zrC+r_|3kF}PULIyZhX#V>dM1pY)|A$GBtizW;vrlgKlCq^zNfttH_<{gXs%{-p_!~ z*Gd1x2IE(b>38x2;w`6u>d z=xV|T!!uBh~TX;0PQie5^$lQ`Sk&+R5q`%go(!Z!ExAa?vc)5g%0_&r`` zuFTANZ-|9q^WpSNAbs^2w9|G|?Cj`4CODwg5`BCyN?|c6eo1@D?w!7)cyFwyuO>w9 zc+?c*RvX18*$%>W~kPMDfosq(T} zJ!X^5gJ-|>vLzTjE)+{ZNRTcZdL?ohDTh+^zkL$Ma&cMN0;fMH~=;C#^%>(ei#Lpz4cTpJvbBT;5C~1JJ3teX6nm=wVS0qRTV_mw! zUwo0%H2}x~5aB)TgK|ynWkuYaUdpRUX?BOVo zVFy4CwUV405WwpQJ>7h>b&W~I1g>sWTc^ikh>9o-udkii@J*HJHr zZc`9`+aYqwGv2Lu!{tAZTRc`)%#^?7W@um<>K*Hr1#3Onznq?3W$A+Xe#I$2CJFc8 zAoWsp?+2TL_me(Q&|w#d^FKn~VFlf9lZ@Ph|J`SBORv>ag#D^I@0nbfr8 zUHqq8H*?Vb>$f*0I$IFOmkcGkDNMU8#*dG|dw1%0`8yPYV1{57SZZ!bSU;A_wr(TW z#!>TMc^kK32W6u*C zJWO-0D%kDP_k|v4(OX{`52@Atu3PK$@922BP&p@qrA~b`Ck2cYxhp;yv=JUE5KIi8 z`>s-f;Dtw&xCk`LI;=_Q8F2pe=EGtKxXfm)pfImxA;wHjmb4~H!CjHVqd8aY#G~PSKL=%QKx5~{y zJW1#uK7jluWZ>23?D$m$E^E5be(M&oL^+_0=&bu6-J2{JMZ9oxs}ryHMp7tBTLu?X zBE5rTG-v(OxuCg=_7q@*t@}krj*NnzKzeYbaW*$d;Os*tITYZUQI|kQ)B$h2dK-Ew zKYKr=Y`O?>>HYf58)Nqp&SL3#_qHppaW8^+hhJKsSOt4Ud#jW?Jt z7d4X-B^964MX|Jz^m6Wd&15ZfMKktdi`!%9v(?-XJwu);@|}te^-%GrnECg-{eO}@ z!>IpVBrwob2cy*}J_9Igt_#^UGPUPGogCZ1E3Ca)o^N?mOOvr$pPp1cNb^1eBq-Ng zYmFaEcawuLV8JtBj;jm2Y5(0R%KqOKg<7@hkn@P0BHcI0fx2-^<3AA+Gu2Pyw2RMx zrp^3Uy!p^az=#2QK1oPaJq z*m|3Q@Mz;QWep;F;?gDbCRNzb0Z)Jgcq&@L5?SiG%upCg0^1mN5BGzp7Y*;II3=dI z3{bD-Kjuzy<)r#s6X3+MIPQMR-EVKZqh|x z?=ET)BQn=u!g5nP2bp-*oE`e1^zBkVeMD%({_S842e8A(cNow|E1ju#c>;c(5NqJI zTTCVDo1!{ZR$?Vzl6t4oI$5cBQl%|c&9ZdAATS=}gT-Lq%V_R&RPLePy|?5 zoY(E!3n2ucAqfUXfXV)FRkv7ud*p%MHo9p8&Nmm^v%K5)lkJF$RJq}-1 z8lebxvi(iGEu*9&6zh(65>(ovqpICev4+GLHZF?Nrj*Q}Z&;~jsKRY%l`;P)3jg*D zKy!nGE8x5|d?>*@bHXXk=i`M+Z|B1rg||F%P!+K6n4G%L_j4To6nt7K3k^cpKemQ# zmadb)PZ)-SdZ5huxkfEnomMpK;O{Erm`?h?Ihr_bBH%-(%7d z^b;EZ6pKcF)F#MFvxY-z{qW}FPp<0oG3l!Nq?-@VfT&37mmo|{`>|3M1>T}C&;6V0 z7|I@V?t|l!1F%EOc(*PXxL2Bn3yX-biY>mh+K851i|O|#xbcRU*J}O}gvg|(e0cw9 zby=#stre%2YOF~8WJ*qQe+Hr8=Hcn{D7&Q8+9Yc~cKlU!kTo(^)%KS?3$CE7tPd&& zGjHx-D1M%JV;J9Ct(OI|qrpRFlTc?;gtSv^kbJ$LH{l{O?$s?pj{I%ELw06fZnI~d z;~5Yg^+YsDa`R@%zMZ7M8odX`Ikj$m9Tj-iG&f_y%qb>Dzc7w4d2vV!PmA63u~L6z zae~DzuZSW4AXO)UQ_WNbgk`p=Fv9R<7C}OjRH4@3X~)eohp_+=calHLmPfM|{3{Mf z9m9rvEEyq^j*%)K{%n}~_ZWvT_qR7Td(pJn62fDNBT$3F_JB`WU zhaHBMmo6qd)3kj%4ERsbCmtBud88%d9IxWL6%Gg1G$Ry!J+J5H)jnzgBXC~`LM{I#-82_D8+#B6DQmhMxr%;#{MpG+A;9gpxK+4qzMf7 z&)E_Q%@dsA>AaUAQyB za``a(@CGu%quME#hw?#L(tBGgD1LM#Q67i2pIG;N?+wxNk{fMMQX?3JDx=i}&*f>Dd<>V~v2}k=@X@aX03v;fr+%Wy`=Vca1*(>?c*lu{Z8$kE;t4)6DafZU-1ybrN!CHO49CZx>T8p z5jkv0GcSw%%njZ@wP{^Hkly(sr}^*<*!teZo+OP{>Yrh$!n=Mm#3n|B&#KB&TI?hH zcdMZhr6@bUn!+HRI>f5H?&epB8>oZEu7>~1^*L~)ET6@Z{wh&{3Y&nw>sWopa7W@G z1J87n!wH#RVU>Wb)KCJacsLD!jwV5RMagm_oU!i^I3h~BiLY^F!YrRCYo%8AT?v1q zAfjk>H{#Lxt;PXmwfCWqejMlg+cJMEd>J6@yXwA0<~%i#=`uMpWjV2`{4j>|1k3us zk1xo9Z#@CxQz5SzjcD>oE5$VC_9i7sO(|2ueMD@;Z5$+IF!W3{o%e?EmGq&;AE(NJ zRFu+1oc>!xcx9?Vb88xuigMHdY~-CU2V_&b=Wdj*V*qxWMwVWdzopqrtl-5%?T@M1 z-+^^9!`~{L{eWm)Rh)ve8Z6PAujw=xvF~th7G75LAc7N)R{qCnr?4wd0J};3`_9YNQ4%~Hn3&9Y{+1^d0&ekITRGf zslky4ePYZ0QY1g4&SLz}E`zZYklcEgyX`m##`9lXUmCJvhsDLsDfcX_30D)(9@)+{ z&h6fPX_s=(ir+=?E=}%UFxoYtbA7{ce*VA=9k4ss&HJgfAHoM~dBQe$&QjI&SO3h|@NSQ#THWejKyYX9=I+*S9DW?2zX&r^4rQNr#Wr=#Cfpgrm^7I5t zie_(5VM^gIglfN?PV!$bl$~#|A3@ACMVmY1Go%FDSGEhi()gU; z^pj1aR}ZRR)b20?Nzn$kDqtvGmlo}c+)YYx9y2TQFeEBHA{``|IhJ_0^MoDuz!%I6 zZ+Q^0w(^ha_nj0?l5UTQ8N{{y3nE_BuMYRE<0kwNF;eRY=b_6@3`IdmEU{>mwk&YF zo`Z}i!gJe$KxmN}pMzp(`F9WU{`Np?`{gLAr5S3if~nvT(a0i-MTR$Bvp$yi8%A{t zu6A>bU4MiHV>tW1r=ye@4!|IP0qZ}yn_)vearX-d zvzBP@Gaarjd4zN;jJ()6m$2_4Ki<_!D*lzzpLlPA#^jHH>g~)o8kXi050GK(F~%^m))l1Vi0kQ9>o+!(;jr|4Fk+^|pUi({!|z@C>i(H4nEm=t5ZWV*Jx^ zRg~`*|HK!JO~=KtpTj9?H0QSQ17mu(;3OaOXF$9aOQg8nZ{ZUsoA!jYm~p9drS#u~ zLS|`4R<9Rr1aP=M&~(qx4`<~}%a;S47Zz7WY|p>vXoXH@CKF@T{-f`=k-~c*nZFq_{YDr<+tTPkDd+JZy@Ph9RlB>F;AH zsoSWtMvXgtLdHKkg)m%%`qw%>76$9?SXyf>AjEd)T#px_B3Zi@}Ti|?WB2PgFoA# zZcI<;%^gWtVUBx^k@AlyAWy;4_fM(~89~*PC2WmyN^+Y8J-Aok#4u`~1z1?b^`yyw zp1;0o4gsF?&5mJR?sP==f;%n+)3!x`YfU}(XX5agX8Bqj_{(7zHSiKVBqR2A=^0=T zPKNp=+RvV|<{SQQVu@2t#nz?_KpJGKppH+fl!3W4G@q! zi$NO?QJkLyQt~KmRn%>G=sG>s$;eECf+v$RbVcIi&K$!kMnt6e{)`XcI>>eA8!zyI zSV1~C4)Rj>Ph<-ic5Ugu|G6rey<6zMEGqf&C!w*2`klWuW+Get9Eew688rjd1aK}@ z-^T?B{hq?r*NrpxNuw5F*uBWtJrCy2bBIDO7S2}%;B|#l(MSIcT;ijExTnml@gbN) z$uDDb_b+4(=^0YDen1GCHfLzvA!^V-jKzdA12@pdAIo$E~rQsmpbBOhVm7l(XzDeHy{ zT%PC_?daCQ(Il5+c*urMbJIrF!nuU&E3asik){o-gB`C!&s7hu>8R(;;+a_9rV=i;a;QsG@)@pzbcSvca09Cm?{Y`Wdfk*_ zB0aP7mhp^AE}`b-MuX+0YP$VPL?mXe-W<^VdhSbxuxmj2s2A}sIrd%G%?bcRe`DCY z=6!l7pO=+2A)NDIu*C|c9p3i?dfXm7tK@|@4E6xsIEcRc?5Dx_ZkZe>=UDxqD9laH zkq;`j)sxUob_ivGe)UgMx!lipv1dp|@PIa4>RM9X=)L6P0`G#7+;c?MB(ct{aUZ^+ z+Wu2|!n}JBLx{pV9-RDhx55U)2=eo3dg9F1?bAoXL`2*qf+u$Y7yrc8*YN{=YfiQ{ zPK{uFp)@Zuw`u8AWgE|3QQiH5`y4?P;*(z}c|UgVqA@ELtB_%rvJ|YgkMwT1G`m)? zOY?U{_YWwx$g7h3a%O1XRwJydsH@z$nk_G{g5F1vKvHK#y2t1-Q219+^5c8mk=j z$er1}>}kN>lod7lYo4;UO+YApCQn>|}fGf}7QU-CQE2 zGZDmSOKLaxkd}o(YYZYYTX7s&k~+` z43nn$G9)-;H>+ILdmeA0g(Lv^bbH6z(wg9@5=aD->kraGDf`1>LO#s!dd1W!V|Dng z?QXxa2`y5hOR&aeY_V&mIo#0%yJGKK3eAY2-pXwmG8iOa(J-JBMq1SgHj^l%mDEg; z>-@(@>tDVF9!$X*lw^zA3L|r-4r#v&B@Gc9$VHYDCo{H7*Hg@(Hi*UUK%ey-F8&6$ z?llg5J$uo}@JDU1#W;tW#QeC<@|}XiGr$Q5XP-*XI3eN{EG6mOO~&;zVQ3_X+0Gq_ zoPD8&R@;|Ox5clZza$lnX)|EYS*R;syA`5+k)U zq}thofaExo@@0mqCqh3U#E_nwV%_(PYfVi)5Oym?s2FNBBPT+Z((97Sk|0$ zvc%?i56$9q_j&kb+jpPt)|nFgaQW2@k?s=r_uXxMXoT+lA7eXB{I+$M!F_oth(iz$ zZ?Ftqw*w$Q2F?bwf1q-h|mxiD!`0 zQ(~)zqP*61zekgYxh?k0jkO8+LvfP=1v^VDTDtVo6S3+Msa>kX&cBztA&wur@m>sy za=91z{cdO}&i#~sOcscCU3D1px5D}de;G`D_%m{V1mm0P{R$hJ!XGyBo@#5WfgibW zZ9JXIn)=V7vwlzGak@Thgc>#pJ@e;NTB?Gd7()t1rFRDBm>dSx6`}^JC!PoeD@f>eJ^U``j?%$!u0?sD%%t<;e>1_Ib zj1SUn(Bm;(X2#uJlNbG-NN#h#Hi?45zMCd=LY83GU>pbI=Df$JLO9q~0(?3kCr{85 zI4nu6Mqum=Q#hu!sI(DEp|VOg~FH_j%maHG1M1s{-99&C;tXm z2SabVgbZ~v{{lly0!8Mnup64&+Z)v1`;drqW^idyicU}}o5`!+sZWN!hsQnP>pZsc zvG~@{gi;<2MU4OP2kjM_OY;j_cB>!#bNq5!iwdJakn`QFEnI0JxG>Iec#FSJ{v55S zuF2kdl-+Qf0CRO<5R&%^iF0M}tGHm$EU&#k{(DmLU=jwaeZn$$aCP?WMuIm7;{?=9 z3zi1557NE5!gC@Qr+;HoK{`t~h&#ONSTYKDA_$#hz`4F43th;0Q2-F0c||>bWspjz zQM|qRxiOXG5@cAUo}w%TH(;7wWCHQ_u~k+oSU-m_kwIe>I)yq*EaH4|*Sl)&b19!BE_#-jW6r+I3p zb6aZ|7VVAQa8vvD>A=N*pGEwc<2f8Z5##Rq8XX;7{cLWJi$O4;O~uG137b2)?Y>c? zFDHD1&Jr_NSqe~72`&72@Uw^N*v}QMJB2%Co`i(d05B4 zR@HQ(XhwbCR5J-)6Jia#^x9TCBm15-9o~)84hw{b4drQ1)jtC;Pi^+9HVek-Z`Fs- zKAEsPZE~;}sm#i4QNX%?Zmp^M+jccRNSlZz57{Lu=e!*o+Z0UiD6v}OdP)C})b)S3 zsejBy@NG|nsR>RWx3%5-)_LdMT-g@9we)-FB0a{wB>m|0rMHyt-rgB%566G z(|Mi@(4z&2Ch<@oBff6FU$u07_@b(SJRgR2a*A{h*`$c>ad3|;#&1f&*_6oGP@DG| z6>0PSBO+R;T#MJ~n)X>NTCsTsobQ3bo+i&A9oDDua>fdSa&6ZpIlQF(UG#dwlT=z} z+)mHVuFNAupm#3J4I*_?s}$LgQ5uirYZ37`D=3M>5?*GHQ_>CwDFa(~7Ve-Qh&=d* zOD#=!1kB;2Kd-r@N)6E5WT!27uWn?foUU;v8a3f^w^S*2`r*=`pSrBOY!*l$Rq$lwJgZMDWNpM;_!iOp`9}u9FeX$;Xl=6)e~S2 z!*m+Z%XJ%*qQ{g#w5aT+#yrAfruNqk2hND{Ncp#NSQw$=lL6r54>@uvc`*xxzqCAF zCSXisof_jRRnE5kPO-beb)Y%j50+oL)xyGG?W4^a@N@-Dp$VJ1B4x+Zgz?$o%akzzo?u3c%* ze_WH*FRBq|M4UO`N$aY{OP9&-R}`{7lgDlaF645cXk)e7J=!2%mKP!0>NdsMKn}C0=4l>3@Bo>?`+( zP6^0T<@#3f8yCi*4^v17y{(#@aF+q-nG`*@b^`2x3Qv!k4Y%Me$hh{mhLp z0o@(?u6^@?3f+d7bvMGb9O)pZC=aSmdU(f0oNzFXT8E68BMQpnGeBXnGuc_QcGYj| z>U(leau02=%4Mw?+%}{H!Io*7`foE!mbq(Dn25Ex7O5o>bJc9xokTc8ptbpNqHilL z29F+#`H&%;feaKXjF4%DJax)cL0x-#jtW)&$KvvT0N6k$zk08xSUHS4eawOPw_p$tU~9?$ z0N|Nl9DW#U-x2j6gkKHyKL=>{+6JF{qxiSNHdoCSuQsJ;aFMOzY0<*5n41?2_Ypj* zcf_QFkRt=7er7uHa)!s-Gc-jDDLEWe*5xEZ5nGI8B}Oc zt7d$%Cp&w+5e2%9$#y!Z+=j`GC00k!fjX!F?6W;hE;IGFWA6C|^W-$#a+|M1&%78O8 zFkHn9^TacP@kZ*nC5qCGYG~F_sclj33M6a}g99}613ht(*A*4L%olMb&8^H*M<#r! zB9Jg_b-^4QRM9H2&p18t*0sD`PJQHlPX7SGbbsKT-xEABsO!JCr@?QD3%m#Mx8e4$@QdQ7hT+w`KjI5BX{uPvNb@6XV5cj`{R#=S|`LC>GY2bc*9cDG}&(_t`qaze?}nDrGRfi{Qbj#g^_dVc`XeZ=-XDa%0!#(bS;*_=+(^S8LUC4M z_-EiaoV=>O*G(7TaZ-VyBCAhHrOAde1Z>5($$9tU8TWg;P?MXU+ zfwZ<_;{@8P5$(=v)1dH|h3&Yv@coz><87*cK~~br#^0FjqfU4VfOGW4H9?ZASsrh1 z<4Z7wv|j>}20nN+?wz>66>WT1ntYwuKVg457vygCW$9y+n_EF8Ec(z2e zztiO~+(2Z6D5(6N1ASCAlKKx8tAf8{rR!UkzpW`{KXs4&KOdfXyz{1-SnC z1E%f?tYccVWp=K4FY47VXKSA)e!$-tJ{bIR{{VuA$MFZ@2a6K#OKoD}cZyXo-CHDD zYs_Ps5_iVL+qVQ@l{n3Qz0Y~3+iFU>-1e(9voG0Hs;szT1~SajFv$lhs5$hnhMB%3 z_&>x=;x7>X&tDomJ*?@=CN&h%ZG2O02-s1N+NFkh9Bn0jS;kk61${;PEqJ@)hmU+0 zCyl&kuABWkQb?adAMk}uq~1uILGx#f&fBxbGO=U=Mn(-fn2&7Mma!Em#t~L&nSZt) z><9ZQ{@$*+y z!+odTd2G3bLOL=Wd2&Z6#s}Tppn@*z%&a|mQj=X7{K&nJ!b@PUCy2b>zym8}{{X;N zfiJ?Fb^_MM^5yu+T{c6L{`2CsSK;=jV2ACxoKVb!t;#B@1a&)D07n>LMm?z}@b-xS z&F_n0QZU3V^kDu%j%JT?G3P}U)%+iB`>gy6e<@V}F}IBe=3g}=ekrrh`X|GZm^_I! z1VVcbh-uGj;H8snn({jy%QH4{>?nJ02D0xk%KqtRGvt0)q*p9bDNEw*c}Z(;4{3Jb zkCA1$XCQaZ0IFJtiM(Ee?Q-h6R4S2{VI8q-0nhO_>s=kI_;N5-9UA%ia+-Ktj{g98 zg-5PlX&=~E)=+qNP*EkEh^%enEs}%|1M+j*+KEZnUd}f@`~LufVtjx7vVI4A1hddS z7F~QJ_=}}pPWsK~f$y~mG`)XMY4~UZF%h>BtMZI;!~#bH=x>OhwV&));;EKD+u!yY z@n6IH>Aq&vwZ93A`(PO0GTz%Dn`t>4lnVAeKgK_^m&I=e={iU48T&SPmeWwvG&@0h z`uD?Ii=hmH6%q*VEYf8dJBCt0fmM7n@Kg3*__Jqw5A47DQeRt18ECFFT^Gf%>Xz}i z83{dw{{WomLH+<^uZgc&)vqZueO)NR6qHr=JZr@!MHhzu=$$0JnhCFZ`9f zZ4XHCG~v(`Wh9GmfO<2GU}SM!H;H^F{{RI{{hhSr8g;gj@heTYd>Q;c@-J{7K{g0NTIy9-b)tFY*5X;x3;IC1tblN5wr7+g!A`w+;}CeM&b90v1p}WjzN3 z=C26}Vk^cFS8Q0S(8JJ_=GBqmAMjI;_$YsbKWTpe_;28!i2MO{rFhFo*Bbu-SG(~B zk}Ym5B8oXJ&9O3k+nQMzl>`7`=R6AWZ-KuY{t@_h;jf8w-w=FL(6sy6E{L;&<5i7b zK(?@`D7neyNZ=ktWBhbv_>=LI#Xk{zRi;|DrKoB%-`un|YvnAL61=hm45gKKF~(WC z5197Plfu?Zr_ZZd>9GBh-r^WqSWpy4bu19=-SZHQ{7ciNezTWhY2h%DrrrAM-29s{ z#7`NEl|`ldc^x*1eQ&8~ntrEaDo&GJt3y0^ZR$}-AmEdbbB*8d8sI)5YU`l5j@2Ol!fRR=calq3dPk; zsn;dA*?|@B$jrQ;JmCDRfzM0|^kX=#ryHj^M$Hy}6#mkdpAI}~JXbHnU29N^JreHC z;9Hm>aPqygD}2m;QRFb`{8g>uPmbEJ#vh4xS5f>gpG1N8`%Z4A*KSSC9*4KXa%V48#t9*jm!?9n@C85j+*Bf2$Gr zqR6z_;DL7;#zKMkZa+%oZ9X9QP8WeC*5h=FRy&|3QUS^7A79C7bgzpa4|Km0=(?rO zvm-8_tHX0~OT*>JALrm#l8evIIV3wNe%p3n(4ODMDF)i;yE3N z8(LBb`J3iDMnSL2ui4Z73R(XE1iAP*;|~S?(z@@%--+{lRkP8x6XTsr!}ib%Oe6uD1O1eIb*j5Xk26}{p1C_?;Eso;$YW0jrHnfm?`sA?2RY_I zpm*S|F@w{uhG^flL_QCYMW=YnLuE*U`K*&p+yVeNatY5pIKTtGOYhp+_fh$6yjUV= z+j6F#;b>z)jNqs+ji;V5{RTQ#I+}VWdo=6O<<)EQJ;A&;;EQ-{L_Rp#G*Dm zwjkZe=Ylhl*C1CFul~&kTEG7Qgp0t*bz?kCWs3Jng|@>WIaeE8VDA1T#t0nb*O)i$ zC9bTDmb%A?$Sh7Q?IVS9df+b5y}DzHg7@}<@wTW6mGNcYa31m{Ae zY~p>(`zikb!Dc^iuh|<}xA2F>wf_Kxso{8K@~#_KzVdZQ6>*hY=L}moBNtK3cp+U6 zHT7nx{{ROqcpps=d0(-oj3kWAi+3bmEUMCWJ$?U9oRWKN7yV}R}mGFE1 z3p4)!1oZfi;hR4dYag_)hkQ6^5v=xpAh`P-)Kg$HE896Ni`Nc~G*}$VoCEm9`%-?; zUkrRv`%L^t@kWc{U+p_BPsiHD-k*J814#|sGTzMb%Ny_+849wI)G)7=*7xGn?d8EP zn{I%0TRfcl{KVCHG|!6nGVlKYguNnV&Kes?*9X_`oKYOktR3_)d0i(RTRpz(<7b2* zj7tO>grgbAwc0+Mnt~sWdOgU>cy9dm9CiITuMmF-c+x|=Quu+WlH3-GRYC92VxpJ8 za$HA^OU2rh;BY~`Za-R2HpIT5vbqbQ?bm-BWH9-8;836S-Dr*N+{h<6y zX5MSt=x{}j46?TDj=%ELAEkLK{4wynCBD}r&ZxVHX^R!${{Z#sdw++13P_ewrN-gY zc3V9UIIP}fh`rp)S#=B9MD%TE_LH1Iw%UJ=v=JjhhE@CJP` z`$qVRTaj#^6SUL}NdEv)8BxLRh*(w>J`(V)sn|5jY-gsLebK-?_2B`m%dd+%-TwBu@fV2ZkPZ~j zFDKIl$MUV{ZEP)p3uzH-a&g5evA2Jl3Ukxt70)bnS#H_1a5VQ(M;|we^_@hP{{Vz{ zQkOhC%_z@LcB+@x8sVGGPX%pYc`tUL;~jWYU8S@(B^oJJa8Jsoy;asGj@o#_#H_)3 z4%qEk{c3IK%9auqy^cG<`ewL1Tc&-ZNw$VBwiaRLv%lS9Fh~QiuR`$_pZ0GIUFtfl z3Ze+hkfZ`|eQO`WtM0*DGEnSq3*dP6B&ZSGu zGkiTL#tk3W9B^ro&bpSHrbLZ!cFA#X7E0hAe|Enzj+xvrPg-Qwut|I6+*>5KiT5$1F&G>a)~1(Jxzo?uwP?kx zer6?>X`PoHH!+c-01&D;Q_1|XYTKVa_Z}^^D?9w^`owJ)n8pYMW;`x(6`DyKc^rJe zFHV(Odt3IpX_69Q3Ud@8+aw;PrDTi_xd9G6dR60l7NKU-=-P_S8>#Y|6%s_MM^WW2 zPo_7Ityf6W-c`20n%--H6lO(8OmYLyExqJ&Ju#em)LC>IWgGolPmQLtwy{`lJfyjm zLy4rrIgMM&wmaV}g+cqdTxW{I)OEY>4tRRybnB#fG^?R+8p{)v*n&9;F{G^W6^YO@ z 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 RBWoi_)KKm#o$~)}{vV{rbTj|} diff --git a/python/rapid_structure/tests/test_files/img_rot180_demo.jpg b/python/rapid_structure/tests/test_files/img_rot180_demo.jpg deleted file mode 100644 index f4725b96698e2ac222ae9d4830d8f29a33322443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94278 zcmbTcWmFtZ^fx%T2Mex2gS!Uz!QI^@NFeyY5Hxrg0t8QjdvN!`Ex5Y{g3LgG!I$U% zp56VjANGB3pQ_V+x~l8`?mcy->pm|%ZvhBYm4HeBBqRU;>E!}EuL9%&$VmUue?9Vl zgo^TCkA{khf{KoYj{ZLl0}B%!0}BHk9TNu=3;REMxx>Z5#{KW%zmNQ{smN$3C}`Li z=otSqDB84FXP>>h^$b?8JghxT{u4h@ft&dkouFDx!C zuWaw^?(H8O{y92^UtIpXy1qf&-u;IQ=>_NiP5+;`2w!j^|EB|t|8OB8`@b|4LR7Rj zeCR~7Iv6$|h#B}lVZN42`BB@8#VDW)BeC_K#wKMF+-8RV2kn25{r>|N{(pq*{{i;@ z;#vXVq9DB}4}}mQ4YwqNW!B^5UjYR~`r+eC zv?T>FvbY)v|Ls#AUD&kR2#?8_0<6}N-kRGa;}s@_#F-t0S4pB?c5!b3g#59F*locy zWVnuSh_v*lNv5{7GPSbkt%1^32OvUp#Z?P?YR3w{mmOhwJYyE@Yw{klO|AeZHx4UG z+QF2vad@M8DoVe&jp#t9&FZ`k@&kYBG}Z$$9)XbqlGPUm&Uls{JA^ltN?hFZ=z3DLuU*1=O}3#X~!E zpFxUtg-t&*vp%Mq7*qqSr@JAq-!gHpf96Zhc;m&Z7>pXq-u_q^O4XJ2V{?i%{vQ=d zTYx%!_h-Qd`ou`cjJX^(1_k~boSRK-DIVfaP#eC)A(iHuw7VP+qExrCIQq6$*r=J- zN93`Osh%GP?dZ?nJ283Vs}mVJ(eH{b%ZK7!%^!a|oE@t;8AtbnxD^3E9$EEM%{Hr%gZFv-|vrXX~k0dM{C3+2n7>^14FNYz78Lm?XCN7E*l5+K8!nj zEu(Me8$3_v08^T}5*k~KCj7#nTmEzRA@-rZ)53)AfNKPh+7RA3d9bSWIg2OK{uvM% zeN^o$6l1^WHGrQ@(;#cAl`GEIclJ)cY#5b5b+JrS*MQm%ZG7Wq`Hsdb_uc*U{B4e5 z+V(R5?}$=-?Z}e&t*MD!%&E4Z<_*=?@Y?RXL7o;sK8v6jr&&aEH|C=4`b&A@b_9H0+3d_wiVAPHn|E{@MjT zt+qo4(ytN4>m7F2V=Xi`P}fx?oiuGxX`QTV{8cKbsbRNp)Q2r+jd4T63q`;FWVV}! za-W3M#v~a!O^(S>+P|LumHi)fBqayhER@cv1UAmI*}Mor8)2#A(f&pduAQRB%D)uC8sd4%lwdR-mw zOHK0n>voNgHeyLAH<%vTtxC|91`O@6l!GvKq>09VS$XFDwooy}WYk6w4!#;-S9O>D z1!~9A29{e9{lljMy<<4WW4K-!+|gp#Kh@rO1VN$3wnlqzlSrZs7_p@gL-`1f>r8}i z$gasp<~d6R>sl8`WBUMJ7Ywyz!VA?o&fa~f#9%Mso|>*%`ef`wi55(GC$HfKZchF~ zJgR{rirmGwEQJ99EC{gZD@j~$!geg*JSQm;NJ@W_rzU$2=Bs$cS@c zLSo?o8sLf*Ct@~LMm@d}6%)2q>wbRsdWf-KtzvId zSmdj!HZQ=c^&0ogQrA>SwkJ4@g}>?x#Rkw%*H0iE`W`@LIErs4dfQ2(-cL zS95azP_{yp0Wssf*XF&geNXiB7psRiG7OXA_7hy--tK{`K513GWlktQxqj{T^D|({ zeP6BN>0}t+oCt_!MxQo`{)&0(R0~#4_3f$WZnyFS3C=Z{6Ivawh`lvB{VP${1l#tv zUV|(}LQ|T+JL#4U(Lkw$JCOk+kwsIb3{gV}o}}6_^MRq1sW>j3rF`}8P>XMpN&z*v zT2#mW+J8we%vaYe(Xvq9ST&q}NE^mL`o`8n*S8sivUR@7vCW(mUkQHi-1WAjtt(vr z%a}ba8)!u2-P;Z9dJk_iz#(m#mf~Z57p;ppNZ2$ZyfGHDflp0P-1ME83&pqQNr0%W z_#yf5mi~@tFrVSIV9}+57QTtrx^j6y5SJ#^sxxcTSM`in0#s@C7=RMO;y8~X;=^h!Ev&hEL^|tzOtukE}_5;+{Cb5$SNXJWZ*p__S{N2)ZOoA3~@svJK z1@(r{Wu$wbFxn-!8UxD!&b#}%ODoQCo->%RLasF^)MG`^ly=jt z{Yq%0WQS0wYq!-0ac&y+{g>TuB6-vF+STuD$AGobT*?M>r^QLEZ4R|qo=kZP7+eiR zUPX}!194%pTloS9{Y|i_;(XY(B)@yghMG70v?a!lyr07Ub}4F!%r1x^GDUleXe8$SYwV9@!VA~ zje?n0fm<6#zrT;5{jCD;WFRBe0-G?>jKGwr#8ceQXL=@-0)Zn5vrjBFchKn+?<*0`jstREPYq@1tt zSIn-BG>9;n5D_?Q!*R{t%I@By)8aO%w8q%|Jh>AQc>&A|Hgc&)zk-(X%gGQfk^7eiq5iRUmx7Jx?U?);JuCZroZw9V6#5Wx3@@ zg6m!p#5k=xWjNO*hH%|AZEKF7#40npwXS>*g_wsak?@~j_2u=o8tP=p8I~697t9_= z+cDGV%)8u?#$7k7g%qrgzTZ`;sbS1C6eX0E7TZGU2Mv9K1RH8h-kVBZ!lky2FhDI1JKLxhZ$5z+X4O{46~Z<#!X#uhba;a_}h zP$(`Su{rvdui59rnDZu02jMdS>-CJAG--#xw}|L(u3jl06P6VZbi(;pvr)XTmHdfK z)wl;*n#ooF1{XJ6%<4*h%}ZFSgB?IXA|L#k2smeIvcY`KhmNoL$sCNtEN;nrsF9aY z9S{}0q4e;923ovn!G*6DO3}Bf=z6J9{_pp5FfYgoNG14im7?qKWgY}yf*rSDkS6S8 z_k=rq*|+6eM>ak+@FGlg>uOh0NvS*hN#JQR=dYuYy@7?cQXUB4D6Z%e5PM1 zaTNlwOn~a?q?|CB)-n+HZ~NN02NB7MIf%vTC|ch>gW=jAuhHd{&?8hS>_d+LA;)LH z;3m>l2;;qoKBDGF{0L~olR4WY%KtWuEr}PJzjY#|{rYTDz^)(sS_*e1z++Xl9+A17 z9lT_9qq)J*%+^5|k?vD}F6{H0I9YYWBvfGKUJ*+y@EOpLEtusfncvIORUaZnqpm)J z8eAMcp`eMbpF50cl?~X-A>vDV4fpGQb(Q})=qf$ez4Tk9hme=TrMg7vcU;i&@;fy3 zTAMi@ih-cCWau*>Dvx27)urogfaCmLxPqgG_Y!+OAG&Px@H@Jc-+4gBxc=WfU6eGtaspWy%_b;PlBe-f&tUvmGiAu9^gax42oj3g9Jn`T{)sl#p@O-T# zdjMp}tzHW=kf%=l1o{5Tdu#(C#U*0d5ou=3U4oN48%xmHSji`5#W(h;!#z-pK8oJM zlAi&Qu|01^rRZ5)wLc#Z-LUTo+*>T%e=G+bl-~alerO z4|LI|_qubQyx(`s{L}&5(=FyMCbcfGm3pOew#@vi=hB@yv#o8`x7|0^otu1pNyeK= z!H}Q54q4<~GAAuy7!VZHc+k0Zj=Q|}XOrk(y$jeKbY0`j7?34wJ3)J-$tbqx&LoD} zD=UfuL6j8_Ic&9_Tf?z?PUmx;z(pzFnS35b&O5k;G!&ee z1@6Buo-v$R)MfRW+2L+xu3AC6j@;MMOvC?*WN@YY?QU%OVpnm8{o&T9$wd!`^bHK` z(ckP8asyb7F68t|wgW(pw3?q0g_m>{KrWK`Rig`!#TJeA(ynN5ytK>Zb|*&v!ku#D zzp+QTiy0c#Bc94)euiOlekgog?!2$7FG)t>P4t24b#i=AVqWG>qN#>3m5ax}T$YW6 zlOdd;w@u+kT*KPXi}4#G#w`bX^@!&DZxU>h8@cxe&Qg4E^$$Y@f3hr!D||S4*`Y>S zwZIjcPcjL^@Xzy@!(~_M#;7spNX-Au-L~~!sc$_X zx=$;+W)ygsb@z7fn~0F^S6xtB=ed9L=z!9qWb#0r3oY4UEekUxj z9^N+a9?-w_9O%>=>UuNX&`o!I?N17~9P@o|V(~dGVd|~pAqpG!0L=o*qRSALC%DY{ z=8by^WW(73FHE&grEu#m97{SksD(N`S3;tSY4tvpW;H7F`Xul5W2qEPz{;B)E{uT{ z?y%G!kiUA(neNYkz)p=0@3u6rp$RK45pI$s;R2E&SaQsR09mrbOov*TE52K)i`R&! zWPO7M{bj%P2u{w~+fgVr!4Sq-O4|J!kbZ_HoM!L`xO}M>?6X~q*17P*mD#}aE2KmW z_q8xORrn^GD9Q14mjIkKoZB8wnl2$NmGVInYDD1j%gj7pG1-SF{T`_OW0>4wn8~q& zGPNedu7FlQt=W|ISnh_hmKPzi^>;$*OcFzhv@I{YXu`YhsE$J8uEG6ah~B2~FAFae1?2vt)KzbVu*mVySu5kB<+tfVJ!JYv?2#rCdW#6t`V{)RY zi~H_{V;GTi01F?-ZouPit^VL{waBYWcG^jAEsJ}T)8mg%m&7w2#rq4s5caG~wJy5gX)EWpus1^QO${Y5Kl)Bxzo z1u~dKI>)dQZ{+6xcb#@@q@o{#qBuK*SmR;(cmyUU!GlE>t=2BfNPafskR;|n{qwu6 zKLneo+h7P=i`9R7llaI;2jOYeU0>hc9@(AEsLYs7Y@Z8<{E+FPccKa)9|%#~>PG!T z*AUYeSm4YQ1Ff-6*)-MgO=|q>1?Seey19 zkBzsX?Mp*3o5cwKV0#|f8}R(_h9kx}26`6{P0U>*t7*1*^UkhNrF<&sFf-Ne?2wSLEBcoZ8S-E zE=&D88Z0MMA0Zs(iX;;d(=rb~rLA9<`@H4+q4stO5d36Lbv_|62b!jK=QPI=&X3?a ztzdt&ui5S_z%#D19$N2-G;n52uuoUQ^KI=n3A{l)rFZG;lYMRHIvE78Nmo4cNl+zLb*-&ufKb#544T2 z6X_K&Ae1Nj6i0`c5#et(8@g`8JkP z;UK?ZUP87V-o}=17B{nVHr~-p=^U(WiIg^4l2eX@uHUzdh(@_*2pgAfRdg=J;c{YND}2hqk#o z#AlMN3t`a8vkfD9cm`CiANJ*5)Dey_8KHB(E-z!n;C=?c)IZeTRki+{y_96#_3zKe zdr*LxgQ*@cH)l+TlAZ2wFB3GCvpNzXVvcU#zWs*e7Zn6BLW`>qPh%gp z+iXYSS_mrG`KvbuU z%4CD<$|AF0L{oqFZG}_`W985fmuB5$+@)0{cV`o>@7}V34r0ja3F!{3p_r3C2{{XJ zp77`z8}3iOp-oNxaT0%hzYIEZ^E0x)Qt^6qLaTIQpQ4GV*m?0JP6N_*F#~=#*uA#R zZYBl1xAtZHfl(dbD}mUu6#Q(cN%(|t%IWRSIiZ3obNP2`^2}8O9eSvVy(`}E?%`@& zvkb;}NViFt*MGKI#cNY28h^V z*lQa)B;hd3zFPJo8P8d*<@W1f*i++n>&xCue4>CUfA+;{4D`jZaMOWtMc#}v_1ew^ zs)}T6-2WPvm}t*-+`R?Ex}io{N%0OoyBzin>C;${-(QYn4+K*tnwS!a`9X*kENv$D zQKe_V^wf&yfYcjU^GV{ayK=wq_@aET|1+Q+J3yX-h|ZcY=NZtW5gO6=Rm?(Vbjm$A z%cz7?BFC(C)e_t*2)0{)1r{IbS)m%d2&`}sP9&1;&Jp?gP00p=Lihy-X>OnE8Q_#0 zvx)D^<|)BZ=whhBz)-XNQO$T>HT_*(O7zJ32xsV@nqmC#yJrBjJC^Qs2iLaN^6cQv z0xb_5WrVs0Z7<9J`s3(K`s0I#sS1?6&O@6z-QIX9%0=q)V|JIsgBpVM-qCpI-U8&* z+R?ly@s_K>-9ysL{HXbZ%F%V;!(b1ANGkg|dnJGljAquwZFuP$>&$WtJ#aXzjIX;KdF|Nu9AzAudZ}Cz&%f@ z;HJ`_vr-=Go&oPkU}sSwAACv!lOaG1QVirXcNMZPzQl?q`5<~HZ zCpeqx;UD&AKrffH1KJxW1Q->Xn#wuTEWakO`>*I35M%H(?7f$QWNny7%K6tsY6%{zJ`s8 z(kJn1xCuN1(9oPM(H`smnddz0?wn@3OD0J?1576a6h#}k&4PZm?%m~UALYY<$tVFq zXTeoe&}j=oCVoZXdX&)%G)F%rJ_#FxcL}9D2tWJu_Z5z zCBIaw#AU?JcD6U4Wf_NG0pmO8(xl47OGbNI0(*D8fau@tlFvdo33dm&bi3v) z>iKvvpt%C_hY=&qKX?4QPgw8nS;)}wBUcD)kq))Y;Yl$RW3B&qU*2nkj@hpDl=8$tya3fYpRw*?x-XbV0z6!cla%v8R{Teum9DnCq6 znoP+)=w9vK>fROR8$a%|&+D#TOX@vgKHdu+(|<>}l*q{T3a1Vi(%t{1C>PF$DM>G< zszY2hdoRp0Zo?;n5Xq10QCd=ai|HCJFDrI6S~S(UR&HyJt{i;!83K(>ZEHeqo^X<} z&_!!Dy_mqzvHo#oEt8NxcR5wpp|IO2L zyO;+;t*yP^D8&JXP|^W(s*mv2z1{nt9di!~FOuKpT(!iCMP*~5!w(|j$53sggXSZ+ zW-|O{tL@R$h&VqIhrRRaJ`@bm=oGWN`4Q~8x^@cQ9=5`>TRVa~8Ef~{OgJEI)0IbS%_v!OvS%?zwf#aO6x!iY=4knKu(<@ipRg~t% z!oQKaWQTr3PJXKI^zuPUgf2nT^#*6O7=?-!9}lLbvW>qn*Zm8;UT3bKJgi}jv2wYE ztdX2K;i6BNw}&&|Q?FZJ=Jl^SnmiHyt!WN7+J4%R>{7X#4Zv!I)pSU9>J`+!40w$& zUu6={NUE}E_JET5yERTBL9Ren@4yvR*k`Ww+ z-$t090Vh{GYTrd)vPoP|@*v+hzP}6AtKeQa@K%{l6VoH)O7}i&yc?%6DgP5nR{qJs zQ{Vl-snc3F_{9QX!?FvwQ{W*C?4iopK!{A>zx$WnAfEl=f5Hh6dTIgHtGgP#?dll0 zg1&<%PE?jkJ^x08aKSJg9t1nCPA2nXGV6y${s-{|{b#_RUTq6-uR3_E$Pl&h@Z^(6 z`S;X=06HT;p6G$cJMD`@&+VEX$wq}S@$Lr#yMFQY@n#M9!8Jwkpz0r9+%3BV(G{tP ztnvBot%#LYzQJy~l>miu^R6i5;eK*}i0I#c6GGBk75UBSxr9%%kLmA;xmvI!gvz<6 zH!F)P%wJUC1a`Gx3wPVBKZqd(jJQ$#xji5G^5_C~5_~bpx8QHVrU_Lq1`U;Rp7ER6 z@`Dp&;Nx<>ntYzvB;a2;85kzF8Go(1tAZ%o9*c4qL)gIm)`1Xi#u&@LA)s(?N3nNQ8LdHfBJJbr^em&?-{_**{Mcu zYV|;9L{WX2Qx74j42+G7olwmj^XJ5E|`B#KGeyM5E=}4gW=dGRk;l@x0{3&j8DznU}D?|BiDSJk#xHGU+8!5|2cFb+Gtw zP#@?Zd{v0uF~!mTqCTb21#xZQ1J7kUoK+ux4b4+D`PKF7*kE?cM_1 z$Mq_FgV&kVFh!#vAS#YuC1yOa3D$E;{c%4z=z8e|czYgpnpXC`xGPS})~6jorVq!~ zG{=Lv{~0QTUe&tUkv|>U)tCu$n?jP-si^9Y^+`3fo@1*6Ow+$+In$wiWQex+Te@YcN~&45&{R zsJ0rUpoFOs^AkYA$b$Js9Q(WGVf7Mdlq|(Gv6fR`x#1D$_a2&I-$a~-Q#(E3&Rz-jI0%u1C zgZJm=cX^v?2#zOgvwPg9i7w)}*=^6L4xWxk; zCIt1nsEMM)oa2GP{Jg5aMH%){nwlbQ)A@X>PyNq;#>T6{JQC07W^XgIC6m>`S%k0t z(Dg@!IOp{efGR5Ji?;}Ec13Q?6BZS`WG4ekB3>*0rn_%MunF@`V!8ynHKdkeb;^4v zukq$4S$eAmT)Pr{-_Uk@_cQs7TW{e4>ctJcAJ|%1 zST!jHU)^hO;dBo~Ji9f~)l|R;%i644o;@|H68gdE!5tx%&4YAB7ZLn4st95`H_G!+ zrqEt#D(P)}zxh>#8BbluI2x(5!;@Jc^~8Ikqc;i+Dq~?3zxM=q35iT%rk??X&j3%W z<-a?YKgt96`*&+TcVK|GPF+1ubysAu$_B6?V&P%rbzv0YO$(FKekTAcd_?@c*8>SW zul!E2x&pkD1_@4YYnc=DJXzIP#QPdRLTQ8>NR^E%% z=J&v;1r8lunc`a!}As1 zO$2(kAfX`{-3<4pC`kGfm~OOEUHN977B>gA3F|<;AH#2#gLsU0MCc#5r#n^}qv~JC zOZJP^g&)AbcrR>dzi@S`BF{O_PpLy)<16U%M#&eQ_l-}=juFrZ-ZZEKvF0tp7uUn@T{&Uars4Y4ZZ7gpm@we|UIM8!UrpY)4`Ro;%`KDlIAd$_&NxBOygZ29D`0W(t|voh{_4-tNSW+o zzJHM{a|P#KnZ=MFOx8)wHMEEmnd90nX@rO-l~<%ANh}j(HBs{jKXqYn(_vB zmlJ&rf5{KLm(wN1r_o;uvyny&cN&$`tDKNqn~RB|4L}(14^F~IlI9wO>rTHWCBy2f z8rPnzM`3a>NgX$+ckzI`{fiwPo8vK(Rn&l9WL5?{(C=Zqy!YK7ue;(#^mbccu`L4S z>R!S0-|A;uvfbF2pl`pw%e_+L-VsRSGB|nfv8`rZwCogRKl zyE?Rk1{n-ymYRb5#6HG)f(26qMeq)om|kg@dc3CDdzCvVGg6pLvPU_U=)RLRO8)UE zbP89!>QXrcH`3lZykeMwQ{dkvpWwDETfbk^qetM3uHGeEfX*%%0m5IW!_A8GG)^X4 z_Ttu%K4ii@-m3;7Z?J^fQuK&is{$Z5tqcw?_lsPCOHODA1pypb;6}FLY69~(I2FcRTJ3b$Q1-j z?Ly;xniEo!IJBVM*b@E@B`dCebPX1}rb~s*3&58mEcJ`Db+dyvTMkSI3S;)j)!%os z?x=+sNn)S_!S>tpZr$s4#r!wPi4D?pe}bw8%Xa9HfkMM-boCak3B89k=al?9pVkZ} zcK}mk4`RDN;Re^)(h*e>B0E(KeHX;yfv3R^#61p5>?JobZ&j110$B6#0=cGoJ&6OX zB}n;ieb$F34ZagIjXhn@UPQ5qQlp8Ypk~vug=qGhwbjR{H|HuK1M^1Bm1E_^w=)o- zyW}IfCG2u_IU!$vs2a2$Ns?{E_wWAQE?;*$4nZmo7#&!L8fgllMk>C)N$DCh9t|r} z!z)2}y*}Nt6YBW`#@v{k(wZHtadQ8Dv~XcInqtW~5-2oykaSjd*GSsN0kb}SV!)Za&FXm6_7NEGn8_|*p=>b z+EiTqq1*zP|L{nX;tz=$+7XLYZC>Oj!bAb&v%Vg zShzGbhq_L^ZEJ2xe9|BB5Zj7~LV0T4{ZW%VZevAKxSnIMn2~u&{WNL##{xdo$Mvo+ zz7!##H)E$3?@}=9aZ*hktMl`7--iUy*#3tpDt^8Z-u~?n(^)l$1_>ATlnXf?*IG)0 zH$y+bmtu>=QiZy9j~{L^6${d+c#wg`!b5*pH;Z4V;(EEJC%@y&;N>~1s@C~T|J7=p zKLM1GSQ|HbdeFs^_z!2KT8JZdJ6tWy(J6P?{;i4ud*+%dKS~a*QCr*P0d|z8J~o|bsuVPYX;xgvkGav;Ggp|ZnxwP&rKLKvx}A#ky!Ww!_-zvW3n5mL zEgKyRoun|ys7&q)^Fjx*zd@a`Gi$=uZ+m=&C-f{5P%o-nJ#|v*cMq4t`Dr4a(8ouplvdxs8L)P*SR}rpJ3bk zQkuT9I?0B4Y9QRU-RNTS>#OUxHwm~3FOKt=5Se8N-Y#$SAE109977Bfsq zDQWDofth+UQYfM0PXH;j->bcrG}9l!G426(XZhRhIAx7|)j&>Wu5<1)kBcdas2PJW z7K0hmOBIc@6F8IbAI3OlZC>QJJ=9JlMCE%`za3e_LCh}OT(~ZTn`@TCGZRAdkGtqu zJAq725Tza@@5v=aBtjJh0|Nu9c;w0c8=3G>YnM87qVO5oLg;Jmb? zic(@_$|wd=cmp-sZlh?7KOrf_lvIHvTLmNYC>r&zktq-*DB(5wJDES47^OoCnNqNw zQ7W-93D4Cl(eUq|aER(;iIdP=V>|zRHx{W_OTJ@Y2W$rLvM`i(9 z#m;25EQjk~xm@#;5K_@TZi#=mlFJ#c7_j^cNs_&3Fp&fRc(XO*y0dDlqJO(Rk0A}J z6_X6IhA$Mg^1lZFRLr@l^1hYQ6PpWDBYo;enVT7I_Hz0#dOgJQ)sIYo-hH;T*>1C1 zKo=+2g`k`;FX(D-#!MV5o_|-8OtO2Vj450UDQj&j&l6WirvP^*q87KJ^@_jvLu+SQF}a z0Yc?@-X9)m#05NDltS@}eu+H;q#s=&F5jT`0kHrl6zX{^E`?)zbzJ+y#l}~EK!cqf z@FBu}d$K2A4m58CiM

1j->Fp^k6LR3U5&H>o4sJ*%>GJdzp)Cz0oK3*$DzNpb5# z^7-&m=8h(y6o{ttZoy$XPm#}}p8sqZkdj|5J}1H<5r-oWnOK9N;kBceuEquU=M1BW zNPbZNS|D2|_%}~>XxHSo+(sbYn_f#Pk6fQeX?7ZiCR;<@{?dai@8fq(7N5RvsJ7h7 zP^lRt!bwo}rRI|$Krh6}I3~Ne-7{cbuijGTK73zGHyB%0BVJFewh$y2wZ{{3LE?W<$Zbs5wcI74>>l&j8Vi z#`^A#*){o6U(}CVP76(yXIwSEPrZQTj1u#gQ|;(yfw*+F`6t=*p3>L$h@hFmZ%$Si zCLSkBT4^J_=pFb^*s@#F6b}Z7#BCnHaW~!<7f%5^{6UW5&bw7}AQKhzlv<0q*xuN{ z03~o8#~0@sdW|y4Lut*wwOeBK)O}6L=@a2l+aDOzFp4K z7xC}b$!(dDGN^+5#k3Px@d7DZFb=ib^+~9!Lfpzj`>g7lKEYN8r0Y*(`lPXsLfID| zcwWvxFg@xkEGE2DtsZlCiRHP5zFl7w6!H(J;J1v*fOstrx4R=GwBYF*bOgC-@^!Nh zS`M6W^QH9;h@8`W&6&CBX&9k6ooH@-Ol(-nFUE__O$qt!2|8n=-yKFjOpb*`xQT+z z#vIbwFwFUz^pmST?6a$SfM(Pd{+_k$gbFzmfL{DsxbD+Jlj&44h^!b9zO$-)>7KQ* zpT2QTvHf;NmV;%VjWv_PHY_)JZ~^t+sb^|6`5GPJPb$qJwG?;8Z+1Y1hx_ z9@7YDx7;$BeT3`~HJz+(BE^@F4_nk*8Gv*j6B-`1`pRJa(0q*dPpk-HtrmzC&e3TV z6^&277ca(%-)s}<4q6W;rSUhV6zG$e_WVW0DfnLC0Ux0UGn`d^OpP2oe6RTK`Zaf?2{Kq}L|+xK?#ZO(40_kmleFEWXEAiU;FLJMo}`jI>_r z0T#C~;vPIePX1Cq$|fqcXtRAd`31>}&tzT4zhI=CAv5U`4UlB<^F~Z~J_GDFX+cPE z>J{Z!DXO8s?L@E+flE+r2buqh_u%9NA#a@$HZU?>Nu!W^9~!XK-q<`ZyD=p-!x zjAzIS3lR@p`5MY}uN)^Bj8inb-6uB+VOT9!y!IkzH+!Q|WHEwzppok~B>gJ%-Gfw1 zBZ3TO%kv7s(X+cPV8 zD|5WZCW#;Bd#QHIy6kF$aZ(>I?!g zBo0BCh*o%nIoz*k8;^1ODdoqJa8M4fE9E~wy~^noaYcZYkV2O^BoK#}y%4LJ1cTY^ z`<#?uK-bKUC(?s7{HwoT2Jyt>5A^)4RY{AJ5|`Redn;DGjUPH=KLWB{oxB_s5gmPv zCfl8fB286)Z=9b2bUiaURZTx9$f7!g&9rL~Y&%pqhDwkPNh6iEE^e=Hcu4hrXSNAwkI_z`o9lWpx0b6<<_`5tL z$EFH3w8`7Kq30)4G(E7qx-ZA1B@-7tEw%0X7gX$3$?yE>zmPZj202BT^^-P>pKQ?A z&1BY`&R06FlnF+o)0z$^*rYX8NMt*(GNq>Gb~ApiGSRvA;1XKiJO>~6>w!|*HtX@! z%$uj_>)=L_tPS%DZ!mJH54`NO&E0J&tkU*hVRB-i)wR;Hw|2~4{o~jf8$K`AK{B5A zkWB)j)RnSR^szA|e43KT&$eCdu_Ty#ux5p$5(3Kx-cK)$e*Q7<(@4RLah6yW@dX8- z8CdL^NA{biL(j#h5Yb1+zo8`t!Fm|t3(Pd+Y#m_{-h*HPa>4}mC!3fDl=!ZG8@L*l z;mGpvCr3&Umbo?A&JNLXrSAlqx<#guP2#ZuZW&}`?6o_UYA}2*Ng=O5 zN8Nq(-6x{Qa*Z1EU`{C4`w}YdA6dha=>S?g3yxm11N_l-Bye0i%xFu-egbcII$$ijPmsh? zlU}O1_V1WISNx~D6fcxebX{Nd)k-Kc_BIu-QSR3$jQ^F4#6R&4E9wU~PY2I!@}1ce z%iq8vD`WK;oXQq#-2>(NCX=tH7O_E-6nqUihqSZT6mVkWksYnrC*IkEw@Hg4;?TrO zDqsCI^%O0F3%Rn}Oiyb1J$S->07zKK(x<{ts2`jb!jk>QPL)yefrVpzmj(!s(G6Yv`^ zTH%=87(jH$DpS*&H*}_$GDbvTx|@UM;u?=t@;_%@w6_`NIEeC~%PqmlLHSx%^g5%%S0|k+!^qAEYKkkq$K_eHvL<^iqEb-T z(lSV5knQZqw3p`5+B-$Ee|g0BN0{F#Bzx>*y68j7mvXNtpxvM_I(;|>qr{$36{6dc z@~Oa$(Ojq~_k7B2f1}hXc9*M@k*(v`ddtQ59;k%LZnVR!CO~-E>G!{i;Mhugm4yX^ z_RA;ZJ)Q8v^kiqNHYJ%U%aXiei&L_)fzN&0D<1FGre2D}1JZBWl2V<5Ie%U$HVCXr zw&DmI^!OoBWq5vf#MmDclF-<(B3KXT zi8Y#T6;dn}oFGi^xwrI*hUmDl?=EMW63KN_4S^ree6^z~Q&l~N%q1jC%-w($$EIdl zrIyemyn<0=#veq=Z_re1qFKcxtS`f;uB`ejDHo+ULI+N_B!!PL&mVxW4&zlV@AJLF zMRB9A6rU|t_B$HFq z40aoXaJJ(s&JirtsoS|UjOhpWTO>tAwYDVcHQyO1OEDxD^scgcLb~>e>i?tme<1@zc_6Lu~exXW1Q^A;8=Gt3#!bO~Qk@#UinbEwpDZ z9Fyd-`GHuv4~*8ZiDvxZq807Gat^%*Q(OFbqU8I_Z}uZygC7{4GyIE5Zk>C1eL)$? z%y#(T?bIKPzHYQ-1WGT=Io_^VxpXbR(QPqEDW|E{>X`qn2$`knp-W1y2aw*H=tI^$ z_Ke!P^4E|212moK!zps*1mzf-;vpR5QGsTQ5+QEh+DuWsd!Lr1v)i7?FFCcdX2-Sr{r(w|D~J>k3|_;iOWnXfI)_bMEf zH2rIPZ%XE{3}=*DfRTmUDiW7@{SS8ru@bGAwz4)ow=I)C4+H%4ne2xcdAUi_rtcS# zNew7iln=XUo&jl;OemJeu$;yR$?$(~YL%~^vivrq>?OX`oP_@~=vV^Ke$PGbS z4~BH`LJ@=t$Dbc_jKH6VqL+I9-KCSy{*TBpV!CXu#m54~PAvLo*00O?k~_B5ODjs4 zC<*s*l*ZFbgHR`o{3C;_;F#cVwy5Pvp?`V-Nv~Wi7;}@3jKdN#sW14I|Eiw8Hm&zf z8Sw(9O6NZq`j=SmoiVPvnfj_7es z^6FI^->S>qWVIGUiG#=$?v3OYplOvx%8Oop&Y`XQU7Q*cFQDJ{sN#_~ujmmk2aC-Zk0cpF#rD0LXzXFH{Qh>2 z{iZ;@{+rAg-(DWSxW3Vf`nIJTli}AlOVnSmhUC1w1Y|7lUZ(@?oN%ZTqk?j-0PxeP z%QD+=ppCt)n#Ux5agYv4<=8vrcLb|1p6y?8-4r1%a55-qCqqYaBtkwhrE8Gd`nu3< zhKv&nklz*@7fDgg)QbV2hEKYx>?Sf^#9O1R`4_*551$^R2Z%7y4#j01&$#(t+Og8W zf6p5i6R#6R>?IfYO?|KWD^^v#LrBmSfn3bYK`wVK@YZCnXHd9V{h*;zh!|@rCt@+H z=Ktd8tmB&e{x*)%UD7cnL|Qs!BGTR6-O{}g64D_cEz;c`qeloxNQ@pOy@9}x_&)nR z|8K9|JNJoCT-W>5{UN4yXvauVGtjSFiTG@{OUIZ7l~q5bXRYpBsBH@gmG=;%8hrV; z9t4+qq&_4tb$YqWeC?yLNcZ;amBKEj!~?hOMEmbz*b1$g6-mDKuk`x7I@s12Yp!)~V}hP9dfN_vkU)WEL+GS6?gOi zM7@^f50)tNG8e>XMPR%sIypvL({4MSGnp&}df0Y;H7dCioN3Wy+7%pGrpVJt=-bfm z+a2}_tCUX8d8TB~y&Po(>m|s(@G$aLWbUi^!TVb1GT~<7@oPU8Xkx2TzifH95}k5W zo@~BEMN#L4>@t}wi`_J0cXujbc;>?Fl~|Iss8p#lypskE7klxGXG=lj{q!g=L_1+R(~>T!TReIpruJRD|+qYQe9{p9qZn-**IzF9WD@c4rzm&Zhe0+M$9JmlZ1Xu zz9FWBb{7L-&MS1$>QQ3hP%lC$-{Mqm-X&UyuDAD z+ppS3CU0a)P|64-=yl+anZsepQ^V@H36HwKeP(6q)!*aF+LKtswClxj0kc>hq9Oo7 zb5w`=La!GxWXB@AI*@sty{;nZuQC09821#bN=`resbkL!yjfE69G+2Nwm#?T7zE?H z-Uip_!2z-5x5M3AvAOdLrv1NtkLXWy1Aexcv4!4cd@D&K`pCb|R=h^E?6ZTB&I-rs(e@U(RCg|Z2EwN z15fAI3$Fj}=y$g3?*hc}o~Q<^VC`Kyn#@N}?2Rpb8TXuiH;&10T<@B9<>fVp@4HAM za?GbbD(u9=5QkB{^6Zz7HKT%mE?>xZHzUJFyoW=mk$CZh*F1Jtgyd~7Ljrt(a1s#@ zo?go0V^~Z@NcEq7A|xQ4J#XZRvUO{x!2Q$eeb~2w_6&x8Up!?F8a}9fa6pULW4({@8P|$iSFc0MhixvlOV>uN~%{Io^_&Nxamxw@Ug{F0~8^3q?6b$L^8D_ z-?w;)-JE{x_%W?6-GG~JBQpMlhqM)OY5l??<8O1-f!w6zh?_7Q|Bj^}ai{G)(OCX9 zt>QM@MZy9ScY2A*;gQ_Ub5A@EY>Pa5U=sBJ9`5J00m1IyEnmIgQ42|vOSHAZz$hhA z7D)pm4|m3riu3w7cFv|Bo4Uj#qw0R}L|T(QGsR$5@};AF)`-W%Fg$wS6WaEm&h}>^ zIhTCxfxCGzREoMm>b+gIoqs#C72HzjRk$L>*;+=vkpGN^!A4nfW{F6Bb$3Cpj(k<^ zlrSk-t8yqRsDf3oaOOaD`azn~@} zwR3>MFO(hGGYBCIWp&@Zz(;wg0^7MuoMGLMB|l+AvY$U&4_*3as!^u(aCoARJob2H zoqL$8E_+-FUVA*X1#O1zH>2Yxnk=bli&tJR0FK(xo?pLWB&I*#wn|;0J)ofpKFeqLgdLJfj%t}tZZcr#m z{C*Cx7;_aE<|S8!zp!j2a`yWX%7F?azTT5Ce$a+bJVDD>lJPI$cBToXhp|dO)!t6A z;tX8nHLTc<0AExTje=V>M|-wj$W@HbyZC#n_^RWobM=%ZEt2N{h+VgJU;7>PBXz91 zs-OG86j7K{Y4KpQjMF0C&0BF~(3#f8X7sDKf&7_G5(&MrJvaS1vn}@6IqulfrWmTD zv?2lMTHtZ`0YTjQg*`UH*SU1dSL}^qSLz#{9PYL_{7fBmzl#UD5MwB*_qEGyO9LWm z%cD|xo`y`$LrjerzzIv|&)`YQF;dw5q=&D^9C)frnTGwJ4W&&~k$#reE0QKxe4%50 z*ZgB0y=4Nk1(Xt&q%o9nBa#L2t3{urkd2-F-<-O$>Vl~Lei9j-hB;2W-x9XN>^--H zL$$----RTQ(r>iY(vL9H+jqgnJh}9ID0cb-c4Gj)5P{DEFIt&T1ps1DYrE_OAkP}>&XP6Jk`$t zN_<9D4BG>D9bBwK4$SkbWJU3YU_=SA<&fFc1UfSb~^Ib6BaOQzjmY1838}r$VjnHOYXgal)BLK=Ja(T^$@Lp zY`$bU&R$5k|0JcuP4u^2s0%Z$3nZ94v1n}VpXc3;fpNOiFKa}@BYF3~;qdH_bAhgC z?kpMN1_WHUa9hD-D4pH+Z5<0dQ~as+Z!yk`xFiy#Jl18UZwN?(tLbWVG!56k9{W0` zp`-?7Xb?SlcQPza_u``63CF42t&SXk5RRxACRtq8u3~r*C5l-;PkG@X$n)KTxO@y$ z(^2O`(?D8e<$Xokir08W;KGf2p2jcwK>pH8-m^_(xRP?(>NA^3T28k;mgdMVtU_*R zujTfcm%kLm8lY%A!RfyEsX`sfSDnT0IucfQ%F_PK7$DaecJ+J+#MPulvI88j4e z-T|ODhJzuVc^{YEAu?W;<)SJU&mif;B1o|Z%EKFNbiW}?byN(5`B>J=vD@DDTi6vU z!&J!GKbCcX2!%_O!t9mTImP!$%^1U)D&R^tF)tf}Z;pjGenHn0KcJrZ6pRGa`>G5G zX3dTu2w!6Be=uGN$2eDh$9(`^y?r8JxR-pI?-%Yy`D`bd{D+~jlq#KN zAi0N+c}!k8CCp&wKC1XrYiDS`J+;=rARZq4C&cbHMNnAn(BrbKn@rN{M5#MUw1%pd zd|ag{F96e1ckM{MN0C~MjCjv0V?t!lveogd3?X)-(cK;kPww*lS8$3Gq7G1RyQ*hq z84dkOQ5|n=MEp}wcFaGYqd%hf+~w%tEDf|LQf#H75Bcu9J6 z^VW-~E%LLrkQze2!t=TBxrA{U5s;}|VZk@zMB@Zi_E<^7Tq>%*Or$#L7*^e=HC_;zv@h<|b1O*5E zlZFfBgR;=m4%_hYvxwAUOB?Ez(UYy%@Qfa(m_8l7*l#Ll{aeDhtA7##U`t* zl~mW1a97!gapTZo(HA2ep9mgD%(y{ds!aRcV(??j8GuKwVgJw?#>$!JgM;l_mFU~wFP@YIkIV6^U zGw4R0K`;Jff=I^vo~}Lp+1M#FX_^10$wDJbe%diH5)xdrVck#4IHYFhI&i;)`E14aIQq7HoJ8)cdd=brXLO$CjIUbQw+rp!7S*{J9WNODWRvZ3c^4oX zonX1b$haTQDX zGKKJijoBu_@}!?p ztyrM`E&Q$5@;W%l*{Nmh)fcOmHI&Ihh4K!Tlb)XJWTf8&NCcEUggC~YXcl^ncQzCU zVIvu3?KSqiWg|;1t%76CuRhF;mkNr{=#LTPlSc|!z5uN=OD*?54}FWoo*hy3f-`w< zjhN_HAO8|uTU$?v+q3p{9|?@{!tNP)AE2WI?pD*kEw6Cee4i2XXCPvE?ZmRk5@EvN zTrWc$7#-=u4B6>o6Nln3X@kF=JW(ZcKa2UvSsfTx#d~@~sa&VN6&=hQQ*+Ob0>dA^ zVAqwG@W7H=x?jA0vx~E|YrBn|a;vcGjEi-Kb$0h~xT81%p*c37$@TBE_i8{{fAnlX zX;`6sUUTL;LXX8(D~|6^+U021*`(qqB3YPg?%AA8ph;-`dM-2JLhG5DX={6S_ON{C0QpOZc z02EIBtks%2P_PxGYKZ-L>9jC1B(4(LaWWUg|4M?(q#O6^K)9Q5 zWV|k`q$^*>uoW<2YAxuDHk2UpC0)acE3#mKJ6mtX+3|r_UmV5(qG#*p(>zb&OMb7@ zU0v~5I-DCpT7tNKY+kc6IrWKR#5N9h)r$+wb09_OD^A6a&Zv<8MN^`=xx7)Ksgnyb zro7yZd-;VG`G-gI)yKCWs@&IY9iQJP-b=?MmWDqU$oGi|$F%@*9bWUQ8uu575C%EW zvMZ3NB<_hVx9N5M@(W4G2=ej1?2_vo2kA?b1n+sp|Emsipe9pMmSXl9)z7mBq$eF{}o*$E~wxgr_A%ae~LrXqA)4_AbJivXUctv%r6oTcjwNv@90I+ zBSmi7n3?)Jq@4I$`(D#Y=UH;*++?ZQO8f5CyP6IYqgyysW(;7WZw5++q4V95&nam3 zbQGsMD={-NeqEW#Pp8EBsRr?%NsrgvzQ*up#^6lZC9!~Z-2AW_y7BK*lKP#{Nr-X5VEvv zvQ(P>%#Hq>%FoW9Tn)wD_4{(t^mA%bj~Pw_9qIyUJBB+d5NL1!o6=9;S#@hA?GS3# zPy+Vah2<&8ZU#Qn2!eNSQ4H=Bkw9%LodG1<3)_)@wy?6ODWX?ft!3{RGw&PHPJME( zy6W4mk?S&oh;|73;TO;I{#i-(p0^HyFXGw4zBdzB%N*x0by#^26skMfeC3tm*#8d$ zS9c*=o}>7%`!M=UTI#v_W875J>^I)s%V7xkTYhryrH|Qde4G65`jQmYIil#rpn8UV zvwW*|fkJ`hu4ylRWcIFDf~VteU`yK@Hx<>l3vQtkyuG_*NmO5Bb;PiFM)uGe8ay0G z)DxSFXljA~;Y|Q!so`PtIeT~N(VuNQA+8!B4y?NnsAgX>?ySzxZq?X=AxQ1ISjN8U z^a&54QMO&cd*Pe(;$7b_3Qb36K@U!P4{WL@vwjJwuM|PzW|Z2$pXg8>dhzqeFjv=h zD>t4t0rt$ln&G5h_bCI$W&TRdMTPx`k%x&cnxBAM#S+@8LOtPs_7-3V*s4+jf~NAG zB)e_8e01PAyU5_fsu~O8We|&#|IHISDw416L5R{V>qIyDX>x7gah|*UE`f^hlGTc0 zohbLPF3pB(Vlks7tQ(vYEsw8q+jQ}7HsQJu03M>?j}>NVcZ4 z7)oVbviVqQHu2q=LdEydTi@P+AUd+-t@#?<-%p=Ty_e`ej79;1jC5z2n}zc~4u`Zo zqA8v|s3>5#w7Jg?fELxulfEkF`QtdnC1dFRt!=V=>KiSpQXQ4XyQ|i1+n+#J&(B4K z5BT?@u7zB4(s~s-_aD_OV)X&8j-6lFl1yW{_odz%I1Xrs*V5%eN5P2zJg_q$cDmds z(B)z{xUN%3l&cqi_k0f7UEQ(2w0v@z>R}TIh|J zHHjtzzQbAJ?|ZZr6^k1Av5@sKe5`=`p_@PDnj33<%g=<{G!Ya)e7C$e8zD`)?TO=D zGF(J2EqbtP(Cxn5WQIcyJJsZK^_Pnr{8_q}s)A*IXYP8<|3r-HNRfZc=ndFrnCi6a znS0_jKX+2*W@$_M9I`AfWi*1fZ3ilHjvdjh5~Ho_{tJq_=Q)II$Ls!wVe_DkR$kGh z;+RSa?MMBGAzhvs91>Ji2TDC^5uK-oh@p?F{P98tw6ZAm!4l!#@UQaK(hIJ_LW8>J zq>p&Ze>RiB{z@Ex5vBU$>;vp(fhWne4U14Zq@97Af$dJs&NJO{a7#bXaSP=B_#{1`A50^l@af4-0r@ zW_Y#bhZU@t$0}nNMB8;S?Yr}`v|#*R@tEcm9lTqjF=aYsQ<_^X1Jd?v}w^WlJ|G4P-i z+G~`AdsFjRR@)Cijlp+(O{M7C-kC@lhjux}@D|&UMl}kj(Ao~dOtFn(0RG@X74UW; zgjCuGt+@iW;tto*tMb!0<=O=prpf!N(MK25ax$>87F5oyK{GE0Huleksj)&w(X&h} zOUe_rVC+1;9*P^(3SQgK{yPn7%FC&z`>5A@+|F3$qU`^3zQCO2%<8^D_5?>vkhx=Z$GsVaF7ZFBperjj&ly&eEcMw2; z;KBFke?SGVMieN zQLh_LS$*!E9^`&=AT64}Whlkr_CNp1HuIW1_#9Ik<2OaqjP(4^y5ULikB-keDpIA>YVGdwI8$?Zj zRt>ShXVL=bR31$Fpj*S<`Y$>;!e{5?KFa3>`Ka~&TC0wX9R_1Um9Rc=#tW>rFlR2f4> zdXLy#p2r=eOAurZzy7mghokV2=T=+hGuJhK&|mQwiGF<*lBB1@2-lGJE4KPW3{2EVK$`ZeT4J@JS{yBUWq7Ki_pv#PS(}VcQ-)3^$0jG+p`_0%>8jpOhoBQq0$j;Z1yLKW3DkXNi!1r?LvRjrEUC zg(P}Li8Fz{aAmIVERhUwu{asFhxbdpA@DC9$MiEb@6JvtU((s9_E`DTam0VCT&(iv z^aucw$WViRZM8vD8r-FEi(Q`hmMuhk7C8#<(a?-p3=$SkD&$ZNU+o}%4`*b=A&1f}J||BOw`9&HVnlSiKIXE5W|=m9MR zpl`pD@LQJ|x`Cw(tTR!lD?jPB?{6qMe!BrPA8Ik#FjZ?-6n1-NsGuXqiA5&+G7?X` z;ZU0|UevHC4}vm0b$meo1pK@Ksd*#T*t*P-Yuw9UxBjPT-OP-R*(i;rGllIhUN#{` za)b?SWrNDw&^eM=I`l(@Jr+TnQsN33Q{a%{3!0!!GQ?OE&(kZ!c<jx&l7>uJ#C)12r;btopXzkrLo_KAG42?5$VnAxlI$#cPh+Fqub_5H5*jr-sDt} z)7!;+>#&nUp@yy7y30$)_4^*91^)%#Tctk|4gbsT;v_|?9ZmsU& z#$126dF)0TS^vWz^MlYHqn(-dkIueH1Y?HnMI$$B7KhsQ?8e`H(uj=rjX~ZR?o;Ve z2SBXAsGIS}AE6q*P*Rr2+eDE!FQn(!wl+3;34aME8{OG9I=pnm6xr3@obnUm+H3cT zX()zRZLOt10ZoSSe(y9@5p9KSB_~H%!RKk84kV0*%tnxt-%qU%lq85sB_`8fBv&pZ zI&UbPI&;&z->ZNJT7fQGG#mTXy_J+(*D--FwGTZ%xMaKAM z`WM(0xRUooAcT0@-R4MP@0=4M_6Be*X#D={%x36@muxB(Nd$5cU_eLrP>(SpSp+Zw zy#iGJ!+?pYG@`l?MHb0StQt$b0yn%2X0C1bq9s8j#qK^X_gX!*8jX@&Fk@=l%Pc7k zoh17BGw-%vyv2u-;Ip-RufPlFtsw{lmEB-*ocp+*;{4-i$ZZVxHmUU+Ew8_jE#b1eVR@0h_bUcDC@V>na~C$sJ?vt5501GkGsL);+v zC%OGeJJfUae;H6ad79}DW}Y!0Uvuy_eNs+-Z-~nvlu?MU66LS8(D}O?P$a{Q-XQ8g zFa?gQ{x>FO7khX8fabx0|1cb0#s8gMwM5U4z9-;=d*j^SEj(vt7Q{M@7I?_mzuT() zX{IdzW`Ct084F`dBT@Y}jJ5)^oq89 zg!D=w<#Z58MN|M&+c1v|edn*2LEDKLjlJ3AJxZfqSM}umm*IHz2{-5rJn~nl-@FXV z%8_NOLWLuolyqwYO0|FKoVK>U!b;ZfLg=fX$`|m0OZ8d!q=xGPczdTP(y-m2h_qku zC|DTmknFm_q2Iq77@$`O6AVuK+$*#GZ}~tzX=-&Hv(;8)f=kQQ)r==)9f&62oE`20 zR%Qn+m=}8`5C`vk?m?F!eoK6-Pf(ljxXJXOK%V&;3E95D7`Yh|8PO%+cFR_4+o{8@ z8iFIz3};=;$h^=e9}JxiW7@X-BB==lqgV|(>Nmq8Lkfg;L>nqJspsBy^fWf-ikrOm zX*ZL{+P=pA9V6Z_@lHyor@3f?f-zZK8i1^>Akazajc^0?fCt5a+qJnVXJSan*=@rS zaJ2SO?#3zQgl)CcRST>so+BqqX>aPIDCb1@UwNl-uB+a6@bRNM3|2hm>azr?D zC2)yAmfB_yO*+nQLS7#8ftmO-J807dI^2UeLOvH!$}qU3g_@#v-M8~d$y_A$``RnQ ztPekCz!H`}V*XSgoez>iuw2adhbt4Q(ROiQ_%&pJw_8(~pr;un*)Q=P{2cTSi%{1+ zfTemGpJvRq#~c}kK+7G+(<*fL7vVU)toJ@*wAo5zjrEejbF6$8>YXr5YKI{W*@BXhqkTBW7`z?eoVtaAoDc;m8 z$VFmGv;0nIOoKaoPQ={NxY4*(j!kJv(l#UnHu$f>(pbt&FyYVQD${ zb@>_F@_pGyf}P8c*2)9C5&3rU9ll?fv)K;{-S=UNB!Pc|c8|+3=`XNM zZ{b0U01sFoqbvaD1;;y zSSPg&NfdSkU^wT#cXsIM=wNY7idkY`{T5tEx*vaa+*(s9R<(iqG_!YK7$I8X*$0DB z-gsTwvy9CRjmQ7x)rr+urPR z9%3KsH$EGbzM+*kf)+hUB4*Jn2`uN_^V(1!sbid>ec`O9pM`s>2Utm&q3zfV6oTm^ zRx00!lsL~|^=06SKx$HqW12KH&}UQmWt$Zn(Fj7xO5xdz_%3fsuWOtj9B2?wG4gnOod?$*t#3%w#D0;uAv<;R4?^ zcO`I9zV45w2W@3Gi4K0*R{HY_Ivk@JhF7jQTTl=?;_q@l(~`7+13&Yeb?Xwl(v-<& z*K<*9ReROumUP1g@lpMSy@VmyC}em8YzFhNPG0r<#1^wV{edw>$p1I`&Jaesv{Y}9 z&5y4YZx)kE$_kbsyuVXajB>wl%GdM{x23?gM(BAr29c6Z{Y;UrIWJ?+m;s#vtQenG zooz6y%%?jl*@9VCodMKs3VjO;Ll&&Lu7=h=ww0q43OM*%?U&n}6Tl#eyUt_RJXCRQ z!vh=oL{4_yq+f0es%1~JHl=MN4B7}Cns|vZRvUduLU38Fm!FIFc%uT4&(HVUfUAaM zhTh7~`-;`a*+&75sny@X&Sr1lTl&+Iy~iNB`nZs2(zpC`Sn~_7rWlfDs3C?v`-^(! zSVK8amBiJ~e5kx@<=7!sk)V=}SW*`TcD&reJ7OEu7$DxnAd?MdI07V_b$d~p6=0Z9 zeRRM&V5~nD3?>{+G^`J7+14Cfvm{Q!RYQp&4Q7b zh*jL#ARV!!6qzcD+!P6F-7TjR!CvIkYH>zX5_2-i;gf|&aW$~YUlHv+p|kHn%20eC z#MN*SC11t}C-{d;Krr!Ufz+fJ+Ym!%#g~C?aq^F=blB!3KAof!{J5c(OTw-Rao4Jx zuj9?>&4o8!+X;L)ZRR>>`Y;}^_?^vX6!aZD_$*Yr8r8DHpK?*0*1qCuVuR~5oTXYf zk?2ig4KxcjRHyeVjx&RhTL1M2++)xD4}I13;F(B-Wl0ec1*P9dBSz>SU(Pp=>vuDk zR8ZXw-(%t}KM^b=yS-&~q_s3~!Dsg-kM#5FN^7wis|^-E7BiX11N0aFKH{o&E%_x> z!du(Ely|1h{7z;!Yho+Jz(C^+qd|1wK^aywtATWFchG_mc^Fgc=l=Y1SC=N(zvTHe z(Y^3m7g=)$7Ct$x*CN5A5c;WV9wZ-Yp5B0Fn*tSY%(8;8Hx`=$8#EhxlQ$2}M~mHl z^mNB0?qu#_wZv*i_C$j;0=aKg9(x{`kU-_dUTg#=6z0)qU#a-IppultY?x69ht^hV zj75J|XSy}e&I=*YtXR~kb^@|;|+@F2h z(OyZPf3N(E&8<;f8Q-RXW88l!!5-g{@%)f&`7a$JL=G8!I~azmj@q#%dSdBCOjifC z!;EYK_j*EnY2HkRkLY!M`jGV57Y>nvY?nX~D*R-De8-lFfaaplo__8u@b`X}xJOxM z?|w%$4Wz?Frl#@PFzF+a8L4#mm#t;m%J*v-wdN^k5L~2SVE6L-$IjLb=Hum=Ft99S zVVjnXn+NPN@xYq|8gCh>OrL$mZtd#2tJpNtLtHq}Gu)_P_4&v6 zT-@q!nfIqV@3k-{Ywarh_3CU7Q&2obryT*vyqnu=yQI}_~eI{sBY_rIS-a0HhxT1rb8GYFa9cw|E%2pvt- z8&E7fC6U^{L;Kyl3+PoxTN}<2H}{(eBQ+f%QZ7ZMV(ST+pm)k5_ixjbllr|ANqsD{ z(fjWQz-JlBlwHp+G9qSyE(btj=nm)KufN$pG^q!$Z`4MLPryG^dA@S*TFu-@+67j< zs>{TDp)kw3*;p4i`?aDi*%E%3h(Qe|GK$H7$JI%B%-Ha z0BEMDb$QS{1P+CI5}Tg{kO$_fbIlC;ndUjw?Iv&HCx)+0Fwoda;CgXkxkjYBZWn)V zHB^gVfgRGZEzbj+!Do-iiyK)4P9I`nfZie_sN%$s*qe3HeZ8+>;UkN4$(yNkeb(`? z;ak;k8TU<+CCRK}ZgmFYpR24D7OqMkRMeH7bbc4rKoIh#vZSYu!a$G2J7&Q?!=E7o zKdBGXwqlMfzgYr6_$OeDetuN!4quP|mFD;3d04`iVu8GG5kGa$q@&XX)A_4AMQ+f= z6!1+d5)d6~vDI8~7=GUH_c27j$S}dMZR0--iaVX(aybfk0&ip34R%QenAV;wUD1Pp z-e{#nJYk@*O7E}= zSx22b;WHuofuFb9Vv2V9Odf_S0*5e5x&qu2ywB@AMlifp8@`fa1ns3`i2N(MS6>~i z1N}rtl&wiR`|hv05f%+tw>%23aF(Ag@$8NQ>2UTY5r}r#0< zHJpb^+1t|;_ywjxJzZZfj*qSKmaZFxKaB9@-{*`E=_7Sr;*^gNda!8>a{C7BSi?2+&hIkY>!k~>UkB+Ay_J~QtutWe%RHxE zmb+ni!tP_Dp9#U9s_ghpfxZ;u?EP1f*K+ZPd#P6@Jxy2)S#&NSvp*~ zb7aEWPnD9{LbJ$}Y{|p@1<{qxD-!__T4!<0J zOUTtU_$pog<(c($(FhR5J$pKRFaPwjpB-h11Z*!=c-6TEW8G}6UdmzJ;QQ;{3E`W3 z%oJ5_*0)zjHdpBw%Nc&i3{+N7Iq4>})V(tOh~&8u!_!~IdnYk2a*r;MU?o3RO3U4U z45fk~ER*<5P7D#g?Fc3Xxhpf68rx++{(h<4i+D{x{QM>dU<&<3>|yitq-hVf^fra- zwa^ouHNt0fi?E+CFa@31CDp#}Xh)Xb6s`CN2)JjT`k!##YaL3lJCB=%D}8=D*_|Q2 z!cG-7DUe}XLlL&Bk1uYT?_f-3Efb@x9E%;RqUI6p9E zV4ga4cYR8grgin|-NdVo?ns4rquWKN*Z>iBUCX}ui*k{>OnZ8!%*Mu=Ut<}auPf2cZN9A1ZZife* zS(aKN*I2ucaK7O< z`sgt^Onn-MnHGBO)~Jzc{&k&PidS)REJi0l@2sLB)NZMm*&=8Sl!v$>9RHS-5|SOv~)zu)Mo3@q<0y^^+$1e^TLqb5ZZI$ z0u#H=dsJ{B&SwoyX;#ABBO1vm~E2z20o!%T2 z5tjt%&YDr8n>boA^hC@MJ~}Ey`nHg7{G5Jco)n$f1Sm-!WHHonLi-ABAE`{RBb(!~tH1C}j+NVzI$n8r_60DlKZPSPxL<#quze=7U~2 zEHOi4x}y5eQdNGccLlqMYsns6uT)5YANxULyzdI#=B7Ba`z_J?%iqhaq*MFhckiKY z3Cu5_22vE58Ii_C7AH50DP zKI{~yXd|O%a!s=sVvB;(1v;=eq5bGvR+HO^gLCh(yd*PY7bcuy$2zVxjPLHc^viSc9s z^);9uWmCne@exdWy;ejT7=Jiy!H4v(s@{@)y=?7v#=t3W@9P@7sh>GWr#*OE|AE01 z+r~HVZ_k}_Uh6(S$Qq@46g-xV8}C+hY9My=i;SaaB%4B5 zoj$3W;NwnYG$ujq$To(Qe%?Em$(bcfl%lYBY3{a9)iG;GC6uq}(1uS?aAyXC)lsEJ zQroO*YjLBzLx8`H39RtTwy{V%c~$(1et2?z0 z88(~XPq1Fk_(z6$Rm%M365TMh?4g9*@2{r^F!t5$O;-n9id?(2rjs#=mNq8hrNsOX z_v?N1dN?S^#H~|hz8kmwpDz%Xwz0P?fev5%yi+fZ2%V#b@2w#s@C z9b&86*&@)zu#g|BS#a);&dONWGx$e~Px@crnv@%|o}TY2lu0rEC4w?*lMcySeQBp{ zERO`Y%uQF-Wc6|y``&&B7tNGaSl7)YuN{10R`WoEzitl7V70QW6&fqIsc@!}L6(tdftC8@QOL9%ukjh}Ztkc4*ve=l^7V4=%( z-CBAi`Ad19TVsUd&8R+U?B=Ivx`-{}4!YyymtYbp0O{keP4rVW_P-LPLea1{@ygPI za`&Ga;v9%7J{FqrCqy)E(}kS7)Yr5L0B)e*&uOsz4zb{-vgUmB^JtOr-y>K>!zWBdVm4NW4iOM}&5e=Bk@fw>>Az638vDd40S+dSDHKlT1!g%YQNgKwg)Pqt=XGdm+u@IZBm8+rg zW^_{40*S70O}sGIR8}3(2*JON-d&(NF%VGobf99j&ax8pmgSv2dE}}-@}z&|)`B-x z9W}A-l``1?(^FZtaz#%At-7*qMMjq%n|Nt#Epd!zzpS+30HQxn>~j~=0`PZSn@>Ye z8)p}_4J;J$(tKsiVg@_tOT{DK%CaPJXgcNX&75|~l-CP4qi;<3Boy_*(@VtXkQlR8hPC;xQy(BNJ z4ZUC`Ub9u~lYGBzx=!&Asy2`2W)7S_N$lxOmMPbWeV>&?&E8W#{RFhO_jsa9Yhc3d z-+qLqURVKXE;ORe((m`U+j_qoV0bH>?y?a*mqqXcz=Om}b+>P0O7|ZHRg@1elw41~l@%^zqaAxo=Rzi_TR&d!Wrn^mVx*4XK?(XjH zZbwcW&XEU)@9+Kn4e#^Z&;4HaeSI$X9=pV74Z$xya}Xjveo{+&@iyGXa;}L$IOFla z8U%-Iht|V+{}7)$o|xzPikSj&26>j9#+8X4X!$MPDk^=PF~K)eqI@0FXA;LDA5lU3 zM~^-?0JyL}eeDs7JR6M~>v;yv{9iOsDe)H=Zv#^d;YdJV@4EPchR~cvXjB9&xET!; zoRO^*Q#-wCs;rMF(pj&M9=;k|2RRhRwbsmbF@2WlN_QQ|%I%L09Psqrdw}IBkN<4N zYdz5vTVn0%KKSS*;HR~FiRb+^u%b^NakF9fge$wOY6lU!B2A_KWAv(1JvPPNl9@mO zlbLWTzztyr$X{%B+Z3?a>6Rx!Kc$AI`HKrxd|Y_7a`XCIQAY97WknB^SNXHe7*kA1 zY5}1qk0~$F&h{6-53C$tILuVNJ*GtUWl>va=o-tGvPJT>6%V~)dUhjnn@r-|%>igv zX5Wcx6u&}~Gm(iITDKBH0Aj4VM-OLgfy9E(dTRSzz~WCyZK`&Xw({RaN6@X!jk|B3 z_=;_H0;m`L(nTn)P;j8~0(-3CI)lrfZQI!)Nx}*vbK$6Fq0+mF|AFd` zAwQo45&CIg;rV-i1o5#u`HRcIrML2JVwr!U`Zt)ks7Su!A31Idr=Z}iKJ5=RZyT5D zg}L49x9PGxnLPTvAMtV=RO&=t9ai%YZh?7cDj(BZM}qDvxih=MWO+~1Y2y9}U9lp_ zI;@`)ZxUOt_bYe#^Ko=%)q()yq^;q7l@AO-ZeNO(mH@QXE|*c z0~oubLXv=zfcgN{ne?hkxu9+v&UeY3eMy<|j#jK+=#(q9bw1j&z7@5&N|Nx~{&wne zihp82Un_1L4`&?-E?Vg4JhKY;G?qjXeFj8cTV2!Ia+#}lWc>IUFgkDaah_DJKglbA zW|=QJ+J;8Awe5}h48mvcAD7^okdSux7zgw61j|PiWn_7dxB_-O3|57J+->-^h$#U$siUd_wblL7&Yv%Gf)F zPJ1el${f5Cok5xJoVoh|?<+=pfjc?noleGA{nI|N^B~E?NO~b=|<8?i*JO?Y0I=lF~4)e@popIaO%N zR%`M(^nrDfmzS&Y*8G8fyqj++fYXM`C@j*>%93-2SO(RJWO71$kfOptF8hy%e_2+2 z7%D-P3D4ks4Ew^D>r>x9dOwsJ3g8Phh6V@~F={yna|gS^lZGMEethmVqeIQ?a^+z{ zb*VEB)0~$nD3h|9*N5;S>|#OwQ|ktMA9bR&ugo8=d?D`+VjS5gJ9OdFu}!!dd-sE5 z!kd2%5*<+Yyv?JyM8Cyk$0QP`K4cO)zELTlQ_wk~4}0`DO35?$2jJ<=2vOKNm^Y1R z_T2|4ZzH42@J`wor~->cX;gDbiNz-+S1g#?DxLi zV{2c5#$e>mAbrA|wljCRd3Uk#X3)vW_KH2xnIV(G;`2544~SEmR9@V08_#;Oj&J}S zv?q#QSNF|=pXObXT5aa|XLBEF@>m56L*;Rt20Rin4&B^W5*9+E1V$T;gcAhTUWPuu z7_&e$&$lM~e-M>VwYrHd=Q#{>HJ6ev`@vtLLno$Oc9kB1aaF zdzf+d6JXL|=S>u0b){qWkDkny*D9IcD77&rHLqG%17m2c>P}i$x*2kYOgT6V>Qhpv zJ|YjrL+^m?N=aK+ATe>hT{5%b%Qp%!yDb6cWshf9 zHb0(S9t_U9ljgm3;Uxl_JI@L-j8sCc!i~lXwm2qARM1}A3^jtg1NPNb55BTjaB9c= zcj=t-oTYJL${p;~gF^Zho8l7^{zz}XT zsK2ad&rtCLRGZ^$y?~iOT)(&3#zsu%3d{VkQ}PL%_9$d@{df6VO$%{YXax#?1XYG2 z-&7p$#L{C+;KMeC-Rw-zUZ~`sGrtkDl$Iv!l58_tSDn>5&W=+a3G9C>=`NDL!)}*&&Y{LfpZD_RzFZi+DA2FuV1>IsZ@z0O6IsN&Q5z@wD{kH?fz-R?cjFuKsEZbO|YeCHww3zU?08%`k7W* zrLfKQCa)<9vnYgIW#uhW>UpJ1>}|dmI(HYrw_>9Zn9k)7L4Ii-#fZ^Eh<`Eyd3r>F*{_$5)8+ zg=D>Mn0CwGruNBeZ|U=EWj5APRd2IQrkvI$OzEB8Gm~O^=m!HC8z|3U>Jjw^vi8_t z8a|i<(-tAB@m$y2!dW%Dip4mR`pGpEEiR&M^3BdY^phncv@?e zVPLMxGwJ+S4%1hNJGkxKza1!m2O!k_(Cc5v9ZWIoWdpQ3drgnDMQq<`rJ8PpK7yft z{dJSS@5Y0r$J-|A4mTPIf5wScXMTR=Ktadf`MtK74HDbKR+$of{C$F()p(QZj1o~r#%9dznH#j+;+y{Scb z@4Z+|l^iGDA1<0{{F6Ix}6Iz3>>GS1v|bHjj#^K3J#h+BWblswJ;_AvXvW?QBO1VAEy6@w#Sg*E}o9h8KShx^1>?P3OZ2Qvk3k zc1Ox}`en7M$o5`NJB6#@X(R@u;Dz*T=eY5;4SA{HQz0L^@IfsoCZH*_#6sfUgpttY z+GUtO{p5D$L8zq22=WU+DJCC`N|-;+Q8vr5eoX^*Q8M7LM3%hP`T7)UKeOw=I}(8@+kQp!Myno~s0JM9 zmg1F^hFRA?+I7op3E9oYiX@BxoBNE9A}R`BbDR|ygpz;QNT_x3cit8@E?PwVN_?Og zm4qLKM00%eFlW#ZM4J|+l@@D}N~67@RuG88lb)&ioDR7qsOQY(`62`90~)>%j*e)` z0NA=ZKO4w_`=bBj{^1Nog=g`8;GduzsSEMPm#>Gs+k^d-X<6pE!=;8?)48G(!aJ9* zKrPj9AE6586FORF8RWKSVIw)^Kl;-paRO&Xv_;qIaziYeDAYN}eS4M65@)lGbkDFOh`vhw@~?vy8L);@oj6yVn$4+jgR{WTv{Z z7DLb*`Ra!979p+w1-ZHI?*PrfVEYG^Ns7wTva^^Rv8?N;qT;Ql?A1m4Vh-xu90_xb ztmW-wuQ!b+#U`?^##dA!T((ps!~ zk9xJKGfEHD7taf{pvKI)26(nZ3G^n6N8OdPx9RsoBr6U8+YHyah85rhx6h^? z(FW#5Z>rDq)!bf7lD}Y`A*J1+K;I?t59;nX7{)*R2Wq3yE{YL*mtvZsz~9O`VYy4! zI%BRU4OM@rrhmZ#b}^xzcjGTM3Pd=L#i3X+~gM-oMduY~%U!rhM6+U%U~ z-JC?cYESNtZBc?q$Foal4r(3Ibxm~!Vd%uf3N4KqTR$LqpRx=!;$N`f1%qO#b#|=% zhm8v!8=sWDx>Pk;whMiVKE)6xjDQ@cF-!_2XrBV{aSga?26s>?V+ddFzs!dXvBrIL z#5$lkAQ0WJ@`LSN2Cu)=lunhMq=gObIb&C!UtpB>A-Ti_CA6Nc*Iyt=_ctWz_GKO1 zK6S?-zv&cUxm7E%HdB(sPQbd@(T7h;IT>)K)HWooXnkMVvSa$|66zFb_(;5G0$KR$ zCtusp2vyHmcXu^ZwO?s4Vf)P?7ekSf5)vl9^gx~0w~?R`{4a-X)+5$d)uo2Nuh>XH z@U9-)f3Ox0ISiHiD{bl8aem(j12{fhtik&~kjk>X5ViP5VWYo-j3|SBssQWw0q?qJ z-n)M&WkQ+Yh-&=E?2-oSp{aetu_J$ks8Lj}ImO7k5#~o7Z5~<^+A00Qw!)iA;&B2Nb5P)3dxT&oB0s8V-G;_C-74d~^>x{DnRRFb zhmYl-R*~O1I3RA-i1l9;I?zs6+zr68W9VK(FN43_O02Rt$ezAdU!+*0d(P!ENxx@5 z9R0`M()%p^wR44DvtyBI@rzzxcD{QygNH`Kc}$8tC`CIt0cnlKhrTn-&PjnqZ3WQ8SmlrsAFR&BM(hzvQ1d)%Ws)SZ1qC5NR)OLRx_ z^y_kdlzRF6vQJS;lDOiFqh7s{`deSq$?8Iv4lD*eAnAoCw^(y3i}p&y^`vOkb}yW7 zcDB1d7gO|xrd(0naRQ#LdiQ)TP0>@eg_KJDwx&R0Tl>etSy}RklzeLB+q1Lfim6>m z?4ihGcm}mgasPpwB`5W=%eJ1(w2nlj)gj2yFNsWC-zi#X3F%EeFkHb{C*u!Q5Zk9! z;Df(7+a?*05k?j{YpL%|W7EW|1Cfk3Su8g{u(U#axjyzpxNgARlsgt~CQ4TfQYkIs zj?P%N`?t_7yE2)Ml&*t%Mi{W~? zoKJwoQ~m=f1|J-EnA2}P|dpcdxf4z+NMfV(?Olu&gd0~B>MKAYV6;w z;%mAuN+5nTa=soWI@>3m$jGBmEVWA(PdC;H%=38Mg-Umb$nXwplnt3NUb6m(eYyS)-<#Civ6RwWRVv#io`$hXgeo7E_Ke+H) z@B*r5%}gM^x2+76{cJ>}5;j%oUA6bYdQ`DFI6(R9b?aq@h4k&D+sPvzptF?BSoIzFNT+r+BBd!I_P5c7*qPK0!WWQy)&@aBu?q9-!UL-k z6>6o_46BwY@4EQ6x)!<6!n%49&4+6`q_O{pP4}9tlkc`bM2a@y6}v5ic50sUL(3ei zdvQvZE#IdXm^B$kgPVny*-;$qiGPN{ckX7NQv+!1+`Ki1a_JDP=B4YC(5*G8Hf&WV zb|OkP@7HK%d(Su5turYHDE3hU%Q0m{}%-l1k8ZJU?AQX;{}c>Rf;KEsGGVZ5I2j#Fut6R;xAo zKS(F@*|=kxy%N6hzPl0*PpW>XaHsMy@D7ci12iDEY%u>|;Wn38e?uiWh+U64QP+aN zhZfhpn+6sbE@Aa|10LP?!ce=^_%yg<7g%h}4E@-~#P(06c9iLLj!fY}^Luw<2WycL z2HX}VNr6u`%K)Ehgmg0VVB=|wWLLmz_oifRbyJ1(*tx9nE5w7go!ZV7tFIS@`3a`f z!BAsI;`ohlj~9Ku&^2(HgIJ^C*SeJt%J@Oq(+FKy4PZcz%;Psm7{VGu2~xn9N{Rl) zc12M^x`y@rfVP$P%6HD4uUYuDf32!06XZ=CI?}^$cLX0?3&KL}-PmfG^u^iL1-|?y zwT?-D3nkPtAxGU6JE{j2;^atbL2Yh19N2M<1jn;^%Ys%RO3|6e52ir6g7S6&XzZ_# zMr*AycD&5Y)^Z~1iY>=*EiO`W7UjeK$atjS846PAyUtHz2lZ?wY^2<)eY8CSA8{d! zkHaDsDdRp)O?28QJ}5OS%QZ@WKX+sO3|YgeN<7i^^?ytk`G6o&#W{x3b=es}K2JHy zB;ynkPD{VCslYZ!g&c0WFuDKT+pOE7Mj1g#)Oy_+!8p(1ixWQQW700;wUDQ zk1l2oDKF-m{FP;DR?r$-B^`+WULcfYI8lTm-HYLt61_0$pSZm}-OaG7gFo$}ya{!8 zlm6pql4X4G`CHbe!LU7yzO&}S5GdsN->`-t*13$iI~NSqpFDxxOVwbJInWDq9DhAu z&{O;Qbp}$O;js{DVP%l4<~L(r4BAo({Rx)rx40}{>yGCei>)tr`%su&v>zNzmYi7^4&QdLYm8eXH7E*aiY5sJ=lp`{lU)mqQ~v#&fb|-dW6P`kxHF!1N#HZ| zDa0UF_#}#^)ZXoV6Z4Y8>qXFS2EDWbeErGJREv}kW6fHLm@ac^($8*2)SNo0XQc)q zy1YaRUBI|ozg%~#2ID@FzjnXH&_$CgOw~a$waT_uo%fkI{v(yMoE_%85HpdiZn+9# zf4zashLL@=@ZB4x15j^_%Y$|y5ld;nwC2UFnOHz$QY+1N33#No{rY^h9DN$;zUFt} zZnKDL;1ksezc}{|Y%2$x1K2GAV_WxJ4qGIdCJ)H3xSI_qdtiO3+$Tnxe5_Y5;tdo` zFWJ>oc53>jz5oa@l*$Co8XmlrmDKDTtc41Tl|75UJ~NIb%f>xSX-s_|OlM}!Y+u-J zNqvcgQ1SWa8zMt`lnYhoQdl2(!P?)o>&PqxM{+h1b0!IslGu`qe!l~K?@AZKrMuV` zkKo2h*i@*OZ>0ajJGy)IuB?ES@}H|&(xDFjP-7;J7jRTVl4?FbbA-b#!_HY+LzXQ* zWE_qgbfx~eR!b7a4&|U2fsuXUGtTB~xr&`kO{N`*of_u&15-%BYp=38WM`12V(|lh zM5fU-XzS6`1+ZzfSSb}wvUCo-6laWu;67klslKCzB@ZK&gJI~9lZ^{~3P+wcn_NqB~%)EECzq@|9 z6Q$Y);*tkPN33pbvp9Ktb~LJjjC=~h?;2arL;EsVj?z{B5(&i~fSqKR{K{*@{Z_JB zby3*DMh|htIgc||2akToZBsw$`y6aS7zd8hDozm^Pjfu}z$dJqntC69a|htFut z9XGcod9|cH1q{ALx6D%PCejUbv(E|x)gRF8WdgZR9-U(K#)Xx08rNeCZzhF(Pb=r`N;3&IA6o!v*$?hbexq6j*BH^NBXwK!xiI4 zTu#a#^-p=MJm^#1umz1ROs}NO5(Qimgb7VJqJKMk9EZihbXMvw94N~;8a7@i{V?E` zu-pMnT7`Mij#MnJqI967D*T?psl=oFEii_~nH_UD61e=7|FvgQX&5xkamp{z!#&OGT)|vJOWTn(UHNy08Jar~UGVKr zO{E|6P3vll@Fj`W~i_hxQstQi-L^siR`HAkA4oFr@vMh7wcVmyco_}p7v zAX^`%X1vYXXuVGq%0Kc+N)X!CLkN^tWV07aX{QmoE;$$(%A= zN5UU}g^h|bVZ<%nx$}PIosjozwr8UJx{3g24t2A&r&Km6H`u+ke8oi1WB4OZ(YHV- zr${Jw!#pLC=}SNF*|fC&rU;eC&}iEdV+sm;N~+LPq1Ry$AbP#TE!Ny{RERVgNpM<( zZXX~INY+Zv>>Fp4E>#iFXu9g89!rC_<&TQn73=91pm7yd9C zP?Dhz8lgAzDw-{5R3x(bBp@=;cC;@16mOq+TSaM%T_x}Eov#7H;zIS6gKnsWG0wQL~= z;gj8LrfZ|w#A%lhtPzkizL~!r)|a~%$aJKTica0XdT(r5RVRpNbKLwAk`qUYQbN)O z`Ez1&@bf0#rjJIi35pGnoSLx{<;RMb_rj2KX1sE~Hg@%Q(NHCsiEuz3ErQx-gSog2 z-ZPZL36qLsN%pC<1PyZL(n4@ksB zIZ8H0uv|l(SzrR79v>|nfV9vAuy%;7AFCF-xnS}|Wo-*LcNyY(B!4C*C+-O*e26ZN z(Hdg&)BU{m8+74;>I;4jWws3lip93jEmbe;j%;QfJ%S)fy{}fyZpJX6&F))%q4gf; zq53DL)|CC+6Y8gkHXQHurq7|3LU_3!4cMb&WGGb5hhvyc{?5YH9B2 z|L|2FRk|ecTK(9LdaO-CdhmeFbm`FcwEmhXDmkMQ{gAhTESfa6N+qtU)IU=^OfgUK z+51w`H30Dm7Cpd^;DBfENh1eZV@JAk*`8@U$#TyzglWe#^SflX4gXlVd1DD9?v>(M zybZ*KTMa)dl$8GaQmMZbmRlw-xJ<<7Tqedu78$7s;zd1ok~0aWZ|Z8FdQ$THkXEWe zWg8AWa3`)>;0>F^#+f-MI8*L&Z% z>H0Z`obzepHH00DbQi!f@~pW5OU<2b;Qv4|FQB>VDrQ*GQ4wq8*G-99p}kJmhXJ2A zbee)~pJW66IcPmZKBc{2UFYd}TitQNUGSD--$1*%Hgh1n*OAiqSJf|@^f*!|h;Pr? zxBeV=zknRaPNBluMT_O#%!$-~>jB2mpb89E+5$p|*^A>6byVW3z)r7kpY7bPfPhjL z*!<=0JtPy%#>7E>Q1Y|2F7!gTKd(Zo^EoJZ$A|Nn&Di{2zbQn{E(r6z0&LL zdlP-GTU=>T?h!z?t@;|-)s%}1^>BFg)NCr~7zvhzWFoQI)g8Wn6c4VhDmBXV*P+6_ z+7Rm6?67#A40*RT`6Y`3O~;|qnX)b!h@MLWNaH+Y2-SHHlMQT*&Yy!$;8wh>mUW}9 z!V(REk8{a1nE4uizN7NuVZOfUU1Oc`s6Dte|JMU&r0=Cg*;5>bSnX@qR2mPk4#2D8 zvTYnf$=$XUJqWo+Sj`lv5z(>3@)Hi)I>6W^qy*T@QI>EkLntf-0@>if#%yi#f@(yb z4KVbw5~bNqTXGc_PDYt9rNrQv(BUiUHwnQ;UI^-Erw&;S4HTyL8%= zNv2L(jaR9%mz(=N4`(dX%-c7G%m;O>Ng9T^`hSMh9clwfC1n|^eo%VY@G>`rsx(4n0Voh9^S!{ z@Ng+HaguYhJ0frDlF8kgAr$}qQNWyuUHy`J3wW>Iu4*;)=xa&FTl0 zP!KzIuvqyWCYpo%Lg}UzfkTP;Ee1FovamZt7ckti(`0!Y6naCA5pOj2t4N|t85zmG zTB}=+PS;b48k^q{6!!T+`bjxpF0c^;@_8@PqbJIQsM@mONiowhPhVWIWX)rpF^H%m zNZhOWgaSW3@~8_CL|cHBJ;3hNsByjzyWbT~soE@j?2athJjpjiBllb(o}tnE{wl{! zA!5>({TOa{kV||TzzS99@BsVU$#>K)+H>n;PpF=G#_3vWhAAq5Dv&W>$AqvIs6?ra z;da^kn>YX!Oy{|l+YieIM&BR62@S}*EEy@adGyTQ6Af5kV522^E0O4Eap1S@93K;j z*;fr*3)qtb;v3v&51$&r_52s1T50D{;H{y(*!ZO8YvrJTy@8qYBl^o#JTF<)+pBuw z!$uIBVRL}~tp%vrXx{(ri&I}-X*$!;RAEYNme1xmQM83=&wsrBte-7S@L58z!xCXK+ zK^t$aO#d(tz8VfjTBYLMYJo^XMP6PxJhA%mnM4JMJy$lxYN|ZB3nvfd0Rn?|s;Xy# zIFpzfjS4YG3q$1QehiV~I`D-8gAnvj)Byv=BJG zHs2x{MUIU&9}^@YA-cnj01HHfB%!kiynvd4pn!F0bO5KJG068auOE9E+6ZBpdB13& z)&=AvcJ{pGkQ|z{R+)@pFjSfsu-L6u6^C0Ph&Bd@Hv_hfk>id8Gf-Q5JXY7J7c|-u z@tY~hdOl0r?F2uDLs*}Lz0-D=VsEs4<7zCaPtwv}$qu>UL`ul~;ovWj_(mC$M7kQJ zjwU)xa#}b~-4#FnA87SI&>ieKF96BUXwD;$81WT`*8rCDq7l1`E;XL`L9HhcFPa~v z_`ve{I{!;yJxE#GQral6&-jJ$WkVXx?{fh>7kDHFJF1AmFNM+8(fNr^Zg_e5>8Umt zmw2~m$#xEd_OB{%=L0+drlAi&G;@Y+ASB>(yA#>;+F^o!Dwg9u zFhgPDb}hs&>ali$vmFE7o(=tKOYaWo)(PK^*SlgsKjn9O_U%}ls$D4rNVVHJ;!gkoz=e&mx>zy>|^Q?|*-y3;Qya)bd4BjVOU`|cf=d(}rp z|GRKbDb2ft4|XxB3H84|>7~Etl(z7r$>EbCT)>YlsEs#t5F@TA{&R6x;Zf`Jm+3X$ zT=*tQEpChzh7cT>0HGEv+ABg}yA+Vj*JI_TG@kQL_z#ad=M!7pT5(wa{Lg4Uexpha zp<1Hn1{Ti$1KG_`1Wfe2y73nPrF z^=S}+U8mqQI_mjK1g%@)#!QU~SBGPBOR8SgJ|VLoqb%e0R}Qi-r0++V{WC*TjIED}LYIEjME-`FXW|$Aky~ z-ln=41PS)t(sMCFv1-$Lr(q`?AyeS(Cfm`yv@ighu@f8TD*2&=+F+>EQIhc{@~gts zgfPG*N7Ml}H7nT8fOG_X)6!*B02w?}ec2)RL!Bx_PPJ7pKM8Cu!5N{_&BXWiHS}xQ zp%T3T@P49SC;*?|djNnsyw3atGg~)odtnY)7m>L^2M()%{!)nw$?xADx8@Svfp9Kz z2z{~bioRnP)T^I&%)yOWz~B!LQxdr%`&_FH+|u-G2ofq`u*s*FUg?&&$fs|oUfswr z?PN>vC8@y&tNMD?V(TV0bk#r6z|<8_k6&4{)q(?Z*t1*GQ^zdbm>X^ZKZdp_>LPrK z^zoZzY{(RPY@_?d;`G5FI)j)7o{I>lEuX+YJ9tu@@C~q4%*`bYoI@*FZP~r!cWZ5T zi|7EJ4CQY8C)Yw}8T6`e|CWoqt)J!H1Cjz3d!Sm<1TWKp)E<{VJp&t-2B-cSaZ1}S z-PXLR{+;)Y|3jVd>MBkCwiov@gYvrQPPhqF?<|nayG9k--Ss5A^LEkcZ}ZMyyYEN4 z4XyHo1`nXgg9K8Pkip>XZtLgv|3HolPd19X*}nJS12L(Nyc2A34>eX|P$x6JlL*1IG_5Qo!2QVfxlHBs{+4v^DHLYDXEgxqiDNl+i^9+J zlkjm@*X5k=UGzsU8K;6irx-)CUT8r{2)3N*FN(T-- zwykrJNxOw3ac;f38^b4^-?q|F{Yzr+k-qx?O29n31Ku*mep2RgI}mcF zgdo=0)j4l^;Ks#5GX zyZP&PC^fe5kr(WwUoRt%ANfmIN1FYf{FAP_d$Jt`BR|xRwKK)=icb0czpS;)Z4Bks zO(%O4=U+3zrZUI#eFOh);~({Y&!+v3eu*G<9Hs;o338>-8#-esrmFK^^~k;Cy4o!X zDzv=xHsyF@S;Sk*jGzQRA{pxeC*nwt=@|eN+cApq%lXj|19LU{d)EIzHO39#DKXV& z7LiSAQ~UDVj%&IllJkf6n{7M{cyv%2Hh%Bg~| z%tbgcKt{YA42;(ot}2Do%NSI21TsOWqsi9?&voy9cAFA@LdJIZLtxwl(C#dUza5=PM;81IKbh({751D( z|Glfp$x#fdi1AJzzOvocz7Ye5E87NGSqDPZrgXqk4aMGHhW`V-ydi$?v4eNkp0uax zt&vn?DG|hmXYq$1DvEsSi$!8E-;+r%&l-vrOeg9KK5@Ccjb&J;1{Z6@@I)U@O~|AO z+Af46Nety~Vs(9de14;V^r_=FZI8yvb+Ju`dfMOhXfAs7mc}5yZ@7&dRLH(rY{>1< zcR0c(lnOESnQa9{=$Gcn@po=;Vv;dV6D&c3(GDFdTclei3f9eQBjZ>wgnS?s<>UX; za+OfXuB!GhvFQr;%OqzswSxiLOJQQN(P1G#DNX@*ald>Vp$_SAo#71jtGi5ID3Ts( ze=`-k$WCcw6@TwQjpyn%>rNpl$?+FDo#v12R!XgB{`z7)KmEtI848pg3C$*Hyvh}b z9TRQ-7R|zvNJ@ia#C~_b zIFS8&c;U&sNVZ^}e;#@qRuE0DdLaIA!I*VK)Pr3zrkr=QPdZVjCQUq12+L~Kynv~0 zly(?N^YyNsm&Je$;VE@e=apD})?IbkQVd5#N=*Qo( z$h5ExZyNr4{hp#;VVoeyRo%d4*Xoe2L~0JWEo4ibsx>Djq(VEy8q9M_65_OlSBgy* zSLTaM{re$WWN1>k+`d0ePy*(NzE8PI)~xs=VifKE@M@|X)cr0|85oytQY4j zc5s}PyVL_`VeLQb38hD?a;NrAk>~=l(R7)cIhfPx9TPJH&Iw9S2Ko#SI*c@Ze8 zbF&mc;d_15i$Z^m)GG0!^@x$*d+&7AwjShuTYd5`QP~({Pw|%&6T$>&K)hd8*27wS z9M{9jz*FjHA6FcB^sR|?o4zwdGCN%z40;i^;b0Mrg`;2$bTh+iwBe!qxaK3im6$DJ z+eMO)`ToM!J{H`o7_5}$aGlGZA^f!&AlkBq5TC;Pa>g{-r`VVBOrm3DZ@3dCX%X<;CKMGCBdT(B`8RKG5zIgeA-vPj}{s*Gy zapH-hCk^}_i2gD$w;E{qZ<}giuW^ZP{G?~k{dNC_Pjqmdxt3f5C)IoU5CR_H7n3M} z*w2w3D$j-S-n)9Qb74=-N^7COGi67`uB}9#0ZH6EO4rJH(8rGWn3~T-%P_D{MA}Rl zp<%UWH?y`NV;4<{!l``xrhza-V#3k|b=+rsGzN1w1gpj+X>Xmj204f{@;Lw9kmcJx zp>ft9wtS8Z_355WgR2E%{QX=CX zAI^S10(`&R##{(mf%nGlO2p3B`AR=(hmtAxWn!81<)c&WPYsNG{gYYysK=ormCQ?GNeyqg~#6y-WX zc!5+En$Bhm_VQtKGf%deix?~B3+zWAKJ5i-=!pq|3Ximd$$@tUB6pW7=@b^K9X%?_ zmKQr6h#eFY%Em=0O$R+FBvvXADsY!wo@gnYE_fhJpg%QZIkvRlti84~+O<{!U2}?=e5CG6A;?+1a&8FjX5>9q0&?oiUxP zwCZku$r30SE~Q3G_xrtG!eyw4Ac?-Kgx*7I!B{{U~i#_N*J@ zta|$~JFjz^#7Z2%=_-G|yN~SI4X3aF-c&wQ_D_lvmKuw5j{`fod(7^v-6#_!9JUND zTo)(za`L^AUb}w5vU_3MgW-pNH0D{pu@UlajDDct>PpG( ztZ_OnL8I|W9{)!{6cge3&a_jfFL(X;?%i{3kqI);u*xCOz}5&E!bo=$YE0vSsYtzu z=GL~*rQKKa;xVnkKZSQ=@+KY`yaHNMA?AlZk?bVyj&g7JF&1@(Uj%`pLGd#A@;3A9 zlApkS4W+ff)&yrWuYddY-t=G{Gxx|ZRYtaVpo!KX{)2-QtiIw)t4+1Daw)dwrbeE% z%iW%#OE|DT`u#FWyPF$&zHUfv;?UR=a-gq1^mF53)=boy)Z{hp-}m91q476|pjf@LA{Za2{-9x069&}oU@77`k5VT;qo%Wgtq$L z2~4qIq%-*y)Pm4Hm6!jm&^am@-x`nH&m{`9&JCq+F6<$dHj5R}%aws4lhw~1FX?iM z6%D0~I+IgJ)nva)3Zj&#Y_Ay~?<9wyJW=_HKIcg9rmrt&140@KTv`*horas2IkYUs zDSJM~U4zo-V%UxqRr!U&)id>js1|B)Hmu|Yi>u1d?76^CbN?B8pR_x=(5@xPHlB1k z<6eZ&aE8Gr+1h)lU{mk+1u9D8&laBw9t0ur*VQq4h(`N6!;!=PK>cK^qo9Mp;wK>6 zyBJJXC5a_v34AnPKRJ^y`sTC&$QO6dxU)gRlhX3G0iz0ilpFNGiLQWdgf%?W1G>L! z6)nYJ12Y)=kq0;Uya-7$`{=+-mNZ`4OW>JQ@S0}-UCl2*cn_iTt~V&k8M%vTpi|aS z4TByerZ8c=BW`K&eRA8K8Bj9-q=dd_4sc1lgooQc$Aq08!(vmF8SP~NMYrFO*~6zo z)=AwIO0yA`m=9p~a^)@33Po`EU@oy;jx;RgKBm*M%J7sbwMaDe;_=a(IZ2da%zTCd z3w08HvN`iAhnnb1I}YRxZcf=+xugx08s(e(uWHL`1;&r7<{b8P&P8M$W@XE1U7 zeo$|{gFGe*@_%zF!$m>4cig_tb9w;diRZfi)L5b*J?VrPtt95w;fNd2$AwbSSInRK z-fvzB>s}ED_R$6I=J~e#i7&PZjzu+yYr6dwnx5%+-yyxybM$y(x_s{}<) zFY;~}lrvne5-ep{5)y1NaPjx7LreWe1vbZL(R~f}GIb}NiKx$BXw&H)l8&OMLZCr4 zds|G1q*%{RivHcze@HeOje}dUmy;3*w2jfQu~NS46@tYB{BU0Hv%8Mxs%}c}j^6e+ z%SF39B=CUYozF1ztlpxodc!G+tMpeX5t%lLe|ZMuuYv~6x^`Y(;XjFam)ylYr+Juw z;8a_V5;7%QGNsndGwzHAk$=H^+umq@eY9ly)84lIwhSK*LlPW?EAjn7V#H7CeF5_s<9dlq)?++f0? zC6nDAJu!u?NfI~84yIbqW=^9klY!KM=D^Eq1tHx30J|TS4y`G-eQS}LXc%j!6h9t} zO&Y^Y910>c?>!y7&bYmVv)uRcY#iTd!fUwGO8sbld20@?kd5tC#L9hYVOeI2$+Y}6 z!a;k=?8m0PlYsZm<6rq^soq*6R>2Ls_^mPyQANHs$k7=89Z2U0A3>(LyE8x^)@RdL-rw#Lc`oZWL za`@S9czjc~oA%=8TkI~4fwa$&v=Lf3Q&feYOOX`W6aNMYmj|)pQ)=EnqFC?UI)wvi z&0M=v#CsS~5?n4ef4$>Wf6q2irh9HvyGC=*W%nYVq7abA$tE||-HIRx1Hgc$X*1#AJWH@ylG1&xQYiCB zS!|TX3)~RW6lGN8lE0N(wz#XL)d4f`k^USSc>HdxN$)mCla2ecxkhWai<>5tb;5a4i$Q4OR~ad{vVC8d201+W$r14e-tdG0cLRUTAzmQgqY+p; z$tV+3)_dL1IKZ_j0wQeJV5eB~LKi=xmW6EHdm)H>c0+smOxD6>7d$u|GMc*xmTsN@ zY0VwW^9{?fS-d5P)x%dLGOr2{f0=oqTX}gshIx;m zUT;(dz+}qve+yP!J8VuWG9Tw&U#b!<5{3BUZwWCs+gV!0r}UwE4fz323)-hy=|#ZV~YVn%xAnzMWcjoUkM2HXYN6 zVH9LHlUeDA7=GK~wNdL{@vpaXryS6+n;*2_Tvv58ubRblAkx9z{0JWST2U?qa3uuA za&kFiDboQMY}9+v*tuQ{Q@%cw5X?~tNOZ`r1p~fp&-4m4N3!8df%kwW^IB(G8md!< zp7}&O<8Rtq7{IcyTH)TujelM9mn%_O3kPdN{~`AUo8iYD&uY@?S|Qy3;ZCT;NL? z?fLYz)mRdpyhg?t?Fn~gUrqD>D{x$_1HQ4tIr~o^HaGPWl9e$RxyL?ODQYp-C$0Vy zqYFQyUmXF9L zMBD46aqkv6UH<-$srL+I^MBvJ(^|D_Z_%PujM`g_+C@>Lc5Bt%I})SzDvH)_QJb2v zYSiAFialDJgwh~<{@3@upZp$N&xl-+>wKT%IA6!6kzzN9A`;c~an|gy)8?F?gL-c} zl*Tkr;^*vukNT5ub#?9U);;mtABwI-anQ_iY&GwFZIDrpf6A0WxNAdHE>%eI_0wzx z=+|3HlW!;5ypjo!a;JLg38+3O=?6C1$y)s zkO6)!bO+ZC4QxYM2Fa$?oI!8=)MHg?_1kRy^*&KNPY7SxIh>AYpF6XS%1zTLaLrS< z>Y!OUXb_w38Sd`W3dU=EqrS*Ax%=wxX`}pR=AY-@MSR_xCZ#;kkHZG4t5r^ z*t<>+pfwE#J@@{-+q#|@958uP>KnCMGO7jo9pJ|HkwTB>U@{I&+(CoRQtZH-lwx+b znm;=_y0WgVVe4lCKV$mdvP6t?va&wj$-OptE8((SC%L0v+uDFRbFS#bjB+rb3f%NkqyV6$|(26joUjfcuk8X`WSSd#1u9Ma^AfZ;3*1x->=t)#tbm|~bPP+23q+6a9CHB( zwK`^SKwcNh3SVFsblGQ(p2Z2+Le%ZuWsbdL{&3iyaO`(9>2Zn<5mX9TYjYykNUSwpGVQc~(^qWLuO_2knK~m^9 zEO*uyLVD&tUN)Q0r)|lw@&?B_dqD~44V#RkzF?#01&il#8tDf?NwC(hqCw{cAOG^! z+s+nlbvXjbOQ=dOsu~%$-fQ(J{tlvfbo}kv1f%L>maw62nx+^gq7T7~Tf0ZS+oO5} zINK>XV^ktWy!!8@a8oftjMNAJL)=HSW>PU3p_=kGr(EbVkl~PH!>h3=>e$a4%k2?U zzYw-fAJq)Md$_6Y*vQaxB_a*(M|eiGI2k*CHD33bFV{M^(pFLLlaQ1t#W8rOWYAEV z?N>S2&gR{JGq|M+kLdB~)OT_$$l~OvIX*zeeQ-)8!1O}up z$6uyd*1f^v+ZLEbeIIj~!sC3p5+3WY9Ut<}OPfmA0`DBuqX%=u-O(x^S;a2w<^ z$7)QDzi3xQ$t@|XbqI}4ax!)w5gq<5aZ@bv`l?$;-ayUjXBN+$VYy{T+NAbCKGgZI zai?lq-y%75GNRAh+iUqkVQzRUXMCk>&`ZAEK(|l)Z80Wo^l|!GzUm|6o*|yZ+J)l# z8k@$j3J;xAWt74WW3NrGX)uMj@YHQh!w+CM7cuw>%0$ zE#rN(0mcIlF3XZiVy-_0NGM>w>4XG$``0L5){Y6$1Eo`l0n3puyI+*%y?k7}dFx6FK>k zo`k)xjpM67hIu3AwJ3U1jHyA0Jizrldyn_~S%9s)jn5Z}U%Ut5xzEoY}dw zoiwC}dB1DjyCidww;FOXS2;Czxk(Rvm1v(4q`y*XVVs}mBbI7O%t(Lpyz7}ou#Yt< zj1@@cmtedYkHo6KzySM!pXEId!LLZbY(iffyY1k|QbO?9UTN;5iPYY=Hjfkp`Zf4H z6kjf+5+;F0_Ew(KtnEvlp`8Ccxo|CHc;G)&w#?K3 zwG{sB!+Ta6x5+DcXC}cv*;08A*{0L(@+hVL)&l(@2QU_L+6_%!6P~?e#kT)6$)}kY z*Dh|D$=2=(@Ze9D;BtF1G$Jc)1b$?ZZ)#F^Hw$j|=gkoJYYDJH=gKI(VsVIx>KG2x%NAI`!|b@%0F5Z8-%a&i7c3Nj`Q{T55uH(E{AGU zp__l#>*ceHv#h8v6T_zOvu*?@ZMIt(g21V@epsFxOZY@rqeo-OlF!$=bGBn^gT9qCO>1yJ!lqu|F^gr|^utw^ zZwJDo{Ct}CKGU8UNpT2+SYNh&m}m?Ap!GHjUxJbosg((7{kw!LVr7@wj~~Gx`VcYf z1TzTa-Q&Pn&1u&c5kk!es6^xGtb>PgiT8NeL{Y7OZ>tfut*@)U-In0+!C?=vKZgo# zS@g`Ex$A(Tt*a>fOz?*WTY0a=XGRf@6(Ux@8r}6RNUfA5UoK+<|n21a+WQQ`dFwI-Kocg%;k3^Hskqovj2pX9I zIMAW9bv9x-gT}q-h9M&PAOC@FeMkF}-^rar$8>3##ms0f6Pi1pqz)nHzxUC^T>J-m z-1IoG#?VuGXj>s;oRoOy{UghMJ^T++7r1iQ3&;-tsD!SM`6$;HGPkn}R48S&6Y5|}7o!HU zF)hE8g5Cxv7|g=D9mBi{O@m)9r?=B(v(Oi(c0YCmr72+c{{t=5ux#%houXYX!)INO z?;u$EbrWV-)um6+S&tYCnvwr|o0RdDrp~ga5f^n~^5S2H^;xzAgL`^ zq3SO-5N6K0g8M0IDU7pS8)^R|K*iRi-N{3&8hE`go3EFHg8s^WL?YK}-(Y>vlAAo; z<0RHGU@{mteX2dzH-DpS&3sK$kY&EH15fxmh(g#hI{C;g?Q&YrdXtX6UEo`FU~(Gc zH{suUT5PZ9uz5d+nV!i0P*9?c%k_L9@ACT;%bz=K1)y;4-`9g2F-_Ugmp9@|cQz&q z{ssv{x&>vdFG}$Oz$rgqUcl+rWnMrDA7y8MH^HnIYwTQ{ix|x~M`*Rlyn5kS0z_o_ zzr)9fH$r&J{fw5G$mM15Gq76=4;WDW&2(uZHnQ%hryKQ_Ty!w1?Nvy#=7y@qnQyxD z%uO3qXbnc$hSNc3-2QC@TMhJ07s&c&yJ|lWd){%M5xP6FQuc~p|8Gb=1=NpqF;T44 zN}UUyW8Pl3wILP_3l+#uGsf~u1)ygJKC_I)mE+YMP@Ko&~F}N=E4wQ7PCBd2oogL z%i3m+z9NM0nSbq154tNBF8Q%KjA!^vO{n1ExI8>KyF@G%&E2a&j3 zd}{9^_N>>#g(L3U%9|u30Lf<*Jv6+1dQ1YhL*KsF6B+m&sX^NCvYF<382sN_3m^Z^lIHV&yqTI&uX$5QXGo_OWtX$; z!xtyxCNQ~ZO`%$PXhv6^7UZ?6!dxB~Ly1g8KNB5fniTH`d``g%Eb#GbjV{b$>_$jw zto*lhyNwkK$3oNLn^t@ekE}#TDLVB3XQue2s}UL9$sgLTDH`Z7f?DGbbPhClZh(f+ zf2=36xj`o9(hWQqx57@NRV=6PKuR~}FfZ&r4NegQpj}HgEuXxb!Fbpxn1A&1v*S>I ztRQivMKk&+F^p2V#P6w9e!|!}FiXtNQ15!~>WpB6OTbsGsgB_^lJVf)J6bzYYjY(| zIb;9SyNlfx8=_CIcn5HT$1R}T#dw@{)}~c~P%O~TNeCHT*6_nVnQCgSaocgp0XNhS zoeVP%kyZb0Ni0~kD|+14d=j9EDUJV%NkrXcRI(7)mVEY;=FfN&?*qNwBYAu*?B@1O zzC>{w-_u)2yv5H_6}9ebJRMf?j1q5;Fl57j0+OC>v0i@gGdr?=+F!`&G}IAc?|ivv z9C6TJT9@O*ZllRaq#Qz+w8+`QSywv+#YzGwb;!Uv)rA|2e#S<^^Vu)+ZVpI11|cu+ zx4b>cFV&e2Xiq*Qz6k(_cQ|gJf?Z_5(H#P1oJo+L%Pn#lDa&kbNs&>1%L%Qj+8-bP zazA>hW+;Bm2|Qc`Gn?97iPQ{u<9d`wLkFT|1=jxn%^)kdyOmjrwQkIfs-I)P_ zwy-Aqxl`q}cS13x2*o^URVdIK>BP+zu@W49(1Foyo7*zr=yQ6J6H5Xm?^Af{X50xv z_w9L!(*p6bFDeA6;<5TgV&T=FQy3>aeS&WnbEAaBR(B z)$l^Hh6NjI?un?#_;5l6CNQ(;Z{L%o0yZ|j!!=khaL(0ZM}?2xmo5JbACT`7+5ys+ zo#Zt+jW5YeaR)?(7his;R*xR~xX}h~6Xiw@Z)dwA?R)vQMFZhj<})IKu!$4k12NAo_mi(5 zAgMU9@HR=722Yg48=*{xL|1J716h|aENp1vdnyh{8R7Y)A`|0rL4fC|N?Bm<)nqa2(2n!$+em8lj-uz<-nyWk9n3y9WU>1{5E6-_ zIUGz2+%>>10&WnC%&XrjrCS#o0Zo*9^@-`0W|6L$ed@#(13$Bxtba;Y1A)}Qw_6;AYC+N zB@5G4ZKnWN^f*}(>-5N{z*S9S14_Ukma}fCGM^B0n%K!4ShF}_O^MSCC^^WaAr|m( z-Qnw=9hq#b zN@`5OC9$Nv+3u-+epQoiwuq12-n)hJmpMkO8+8lHm7if(mb>42wu}Lvh|=LP`1sxy zsmc!{+#?8e^`hH+v*^|09#P+944fRhiQYBBT5h*+=jhCTHOka*SQ4Y?67wDy0J5>Y5)wNr4X~&Id*6S? zUFfgSU%;H$?oJLJ6*ULY$C0J`b%)Hi9lP|+3@(=$;U@T8YM{69lk+swaAu*2I&8sn zsn-sPbsXD7`JpbC=^H}P3e16vm#Wx+4G;D}*%ynx36n8xv;h)k)rkQT=g0L(drI2) zk?v5NPR#4n2W=9Ofp(V6qv~nACpAVa zE*7#wY5ZQ%#xF}qB}nZ}oDh1qh0u+3D5!(@Mn14;tM+GCoPt2kO8|eaQ2pleR(WP? zBCs%VVx!7`Z@iPsv#JKfUrI(uIadG({>k^Oh;L*43djQ42XFXB4v%DB=U1OJom35ZOx zmKOEXc1S@cm;w53J$4-|7ZQXa+KP#DnDdiueq{EVSUV6Y$}cSF#p?X}dqVfHye7{o z^zA8@M=~DaIvImP_F+4DmaxGiy@qZwV+tP^4J<6UG$E(AJ8%QHOnxarO@T99QNSpe z>W&?IxG9v>M0pRVj9y(xsd5S+WLaiux>w|C_fYB4#|S1%O=DxS;t1kvKxjvt4%`Yq z*7}AAC$Mlwjk7@CRSW!>XhzlKAd0&isLxbb4OAaD)J)06j-=*hxo+dhYWbA1s1hEk z?6h8FcEucJP05J}p*7&|CjaTR>{}ZmdbptuD>6$HC7{E^CjP;l>IZj>BC zcb>hJ+N|5ocg&56Cx4!NtPiE};VBgIkP?oV+_f-S*vK2t2~{&Bk$u8i#-ESfG0IA2 zQ)3lVGG`TLU&2+gL-rmg%B39(s!0a_2P*h&QeERtHoaw2_>3z&Z*>3oqC$6To{su5 zRPfNrpVkXa#oZv zR*0nUcabnd}|AbhGAb>ORi)I}sX75z_2y z858S4A1rdhiir$#H)mqLr`1gd5*fb=GqXf8fhhY(JQ801a(<~%NMOgp2)yCkIkV8O zqjp*Tt>it>JnfKB_L@pZ-(RT@K#`MX87;$egXPLds$8we^hAeF10V>`F7?*jjpQ@W zp2V$nQ3-qx1>oIHB-f5wt?f;14|Ur;eTHs&7doARADuk*SORu6zaD#FO*01-3NS)* z(1A8y?&F8-aW_P-wTs~c?8NBf{g+@Zr!OnP>HLZ6TN>imIzS$_829Ej2_|%Z_g`>w zV{Y!>1tC?q``vIBHP4atMp-e@M2fOWyhe|#ro$VoFY5)^?Di4x2c258E~U^b$9%2n zCX1$RWuRTN&fWX1_9ZUCA3F&{`f2se(rEQnLI3wcko>z2ZTd;&!+Ab|=PPdZbA~hs zRzEgf&SiK0ck5fr>ut^nCZT^OADq%SkRMp{DV2k>&z;tut!=!Xb!dxMfz_+Ek`KH3 zbwhQ#N`m#eQ)sOYnq^V|IU*j8p%G)9fYbM(t9kE!Oubpn3E@F8>36==a(k?{#gTZE zg}<2RRJO>65qk#+M!l0mwx#|u)vRB-U>nfAfUZAdK|vVCo6>&={(-z!PZ=-3OLqK4JS)NGyi7@uiwBB*+AyEYs@BZ>d!WI8svHl}dg3+yY_QjR!? z`Yv~SQq)Aj?I9ARw$IeU!QdMFLAu?IqxChEQZ8-c z((TQ$ub*M4_`uu5FB{?M$1P+9CGadnPnW$AAaaU-DtnT-+9=FP|NFb&ed7JUILL+` zDA2?lQ<`$*UW?OqVaO;=z?O97NowPR+o_&6ctM0RU#f{{yZ|Y3z*B(0McV=P+Bi&! zJG+wbUqIzv>-}=$p9;r!;XZVetsf8P1vQA;fJ`?`#QEXuroT3qosHX!SA&zZjgwMP zY6n6OfR}g$quc_uTm5zV?s0tcCv*K`0&cV^L(3LCt>+qna1Q5&KZ)VAxAcu_QDnv zz~-F$&q_POQV%~lIKKAJDAyBx8eR@UsUG&ot10}i{th=P-$A3f1iw$b!BVV*d>{Gc}3Tj#v3qxF#9xeRw zGfb&D(PYJykjEmo=zr+G_)(FHOpY2gBDrmFMv&z3(;F$+liP1@$8K@~wq?s}rds1p zmG2q`=|&#m`39v)8Y?SG*>l+@+BY;Y4T$`kpUOM+4Wj>XV-Nfb<-43bV&3YZRGuej zE_C)>8VEKzIkqE7Zzlh0|9b53e0@q-r|;o@WA2^LI<{AHw&>+z{F#lTrYij65 z9MBg|+A*=FypuUZ@gcAG{PHAN&_Q=#f#XY%d;oJ3I^gbsHo6uVBbBmDTu(M;n4aXn>{RbM^-$m2}jxaGsEM1eYrTPACp82FG@Di&7N^NJ%tmk+zVg_&mRe#R@GGN{8+92t8BU(_p!1neu;vS z`hna-U3KvcbxJosNaQ>?f*H{_ZZHwLC=vc0?tCkLn+|`16KMnP;UzXlzrOW*b1OSN zMvnRV+q_3}o8^PP&U!}XIkKIMv%!)#I6%M+_|Do|FRUA5Nw-2}78Xu6+TV3PqOL$a z9eykuo3S*0zlJ=Jt-?`4hJp`1X2`2fYN|?ncx97#gkJAlXm!3RR^YTbvluL$G zczk|R+(>s*AoCLjsjT^(DZv${acbQFZ5U|S)PY<+N1McbS*%9XHx~R)ynicb4rbQaPbIV!JQ@1Qvm-L!*FW{rdLP zodQk-Yr6%F?rN-!-zexst>rGf#2O1I)yQRJjng!5o+&fgLHX@Y9Qi$8*&CNtl=w$y z@0nrL2N9%*9yNqR7aI(MW%3Cs!Y0oxi^&8exEV-1k>39N8dlEs!aK-=0^RpT+8$JM zz)pGlse=h^dq=#y&9a^dC54Idq_}lZ)*MI%=Vrqge11&`*gvZ>AuGvxTdck#`#e0B zM>b_V6H%9PjNI^uZHp=h>!7PdtvjX5w;g8dRy7M-JYVYV^_&^}Xb(CbvY}Wsa;^3Q zB2rQ{xG|viEo2{M9-cbt(Nj^l9vkbGY*>c`D`q<1!&G=BqAn{A_ zlPV$q!4XMj$!MItD`(sDJeFJYFIOLLm~T^VKlzgD^{&_N_PV%m(-d2Qrc+~oXGA4( zln;6;5v`c)*e~K}wl7c61e>V}gf6cxm`=t2Y_8pMoUlzE@RhcAYg3C-mRD~nly@(2I@qM`bA?&8HU&>12>)~K;MB; zJ|TNw5 zoIUz)Tb~)IAyRKUKjdh3igR!-)A`YA%ac; zsE7TXQm>G@w$0aK3w1wby`9Hfy{0Vf!E@3k_-+wDyXb_!HD?T(?MOv$Vo53SUZX!J2dbky)hgWMw5PAySZX$pQc!R#_-@f#W=_z`N{uk#beZhOW`L=$4R-pEjDf&U0 zgefPRi4#6alMcpyhLAUwNPIWCvEP_Ox${$=v1gDi{c?RVgevf{5} zv`3`oke=J}B>#X2UPBuuMe>%_ISLHCp<0o;ovFpQJ28KFGHlnKwijobxWk29lX`U8 zO+$hmF+(Noyzz^M*=&_jC<@)}DgS+};psQcPsMeR`<=PTE<&%C9Y)g0c!xOIKTg+( z>9KN_a^(6KJ?}oi$#a^S!iv19a^E)KJZu9(4_#Jmco|>ODf%a>2<2;l4ch0Qw7sK1m#R8pe>G&vz|l%Uy^e)Z9`vWQ`56z z)@UMwR%zTYI11>B#&_D^W`;_u(i#^N(CRDx-wXV6i|NGXMoHxnCs}_GCkI+juk3g* zIH_8){9JB)Oa@{%-`aG)jy79`zK`{>AJ5cW=9}M0Td$`nqsTPVLD+jP*6m-OfwexH8B8SpQLk$9JAFHn-F^w8Mk-W!3J+V|LcU?*dHjPN zfyFy|7!3xVwdqn2sX+5%dR7xHkgM=C^Lj>HQf5TGIf!A@;fXXCiHbCNmNe;12l5pI z6{2Wmpud|SVKDLU#jzzcn!n`798f&IP34@OS&&!PmrPe7i+bx|^om--+NbUASW=Xi z97*B@qzP{C;slE-wVRCczSs2?5juU^wNs4f zv!Pn3xtn^4h2fNDh@9vxT1T|=Tvj{bwb-%Q8WYOY zesE-FB zoWEF65A>_aD+q{%X6aAsWm=%J*OBf8rGY+oB--dK!{|%t8h0M_b;sxu%j*n@6x(y( zi`v$=UHnG0XjK@|4b15ou&&ah)k&e8MH!XT8&9bFOniSL^gMks_-0^1l>-7evZPi1 zv)$vx5k^Y;%0(2iMxUBi^S(ghM@DnvZWgjNB6v{04pZZMv&KDb0dBQ^qF)uLJe2>i z{HM|*y5_6=R`7Ow9oHX-{B-GFzrnnjSm3T`QBg!MO>O;~8T z#0Sbb@dTRy8TX!DMsSjf$ChXPfE{lkS^0!d_HfHB2|J0=6W&2BQiYz@3qfC60~ z^}N0B6D)6hNE(>FAJh&b;^9Q~K=YZi4@}`!ZKcr|YV~J?$uaRurdVnQ*C04Z(I%9U z`Ji_?>0Oh+RC;5|Vzp@RtW2CZX>Zdf)@Zgs9-hNHA9Hew&kmzpA7Z3`hizciIzhKp zP`3j1ey4$D&LgX7v@fVV*DEX6Jda{H0=1fs5+V**6F7^C+fnB2=rJtp1O=rOzvmh4De#sdEpNE^i?Q zKUqv42??(@l!0%Zhh<|Mz_EfnNV_=AA-ofGubhz^>OImyr+N}Ux{}n#wZ+BPvV>x_ z1&@xlEkU4%SCzq#bLx~>f@4m9rJ^Pw(hBS6*CW)BC>{M|lf}>J)P@wbA>z{6!ISoi?5q zHJTF$KEES+R8nhPfuJ5&KD@)&^^#%XfmY4m<%u<||3LY?c)GLZ$yZ9LuUfacyk-Hd z##64Dx6rQo99yyzKCjd4KS!rrDfglm4HFkWEaWpTPY~U{9&-QG4+8f3-Y5Ul?a!Eb z#?r&jP%8&-nlf{~46ZRgP)+5+doXx{x%R6G{&Uc45LOkgdpRV1BAYT$HtA93w0M7O zX4}{N8Lc0q^dvM&Y^RwnwRDS|^61?n3eqgl!yj2U$OfG>D=)@I=;;1_wT|!0$4b8^ zkw2IZcn4enDu(Pw>Ap#SB*zME!)L`)w}eOs{VD+Ni<5V~f{2kWp_o{x*6(Y0}6X2 z<8hkr{*dM=3|KZV%sge%EbX}$ZAzD9iF|58;mb+v-+~7vJVvB5_T2`ziiFO*ulocqdAZ4eVzqW`#L3mf!(t=9hcN)69f zHh-#J0_u|T5q#z~F5uo-JX?A~kd^a7DZi+BLP&(-YM9AhsMEdDBCF;cug1J7Vd+UF zYaT?8XNNr95$dA(Qege3zrN)l&=oR? zr3>)-MTdW5_jf!LnA+h(^YyScx3XIK$}>)#+;hiVr^rZqkPp$!-d zb$yM8yuBaKTljx3%1x^+hD;{{T)1uc8P+SAcxXsUdR*{xsK5?VKZ8HroN+^OY5BZd zK4@U&&ez&<>HRy$54xl@b%c`aKb#p_T1|~?<7^V@OA+P$K?l??>vTuGkAFmE6yA4^CdyNFzFPkI(z$II#7~k4cXG)Ab^`{ZplW5pe2hL0wlQoDHUqu|o~^ zRo*IGulHpew|}+lsc@cIs)?kl&MUr@eDbQ7Qv5wSV}-Vlo5|f)K@Z*A8|+t*u$gY$ z)hsNdBc|g^60Nc9ezBTJ?Gu4$S?#wE-2S=t2n&^ilg`7G$chYRk54Y7`0e72UT(vb z?30!(wM1HM)Knr9ALxQi;Z_@C%kQ@Hd~k?rb$L_ymRBo2Ek2mX zF~oe#xZVxi(na9W$%JzPJR#ViadK3*MP$LModptK&T9%ksL`_&&NQTRxlaq9eX9S! zd8PES=q%^53j^)Z3Aij|e}pA2ALWToFcUKzC4F>GIQ!_=!GnA4RLK-l{h_Hhig$~M zhTUkWBTK=1D5V15A)Ku({im7bzv$iR8T*!4OUlL`mSGzB@0}z(?beT10Zc5z5bGSc zc=D(wCil!K|FMq4gVWbVopB}i4|A^yei(glKRgGmoR7;$vojDb@^!4Z{$89|O@@hn ztdQik3!XfNZbKhpN0zm_Fmy37YkweWDLTk$vG?C8ozI7*f(+<1uui$|FPV_`aU9t< zkUL^w{{`y9bSA31@sdDQ%B)-v+L<5*<~`8)4Er1UUM{3~Z%wuZ+X>UzN})1WM{H@! zvJtqs`QjU$eXUpPJ}0TUmn^2S{mO{l=3dsZ9`?!4Ky$r?P7a<3?$3>7)g2PP4Iw0h zvWoOKqfYm!zbYq^+N8E76Caw}d`}^pa};z6kSF02et#6KejMO;Bhd@2l}V;-i3Vai ztm^kFH+#Qm+KKf;QT3!gUb~c%w_a{Hl-C`$xr?*;WEi8A_{N3`r_@narvM+<=R)DSD)G05*XyhW0Dr=0~+W>F1irgIl-hGg$U}Zb#75NcpG_})}+>tJC(7O z7B4+Lg)1x(*OhzU3bqflfe zGl5n(kGtv)gXA{7fT#R%{e9@e)i{05H053R=|{i8YUAecKZ%;6u2vlqUingoMpmc3 zZd|j`Z{ceA)S9Pvp-$-sX_W+`)PX-UC+D*DY$Vo9t1kyxU7|Q{W#c{Pzv6dJx1a+j z=N4s9AJc}zS=@O*8{0rr-;&gOVOFd`g7%?_=i$`<%1S{yqS5Si9PQ{<0kHIHfKKUO z56_%BlrYhaU6c|(JS6G zR zTo!{sBt)$rnGY)*A~t$Nd{ks0P(tT$9fzF54yx;cVMgel@5dHmG+UBliJ{CS_$4}EV7l=s2{S;|(IJRO zmTCPt3f2yU;5{@n1_n@EdwpuvqU9;IvhPM16jdf_S>O48P#^x2g>Mu6in9bBJzjR4 zv`Viob@Pk%EzhW|)sdw7Z>#ozZN$>y)^4mAWz3z-yzjnmwb{0w%dNukasKZ&pFg@& zeILmyJeFo%T>qbRvX3%(O$z&>lLtHNRcbXDOmE3x(3A#NIH1;r&ByE*6cez4Pl-S^ zdc6SqZq*3KePa|Dn@4_pd}=Uru#y2dPB1Uwb+Ol16~u~5r0@)+ghLzFGHwikj$1o< zWU#>J7;3*ciIO6R);fbKI#%PK=dUq(DH@@h(y#R7gv_!10C|ned~L71MBzwJW!=3owtQu?^=W$XZ=V&b2TSM(m2o3^PN%W z_$$AsyC<=ec%SZ>2MmVYzR`LIut@+))1@Jr9a)O?=rw+6nqItrXA2gg``B)wRr1B- zQ`BR{@y2FNIq$hB9*FAgrf+8H+9_O;-{YJ*@T$$Xy!u2li?E(k|fyXd)FS(KFI!K4APb-^u6`oCEdCyko*ljEz0xyI!-4?G|<6|qN zeAj7~RCcdCi})G7mxDTjxGDwJcDT?1f@&M7QoNA0?RpoLgVI(5*mx;VGILSK=d6!p zuWBf}Hm#&@bl|@b072M6){PLs*c;&M*WPOIpi07Bfg3CjusE_m+FdT08?~m5+V^5sD2hJ^^(_W#)Q7F=}brY zgSgpPey=Fl5D#$#blvNEw;qFNw2t1vNcR5FHI}I1oD;hlg0&|&%9Ys=8$4hls~QPn z8sboR%^mXKuS&?%$Z=$Q$Osy6phJ>dTCz4)C<3iYw5kMy7qfweEw4JcAST}BU3Oaz_2Zk%mcxqs-b#+AGQ zG6jhaL1!wQ5D(=fgQ_(*4?U=sw9B67lz!K4LD^eubBnf6sJm}<0%sBG7APkkxe-|MkeOYv0gbM`De))P$V%9dR8|lwS(!ElQ7iHPy$X z*iz@~0QZ|etD8!ODINIWcdqOT`umn75x%V_z(#fc^^*IJd8Jcg2!(&;_Oeth_!bG5 zbOFqJx*RP7Os1Ni@;Ax$C+N+dd|hqh$yTfvY2g^y5_(n{nPKzohmyDu$J0!mo>qdO ztqzlIA1vhZ*X`#Hqs`j)ZDTU+gPw2e^91}W*UcIO?$ZV(x}4Yi>ig1s@2NBg)$19g z44}{r1a8kPP<=DG0n=;Ri6KmPy*}=Wu?wX*u+!g3+DoV9NqwY7LV{an*6ptx@7k#B zYEUahn{2a!S#dmXIj7|;g>QV6!_*1O%GeeC%kU;FMntqltByiUh|!~i`Jz}b=6>&h z0ytCKO3cvOCg~4^ zOL{%J(0hPjWr(RI+EkvWy-n?6DIt>5P-WhM-Tk9TG4m8gp<0r|gmi zq>B&R#Am_J9)C354}irln=+-;7UXb5fLHdd^X;b#%H)N0qQA>}C|Rq9PK>9(_sxi5M_aFTkH<5udQ0_28kqd8MIg3+UMveorip6G z?Q^{e8{+&RV`K=UCUi*m;yA(oS1bZ4dsI(yrc_9NOAqBkiC^fiO@WGEA{gzTjf-p3Fw=l%zpQ@Hza zHh{UCZ=nVasKS700)bCn4b)KxSkAdBqyNR;g%Rqi-g7d#cWB)pp6hitnorT(o{GZT z%(3P2_Ga-_`tGxwpK)1>d+2D`I1jbeaSoMP>3@JttqAhUb9X#aPisfNelF1U(TqT)i{8< z`FEc*a3`^zy1Hr8D}#&GQ^)7koec7GF`O{;Sd}(>uGMHlaZ>Bom>KWaFp~dsL8He> zyHjdX8hZGOhcx^@ZmPS7TyUP3iQBbJ?`R7s)2`qDXi#y#j!ichIcK6@ctBIxQT>Lk zz7F)>BTL>Vav6iGq}h7urlS45&Rg}&;_BH@vCWrJpOuU4*<3&I&6!#QKWXkd;>OW7 z`m7qWK)(*vkS}@?3F5z+Wa1UgmX8U!Q@@-GH)>FQ%s5<}6*piy@;&?(J#dvx{MCm= zn2R$v(QCGJPkO8TliidrWqr;PE}>i_<3%5&Et+IZzW&!_`Gq*5+YFvpc1Z73I^n)1 zg>o4UiB;zC^}l)*t?)L3M3aLxlksP?OF83DK^L3Q*Uprb&TS>}hs@tfXaxcbfhN5D zx}4Te#t~RCEuo~MPt+Nsr+;+mSDXmuUqXkr&!)UWpQ4+)=doN@TiACgel_^zbh7kd zQ?P3R@o`O~`6OjcN3-OI^>KyIw8yd0%0v+_nhlg1??p*m~A2Y(b8 zYq^4rHnp4oR^M*Tcecg*GtNwmq=@BH8S4J&qre)DiS!kIjVlKZ_X8sL`4WtT&RaI~ zqvsZ*w)ki2P5|{C{`dYp>0$g^S(|@V)x7)lR|{=bS_!=O?0u%L-H%)rzwo7hEtSYQ z6H88&2^BfemWcm34Eu&Meq|WLDYXI^peywdcBufzefDCrPtUe=)i)Dk^l8+4E(u8* zf{Ez@3mbrPN7?q)G9?w`}A!_^Ale}&w6q~hEF6i_r45K zo$`=q@_?AHi#FBc1bv}YmRNR8feQhsLC4%hD5uqIj<29yS3v&4OJb@~mX*gfj8_$G zVaka`fU)KB@=ufhK&+k6K*&Z`1P)S)@X#yzvAHPd!25zJ{b2(ItnthquEIJT)x*z{ zdz*YG>jEdlD8mO4%;Geqs)P+bwqFkXCF2OzQp$;~h53iHMws6o+&jk;eg9}nR(&c& z!Br+T*Kg{UGRs(aU@$c`*AdkkGOqbzcZ};^np%*2U=?MI6?9Gx5WfkDFaNTibK5D< zTX@nOTdWh}BD!qR=&bozRLsC_cw)sd`_bIa+_I}JNen>@0x{Dn-Grxe!H}(NWu@&& zZZhZh?u+cVk3!OPIpxk?eNk`hxDfOw7f}JbhcJl9qdU%guVl#6S58a!rgXNsQPq@O z)FRTS`E!SmTW#YUKzG?v-a~S4&~uy{0jyBP6OwsCkUOFM4dSPQ#nmZ1Se~t*qDS?6|yb(&f zg6-|SBbae*(*8tZaX|0?l(s(NX4!|AB|(xaUlUKBP$q;}2#sG)c5i5Mq5kpQWdj`u z9msajXZE#^IIl-O`sCwP(|q`u5ROiA6V$bclg7N+%619jU)E~1d6rr)J5H|)KPTos z{tv`I9yEBAiWY;*;8uC)O%S@g zg_RTD4kg^}xf7fbXd;(65lKhswrAW#$X4FJNA`eEkt0IX6tLk_V8RJvMO^|Idcj0b zJ|Sl+Ev`(cM`q|&kphsq?iJ5_gMj)z`_QzdLN0So>sC*51}D9FOFgixJl)vtVlJy~ z7cn!lK#(lO`I3(FIp8b@0)e{m=yt4$fx!(x%w>al1#LhdsFtY&xu*zpWL=ii2Go`J zy!-yUjcwV|=(|rc3wr`#UC5uR_pIgk6d6~$+d|>ijnE_H);R{MJzbMOsXCWnijA1x z{vhLxH_9yhZaRyvC(Qa&jc!o9e$=bkm0&-GuRy+%gd;&`^;s_=UoM{b0`1vPf$+dn z-GcXtocodSY{ zNOyPF42X0O-O@84Fi3o7|Ib?I;#|$m>^*D8yzlcozk=h`<^2mE$;~Q$dD{PtAag8P z@(1J%+tVTVYuc0-uu(PWpAGJYe1!Z1Lki#8yE&9N*tiPB)-$l(wZE`sCDD*FvR0xE zQ!=r3W$>YN|GBXAqXrdXc_s3jP}52YjI2PjRw1smEePY|PA}#A?^^Jig5nTQdNkvlI(oyLeb+k0oEAc5tST{7 zP@$%y7`qZ=Pen73Uoql2uyCp$D5q^{iTxEv0eBS}QTKO@hI0r0m((!>JAdhfbF2R0 zbE{qKaL{|k5{v=ROHRdehX)`3DvdZ;<{~7A=C-KH%qZuZZ&jVm!dd+ zRi=o=Wq&K#Sv{O^V%xTR_cFSVNDWUP{+ucJ$PcXm!f{GoTc@*V# zbANvG=Pe=93Rs-qEDMZtx^UpOSDon9)#!R)|6b-n@jr+kLOIPs>&toi5lZG@#)M?r zqajnVd62)15`0Z}-_X6ey5NY_#()~1H;*GS@h=;m1*inv0zC(9Z>>)6I3XVllP=1$b~pv9U$3M{9b|rU zHOC#rN*qZQv#Lbv=X)jyW{epur08MUJy+DVZk!KRw(#?#QyaBP-l0jMftQztfPjl& zeaZtkU_{$}8GCLhHC?}rICr``R9OgFo3kXoe~Gw$NsmV{)Xcl1{IiCwY9hy#KOSB_ zTE9khdpj?ox>JwiU#}AK7WTSip=H+XWe@L#t-Xb!jf1jpT-${us=A>9`!B%M5*)|# zD29C6p{1hnglxi=jpN+7F5G8Fomj8zz;5f~^cd|%V^1ky2SDC52HWh&U5;?$`nwVO zn)JN3&(PBTQxt`tg`r07PPEKJ32ipc$jT!PvL68&xifo*1i}4`)mXIp3)IAInnMa+ zCnoAiONK)L-4tWuxwJ~Z3u7K*&6oSa+O5|5IKh6L=gB_4{yEOc^_b!7!AA1%IJSEY zI))-SUw1{d)@%JoqT$=d*_z^cY1?zVp;H&8(aGOkp^a{QUpSI-gg%wOXvePF&U;K~ zPg>jvoemXv`Vnjczt)CB&wWZ9IB&bXtQ%mzB-Xn9;?k`|<9=KDTO>sV_I=nB0lfl5 z4Uu4szV{yyv>FKC@=9fgjMCN3Z*2p=6HD`|Qg|LmDpB1(NTlT+CIzzLa=VLzQ??qi zhf|We777I5hgF-@ORgn+j)a4bOzquX=~J@@zGKiAT?OjOdX{SLAUvS7$Zo5yQ1n93 z?#5-!GBTYD1o5RS@pwF}Vq!+5+}p0wK#l&XFOL$iv0Z{P!I9>u`rAuI1$4U5N;gPL zGMA%7J4u?~4s-}8xVNw+_#{N(r$cSIHjRL_klHlwxOhog(-lER_{g?7?kl$T*rM)v zMlymS*=7`V<(tQ<$+9X-3E>Ti#fgOK5G^9=AJp}-?9BJkmMc!7PS1!=Ag>~s9i*{D zsPGz(B{8C4al%Q=`j$vw>Ha+~Uc+Hd=_zjdxBQ`0uchY0&%Wkxuf3+D>RoCkYSuEA!i?qA``4rYzZW86u8Z#3Q2d}x^h67WK6jZZm zx1B9KNBElm^Mq>nwAt+32?24gs!1bk3)%zUkWCj~ZZa~tuZ;yUqGnuzn1TL7-nC~M z;Pd(Ft|7qcCSU$T(b|44zt>yP`g#Uwmnui1@2;iL1XIDc5(R0bhJG2>vN4ke+VrQn zp;Zi(ctl*$p`dg^uj=c;+sTxX%hI&cPR0sdUewZW1;euTA1f59tLV+eNeSw}8zczf zv*vezpX^Yf5XvkaOn)II@B!obb^EL0vS$DhZM{gU8YlWxNXdPe_ES&u;$L5rVR$2x zPDa}J>B5b~<(^qt8j|84f${+3mq|^8P@RA&VbEenIBQ$%x!RPkz=f<_40Zn0uMX-w zgx+qXv23HI>VG*btkWPMyw1z-nhx+1gQfz#4Z0%U;V#NAmH#(3T{@qi;|s{ zeGRq0d-tkSNnvH5fvt90^24-DS~?%Q#whregpE*~aD1JmA-L&ADEwe%`%5di@|UM` zq*P2q;$lj;5M@$!q+rnZUPm=4_8?$mp0pOm<$0~O&jDulToJujL}%_LgTR(!i;(_! z!@IDrbCZW=9KNT0SEyH=J{tY0MFz=OM-77a7vlW&8pK7iDtF3Tu9u*XoH`q~5=17Q zC`_3P6bjg8LZ8Em*S5;{G?5?GgK!*2TbweR^UKgMFKpJR2v>A%SsZakzhj9qhOs-c zPq1_9ovJK*@Avum#u179{hJ;Va&x&V^@-{l|p~AYJhQK zWyq10*P|TjI0;^1>!=ZXZH=Y$t?<^q))1R=p)8S18P&>)ue3 z=@rNQ^#t}JD$GJ#6La(nas7Ulfm#g+rC@DYLI}<1W+88YO>bC5aGfFfmpiexP-irm zKWbV){4ehx&(PT=JrK2g%;UQ(?YP#7iG*S|XY)AnYMvL#UzEhdq&=dh+_e(I zGhzDk;Gxmcjkh4TGUo5B$y7SZDk%aV3#brN@*x1L<^^ma_XIrqquEHlQ@ zU=l8US(Gx=XNm-v@7ND45cX?;>ss)B$-7dJJ-T~Q@YGwi!7zEe!0HRH-?*)HT*G6S z40KK!u5K#3q(O{acW6%$1a!~%qpS%InYymwLYwZsiM!pE(=cVB+#8`{xY8{^5LUf) z1gzq*u zCKU253Eem{-YGapW5c#?;1I?va4X1Y7l?wOh;x`_u%)Kv_hSTp1FoBIbfHFhx+IJDQA8%1>-b;}@{|0KdP!=S3o9$5$q29Y2 z(0Yn@&P`yZl(x1pGS&UtgEi9(FLQ$agD(codzevgt}9$W5Wl-%4gPUY|B+*2Qh!%t z2!x^la0)P!Hu__|Ye}|SgHA;m0?Zef!p*Oc%zydVJOQ9?T5z987z$Q&>v+?l-1-zmh~+E8=> zdLq1&7u;)mX_lNvtdY>S|Dgz3G!&UuRlVMRm>y1n`3(V{rXCgC5rQFBLt<_1?oF?6 zG`LPxd-JW5iS@|wsEFl2X&K^*ztu^8dfRXZzL9-qI1!)tvlNnHownGdj>1wYZREdj z*ugB)*s3q`IT2iVYUZ;8N(j^|(f+jj_j@mcJ_ka>3hct+#8_eMAFijX8a0%KopaAK z!Yu<3!!Tcqrwb0SC%A1b4S&C3YElCpud3s z_Iu`_ghgc;hPQ;8tErbKUW0&YebK$8o>hSY7;C@g%raW=qqjO4Nv-RWee7|%;)}*p z`2%yNW;iHZx*a3_>=C0_zLJc~hy3qYmZ#F`;meIeNSCo{IRpP&Pp{;g6c;cNN)8I@ zAj$iMcfn_AUubv~1(hd!2N2*Ca6?-TVt7~nXhi9mdHpzj3yR;-_Fe5krBcoSGJII1 zI~0)|FvWw5Q5rf046N(=?WSXZcfWoYQ447+bWJ~C?uhth@bUb&N7>=ZkMNc83Gufj z%W^)v_!#ai6#Mhm%e9JAjQbv8P7eBc#lKc+QeGf|=_6q74c|%$mS;%_rE=2yhus{$ zY-HHVyir*9mksP!a2hTt^j8uD)cRB-Koc>U|7Zk6R4p&m)_=HaNw7CC{;+-heq-v8 z90S##`hwo~pL6c;RDsC{FNoSlV)r(iEYB$oiMgzIEqlK|Uc1eqmzw=kufALXy(B-9vIv#87u165Zg}vh0%*29PhgHi(a45l~jhM_@U@m9; zL*DgBminl3A5;$?gq2<{&eq9~mSiDlnL)#&2T10TZ$>~PS_-Qf{^|?U#Om>%393yI z2P&`TM$4*K%2qR|$&0xN0ckN)xW)#KwqlT2ne|umy|nvTwi`PHs_*sA-B5_Ci5oHK zQD}x~G59|ekrQqE89`_cbo!8Fqnn}5Yt()n_GfvO$Vg%3LM-A*`rl0?Y+}C(P5Cm{ z*^JJ-C>x_ZFk8xH)Y@>NhoX41(%=>3Z=JR={B5)41ZQq@`2DYl<6~2uz`xp=dLkmv zOvlK%6Uyd|ktU9NA3CcF2=838dnq%20@=U5Ttn`6mc*z7$NFc%TF;uYN_6JofqH+_ zSGFK87n>TOI@G((brLisTd%&Wb-*q{k1q|oJk^iC1Zg0`(xt4?amH9$onZb|92JD# z5HB-ug}qTh;->946)t;Egs4lmkiL0G9o`$Lr=DFel@vhP)F&Lg2I2o(R>*#ZzWg^y zW2{Xs)m>hudIO4|E{x%Xr&3(vh<{?Fwf!Xtm|qoDwCW;jiHI~B_E~{+{wUlOWg82GQ$$@M&QU-BBooIZuj0glm6jT8Y{NT z4qr`r1KkUZRHgd-ewRy{U@U;*J)9J@EjhS!1EMOAb-oc#Qg~WzHw(az@Z9HvkknF- zG(x)Z_Xz6Hb-=AG5HLkB9rAOP|K$hOUiOi<5(pxLVaXu@KOr%nt{#sjARWoG=qu~6 z!d=r_a{VYI*)}$yBbbC+#W>MUD3wO`F|~-#T@lzljzf+h`HX zJuQCGdmkLH*LYWc7UESSeKxy8iohwEG07MFswkkqXMSz+VTI0`JklA@ec(FxVfq=f z=*Q$v3i7@1x!Vs_*V`)-|EbLzLt>nv0M`rjFi%{$6R&X5`iTEf?C@e?z+b&E;w=p# zCGNZt>``82vMbr=B=;%Q6$QoZH7$zO(Y6)IZTs1m?I$8&)DYeuItO?k)LJj;Em6@h zZ!6=)aT5$Uv5P7@kb;D?bH-5P-lSuoVC{YnUcQze4XSw<)^2M+;I`ssd-gf|;?azb zcq%ea^YHkGiN2nyOJMQ+L_e@u)<#jRyKbns)X5HtFe7LUlk19!^%ICTEK3>9jdT%+ zN+1i#NX*C!L?QWrRrRv+ncUxVS5R3{n!rL`21Mq_23Cfi8UvigxiFLgVtq~@IC#h} zEw*&AM-zqo2>?KKq;uCJw2wj95~9ULs%oku+}*uf2|j@DCgZvMN{bj9J8v*kIirHe zr4M~t5>&qf7-FP|maQQb=H`fqDcdTi5z3Vl^t5+tlw89f_2S3A59?nNgs(vYYbeNZ zqhDEEUXN_mTFb-NMiJ{dYkNltrpiFOvy`ho`yWa=#gl{SEe>v1{2@kIk0#@_^o}<& zFXe*Dg`f7HV&PIw2>foeJ<4orFFU^0_Xgj{K~8u%Bq8)Ga1h=;(Fi41(M~;y8NjNu zs904IeEmG{;b1#1p?3J?-SZVQ8@cO?AEH`31Na{xh|#RpoqV*QAdCfp-imB(BU5%L z!!Xz7SC>DDiR7;!+r4mp?l^&IstwTQshCis;BQh*!NcAo_;)~Su zzjyg6yIi+}wFT-d2CZE7&O_%RLVl@()mx5y3YKk3=et^s#r!GXUfNoY(4l$_p$;Wa zj8f`I<1)yUugSPo4IO?cw4-z7jbc*gse7#_ieeW=M)wwP7=-Vw@zT^ZA7j9F_wX~L z+wDZXpbkMx*-S#JBF4jdawb?~Ns9i|?~O<8_my{9Tdo#e@@PV1jAfpls8ceR^QC^v zLwcE|tVWp5|Kc|HS~-pN=P5M^kkK;k**uDpEs2rj8<=`Z>O7scQ;HtRyb;Yd6{qdm z3D-Mq?X7Xy6T$>FHddQGI4cv>PqP^d$ztZnd4+i&PBC=1+Vye4n%GJkwk-L$KJ$;H zXTMi9JI1F122O*icB$0Jl%tnFHqURjq`yeMnhTKf0}Tdq<{KCY;L01VVdg#yWj@vxoRVT`#)v8^O?=akGo1y_1Xd$By0vgN-oMp1Op zF&J15jgCV(|A=MBKNA}UOTs@1%{uC7jXl%%KiKD7D7`0rr_DCRiXVn*EfW7>MI07C zUV1_q@2?M)5}iFiuXR}f$X0}_gQ(hs$_K6vydtq@uLQ19ycw`P3e5odx9WEPFbMUe z0JCkrxC7zaUanefwgmzLof^WGJ{jtM8JTn^8N(*Kvl*kyAL?0u8Tgf5+U`}Mz6<9n zuSiQuoCGg??uN^?hxO$m1S*J{?*N_Z;f$=Y;B42WFQ3{Il3klk}%#ccLGzBc9K=prD3VfXuG!yqz^9vbaP0-%)ms;jv{ zzAur0N{4&r2MR?^6k5|$5E-!6PQM+t4|ZXRx~cB=ho~3PwEU?LGfd?bIm(NG6*?ir zw?p$?Vbalp8n`R6e?GPOYOM_wc}(|)=yJG_5Et~xc}{U#4TTb{1QWqohMcxw zWV?z{uEEBhUGp-6xe7L_hImregR8m|&0MAlDVubVv*o-;XN1PUe<;NMd~1+?ywv_YRkinkA@qF5rG^@mwYI@ZO>H*c!Z7)w*gL%!TBxK;|AnjIzVM*%KaqZaL)ct}CVUigIZl2xp83Tc<0t z2zsvVKnK6a{+fo*57V*!s+j$uDfLapQ0%X9H_d@dOz_L6x<^_BXf(s$PQGW^I-TlO zr_G|kslU#9|K;eom5l4Z5V3!Ht%c{84?If0nUV2h19=f8rg@>CDeHgugLXiXZiTw= zl*qr`Z*u5)RXIx=WHnQLAB)RANJn`9?NQU+*|G21+RlO_ZFy#uDRzi-(BC5UucaOJ zT+kl?hw^zcJN;$KZVP(`NKsPhnp>83ywQxcGIUHD zjoVsEAtJ;rBhUCmU5OShxl;38dgbyqbm5}3^?!!##J6Xp_P-HfqICF1DCE{YFK%y0 zOcvZa41J}dB5sqBpx{GsaO^W}Mp{e07RTOJZYu^9FZ%4KVIMQnmkGdIMmwHea_=u_ zSM;~{Qyx+XkO_3|;{kY}2ZRwRZKM9Ms`O2$5Q3bIFM)AJ`gyi2|7EvjS08i+0BEG6 z+s&y!u`tHY?boda-wMZ*fJ$=hL-%0Q(z)$jxI6OZI8T4F{(;_~?_<|AJbN*L5681~&7L~!(`Fgr9IllrJ7yal8eqyeY$kZOw2pCacSl+-Y4bgS#8duQ%3 zjZuzV9&3IcYgCDN=28}UsDOQbZq^}s9`6%qp??(In+RE9If|AW{0}88Lk$w6{ES+3 zYi+dW3T)kBq66cVoULuw2KOa-iP#UJy-vIBNUDd=$M%+UeJni3@0+i<-g#`_9Hf*SKkC+5xFdiUqN z*|-Sl%Wc4Svs?Sa#_Ch*s%HTe!2!{%`hN#pcLgljyJcQ&eyM9&wv=X2>p{?--?%Yf zR|tbM1=d(K4vRDN&y3B^QiFP@8yFEUJSr8t*$f_IJQyUK&ozya4Z}c~j{b!6j)Au$ z@?MHFbWJRnS-c**_4YzKXeS^Lz_o=)^mU$!rCstxVr`M~7QlctZRcTTfZ&`{wOCKG z4}KR^=q%Kad7mq@<}j)JwvCb}`U8(Urlb?VQCiEm1wsm0VxNgu-&NkX8Lum*d^%X8 zO>zW)(7_MS3}@F|&p0)agsO_Q_vX(Ylu;_xvvdd7Qa})ExS_%w`Ch*Y=?T;Hl-N-O zh>+!xIAvs9Y8t6C@HP@Wq#5~a_P;p#n9LJBw%VG<_dQ>fX(hzcm82!(Sw(dE8fki_ zo6XKks4`b@SEnf|m=_M@SFTtw8ZSXCtKh-UJ@~gnRF~+d_GBz~1hOLqtIRUF01IdE zQz+p^gYqN$t`5!g$`9#Zfy68;dUlI#|4xB6WLnyrvfHkjVw>@oPPi|?u`4vX4+0nn z;o*;13oA^J(n=%VbFcEkr?0I(|NPF2;8?qSR)|APinXVFugAxp&{mU7F}h~SrBjm* z{G>sf7giVrlA<+9vTE-TYm-s6TO#-RiOabTTdnPb>`gD*N2qK>|3k@|nRqKr_JKY0 z@-`mHUMH6jgh2n0_%6)QCswBpqsWn(aj6=PYe*@UoDtxbL+5h(v@cruchc-mL)Q|8 zLx$@6s|IgytQ5r}wRBXERoSNN^BZGi$+|e4eBqe^5mMrd7?;ZQy@1}OuR^Hl&J4W@ z0^M|6N$hfad&hgUn%H?cMGx+M6Knu9%!4-LdcEC~p=bA|_n$B#%Ipvl@Q zR`w&AoZE1qY%Bel;O7!i$TUkp?ZSbF9cnS@J6p`e6!I;opEuaz;j@1^6oe)KMhn(} z*WNrq3acl4N|8UEj~AjG_4}K|KP{KB} zK^XIbrX-C13?@;SQv_pC6G~*yMhZ$SjKFDId`sac^XhOQX#fLo%bx+V!3_Ivk79b* zLz_ROy_cab6Vx>hK;5hf^PE^{@Y0{IN*?qL&GN^ZR)^n3d4sV3Jim+4Zfuxy;rx3p zOH<0yu9WsJ72nYKeU&O+W+xqr2gp7Y%3uQQVd3!5IUdI{`Rg9~GWE~9u%hI`B5MVe zq%rcYXy|0(e%{gb_4a1(PBm@BCSfo9>h*a_v@@fQ9yZ@hktqA1%Sgt+kp$KqUd;bI z+#-P*41nC~w08DE{_>5pQpr{p@O_%Mc2==J6CbXwY`FyUW4)Ga(vapcKQg)-#% zXN{ZpfM$X+@tHLhMTf{HI^lo_Mrq(1v9V3V!9k2hs08g?H|vxjT{%roW-cQj>yi2Y z#MqGOk-^I89d=V8yRMdoKKah*Wxs6l$dMu&EIhrBZpFS$-0cU$=sLa@se1Jx(v;2vIQ#d zsw#9bV<9O2q3HP&PcrDu7a=Si0?neHvdjG=G@AGwvivkc(^WWURp~g4y_;O!IMTHz zVO~xBqW&6IVeT2O5A3H~aAwvbz*Wv+yPpKPtTES0OBj-N;g;By2~&9&XJNZ(nt+eb z#@;A;ej4At%V`FCqZ(u!Da^C_(@0)`zNjM|CWxx>8<$VmN>ozWBu{JA9%lWIxZvH) z4OI{;Ls}M$weCf{Z`D_vj;kXNHg)3ds~$8!rTEOWdJBIhZ(4LS+8Ud`@S!J;RPHr+ zkt{!QkXMx#F6&ATBd5N%)8f5NTJ_r?&MNt*URq*$yo^(hRP&)ya>KiIz9UVnMagMv zQaZRz3yUdwy#hN?C4{^${zKgA6(fml3sIHWF;Qt=|x}C%L zGgurM zSL^gl>=x5-%D1wG%-PS{ReIsfU=ZJ>Vpwd2uN9A;$aC+T*6I;c7EHA)FzI|+K(hF^ z)<~r8fYdiDTjTA)iz+@sXVwJ>VXY5+$NYAt{4}JdTMmrlQtRioDWc+n6Ul zB4F_8`b&7gz?7oKR|%pA17z|V1m1--5@qObNT1eeY0Xv2;%7$wo=t_mC=Tq zk|B1E5k%XYTC*y-OcUh;rmVNtAO=<2D8=KYC97krLZt?X)(RFc_ZO;$F=_2D9;a%= zG?nhFcXiU+YM8GIgz(<`VxWHOrcN2C--#cApHHs;J0qP3jirviyYCl9vCBx@`*Law zA}UT3^#0ZrdZW6d!N7R)SY6N%K;M(>4>(#zv8RR>chna-i22gD?fY#CAcSMJwHG)a zL3XyT=PW+HElR=tU!ye3=$qt3L~O>)b-yrBOu-A|1#v!(_%7ogXQ|jMSP=}e9TKk( zqFLObMEGfE42X^$VHkINV8&fge9 z(#q}oND##TE=oOUY9}GpR=ZA(lvSk47DFa{QJL9(@UEAx3I}V8{=&N~!#Em)W;8L% zi1Zcz3{Vu#de$<2+k!IV?!k)kyRkt&;Z%%*q+b^ddr3zBjKAMGkXSh|uFsZZg%x&5 zqR_B|hTgI-^oWK8fJ=q5u2(c{F{iXdwI|$pPpSB>AymsGN5H+CIQfO!(wX6UxA^Zq zfTDwyo%#9tx7mJ@K!BI*f#7jwc9fW31QamD3v$rZZURa{g^<*)N{7>I%pHcc*|4~ z3X`U=?Dpprbn=x?jV*n67p~)Ni7DCF>a|x7xuo6*7HWh8qNm(p$>Pxf8?=fvY|mnJ zMsNUiS33FL!6wFwj2#7igIvpUCVz}p3R_x&v+p$*n6wtv1y`4YXdB4OE`@3t2M#Y6oQ7~L-%-$HdWH>SF>M7mz5YfQ`j zo+XPWuo$WPG}Dmoh@%jm2u;$-DR(}(rs#KCKx2X z;wLufwf^*25z&`E_ktC>J6uq3P}P9=G-hv5~pB# zRs4$mjO#YdL~B~XS6-1Nk_J!$$VDjX;4Li)PJE!)q)`!O z!ky_38{4=>(PwcOlf^f$XL zgL8!bu%nZIQk-Totp`P_G)}6+?AxIR#tFg4+Q9%n_gN_Mri0si}0<+=`K#oEOr@S zuVjOUDZi?=?{Aq7zv;(03FVvnn`9e8`;nKcvuf>+zJ^OVg$b0bkPV{6c~MH{LG{ht z8UZ4HR74)sA|abwGVsOc;&OYvKJunnNY3r#(6++M(LrBbZ9e5dyAIt9zbwXN9^c`& zTe@)Ra}SJR0LPmiaa&zenWv=D*maA06vbI@G$9~54%FH*5wOvT=swr?Z9;p;6?SqQpZe^lw}9`^VLn#xb{Fk*tA!Pz2d04vmQ; zb^K5}lKV@4np!#QkX!VBKvd{bq2$KbG*}A{-&o^Uu8Y^4J==A}7QW}?jMo`?_%E-d z5+{dprDaQy8}QJZjB#Yj4~6@CBTgd{hIZfTxnRSYqq#z@c|m_caeG58!G=f%mL|wXN->MJBZK{nV-k7>zzGIf%X?l(m}}}yWEFi$Xh~0_AtA@^9^?- zXl2O=FVfpZTEBa~Zr@3~d!@zL>E4Hd`#YnovP->-?N>Au+MyoQ@%Vae?6&@*uL}%R z#Xk}tT@u-DtFXeBxdgWF?6!CwrH}?^KSAh7_w<0ZQkkpk=X0^U zo&G`Nj>qchm|RwLlpZ5b=F74fUeLQ>7Ucb2M#*Vla=D*nTVP0Hg3G@Btp|a)2N8ZF z+AngH4-8aSUSaG_NPUDIRGKK**k#)d?*wYpzkCComk_}YA0taQIIr3N8Z8&AD$&T! zkN-n?!DZBnLsx0T_e`T%!)l#N>gDsazIKi^9H)Ze2N}`($B1|hq@6|>H-Rx2OW?)R zJZY&1bcXC*9~c>gP}N5CCqN1vvzIG9I>bg)4JNiSl7s4eGsu(qRTfC$iJH zZ7VikTvGiQpnGaWG!r5=Pi6@N6@B|3_$X_A9_SxA3YdldU9^--xOPQ87iiY8?BI>M zQ9tT5ip4FI#irpT}JmV%Lv)zy6Yqce@t@wZQ8yEMPe zGolJ+twsOtWD71m>LK~Ih^0vX08Sb=RPco2?=J0yR$GSwJOUr0HieFSLlIDQr>S5K z#33m9KNNh|K5}H&kr9wi%fbUH{hLM#7|js-Trsf84A6xsD5AAUSRqcpF?YwL#k=>V z{H6h<<3QR)OELNpZC@hEeb^YIN2-R=l)-&v#ROObiRzjydi}r-gzD;8;sNKUzInqg zC(S`njYp3m#OXhy=XLmBR)%Fbwtn=ciD^efsEw$u_dx_al1 zvT(G>1c>QNXu0Us5Z#?`P9 zgyh>*9Z$cGr~8v;^pWLPsW#FdxBLY@+LsORP=Je7C39HU%bSe{H2J8~w&R~B$%a%f zWf-j%{??^m96sYki=~X_s}2WdW=FSF$8xrYSY8b&)w(c#`$DM7z_qxkPR5e{nucxf zo5hLxOuFY4_(%OLEpspjz|ZuROGo}oZvP2$qP33(_<7eGG-3#UL##S%?JAtw zh`|#v{qLYne?_ejwHs3@|C=|})4X*AJ+1BH-^M6udaTpNU}UbM7$mo}!1J-!h<;`u zW1ilPP<3+)4@Uk5(j}EN3K-W>w5ODz+MBJlq0Gl(2<@FGl|8N0enJP|^iQjQH?YzQ z3iG{dY@d&VGm?`irJEW5L8GM5kakK7rH1?^_cPtpaSVPAR(nqn&`=L_$LB6iN-A`o z@-SsrF>$)%Ft>G=IKKkCaFYxlguF=g> z4-x#;vKYpUU-3zd1tuKCV{(ocig%x<$;XbQty5ym_~CYs#46BXFtG${{hvFdtm?qV zApwD`UFOU>tLPnzZu??$Ap3D@P;8KP z{GD`IKY6j$_v5WkPSmj3)O44;?KLKgcml8JsoA-W2md&liG&Md11S|AHkqpuO{d#| zN&5gOYLgtP3b&F)x@}+Ltsi&!l*aMGHhxoDI~a@|%A$N`5O1`Re_fLKp@J9(jIZG; zHR;DRf>7xCN=3pYR8v|akMnihM!Y%vgUH~RC0=o4S*1ns%UKH3d|<{gEfK0aL-#ZO zJ<888nLqab*U1EL_viGmnJ}V8^N%m3S)miQW=ER^G=~jh&EAVnW~)13l}WK*F;3v* zYt(%#297RiO=hp)wMpN@e-bz^W1ikU>?+K! z@`z5iam8r<@@38!SPw3)SUo_IdUFWZPx5)_C)hMH`{S>M}Zk!6F6 zyUVDHl1hHW=5Tz6v&~w(unAD^TIjyD=%vA8pC{1@SU9_5%!R`I-hQ}ma-1H)i|fN$ z>=Ca59Si$KpX#+R8!NC`85V%W6m(K9(pSe*3%{PBxS)E}>yw!kALvKcWT;N-_wS07 zlldlRs3E0yrQ^)-yAaTrP{?o2+%@%?zxTPu2~kpxYJ@u)g?x~DcEyEJPYPnz*EA23 zj|OwWM0zf+cdl!%X>m96Tgj=07yQLo-llX1lmb;K(c94V?rNK5AQV z74DpaKfL?puxE-UKDPVKc)fO5;8VC8k3!MD=V@f(Cv=&Y{E+@ zQ+(9LE`VZKpv>U*lTKoB^%%7^PC5^h%)p)f!9q3DIfHl0GN@4NYe3De|K&LYLc-0gA1mf8Es|yjKeSB;Pei8;cT!?$a8JaVAB484Frx3Be~G{NfM1LXyoWM)87>oG zpSI;#elFiLUc5=TI+`GhJKQ4Ri62k#H6VMWex)B`6w=lkv=emNt3IruBwyP6yIoje zMuL}F#at|WhZo-#OjwUBjC)wQ-uvFt&?4ZdBRMp9 zef(WCx=&8p&#|5UhN{vx*$oFI>l_seF0F zBGcY@CR0T_DJ^H))Rh+h(R*gUAx37NY*HhAN*|3EZCg{+mdgEGR+fS% z=@rvx+V-OKQZQJg#oWChFSF{|2z4;%z=YAzBVFsIFTMq(9Sh_e(+CliATH?v-E+Q? zOd>JYH#2sZloKhs0mQ{5FL3>#f+C2IA9T*+<>gIykD;J}Yr|h8Z$}jzNR~w1e1uZ- z9!Ju}tRCZMz7WC~IAUIYu|@HPB6a1K&n!snSntR5GOok=3qR1=VaY*+7o zR9PeI;n*pq6^p<1i~SH7q@+|qVv@9^o>vV3f{`|`JmA&V?2 zUSIy6Ep|Hy zd*T(vh}dY3h@}6ur!>csYxx6S=p3m7Rnm)64=T4SMa7v4Y)MMWN<+=&J5D1TlCvOkY)wG>e7 zBDw2TwgMuBmWQ`u-`ln4fW_F)+SvdkyTY67-QCnx+GYu_A$N3~h8ed{2>shtm+4@rUWT_J8t0TY!1md|XA7xOKgU`;r? zV~kwxrm^vZBBFn5Xsxge(dQD;hq0Wd}W*a z(fX=UsX3B!!1C2DM&-a`OsNJVmsWljEdN!)E|~aHoDvk*!(IKI#?lzsD#>jy?*AD z%WSm)Y{TsMcEX38aBU-Bg;VhJ$Dd;BDvTnp6-NrOBwU2D5&6L(waD-{P7_p4YY#zd zU*Aj3QWGju(#5@2^!-fikCnifwqF&IoP2%z4T1GM-Ug6e)RR0U0#%X6J!*AvukFh_ z<7d_k??YxF8D^J~w38_ecd|XX;^QxSQokxBD`&3pvN~6o^Q^4DB8TH*4$^I#m&=m+ zov`&(7SBGD{(<$M;~;)l?pDvfS9H?Dsu?@Sn%N z#C9(O6FO0*Kc+v{k zkE98h`qP-(bC*>blc#m@)iX9Rb4smYpOygKY-?B40?Dw+Xu7^<8*}DvJrOc=X-{P~ z_#@cC!QFRV#?E(^w3e=UV9~Ymg9%b5kTbEtD zpWePq*`xKnJA#tbP6nTA@6sAWt6Qb8`k6O$OS);Z77l?(N4>@B zY!(8zv@H*kuck!X5`yl8W=)=cJYSxpx}0CszO`2BS!D=!W51LrBr-sD5BFgs>Fe#Y z{<)MMcJBuKY&9NF6?cF+6Ee>6vC9rJb>zD&+Q#d8C&Nxy6jW1(V{!Fnpl^ehPy_d| z14Efo_DouNzE(l5^q;%F?y0jo725f;1IBrHgKjZmcu;N>WR`M|9TE3!$ZdHk)V&~B ze)W*ulPPIa7`)Lz!7OBnt~xb+&JD<7Um>A;c&mb7TUvaF+pd>&rEV@2r)7oz1TAVUB45uRiBdyj!-{p=|Emj?zvHObGe-x_KOlCPhg6#Jp|TtfhU z`@kgGaKXF9noy==PP^^XxY`@<7HJ1#(V7jpF|94{FU8r;j4#D)6jB^4;-7=O|3g8t z@zq%LrbgepSyV=KHo0=Gn4V|Le6i>wKc5GQ@ADK^(I_L_0{ zy|q?V0qX-x=<2PJBGfc!PZ5Gg>L2mB2a%HG>?7%WeU>%!25Gx|cB3YLVJ?T2#M-K` z<{B%E^5X?6o^k$v{Pva4(Jb1L;0MO^j&M*Wbk|5bD#P`n_ zdL~`!n-AHM)RGhj#aZ}}E^|BK%t1T9vOgd0GBaVKG-`chMgN^~yMUxA4ISx9Iqxq= zMw==QirGbTw{~1u#f*3Kgs+TAlqla4iMNDmF_`xN9hLrm_9N8|aM>KaVA$TSLgD|m z+2~&y@m?VRrLsSkwarW@6H@uz@sHIfo5^DdJlt_u# zT1mM*Mmjy12Y*07AKAHSjGQPbq2(t96yD;Dr0F3)r{v#n2?ak%83v$4cE%R=@T;v- zyjLFWb`GIVt3o6GKLIo-%hz=|IVAH=s`h$~mF(9R_IGi}_LB&%RU0NZ*srwu9j>S7 z!mLvz?i5i)0zZq}zY%!4-K2+7f)V6V9bKpR6ICD9@9 zW`{azUNO`x(7cI%Z!!ceBQU{44g2h>k`$Z+w6iGACY$5tq46F|PXcHk4s?A3MTMli z)UK_P=4-2#5tAg>Gf9P!l;onv8WIYp&Tvm7@pD+zyl-o3Yh!mYg2BnPhF*SG3JbYC zT;Xz0&;S4f;3;6MQN=1tSX}66>evDt^WWXi^!UeZZ@@!kKvbv zyh*3{isM=F&xT=}Qu`eC_m{TP?t(EiVO>1f@?>CzgYCkqzT*2&KS}DAUJjE@9}xUg zsmoz+tlzXZD-?o4rG&DXk)mDlWtpeQ-oTxqn~Lx)Tf|=#EPfQ~9yGoEo!;9*(-ziS zdy83^3m@Od91f&88w`w!OoB#Zfw%@L-(>#Eo(0mizuEr)MDT}*wC#3Ns(5QnxxI=T zZPz}0{{Uyy7pUP3o>4Ef2obE5%;ooP2NhR?&_0qB|siF`lt z4KFP&9>V%4uJ2mv;_v+u+hlhTs=|TU{>gJJo@V6)ss_r8SDtvIMvLI5##uZ)HK<)L zPt@kNm{^EU*dTdIEx|Gpk_3s?<%{e9paX8jVYA^+73!Z8{u51it9UZ@Ek5cUQs-PY z^NT$??r8!;cIh&azCm$mX(3a9R^Cn-6^M7oKMDLh_{AlMjID1h*2~4V_O};z6Wzc3 zOfA@4+q%NTdvc{t8>`;tQAz!(4pd=4_@i_H=Z5;0E7*i=I-cR z=vHvuzQev7WO!~&W!cy(tP+(QM%f(X5U0mJ9C%wz@W!Qo@EZ46MX=I!DXuJUZZ!tB zQ7d^U&SSS`@{;P@TJG4sV#x5u9STXm-4^Rx)g}J`gnvP|g|56iYp4q;m^YIcy%J%^Dber5fT zkv6(3A%8L{E)b&~r1b=DC(Hf_{?A&kfqo}=hh5PVQj_h9`bLtrmJmuV9%z>4)rZ37_h@`i)am!ul7}@lcnju44tXS#GCFP&k#A`BbLXgKH3|yH2KpXe( zvSd*Hd`7i=XYkS&@D`Uf+;H!_xVfJ7m@$djrz%;Lwl{8##t8#zf>Z;ORB=>Wae5P5 z1y-AkmZ!)601*BMF0_9gw!u-El-R7CioA;elhqX zr6a6mz8$6dYZmPa#pYW}a{?qVj4MkjMY2M{c|?_q4=CrHy8Vg#S!)fY=8de`-dWyg zP+r9xA(~~L=FKLyw{=i+EUheYMi91Skr3==Abq{zzk_}su=shc-_0x^V^s~}3GA=8 z+d<|mS)XcoatT0OoV;T*9hdE=29gx%(vokf@n4C21L0j)_F3>}iS#`SPlHj@ukWoj ztJRJ)mg-4ond4V{{Nf~qK+hx2;2tZ=C(!QGQMH0wXrzcrhFC)ltfj~#st`cq8Q}6c z8B%{h{7vvG(_Z*_;%|iC4Rpk`u-C0EH4hHO29pa<yRQqwiUXt;V(%2HrFQ z=zCtD{{RIA{j#kg#6KGD53iY|SwH@T39DLv{1lJ&;xPHg<9qDf za6jQ3({MlXTD(n~NUd|_oa2$wx*r92U;YwfYoy#=wXL);Twh<^d0Wgj(Wd8hQdBeH z3aXY}&dRwPvq`%v*wHyQdtQ(K00mF|vh?`#apQe5^e#W+^Fg;?ZcIv@{{WqB!~XyU zhW)DT*hKyw@MXy)?Kc`tz$6amWy15*@voQVkzu!3P+-XUZZW{=_2(azcE1Sx4`Ji4 z33%03)n>iYd_201h>`Z~5K6Bz4^!oD0C&$^fC$~Ab`Dzf`;qO#{tF@dQyb4L_%pzV zXW#z-iCyngkNSMA3orOAr^h9a&DOpb_+oth!EA0K`u*u2wS0-?ZHb=&UP3|Vrh3)Q z8q4ka)K=mpWPuthT`fI6|j0FnW1Med2bZL<53_AST!6}QE*SS{YG z@GDLvkDfU7_fm1jMqqD$TE^CY;H(!~rk6dme*&Vknd2Z_F1)fbXZV#(s2S^w=LeDq z;=XL~eU#oWmitbXC7pE5Cs2}ov1KAiV0Vr9`=GE@$;TuP{Nw2wO|Ge9c+MvC*4)c% zu|^m%R#sr#ji5#(Z1czi9FszXRrDq^X{}i5HjuhmNgb`bA~OJXl9M4ZmQ>ui=VQDJJ{hVw}lx?y1Bwz4VZ`tbF5e4^zd}z(L z_q%NE_UHcq0;yB}3M=~}_>l?Kd?&3$t={)YM$i56BUivvpqW4zFC&04?^eu6hC6go zg#e#J+MlteLbLln*WP{mAMIEF00ipQNRw2s(bb11?Y;|^Tp#=gdNhxV{{Zk#PZdbI zOKCnE`*~M0LvP@78Bl$J&wjkNydDt zG_p!gK2;|i4CJ4bdy$+DMQgnpBv`H02bmxRi2Z5GjX66u3Mp!@_lq80qUT&8D!>EJ6@Cvp_blbM+(u+f1I8Gs&%et{k;Q7p=4u)Dj05v@CqC6ThMC8Sbg5)w z2ioEpBRKiT^{%`2TliSN8NX;R3w$`djoQNh09S|mR#ZafD@AbAzSSX{5r#M%p4FY> zj|XaB3w|cscpJn9Ho4O;mMf;Wr45SmtL8)7I5 zi@A;!KngGb01DXn@2rc@3TQfu1yyE|R^1QEg>t=m^aJUN;(QgTM?Bh*kg6i+_dB-& zLBwQ%`GHwe=9Lw5rOwXApTe(-n!m#T02m(@=r$2ccP5vAXJ+y{quR-HX)UyOQ9NWa zO$$mUiNX0~i4Qo%bY2ed{LkW>FAm(w1cE^Kn_C7jqjZBO_>=-O>Nw4DJ`caQ)3sIB zHWP7dKhSZI7EUoHRDuc&u*dNP>M|?Rei*=Xy*B><#TRgp3_e}Bb^E}awlmac3&;CI zwOwh+Lc)%^9{KUZ{t7|y-%$ONZGT{0KgALs1`Sl|H_@3{jL2n%ab{Jrs|sCPrNV^) zgoU}ous(15APOLCrbpHUe#8O=8a<}{>x@b?bT){2Ht=5yP5@buu zc_U>$WurtC5=JJIAUZBfij$0E(HnbCZ4bV`;HRJPRy)s%pA0-f`y_l2@e~R0yGij4 zkA=K56^-Fw<{#q0D{bycN5u96O3Ur{h8)a{jdBR1>-F_KW$BKPSmd$O?}{- z=&cvb#`y&HlHh`Q`4U6l82Xz0ihW;DyP0LWndF-0e?H;ei!-rop0BSitIDA93xSrQb@ZPA_R<`WG-CZ`HGQn<02Oez3IQJ2RE*S8pw5;5v z7tt_nRgWZ3=vVeE_>JPPikBWQ@$tU0yV13eh+ZUXdz)js%(t|;x6`!uMh6=n3rU#p zaz;TI=ilq|-~J8DPZ`Vm4_)2(gHxJ&TQ3()r0DjyKrh(r;e{q47!1jo?q<&8p1(1` z75WidMrv!B9Ca0>&{0JdMrZMN;*W>A--n``!@eJe!U^WO#q6@ngxa#M$cN0pg5xI{ z2M9+UcuhM@*EKC#=fkt_@EaWlF^_8ZuZcgi)Gaoz;ZKLY zHH%);pu2c1E^Y3TLPllW_4| zHNDPIDwDb};fDdTcsR&7Jq>&&3o)h3IM$!T*HLrJt3BUA{jK!9N5OhGg|&Z#z7W;t z@V$~~`hKUcXQGmIowc zZ3Gd{dM#T{@phl#_;stY3=FGp9B!aAY|36dMh;|+)G+fphE@zZ7SgUe5Tv6{Yv-n) zGgVf5r+<<3FT)?(v*GrMa}S1mIr}@gyVWh@+P zIop%+N%s%d_TLr$9OzS9X|vzyG5B)hOS97T=ru{&+8Y?$s5)3lN~RX|x}*6`2aqkVI4HLS3V z*v%v}D@emCN)7iPGabmR8I+)KzC7B$#(#$&6XN()@m!hp{S#4JJsZSxx%1lFb4pTK z9yuLnjkeA5g=bR^*Ib!v(7Xxp8^^vcyPn@m)Ac6tYF=FGQ<+3$NjN@q(QZcuRGH*E zRmt2$s!3AeaGgF~PL$N-+Wba%vsJtCe!pemO*+=j+fWZQsRpli0E<<&mK7^+x&WuOz@KUqx%j|5>2B-*1@l3yRf)q`#h2sS0e$0W#icA=17T| zcRI&iCa~et`Ne$|TSlH}*MvPa9 z_`Bn;4*Xg0y7*>oarECEY0WgYk=*GYWtQ$42}`KFn72r>Bd+-)CPBDNp_!3dwWo-5 zl2KY5mGJScd#zEI@P9|w{u20&^f@lAtu+fqmrK31)DPMP^4p-0vu^(Yk9iDWkc@D^ zx|5P!dYfzQ9^b)Dr|8%Ewx6k4*vyu<8kMxtJ+xV#;@EC*zGPzG&4xK73SHDBh2+AX zE5%+B@jbSaq4>{B&@H3VAc`#>`Y7Z?BkZyHFiCM7B1mCrpi~NDX;u8QC^AJh*5B|C z#vK|tG^>9E-|Fn}OxM023JlX(5V5%gyoYkLBy#zTNZTrBstNn1p#lW1Nh zyZ-=$&%?lKwlc+Sb03}(TdUtL>L7~?m0+r5k>VeDcO=A+!2s3qcfkuyO77#v-WSua zZS@1IS$s}aDp=1i)RBSxY!?Egmo|6TwthaVL=k{f! zx=5DQ)o)VXQaqxCgCqH>SySdR$r)cTx-y!CU_w{Xo~Q9AU9<58{Jsb9>=yQVuASlN z?{p=&c;>v-nbIFQeEXJnBg%qHNn>rR9lU}aiweer!+dA(Kf(V1A3hK}Q5f}vGDtzVX=0MXLviwnE}_c?zD=H!YvbK(;%A05PX}IK=~s7_ zqW;1QJI}OE=>@~S^BmGM%+V1o%zJ=lLeYV=x~j+FCA-nBu6$RfXbUxm+HTri7S70- z1-NJXZJQ!7^JQ-`NJ5N_k=wj%go3pjrP!%br)zF_hljsqzX|v+VsQDycTKF^IAA?%Qigj%pL)Yvs zZgf35>r(J`tz)E1Zjju()|aulfI+q>?w+iVFN|LV_3byq z{xj4X^Tc|&OPJlS(#d3i7@R~}B4JhA3lWq;(!8@y?;@L=z1x)<3NgA`Ezep{+3(@c z#jk=t@TI;Pd^SE8viOr}V+z__&v0S0y>lGtdw77z=wg9Htt&8vNm#&V-mT*Q02KcK zV}FJ}2mBGJ$Ks{4)b$?}=?kevdEuC&T{_-nySOf~t3t_a_i<_mPqPfWV0&RZs+B^I z_%r)pY92hX)vk0~OMPQe(_R^Fv~5c5UFL=-g(6sEDnli_afD;OM*`!`R8)z~e@y%d z_^;q7WAMeC+Fjhbfbkny>AEhhsmCqEmg{Y(L24lu{9MKij}wVVAx7+jpPU*;?2)W^zr${xABMwL)Gf}V;oF0x+)aHw=A#6{=F0lU7k>m`T}cb& zyUDN>&*@i$G#d{K*!Wk#dfk=xnW1=jv`cv`3R+ETtHS6ZyM=yqYq+;da%RJ%axK8x z#xfVmzA<<*o#=vtJQhRR7VE$nV2mK(7I9%N|J z#!F6CQh}~K3~IMg?|yg8*Bdn6MO}!cy{5nZw^>pXkIO_vsIa+Mx7JSK%}$6 zOl}OJLN54D@82M=usj>^(_hg3Avf(2;7dOeU-(Z>@NI^fu4r1O{{Zc)ja8*sWYgq8 zu=%q(UR+0&Vb=>kTSGaWWLe8AJ&%+oB8gmIS{^9v(St4%^+uPfTE^n>hEgYU)WwsWK2P%0`**sv@oSzJ& zu-Br{HD;3IPO-DGxz%N`krqheonn!rMwbibsySQ}jmmOx39qAWHJ^o^Kk%KMhN1An zXf+!f;_*D5Tyw#FB(lMIXB)F3y3RkGA`42tZ^$W;cj>Qek|fct zBlFi;wo^PXTN%ttGnjYfP61MzgKi4Do8_yXHT|8n&ky`B(|m6ShqZX_0z2!b?$n~i z3mBFu)ffj=61)`S?*9NtMITA{M*jd?@OOb8#>Vmg0J80LqbnwnZ?+}SFM?gg zE!w~#nWwgEw4Hq6FPQfhh>VD^meTlN@k3UR!~Xzi@vOFb#-pY~b9ZrK`h;^t@y`r! zh}srHlUqpK%JWhT`H4 zI^NVz75%lWlSO+h6GY4;5VR6GWDOseZ*t~E@i($`J9N$xasia@Izj*eb? zh!!Q4C1S*)!6GauktvF`Ce^H5Fzrj4`yO;Y0Zs8Q;BwjA`FBa-Lo}C~t&2!Mvtym6 znhB+ZqssR3MI>|ivBFELLkYy2apK<;e`miQd>rt`kK#WS+1r>kxJ;=%jpSD_p+7Px znihDZ-4TvJ@w*`pfW?u*{({(iXz+!HZ{lqO#20s0z5`7^L_saB)N3S{ z7Lp^f{iDiO`$R}v%`v6KB6O5EPI^+ED7Db)sfCSL-WoIDKL^96r-yaJe536X!xF)e zPIEG3dUXC(llFGIyLkZPh}7e^di!g_-?C%;GVwIO6#f`pe`xr0-D%Ucg~g&=UujZ- zJIuafOc8`qLR6jn?p6&HvBPyAhJMu_2Q)7Yc(&`u9|?RZb*Ff5R^21%H*pnh6Ho=3 zOAtuOh^UfC3CL*C&`CMBl4k6LxtsGm>XfGl`W!!jJ_P(x_>c@<5b$;7!!`c^*opFr zkF}U5oh?Rs%<0Q&~`&%+vz!rvHpKgH1A#IRlIr&faAQ4pHKS)&Gc(nJbf zmMdq4on;F(yb_c-uWIqHf;>NM;oE%+#P+MI8(XbWFXz|cj##bC^A@v`LB2+UIc_|u zvP*`UuMh^2Zk%$e)fGmcLgPyC=11p7t>HawZ9li3$-c{T{-SU}0yT3Q=Lae>n?`Yx z4l0$OgfI2RYb`Y)+ia;l>&Un@$H3~yn$?vZ$0kTS;#tVh;=4SX?q@Pp!=@53wI zCjL(kYgczGqua}O<*YYP1IKf2(nu7DZf#a{SyZT*Vndk(Qb$z2BmU1v_IvT3pYhM( zdTJAYU`uZ{t*6OvZ@%&&3HwdOyE0uv3l)x8STef8S@tPdIk@5^q|^Be*z;_B)vx>; z@sEZs4 zI%>8zE(CV(9C7cvw|(FQbx$$X%!(PU9wkX6o;{y?c%R|dg1m2M2Z^;kA4k@7#PE65 z7C#Q@j+O#7wKtJZfeKCbHCsEVkxU_`mfi@=NF0RX{vvpJ^nZ&MpB{8gUwj@^3$0$< zUB+mZxmnL=^7=Pz0I|y z-Q>|rBF02E(LB?fxd0T3DH{aj>?$(FRPSnk4>dg_!#V_TS-HQuzamCl6iDtNf?H+C z{w7l^AO5kgtbP~#9M;dp?PuZ_hVPMkFiH9%`CB7 zPKA{n3a3T!ANE!79nFQtneg)B{%uNG()Yumns|~&0$AV0y^yzn6o|~fhnk&0khSBY=Z&G(?yp&nMDIBp&4BJY1hwSi$+sh5l z8~)D8;a`uQDe%va^}%zbc)Dn#@eRGzoYydEI*h8;(CdN;Lm5i5O(>AYgn81eK_ir? zm`~X`Hd~^aRz7<8MeuV%_@(j3!{4*d#3`0Yt>n3$(nhwqiVa;RxAW}+86!#KOPJa= zh0K0o^P>3_x68ZngZ>Hg;y;2OCDC+i`EBhq%|aP8E33^&rL)0vC}|^_=PmLnX(oqp z;TpiA-Ah2zF13qSxtWES89(9Jlr81A z_?l3lr#A+-*!Txnu+=^oY4%<>)$9$Qh@g&58T9rL#BKG9C-S9u*4;)D3vaSHcVhBg zN?7@dTD;kORw0pW?<_ZhnRZss^ZHlZKes1={3r1X!(J)X{u5hIac`wh7PIBW3{o;( z<)hTZen`xA#bl1-GBI{B%NRd(<*&3*6x00fl( z0D`@L!9u<-e$$>C_z&@};CQP`@iwZE-QDW?62Wm}8l;8Z7lC42U~XX`aftA{a&!7A z`x1W5Ujj7`*$?2g*NuJ+_*Yie^nZo=DYn!#Uk%$!b!;WHiO3G(jk06jp{u|JlKphduxR diff --git a/python/rapid_structure/tests/test_layout.py b/python/rapid_structure/tests/test_layout.py deleted file mode 100644 index 757c427..0000000 --- a/python/rapid_structure/tests/test_layout.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import sys -from pathlib import Path - -import cv2 - -root_dir = Path(__file__).resolve().parent.parent - -sys.path.append(str(root_dir)) - -from rapid_layout import RapidLayout - - -def test_layout(): - img_path = str(root_dir / 'test_images' / 'layout.png') - img = cv2.imread(img_path) - - layout_engine = RapidLayout() - - layout_res, elapse = layout_engine(img) - - assert len(layout_res) == 13 diff --git a/python/rapid_structure/tests/test_orientation.py b/python/rapid_structure/tests/test_orientation.py deleted file mode 100644 index f1c1dca..0000000 --- a/python/rapid_structure/tests/test_orientation.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import sys -from pathlib import Path - -import cv2 -import pytest - -root_dir = Path(__file__).resolve().parent -sys.path.append(str(root_dir.parent)) - -from rapid_orientation import RapidOrientation -text_orientation = RapidOrientation() - - -@pytest.mark.parametrize( - 'img_path, result', - [ - (f'{root_dir}/test_files/img_rot0_demo.jpg', '0'), - (f'{root_dir}/test_files/img_rot180_demo.jpg', '180'), - ] -) -def test_img(img_path, result): - img = cv2.imread(str(img_path)) - pred_result, _ = text_orientation(img) - - assert pred_result == result diff --git a/python/rapid_structure/tests/test_table.py b/python/rapid_structure/tests/test_table.py deleted file mode 100644 index a73e203..0000000 --- a/python/rapid_structure/tests/test_table.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- encoding: utf-8 -*- -# @Author: SWHL -# @Contact: liekkaskono@163.com -import sys -from pathlib import Path - -import cv2 - -root_dir = Path(__file__).resolve().parent.parent - -sys.path.append(str(root_dir)) - -from rapid_table import RapidTable - - -def test_table(): - img_path = str(root_dir / 'test_images' / 'table.jpg') - img = cv2.imread(img_path) - - rapid_table = RapidTable() - - table_html_str, elapse = rapid_table(img) - assert table_html_str.count('') == 16