diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index b6baf49bf..e87c3e0c6 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -21,6 +21,7 @@ body: - [The installation instructions](https://docs.paperless-ngx.com/setup/#installation). - [Existing issues and discussions](https://github.com/paperless-ngx/paperless-ngx/search?q=&type=issues). - Disable any custom container initialization scripts, if using + - Remove any third-party parser plugins — issues caused by or requiring changes to a third-party plugin will be closed without investigation. If you encounter issues while installing or configuring Paperless-ngx, please post in the ["Support" section of the discussions](https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=support). - type: textarea diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dfca17dbb..8ac712f97 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -157,6 +157,9 @@ updates: postgres: patterns: - "docker.io/library/postgres*" + greenmail: + patterns: + - "docker.io/greenmail*" - package-ecosystem: "pre-commit" # See documentation for possible values directory: "/" # Location of package manifests schedule: diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 3203d7291..cff139e8c 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -21,9 +21,10 @@ jobs: backend_changed: ${{ steps.force.outputs.run_all == 'true' || steps.filter.outputs.backend == 'true' }} steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 + persist-credentials: false - name: Decide run mode id: force run: | @@ -49,7 +50,7 @@ jobs: - name: Detect changes id: filter if: steps.force.outputs.run_all != 'true' - uses: dorny/paths-filter@v3.0.2 + uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 with: base: ${{ steps.range.outputs.base }} ref: ${{ steps.range.outputs.ref }} @@ -71,18 +72,20 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Start containers run: | docker compose --file docker/compose/docker-compose.ci-test.yml pull --quiet docker compose --file docker/compose/docker-compose.ci-test.yml up --detach - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "${{ matrix.python-version }}" - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true @@ -119,13 +122,13 @@ jobs: pytest - name: Upload test results to Codecov if: always() - uses: codecov/codecov-action@v5.5.2 + uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 with: flags: backend-python-${{ matrix.python-version }} files: junit.xml report_type: test_results - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.5.2 + uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 with: flags: backend-python-${{ matrix.python-version }} files: coverage.xml @@ -144,14 +147,16 @@ jobs: DEFAULT_PYTHON: "3.12" steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "${{ env.DEFAULT_PYTHON }}" - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true @@ -173,7 +178,7 @@ jobs: check \ src/ - name: Cache Mypy - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: .mypy_cache # Keyed by OS, Python version, and dependency hashes diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 69fff92d4..43b79728d 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -41,7 +41,9 @@ jobs: ref-name: ${{ steps.ref.outputs.name }} steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Determine ref name id: ref run: | @@ -104,9 +106,9 @@ jobs: echo "repository=${repo_name}" echo "name=${repo_name}" >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4.0.0 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Login to GitHub Container Registry - uses: docker/login-action@v4.0.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -119,7 +121,7 @@ jobs: sudo rm -rf "$AGENT_TOOLSDIRECTORY" - name: Docker metadata id: docker-meta - uses: docker/metadata-action@v5.10.0 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 with: images: | ${{ env.REGISTRY }}/${{ steps.repo.outputs.name }} @@ -130,7 +132,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Build and push by digest id: build - uses: docker/build-push-action@v6.19.2 + uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: context: . file: ./Dockerfile @@ -152,7 +154,7 @@ jobs: echo "${digest}" > "/tmp/digests/digest-${{ matrix.arch }}.txt" - name: Upload digest if: steps.check-push.outputs.should-push == 'true' - uses: actions/upload-artifact@v7.0.0 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: digests-${{ matrix.arch }} path: /tmp/digests/digest-${{ matrix.arch }}.txt @@ -169,7 +171,7 @@ jobs: packages: write steps: - name: Download digests - uses: actions/download-artifact@v8.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: path: /tmp/digests pattern: digest-*.txt @@ -179,29 +181,29 @@ jobs: echo "Downloaded digests:" ls -la /tmp/digests/ - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4.0.0 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Login to GitHub Container Registry - uses: docker/login-action@v4.0.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Login to Docker Hub if: needs.build-arch.outputs.push-external == 'true' - uses: docker/login-action@v4.0.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to Quay.io if: needs.build-arch.outputs.push-external == 'true' - uses: docker/login-action@v4.0.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: quay.io username: ${{ secrets.QUAY_USERNAME }} password: ${{ secrets.QUAY_ROBOT_TOKEN }} - name: Docker metadata id: docker-meta - uses: docker/metadata-action@v5.10.0 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 with: images: | ${{ env.REGISTRY }}/${{ needs.build-arch.outputs.repository }} diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 81d31dffe..a598a3c9d 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -23,9 +23,10 @@ jobs: docs_changed: ${{ steps.force.outputs.run_all == 'true' || steps.filter.outputs.docs == 'true' }} steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 + persist-credentials: false - name: Decide run mode id: force run: | @@ -51,7 +52,7 @@ jobs: - name: Detect changes id: filter if: steps.force.outputs.run_all != 'true' - uses: dorny/paths-filter@v3.0.2 + uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 with: base: ${{ steps.range.outputs.base }} ref: ${{ steps.range.outputs.ref }} @@ -68,16 +69,18 @@ jobs: name: Build Documentation runs-on: ubuntu-24.04 steps: - - uses: actions/configure-pages@v5.0.0 + - uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true @@ -93,7 +96,7 @@ jobs: --frozen \ zensical build --clean - name: Upload GitHub Pages artifact - uses: actions/upload-pages-artifact@v4.0.0 + uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0 with: path: site name: github-pages-${{ github.run_id }}-${{ github.run_attempt }} @@ -107,7 +110,7 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy GitHub Pages - uses: actions/deploy-pages@v4.0.5 + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 id: deployment with: artifact_name: github-pages-${{ github.run_id }}-${{ github.run_attempt }} diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml index bfd2ee5e4..9d4e23a1a 100644 --- a/.github/workflows/ci-frontend.yml +++ b/.github/workflows/ci-frontend.yml @@ -18,7 +18,7 @@ jobs: frontend_changed: ${{ steps.force.outputs.run_all == 'true' || steps.filter.outputs.frontend == 'true' }} steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Decide run mode @@ -46,7 +46,7 @@ jobs: - name: Detect changes id: filter if: steps.force.outputs.run_all != 'true' - uses: dorny/paths-filter@v3.0.2 + uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 with: base: ${{ steps.range.outputs.base }} ref: ${{ steps.range.outputs.ref }} @@ -61,20 +61,22 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies id: cache-frontend-deps - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store @@ -89,19 +91,21 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store @@ -124,19 +128,21 @@ jobs: shard-count: [4] steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store @@ -148,13 +154,13 @@ jobs: run: cd src-ui && pnpm run test --max-workers=2 --shard=${{ matrix.shard-index }}/${{ matrix.shard-count }} - name: Upload test results to Codecov if: always() - uses: codecov/codecov-action@v5.5.2 + uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 with: flags: frontend-node-${{ matrix.node-version }} directory: src-ui/ report_type: test_results - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.5.2 + uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 with: flags: frontend-node-${{ matrix.node-version }} directory: src-ui/coverage/ @@ -175,19 +181,21 @@ jobs: shard-count: [2] steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store @@ -206,21 +214,22 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 2 + persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store diff --git a/.github/workflows/ci-lint.yml b/.github/workflows/ci-lint.yml index c4df7d893..314250719 100644 --- a/.github/workflows/ci-lint.yml +++ b/.github/workflows/ci-lint.yml @@ -15,10 +15,12 @@ jobs: runs-on: ubuntu-slim steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Install Python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.14" - name: Run prek - uses: j178/prek-action@v1.1.1 + uses: j178/prek-action@53276d8b0d10f8b6672aa85b4588c6921d0370cc # v2.0.1 diff --git a/.github/workflows/ci-release.yml b/.github/workflows/ci-release.yml index bbd9e6b09..030e3bcad 100644 --- a/.github/workflows/ci-release.yml +++ b/.github/workflows/ci-release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Wait for Docker build - uses: lewagon/wait-on-check-action@v1.5.0 + uses: lewagon/wait-on-check-action@74049309dfeff245fe8009a0137eacf28136cb3c # v1.5.0 with: ref: ${{ github.sha }} check-name: 'Build Docker Image' @@ -28,14 +28,16 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false # ---- Frontend Build ---- - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' @@ -47,11 +49,11 @@ jobs: # ---- Backend Setup ---- - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true @@ -118,7 +120,7 @@ jobs: sudo chown -R 1000:1000 paperless-ngx/ tar -cJf paperless-ngx.tar.xz paperless-ngx/ - name: Upload release artifact - uses: actions/upload-artifact@v7.0.0 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: release path: dist/paperless-ngx.tar.xz @@ -133,7 +135,7 @@ jobs: version: ${{ steps.get-version.outputs.version }} steps: - name: Download release artifact - uses: actions/download-artifact@v8.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: release path: ./ @@ -148,7 +150,7 @@ jobs: fi - name: Create release and changelog id: create-release - uses: release-drafter/release-drafter@v6.2.0 + uses: release-drafter/release-drafter@139054aeaa9adc52ab36ddf67437541f039b88e2 # v7.1.1 with: name: Paperless-ngx ${{ steps.get-version.outputs.version }} tag: ${{ steps.get-version.outputs.version }} @@ -159,7 +161,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload release archive - uses: shogo82148/actions-upload-release-asset@v1.9.2 + uses: shogo82148/actions-upload-release-asset@96bc1f0cb850b65efd58a6b5eaa0a69f88d38077 # v1.10.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} upload_url: ${{ steps.create-release.outputs.upload_url }} @@ -176,16 +178,17 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: main + persist-credentials: true # for pushing changelog branch - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true @@ -218,7 +221,7 @@ jobs: git commit -am "Changelog ${{ needs.publish-release.outputs.version }} - GHA" git push origin ${{ needs.publish-release.outputs.version }}-changelog - name: Create pull request - uses: actions/github-script@v8.0.0 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | const { repo, owner } = context.repo; diff --git a/.github/workflows/ci-static-analysis.yml b/.github/workflows/ci-static-analysis.yml new file mode 100644 index 000000000..99388354a --- /dev/null +++ b/.github/workflows/ci-static-analysis.yml @@ -0,0 +1,42 @@ +name: Static Analysis +on: + push: + branches-ignore: + - 'translations**' + pull_request: + branches-ignore: + - 'translations**' + workflow_dispatch: +concurrency: + group: static-analysis-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +permissions: + contents: read +jobs: + zizmor: + name: Run zizmor + runs-on: ubuntu-24.04 + permissions: + contents: read + actions: read + security-events: write + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - name: Run zizmor + uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2 + semgrep: + name: Semgrep CE + runs-on: ubuntu-24.04 + container: + image: semgrep/semgrep:1.155.0@sha256:cc869c685dcc0fe497c86258da9f205397d8108e56d21a86082ea4886e52784d + if: github.actor != 'dependabot[bot]' + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - name: Run Semgrep + run: semgrep scan --config auto diff --git a/.github/workflows/cleanup-tags.yml b/.github/workflows/cleanup-tags.yml index bc2ae655f..426554777 100644 --- a/.github/workflows/cleanup-tags.yml +++ b/.github/workflows/cleanup-tags.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Clean temporary images if: "${{ env.TOKEN != '' }}" - uses: stumpylog/image-cleaner-action/ephemeral@v0.12.0 + uses: stumpylog/image-cleaner-action/ephemeral@4fe057d991d63b8f6d5d22c40f17c1bca2226537 # v0.12.0 with: token: "${{ env.TOKEN }}" owner: "${{ github.repository_owner }}" @@ -53,7 +53,7 @@ jobs: steps: - name: Clean untagged images if: "${{ env.TOKEN != '' }}" - uses: stumpylog/image-cleaner-action/untagged@v0.12.0 + uses: stumpylog/image-cleaner-action/untagged@4fe057d991d63b8f6d5d22c40f17c1bca2226537 # v0.12.0 with: token: "${{ env.TOKEN }}" owner: "${{ github.repository_owner }}" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 32b1fc638..e295e938d 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -34,10 +34,12 @@ jobs: # Learn more about CodeQL language support at https://git.io/codeql-language-support steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v4.32.5 + uses: github/codeql-action/init@c793b717bc78562f491db7b0e93a3a178b099162 # v4.32.5 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -45,4 +47,4 @@ jobs: # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4.32.5 + uses: github/codeql-action/analyze@c793b717bc78562f491db7b0e93a3a178b099162 # v4.32.5 diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 63853f6c5..29b4be02f 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -13,11 +13,12 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: token: ${{ secrets.PNGX_BOT_PAT }} + persist-credentials: false - name: crowdin action - uses: crowdin/github-action@v2.15.0 + uses: crowdin/github-action@8818ff65bfc4322384f983ea37e3926948c11745 # v2.15.0 with: upload_translations: false download_translations: true diff --git a/.github/workflows/pr-bot.yml b/.github/workflows/pr-bot.yml index f36e9cd9f..e9f976608 100644 --- a/.github/workflows/pr-bot.yml +++ b/.github/workflows/pr-bot.yml @@ -10,7 +10,7 @@ jobs: issues: read pull-requests: write steps: - - uses: peakoss/anti-slop@v0.2.1 + - uses: peakoss/anti-slop@85daca1880e9e1af197fc06ea03349daf08f4202 # v0.2.1 with: max-failures: 4 failure-add-pr-labels: 'ai' @@ -23,11 +23,11 @@ jobs: steps: - name: Label PR by file path or branch name # see .github/labeler.yml for the labeler config - uses: actions/labeler@v6.0.1 + uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Label by size - uses: Gascon1/pr-size-labeler@v1.3.0 + uses: Gascon1/pr-size-labeler@deff8ed00a76639a7c0f197525bafa3350ba4c36 # v1.3.0 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} xs_label: 'small-change' @@ -37,7 +37,7 @@ jobs: fail_if_xl: 'false' excluded_files: /\.lock$/ /\.txt$/ ^src-ui/pnpm-lock\.yaml$ ^src-ui/messages\.xlf$ ^src/locale/en_US/LC_MESSAGES/django\.po$ - name: Label by PR title - uses: actions/github-script@v8.0.0 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | const pr = context.payload.pull_request; @@ -63,7 +63,7 @@ jobs: } - name: Label bot-generated PRs if: ${{ contains(github.actor, 'dependabot') || contains(github.actor, 'crowdin-bot') }} - uses: actions/github-script@v8.0.0 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | const pr = context.payload.pull_request; @@ -88,7 +88,7 @@ jobs: } - name: Welcome comment if: ${{ !contains(github.actor, 'bot') }} - uses: actions/github-script@v8.0.0 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | const pr = context.payload.pull_request; diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 289a83115..bc26aaf0d 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -19,6 +19,6 @@ jobs: if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != 'dependabot' steps: - name: Label PR with release-drafter - uses: release-drafter/release-drafter@v6.2.0 + uses: release-drafter/release-drafter@139054aeaa9adc52ab36ddf67437541f039b88e2 # v7.1.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/repo-maintenance.yml b/.github/workflows/repo-maintenance.yml index 93d41f5a6..1d4903193 100644 --- a/.github/workflows/repo-maintenance.yml +++ b/.github/workflows/repo-maintenance.yml @@ -15,7 +15,7 @@ jobs: if: github.repository_owner == 'paperless-ngx' runs-on: ubuntu-24.04 steps: - - uses: actions/stale@v10.2.0 + - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 with: days-before-stale: 7 days-before-close: 14 @@ -37,7 +37,7 @@ jobs: if: github.repository_owner == 'paperless-ngx' runs-on: ubuntu-24.04 steps: - - uses: dessant/lock-threads@v6.0.0 + - uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0 with: issue-inactive-days: '30' pr-inactive-days: '30' @@ -57,7 +57,7 @@ jobs: if: github.repository_owner == 'paperless-ngx' runs-on: ubuntu-24.04 steps: - - uses: actions/github-script@v8.0.0 + - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | function sleep(ms) { @@ -114,7 +114,7 @@ jobs: if: github.repository_owner == 'paperless-ngx' runs-on: ubuntu-24.04 steps: - - uses: actions/github-script@v8.0.0 + - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | function sleep(ms) { @@ -206,7 +206,7 @@ jobs: if: github.repository_owner == 'paperless-ngx' runs-on: ubuntu-24.04 steps: - - uses: actions/github-script@v8.0.0 + - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | function sleep(ms) { diff --git a/.github/workflows/translate-strings.yml b/.github/workflows/translate-strings.yml index 220aee9cc..ad894abe7 100644 --- a/.github/workflows/translate-strings.yml +++ b/.github/workflows/translate-strings.yml @@ -11,21 +11,22 @@ jobs: contents: write steps: - name: Checkout code - uses: actions/checkout@v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 env: GH_REF: ${{ github.ref }} # sonar rule:githubactions:S7630 - avoid injection with: token: ${{ secrets.PNGX_BOT_PAT }} ref: ${{ env.GH_REF }} + persist-credentials: true # for pushing translation branch - name: Set up Python id: setup-python - uses: actions/setup-python@v6.2.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - name: Install system dependencies run: | sudo apt-get update -qq sudo apt-get install -qq --no-install-recommends gettext - name: Install uv - uses: astral-sh/setup-uv@v7.3.1 + uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1 with: enable-cache: true - name: Install backend python dependencies @@ -36,18 +37,18 @@ jobs: - name: Generate backend translation strings run: cd src/ && uv run manage.py makemessages -l en_US -i "samples*" - name: Install pnpm - uses: pnpm/action-setup@v4.2.0 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: version: 10 - name: Use Node.js 24 - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: 24.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies id: cache-frontend-deps - uses: actions/cache@v5.0.3 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: | ~/.pnpm-store @@ -63,7 +64,7 @@ jobs: cd src-ui pnpm run ng extract-i18n - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v7.1.0 + uses: stefanzweifel/git-auto-commit-action@04702edda442b2e678b25b537cec683a1493fcb9 # v7.1.0 with: file_pattern: 'src-ui/messages.xlf src/locale/en_US/LC_MESSAGES/django.po' commit_message: "Auto translate strings" diff --git a/.mypy-baseline.txt b/.mypy-baseline.txt index 2700bfc71..61ffe9c10 100644 --- a/.mypy-baseline.txt +++ b/.mypy-baseline.txt @@ -2437,17 +2437,3 @@ src/paperless_tesseract/tests/test_parser_custom_settings.py:0: error: Item "Non src/paperless_tesseract/tests/test_parser_custom_settings.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "unpaper_clean" [union-attr] src/paperless_tesseract/tests/test_parser_custom_settings.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "unpaper_clean" [union-attr] src/paperless_tesseract/tests/test_parser_custom_settings.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "user_args" [union-attr] -src/paperless_text/parsers.py:0: error: Function is missing a type annotation for one or more arguments [no-untyped-def] -src/paperless_text/parsers.py:0: error: Function is missing a type annotation for one or more arguments [no-untyped-def] -src/paperless_text/parsers.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "None") [assignment] -src/paperless_text/signals.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_text/signals.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Argument 1 to "make_thumbnail_from_pdf" has incompatible type "None"; expected "Path" [arg-type] -src/paperless_tika/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Function is missing a type annotation for one or more arguments [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Function is missing a type annotation for one or more arguments [no-untyped-def] -src/paperless_tika/parsers.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "None") [assignment] -src/paperless_tika/signals.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_tika/signals.py:0: error: Function is missing a type annotation [no-untyped-def] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 073dbac1d..6c483467d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -50,12 +50,12 @@ repos: - 'prettier-plugin-organize-imports@4.3.0' # Python hooks - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.5 + rev: v0.15.8 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/tox-dev/pyproject-fmt - rev: "v2.12.1" + rev: "v2.21.0" hooks: - id: pyproject-fmt # Dockerfile hooks diff --git a/Dockerfile b/Dockerfile index ac6143162..0b8886c61 100644 --- a/Dockerfile +++ b/Dockerfile @@ -237,8 +237,8 @@ RUN set -eux \ && echo "Adjusting all permissions" \ && chown --from root:root --changes --recursive paperless:paperless /usr/src/paperless \ && echo "Collecting static files" \ - && s6-setuidgid paperless python3 manage.py collectstatic --clear --no-input --link \ - && s6-setuidgid paperless python3 manage.py compilemessages \ + && PAPERLESS_SECRET_KEY=build-time-dummy s6-setuidgid paperless python3 manage.py collectstatic --clear --no-input --link \ + && PAPERLESS_SECRET_KEY=build-time-dummy s6-setuidgid paperless python3 manage.py compilemessages \ && /usr/local/bin/deduplicate.py --verbose /usr/src/paperless/static/ VOLUME ["/usr/src/paperless/data", \ diff --git a/docker/compose/docker-compose.ci-test.yml b/docker/compose/docker-compose.ci-test.yml index 545019eec..5cb4bcd39 100644 --- a/docker/compose/docker-compose.ci-test.yml +++ b/docker/compose/docker-compose.ci-test.yml @@ -18,13 +18,13 @@ services: - "--log-level=warn" - "--log-format=text" tika: - image: docker.io/apache/tika:latest + image: docker.io/apache/tika:3.2.3.0 hostname: tika container_name: tika network_mode: host restart: unless-stopped greenmail: - image: greenmail/standalone:2.1.8 + image: docker.io/greenmail/standalone:2.1.8 hostname: greenmail container_name: greenmail environment: diff --git a/docker/compose/docker-compose.env b/docker/compose/docker-compose.env index 75eeeed09..af6a6e8fe 100644 --- a/docker/compose/docker-compose.env +++ b/docker/compose/docker-compose.env @@ -17,9 +17,9 @@ # (if doing so please consider security measures such as reverse proxy) #PAPERLESS_URL=https://paperless.example.com -# Adjust this key if you plan to make paperless available publicly. It should -# be a very long sequence of random characters. You don't need to remember it. -#PAPERLESS_SECRET_KEY=change-me +# Required. A unique secret key for session tokens and signing. +# Generate with: python3 -c "import secrets; print(secrets.token_urlsafe(64))" +PAPERLESS_SECRET_KEY=change-me # Use this variable to set a timezone for the Paperless Docker containers. Defaults to UTC. #PAPERLESS_TIME_ZONE=America/Los_Angeles diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-modify-user/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-modify-user/run index aa617355d..f8430aee2 100755 --- a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-modify-user/run +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-modify-user/run @@ -2,6 +2,17 @@ # shellcheck shell=bash declare -r log_prefix="[init-user]" +# When the container is started as a non-root user (e.g. via `user: 999:999` +# in Docker Compose), usermod/groupmod require root and are meaningless. +# USERMAP_* variables only apply to the root-started path. +if [[ -n "${USER_IS_NON_ROOT}" ]]; then + if [[ -n "${USERMAP_UID}" || -n "${USERMAP_GID}" ]]; then + echo "${log_prefix} WARNING: USERMAP_UID/USERMAP_GID are set but have no effect when the container is started as a non-root user" + fi + echo "${log_prefix} Running as non-root user ($(id --user):$(id --group)), skipping UID/GID remapping" + exit 0 +fi + declare -r usermap_original_uid=$(id -u paperless) declare -r usermap_original_gid=$(id -g paperless) declare -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid} diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-search-index/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-search-index/run index 2208faf67..8f6feeb7f 100755 --- a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-search-index/run +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-search-index/run @@ -3,26 +3,10 @@ declare -r log_prefix="[init-index]" -declare -r index_version=9 -declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}" -declare -r index_version_file="${data_dir}/.index_version" - -update_index () { - echo "${log_prefix} Search index out of date. Updating..." - cd "${PAPERLESS_SRC_DIR}" - if [[ -n "${USER_IS_NON_ROOT}" ]]; then - python3 manage.py document_index reindex --no-progress-bar - echo ${index_version} | tee "${index_version_file}" > /dev/null - else - s6-setuidgid paperless python3 manage.py document_index reindex --no-progress-bar - echo ${index_version} | s6-setuidgid paperless tee "${index_version_file}" > /dev/null - fi -} - -if [[ (! -f "${index_version_file}") ]]; then - echo "${log_prefix} No index version file found" - update_index -elif [[ $(<"${index_version_file}") != "$index_version" ]]; then - echo "${log_prefix} index version updated" - update_index +echo "${log_prefix} Checking search index..." +cd "${PAPERLESS_SRC_DIR}" +if [[ -n "${USER_IS_NON_ROOT}" ]]; then + python3 manage.py document_index reindex --if-needed --no-progress-bar +else + s6-setuidgid paperless python3 manage.py document_index reindex --if-needed --no-progress-bar fi diff --git a/docs/administration.md b/docs/administration.md index e55b899f5..013ac9fdd 100644 --- a/docs/administration.md +++ b/docs/administration.md @@ -180,6 +180,16 @@ following: This might not actually do anything. Not every new paperless version comes with new database migrations. +4. Rebuild the search index if needed. + + ```shell-session + cd src + python3 manage.py document_index reindex --if-needed + ``` + + This is a no-op if the index is already up to date, so it is safe to + run on every upgrade. + ### Database Upgrades Paperless-ngx is compatible with Django-supported versions of PostgreSQL and MariaDB and it is generally @@ -453,17 +463,42 @@ the search yields non-existing documents or won't find anything, you may need to recreate the index manually. ``` -document_index {reindex,optimize} +document_index {reindex,optimize} [--recreate] [--if-needed] ``` -Specify `reindex` to have the index created from scratch. This may take -some time. +Specify `reindex` to rebuild the index from all documents in the database. This +may take some time. -Specify `optimize` to optimize the index. This updates certain aspects -of the index and usually makes queries faster and also ensures that the -autocompletion works properly. This command is regularly invoked by the +Pass `--recreate` to wipe the existing index before rebuilding. Use this when the +index is corrupted or you want a fully clean rebuild. + +Pass `--if-needed` to skip the rebuild if the index is already up to date (schema +version and search language match). Safe to run on every startup or upgrade. + +Specify `optimize` to optimize the index. This command is regularly invoked by the task scheduler. +!!! note + + The `optimize` subcommand is deprecated and is now a no-op. Tantivy manages + segment merging automatically; no manual optimization step is needed. + +!!! note + + **Docker users:** On every startup, the container runs + `document_index reindex --if-needed` automatically. Schema changes, language + changes, and missing indexes are all detected and rebuilt before the webserver + starts. No manual step is required. + + **Bare metal users:** Run the following command after each upgrade (and after + changing `PAPERLESS_SEARCH_LANGUAGE`). It is a no-op if the index is already + up to date: + + ```shell-session + cd src + python3 manage.py document_index reindex --if-needed + ``` + ### Clearing the database read cache If the database read cache is enabled, **you must run this command** after making any changes to the database outside the application context. diff --git a/docs/advanced_usage.md b/docs/advanced_usage.md index 989604000..ee0cfddce 100644 --- a/docs/advanced_usage.md +++ b/docs/advanced_usage.md @@ -723,6 +723,81 @@ services: 1. Note the `:ro` tag means the folder will be mounted as read only. This is for extra security against changes +## Installing third-party parser plugins {#parser-plugins} + +Third-party parser plugins extend Paperless-ngx to support additional file +formats. A plugin is a Python package that advertises itself under the +`paperless_ngx.parsers` entry point group. Refer to the +[developer documentation](development.md#making-custom-parsers) for how to +create one. + +!!! warning "Third-party plugins are not officially supported" + + The Paperless-ngx maintainers do not provide support for third-party + plugins. Issues caused by or requiring changes to a third-party plugin + will be closed without further investigation. Always reproduce problems + with all plugins removed before filing a bug report. + +### Docker + +Use a [custom container initialization script](#custom-container-initialization) +to install the package before the webserver starts. Create a shell script and +mount it into `/custom-cont-init.d`: + +```bash +#!/bin/bash +# /path/to/my/scripts/install-parsers.sh + +pip install my-paperless-parser-package +``` + +Mount it in your `docker-compose.yml`: + +```yaml +services: + webserver: + # ... + volumes: + - /path/to/my/scripts:/custom-cont-init.d:ro +``` + +The script runs as `root` before the webserver starts, so the package will be +available when Paperless-ngx discovers plugins at startup. + +### Bare metal + +Install the package into the same Python environment that runs Paperless-ngx. +If you followed the standard bare-metal install guide, that is the `paperless` +user's environment: + +```bash +sudo -Hu paperless pip3 install my-paperless-parser-package +``` + +If you are using `uv` or a virtual environment, activate it first and then run: + +```bash +uv pip install my-paperless-parser-package +# or +pip install my-paperless-parser-package +``` + +Restart all Paperless-ngx services after installation so the new plugin is +discovered. + +### Verifying installation + +On the next startup, check the application logs for a line confirming +discovery: + +``` +Loaded third-party parser 'My Parser' v1.0.0 by Acme Corp (entrypoint: 'my_parser'). +``` + +If this line does not appear, verify that the package is installed in the +correct environment and that its `pyproject.toml` declares the +`paperless_ngx.parsers` entry point. + ## MySQL Caveats {#mysql-caveats} ### Case Sensitivity diff --git a/docs/api.md b/docs/api.md index bd550c519..af1190f3d 100644 --- a/docs/api.md +++ b/docs/api.md @@ -62,10 +62,14 @@ The REST api provides five different forms of authentication. ## Searching for documents -Full text searching is available on the `/api/documents/` endpoint. Two -specific query parameters cause the API to return full text search +Full text searching is available on the `/api/documents/` endpoint. The +following query parameters cause the API to return Tantivy-backed search results: +- `/api/documents/?text=your%20search%20query`: Search title and content + using simple substring-style search. +- `/api/documents/?title_search=your%20search%20query`: Search title only + using simple substring-style search. - `/api/documents/?query=your%20search%20query`: Search for a document using a full text query. For details on the syntax, see [Basic Usage - Searching](usage.md#basic-usage_searching). - `/api/documents/?more_like_id=1234`: Search for documents similar to @@ -167,9 +171,8 @@ Query parameters: - `term`: The incomplete term. - `limit`: Amount of results. Defaults to 10. -Results returned by the endpoint are ordered by importance of the term -in the document index. The first result is the term that has the highest -[Tf/Idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) score in the index. +Results are ordered by how many of the user's visible documents contain +each matching word. The first result is the word that appears in the most documents. ```json ["term1", "term3", "term6", "term4"] @@ -437,3 +440,8 @@ Initial API version. moved from the bulk edit endpoint to their own individual endpoints. Using these methods via the bulk edit endpoint is still supported for compatibility with versions < 10 until support for API v9 is dropped. +- The `all` parameter of list endpoints is now deprecated and will be removed in a future version. +- The bulk edit objects endpoint now supports `all` and `filters` parameters to avoid having to send + large lists of object IDs for operations affecting many objects. +- The legacy `title_content` document search parameter is deprecated and will be removed in a future version. + Clients should use `text` for simple title-and-content search and `title_search` for title-only search. diff --git a/docs/changelog.md b/docs/changelog.md index 9a1d3ef7f..c361309d1 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,56 @@ # Changelog +## paperless-ngx 2.20.12 + +### Security + +- Resolve [GHSA-96jx-fj7m-qh6x](https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-96jx-fj7m-qh6x) + +### Bug Fixes + +- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename [@stumpylog](https://github.com/stumpylog) ([#12390](https://github.com/paperless-ngx/paperless-ngx/pull/12390)) +- Fix: don't try to usermod/groupmod when non-root + update docs (#12365) [@stumpylog](https://github.com/stumpylog) ([#12391](https://github.com/paperless-ngx/paperless-ngx/pull/12391)) +- Fix: avoid moving files if already moved [@shamoon](https://github.com/shamoon) ([#12389](https://github.com/paperless-ngx/paperless-ngx/pull/12389)) +- Fix: remove pagination from document notes api spec [@shamoon](https://github.com/shamoon) ([#12388](https://github.com/paperless-ngx/paperless-ngx/pull/12388)) +- Fix: fix file button hover color in dark mode [@shamoon](https://github.com/shamoon) ([#12367](https://github.com/paperless-ngx/paperless-ngx/pull/12367)) +- Fixhancement: only offer basic auth for appropriate requests [@shamoon](https://github.com/shamoon) ([#12362](https://github.com/paperless-ngx/paperless-ngx/pull/12362)) + +### All App Changes + +
+5 changes + +- Fix: Scope the workflow saves to prevent clobbering filename/archive_filename [@stumpylog](https://github.com/stumpylog) ([#12390](https://github.com/paperless-ngx/paperless-ngx/pull/12390)) +- Fix: avoid moving files if already moved [@shamoon](https://github.com/shamoon) ([#12389](https://github.com/paperless-ngx/paperless-ngx/pull/12389)) +- Fix: remove pagination from document notes api spec [@shamoon](https://github.com/shamoon) ([#12388](https://github.com/paperless-ngx/paperless-ngx/pull/12388)) +- Fix: fix file button hover color in dark mode [@shamoon](https://github.com/shamoon) ([#12367](https://github.com/paperless-ngx/paperless-ngx/pull/12367)) +- Fixhancement: only offer basic auth for appropriate requests [@shamoon](https://github.com/shamoon) ([#12362](https://github.com/paperless-ngx/paperless-ngx/pull/12362)) +
+ +## paperless-ngx 2.20.11 + +### Security + +- Resolve [GHSA-59xh-5vwx-4c4q](https://github.com/paperless-ngx/paperless-ngx/security/advisories/GHSA-59xh-5vwx-4c4q) + +### Bug Fixes + +- Fix: correct dropdown list active color in dark mode [@shamoon](https://github.com/shamoon) ([#12328](https://github.com/paperless-ngx/paperless-ngx/pull/12328)) +- Fixhancement: clear descendant selections in dropdown when parent toggled [@shamoon](https://github.com/shamoon) ([#12326](https://github.com/paperless-ngx/paperless-ngx/pull/12326)) +- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count [@shamoon](https://github.com/shamoon) ([#12302](https://github.com/paperless-ngx/paperless-ngx/pull/12302)) +- Fix: prevent stale db filename during workflow actions [@shamoon](https://github.com/shamoon) ([#12289](https://github.com/paperless-ngx/paperless-ngx/pull/12289)) + +### All App Changes + +
+4 changes + +- Fix: correct dropdown list active color in dark mode [@shamoon](https://github.com/shamoon) ([#12328](https://github.com/paperless-ngx/paperless-ngx/pull/12328)) +- Fixhancement: clear descendant selections in dropdown when parent toggled [@shamoon](https://github.com/shamoon) ([#12326](https://github.com/paperless-ngx/paperless-ngx/pull/12326)) +- Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count [@shamoon](https://github.com/shamoon) ([#12302](https://github.com/paperless-ngx/paperless-ngx/pull/12302)) +- Fix: prevent stale db filename during workflow actions [@shamoon](https://github.com/shamoon) ([#12289](https://github.com/paperless-ngx/paperless-ngx/pull/12289)) +
+ ## paperless-ngx 2.20.10 ### Bug Fixes diff --git a/docs/configuration.md b/docs/configuration.md index ac148c68b..7156b3553 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -402,6 +402,12 @@ Defaults to `/usr/share/nltk_data` : This is where paperless will store the classification model. + !!! warning + + The classification model uses Python's pickle serialization format. + Ensure this file is only writable by the paperless user, as a + maliciously crafted model file could execute arbitrary code when loaded. + Defaults to `PAPERLESS_DATA_DIR/classification_model.pickle`. ## Logging @@ -422,14 +428,20 @@ Defaults to `/usr/share/nltk_data` #### [`PAPERLESS_SECRET_KEY=`](#PAPERLESS_SECRET_KEY) {#PAPERLESS_SECRET_KEY} -: Paperless uses this to make session tokens. If you expose paperless -on the internet, you need to change this, since the default secret -is well known. +: **Required.** Paperless uses this to make session tokens and sign +sensitive data. Paperless will refuse to start if this is not set. Use any sequence of characters. The more, the better. You don't - need to remember this. Just face-roll your keyboard. + need to remember this. You can generate a suitable key with: - Default is listed in the file `src/paperless/settings.py`. + python3 -c "import secrets; print(secrets.token_urlsafe(64))" + + !!! warning + + This setting has no default value. You **must** set it before + starting Paperless. Existing installations that relied on the + previous default value should set `PAPERLESS_SECRET_KEY` to + that value to avoid invalidating existing sessions and tokens. #### [`PAPERLESS_URL=`](#PAPERLESS_URL) {#PAPERLESS_URL} @@ -674,6 +686,9 @@ See the corresponding [django-allauth documentation](https://docs.allauth.org/en for a list of provider configurations. You will also need to include the relevant Django 'application' inside the [PAPERLESS_APPS](#PAPERLESS_APPS) setting to activate that specific authentication provider (e.g. `allauth.socialaccount.providers.openid_connect` for the [OIDC Connect provider](https://docs.allauth.org/en/latest/socialaccount/providers/openid_connect.html)). +: For OpenID Connect providers, set `settings.token_auth_method` if your identity provider +requires a specific token endpoint authentication method. + Defaults to None, which does not enable any third party authentication systems. #### [`PAPERLESS_SOCIAL_AUTO_SIGNUP=`](#PAPERLESS_SOCIAL_AUTO_SIGNUP) {#PAPERLESS_SOCIAL_AUTO_SIGNUP} @@ -767,6 +782,14 @@ If both the [PAPERLESS_ACCOUNT_DEFAULT_GROUPS](#PAPERLESS_ACCOUNT_DEFAULT_GROUPS Defaults to 1209600 (2 weeks) +#### [`PAPERLESS_TOKEN_THROTTLE_RATE=`](#PAPERLESS_TOKEN_THROTTLE_RATE) {#PAPERLESS_TOKEN_THROTTLE_RATE} + +: Rate limit for the API token authentication endpoint (`/api/token/`), used to mitigate brute-force login attempts. +Uses Django REST Framework's [throttle rate format](https://www.django-rest-framework.org/api-guide/throttling/#setting-the-throttling-policy), +e.g. `5/min`, `100/hour`, `1000/day`. + + Defaults to `5/min` + ## OCR settings {#ocr} Paperless uses [OCRmyPDF](https://ocrmypdf.readthedocs.io/en/latest/) @@ -1100,6 +1123,32 @@ should be a valid crontab(5) expression describing when to run. Defaults to `0 0 * * *` or daily at midnight. +#### [`PAPERLESS_SEARCH_LANGUAGE=`](#PAPERLESS_SEARCH_LANGUAGE) {#PAPERLESS_SEARCH_LANGUAGE} + +: Sets the stemmer language for the full-text search index. +Stemming improves recall by matching word variants (e.g. "running" matches "run"). +Changing this setting causes the index to be rebuilt automatically on next startup. +An invalid value raises an error at startup. + +: Use the ISO 639-1 two-letter code (e.g. `en`, `de`, `fr`). Lowercase full names +(e.g. `english`, `german`, `french`) are also accepted. The capitalized names shown +in the [Tantivy Language enum](https://docs.rs/tantivy/latest/tantivy/tokenizer/enum.Language.html) +documentation are **not** valid — use the lowercase equivalent. + +: If not set, paperless infers the language from +[`PAPERLESS_OCR_LANGUAGE`](#PAPERLESS_OCR_LANGUAGE). If the OCR language has no +Tantivy stemmer equivalent, stemming is disabled. + + Defaults to unset (inferred from `PAPERLESS_OCR_LANGUAGE`). + +#### [`PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD=`](#PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD) {#PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD} + +: When set to a float value, approximate/fuzzy matching is applied alongside exact +matching. Fuzzy results rank below exact matches. A value of `0.5` is a reasonable +starting point. Leave unset to disable fuzzy matching entirely. + + Defaults to unset (disabled). + #### [`PAPERLESS_SANITY_TASK_CRON=`](#PAPERLESS_SANITY_TASK_CRON) {#PAPERLESS_SANITY_TASK_CRON} : Configures the scheduled sanity checker frequency. The value should be a @@ -1391,6 +1440,14 @@ ports. ## Incoming Mail {#incoming_mail} +#### [`PAPERLESS_EMAIL_ALLOW_INTERNAL_HOSTS=`](#PAPERLESS_EMAIL_ALLOW_INTERNAL_HOSTS) {#PAPERLESS_EMAIL_ALLOW_INTERNAL_HOSTS} + +: If set to false, incoming mail account connections are blocked when the +configured IMAP hostname resolves to a non-public address (for example, +localhost, link-local, or RFC1918 private ranges). + + Defaults to true, which allows internal hosts. + ### Email OAuth {#email_oauth} #### [`PAPERLESS_OAUTH_CALLBACK_BASE_URL=`](#PAPERLESS_OAUTH_CALLBACK_BASE_URL) {#PAPERLESS_OAUTH_CALLBACK_BASE_URL} @@ -1947,6 +2004,12 @@ current backend. If not supplied, defaults to "gpt-3.5-turbo" for OpenAI and "ll Defaults to None. +#### [`PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS=`](#PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS) {#PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS} + +: If set to false, Paperless blocks AI endpoint URLs that resolve to non-public addresses (e.g., localhost, etc). + + Defaults to true, which allows internal endpoints. + #### [`PAPERLESS_AI_LLM_INDEX_TASK_CRON=`](#PAPERLESS_AI_LLM_INDEX_TASK_CRON) {#PAPERLESS_AI_LLM_INDEX_TASK_CRON} : Configures the schedule to update the AI embeddings of text content and metadata for all documents. Only performed if diff --git a/docs/development.md b/docs/development.md index e6b9955e8..11e078a67 100644 --- a/docs/development.md +++ b/docs/development.md @@ -370,121 +370,367 @@ docker build --file Dockerfile --tag paperless:local . ## Extending Paperless-ngx -Paperless-ngx does not have any fancy plugin systems and will probably never -have. However, some parts of the application have been designed to allow -easy integration of additional features without any modification to the -base code. +Paperless-ngx supports third-party document parsers via a Python entry point +plugin system. Plugins are distributed as ordinary Python packages and +discovered automatically at startup — no changes to the Paperless-ngx source +are required. + +!!! warning "Third-party plugins are not officially supported" + + The Paperless-ngx maintainers do not provide support for third-party + plugins. Issues that are caused by or require changes to a third-party + plugin will be closed without further investigation. If you believe you + have found a bug in Paperless-ngx itself (not in a plugin), please + reproduce it with all third-party plugins removed before filing an issue. ### Making custom parsers -Paperless-ngx uses parsers to add documents. A parser is -responsible for: +Paperless-ngx uses parsers to add documents. A parser is responsible for: -- Retrieving the content from the original -- Creating a thumbnail -- _optional:_ Retrieving a created date from the original -- _optional:_ Creating an archived document from the original +- Extracting plain-text content from the document +- Generating a thumbnail image +- _optional:_ Detecting the document's creation date +- _optional:_ Producing a searchable PDF archive copy -Custom parsers can be added to Paperless-ngx to support more file types. In -order to do that, you need to write the parser itself and announce its -existence to Paperless-ngx. +Custom parsers are distributed as ordinary Python packages and registered +via a [setuptools entry point](https://setuptools.pypa.io/en/latest/userguide/entry_point.html). +No changes to the Paperless-ngx source are required. -The parser itself must extend `documents.parsers.DocumentParser` and -must implement the methods `parse` and `get_thumbnail`. You can provide -your own implementation to `get_date` if you don't want to rely on -Paperless-ngx' default date guessing mechanisms. +#### 1. Implementing the parser class + +Your parser must satisfy the `ParserProtocol` structural interface defined in +`paperless.parsers`. The simplest approach is to write a plain class — no base +class is required, only the right attributes and methods. + +**Class-level identity attributes** + +The registry reads these before instantiating the parser, so they must be +plain class attributes (not instance attributes or properties): ```python -class MyCustomParser(DocumentParser): - - def parse(self, document_path, mime_type): - # This method does not return anything. Rather, you should assign - # whatever you got from the document to the following fields: - - # The content of the document. - self.text = "content" - - # Optional: path to a PDF document that you created from the original. - self.archive_path = os.path.join(self.tempdir, "archived.pdf") - - # Optional: "created" date of the document. - self.date = get_created_from_metadata(document_path) - - def get_thumbnail(self, document_path, mime_type): - # This should return the path to a thumbnail you created for this - # document. - return os.path.join(self.tempdir, "thumb.webp") +class MyCustomParser: + name = "My Format Parser" # human-readable name shown in logs + version = "1.0.0" # semantic version string + author = "Acme Corp" # author / organisation + url = "https://example.com/my-parser" # docs or issue tracker ``` -If you encounter any issues during parsing, raise a -`documents.parsers.ParseError`. +**Declaring supported MIME types** -The `self.tempdir` directory is a temporary directory that is guaranteed -to be empty and removed after consumption finished. You can use that -directory to store any intermediate files and also use it to store the -thumbnail / archived document. - -After that, you need to announce your parser to Paperless-ngx. You need to -connect a handler to the `document_consumer_declaration` signal. Have a -look in the file `src/paperless_tesseract/apps.py` on how that's done. -The handler is a method that returns information about your parser: +Return a `dict` mapping MIME type strings to preferred file extensions +(including the leading dot). Paperless-ngx uses the extension when storing +archive copies and serving files for download. ```python -def myparser_consumer_declaration(sender, **kwargs): +@classmethod +def supported_mime_types(cls) -> dict[str, str]: return { - "parser": MyCustomParser, - "weight": 0, - "mime_types": { - "application/pdf": ".pdf", - "image/jpeg": ".jpg", - } + "application/x-my-format": ".myf", + "application/x-my-format-alt": ".myf", } ``` -- `parser` is a reference to a class that extends `DocumentParser`. -- `weight` is used whenever two or more parsers are able to parse a - file: The parser with the higher weight wins. This can be used to - override the parsers provided by Paperless-ngx. -- `mime_types` is a dictionary. The keys are the mime types your - parser supports and the value is the default file extension that - Paperless-ngx should use when storing files and serving them for - download. We could guess that from the file extensions, but some - mime types have many extensions associated with them and the Python - methods responsible for guessing the extension do not always return - the same value. +**Scoring** -## Using Visual Studio Code devcontainer +When more than one parser can handle a file, the registry calls `score()` on +each candidate and picks the one with the highest result and equal scores favor third-party parsers over built-ins. Return `None` to +decline handling a file even though the MIME type is listed as supported (for +example, when a required external service is not configured). -Another easy way to get started with development is to use Visual Studio -Code devcontainers. This approach will create a preconfigured development -environment with all of the required tools and dependencies. -[Learn more about devcontainers](https://code.visualstudio.com/docs/devcontainers/containers). -The .devcontainer/vscode/tasks.json and .devcontainer/vscode/launch.json files -contain more information about the specific tasks and launch configurations (see the -non-standard "description" field). +| Score | Meaning | +| ------ | --------------------------------------------------------------------------------- | +| `None` | Decline — do not handle this file | +| `10` | Default priority used by all built-in parsers | +| `20` | Priority used by the remote OCR built-in parser, allowing it to replace Tesseract | +| `> 10` | Override a built-in parser for the same MIME type | -To get started: +```python +@classmethod +def score( + cls, + mime_type: str, + filename: str, + path: "Path | None" = None, +) -> int | None: + # Inspect filename or file bytes here if needed. + return 10 +``` -1. Clone the repository on your machine and open the Paperless-ngx folder in VS Code. +**Archive and rendition flags** -2. VS Code will prompt you with "Reopen in container". Do so and wait for the environment to start. +```python +@property +def can_produce_archive(self) -> bool: + """True if parse() can produce a searchable PDF archive copy.""" + return True # or False if your parser doesn't produce PDFs -3. In case your host operating system is Windows: - - The Source Control view in Visual Studio Code might show: "The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user." Use "Manage Unsafe Repositories" to fix this. - - Git might have detecteded modifications for all files, because Windows is using CRLF line endings. Run `git checkout .` in the containers terminal to fix this issue. +@property +def requires_pdf_rendition(self) -> bool: + """True if the original format cannot be displayed by a browser + (e.g. DOCX, ODT) and the PDF output must always be kept.""" + return False +``` -4. Initialize the project by running the task **Project Setup: Run all Init Tasks**. This - will initialize the database tables and create a superuser. Then you can compile the front end - for production or run the frontend in debug mode. +**Context manager — temp directory lifecycle** -5. The project is ready for debugging, start either run the fullstack debug or individual debug - processes. Yo spin up the project without debugging run the task **Project Start: Run all Services** +Paperless-ngx always uses parsers as context managers. Create a temporary +working directory in `__enter__` (or `__init__`) and remove it in `__exit__` +regardless of whether an exception occurred. Store intermediate files, +thumbnails, and archive PDFs inside this directory. -## Developing Date Parser Plugins +```python +import shutil +import tempfile +from pathlib import Path +from typing import Self +from types import TracebackType + +from django.conf import settings + +class MyCustomParser: + ... + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self._tempdir = Path( + tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR) + ) + self._text: str | None = None + self._archive_path: Path | None = None + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> None: + shutil.rmtree(self._tempdir, ignore_errors=True) +``` + +**Optional context — `configure()`** + +The consumer calls `configure()` with a `ParserContext` after instantiation +and before `parse()`. If your parser doesn't need context, a no-op +implementation is fine: + +```python +from paperless.parsers import ParserContext + +def configure(self, context: ParserContext) -> None: + pass # override if you need context.mailrule_id, etc. +``` + +**Parsing** + +`parse()` is the core method. It must not return a value; instead, store +results in instance attributes and expose them via the accessor methods below. +Raise `documents.parsers.ParseError` on any unrecoverable failure. + +```python +from documents.parsers import ParseError + +def parse( + self, + document_path: Path, + mime_type: str, + *, + produce_archive: bool = True, +) -> None: + try: + self._text = extract_text_from_my_format(document_path) + except Exception as e: + raise ParseError(f"Failed to parse {document_path}: {e}") from e + + if produce_archive and self.can_produce_archive: + archive = self._tempdir / "archived.pdf" + convert_to_pdf(document_path, archive) + self._archive_path = archive +``` + +**Result accessors** + +```python +def get_text(self) -> str | None: + return self._text + +def get_date(self) -> "datetime.datetime | None": + # Return a datetime extracted from the document, or None to let + # Paperless-ngx use its default date-guessing logic. + return None + +def get_archive_path(self) -> Path | None: + return self._archive_path + +def get_page_count(self, document_path: Path, mime_type: str) -> int | None: + # If the format doesn't have the concept of pages, return None + return count_pages(document_path) + +``` + +**Thumbnail** + +`get_thumbnail()` may be called independently of `parse()`. Return the path +to a WebP image inside `self._tempdir`. The image should be roughly 500 × 700 +pixels. + +```python +def get_thumbnail(self, document_path: Path, mime_type: str) -> Path: + thumb = self._tempdir / "thumb.webp" + render_thumbnail(document_path, thumb) + return thumb +``` + +**Optional methods** + +These are called by the API on demand, not during the consumption pipeline. +Implement them if your format supports the information; otherwise return +`None` / `[]`. + +```python + +def extract_metadata( + self, + document_path: Path, + mime_type: str, +) -> "list[MetadataEntry]": + # Must never raise. Return [] if metadata cannot be read. + from paperless.parsers import MetadataEntry + return [ + MetadataEntry( + namespace="https://example.com/ns/", + prefix="ex", + key="Author", + value="Alice", + ) + ] +``` + +#### 2. Registering via entry point + +Add the following to your package's `pyproject.toml`. The key (left of `=`) +is an arbitrary name used only in log output; the value is the +`module:ClassName` import path. + +```toml +[project.entry-points."paperless_ngx.parsers"] +my_parser = "my_package.parsers:MyCustomParser" +``` + +Install your package into the same Python environment as Paperless-ngx (or +add it to the Docker image), and the parser will be discovered automatically +on the next startup. No configuration changes are needed. + +To verify discovery, check the application logs at startup for a line like: + +``` +Loaded third-party parser 'My Format Parser' v1.0.0 by Acme Corp (entrypoint: 'my_parser'). +``` + +#### 3. Utilities + +`paperless.parsers.utils` provides helpers you can import directly: + +| Function | Description | +| --------------------------------------- | ---------------------------------------------------------------- | +| `read_file_handle_unicode_errors(path)` | Read a file as UTF-8, replacing invalid bytes instead of raising | +| `get_page_count_for_pdf(path)` | Count pages in a PDF using pikepdf | +| `extract_pdf_metadata(path)` | Extract XMP metadata from a PDF as a `list[MetadataEntry]` | + +#### Minimal example + +A complete, working parser for a hypothetical plain-XML format: + +```python +from __future__ import annotations + +import shutil +import tempfile +from pathlib import Path +from typing import Self +from types import TracebackType +import xml.etree.ElementTree as ET + +from django.conf import settings + +from documents.parsers import ParseError +from paperless.parsers import ParserContext + + +class XmlDocumentParser: + name = "XML Parser" + version = "1.0.0" + author = "Acme Corp" + url = "https://example.com/xml-parser" + + @classmethod + def supported_mime_types(cls) -> dict[str, str]: + return {"application/xml": ".xml", "text/xml": ".xml"} + + @classmethod + def score(cls, mime_type: str, filename: str, path: Path | None = None) -> int | None: + return 10 + + @property + def can_produce_archive(self) -> bool: + return False + + @property + def requires_pdf_rendition(self) -> bool: + return False + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self._tempdir = Path(tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)) + self._text: str | None = None + + def __enter__(self) -> Self: + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + shutil.rmtree(self._tempdir, ignore_errors=True) + + def configure(self, context: ParserContext) -> None: + pass + + def parse(self, document_path: Path, mime_type: str, *, produce_archive: bool = True) -> None: + try: + tree = ET.parse(document_path) + self._text = " ".join(tree.getroot().itertext()) + except ET.ParseError as e: + raise ParseError(f"XML parse error: {e}") from e + + def get_text(self) -> str | None: + return self._text + + def get_date(self): + return None + + def get_archive_path(self) -> Path | None: + return None + + def get_thumbnail(self, document_path: Path, mime_type: str) -> Path: + from PIL import Image, ImageDraw + img = Image.new("RGB", (500, 700), color="white") + ImageDraw.Draw(img).text((10, 10), "XML Document", fill="black") + out = self._tempdir / "thumb.webp" + img.save(out, format="WEBP") + return out + + def get_page_count(self, document_path: Path, mime_type: str) -> int | None: + return None + + def extract_metadata(self, document_path: Path, mime_type: str) -> list: + return [] +``` + +### Developing date parser plugins Paperless-ngx uses a plugin system for date parsing, allowing you to extend or replace the default date parsing behavior. Plugins are discovered using [Python entry points](https://setuptools.pypa.io/en/latest/userguide/entry_point.html). -### Creating a Date Parser Plugin +#### Creating a Date Parser Plugin To create a custom date parser plugin, you need to: @@ -492,7 +738,7 @@ To create a custom date parser plugin, you need to: 2. Implement the required abstract method 3. Register your plugin via an entry point -#### 1. Implementing the Parser Class +##### 1. Implementing the Parser Class Your parser must extend `documents.plugins.date_parsing.DateParserPluginBase` and implement the `parse` method: @@ -532,7 +778,7 @@ class MyDateParserPlugin(DateParserPluginBase): yield another_datetime ``` -#### 2. Configuration and Helper Methods +##### 2. Configuration and Helper Methods Your parser instance is initialized with a `DateParserConfig` object accessible via `self.config`. This provides: @@ -565,11 +811,11 @@ def _filter_date( """ ``` -#### 3. Resource Management (Optional) +##### 3. Resource Management (Optional) If your plugin needs to acquire or release resources (database connections, API clients, etc.), override the context manager methods. Paperless-ngx will always use plugins as context managers, ensuring resources can be released even in the event of errors. -#### 4. Registering Your Plugin +##### 4. Registering Your Plugin Register your plugin using a setuptools entry point in your package's `pyproject.toml`: @@ -580,7 +826,7 @@ my_parser = "my_package.parsers:MyDateParserPlugin" The entry point name (e.g., `"my_parser"`) is used for sorting when multiple plugins are found. Paperless-ngx will use the first plugin alphabetically by name if multiple plugins are discovered. -### Plugin Discovery +#### Plugin Discovery Paperless-ngx automatically discovers and loads date parser plugins at runtime. The discovery process: @@ -591,7 +837,7 @@ Paperless-ngx automatically discovers and loads date parser plugins at runtime. If multiple plugins are installed, a warning is logged indicating which plugin was selected. -### Example: Simple Date Parser +#### Example: Simple Date Parser Here's a minimal example that only looks for ISO 8601 dates: @@ -623,3 +869,30 @@ class ISODateParserPlugin(DateParserPluginBase): if filtered_date is not None: yield filtered_date ``` + +## Using Visual Studio Code devcontainer + +Another easy way to get started with development is to use Visual Studio +Code devcontainers. This approach will create a preconfigured development +environment with all of the required tools and dependencies. +[Learn more about devcontainers](https://code.visualstudio.com/docs/devcontainers/containers). +The .devcontainer/vscode/tasks.json and .devcontainer/vscode/launch.json files +contain more information about the specific tasks and launch configurations (see the +non-standard "description" field). + +To get started: + +1. Clone the repository on your machine and open the Paperless-ngx folder in VS Code. + +2. VS Code will prompt you with "Reopen in container". Do so and wait for the environment to start. + +3. In case your host operating system is Windows: + - The Source Control view in Visual Studio Code might show: "The detected Git repository is potentially unsafe as the folder is owned by someone other than the current user." Use "Manage Unsafe Repositories" to fix this. + - Git might have detecteded modifications for all files, because Windows is using CRLF line endings. Run `git checkout .` in the containers terminal to fix this issue. + +4. Initialize the project by running the task **Project Setup: Run all Init Tasks**. This + will initialize the database tables and create a superuser. Then you can compile the front end + for production or run the frontend in debug mode. + +5. The project is ready for debugging, start either run the fullstack debug or individual debug + processes. Yo spin up the project without debugging run the task **Project Start: Run all Services** diff --git a/docs/migration-v3.md b/docs/migration-v3.md index 43a3690c0..afbc83186 100644 --- a/docs/migration-v3.md +++ b/docs/migration-v3.md @@ -1,5 +1,24 @@ # v3 Migration Guide +## Secret Key is Now Required + +The `PAPERLESS_SECRET_KEY` environment variable is now required. This is a critical security setting used for cryptographic signing and should be set to a long, random value. + +### Action Required + +If you are upgrading an existing installation, you must now set `PAPERLESS_SECRET_KEY` explicitly. + +If your installation was relying on the previous built-in default key, you have two options: + +- Set `PAPERLESS_SECRET_KEY` to that previous value to preserve existing sessions and tokens. +- Set `PAPERLESS_SECRET_KEY` to a new random value to improve security, understanding that this will invalidate existing sessions and other signed tokens. + +For new installations, or if you choose to rotate the key, you may generate a new secret key with: + +```bash +python3 -c "import secrets; print(secrets.token_urlsafe(64))" +``` + ## Consumer Settings Changes The v3 consumer command uses a [different library](https://watchfiles.helpmanual.io/) to unify @@ -103,3 +122,61 @@ Multiple options are combined in a single value: ```bash PAPERLESS_DB_OPTIONS="sslmode=require;sslrootcert=/certs/ca.pem;pool.max_size=10" ``` + +## Search Index (Whoosh -> Tantivy) + +The full-text search backend has been replaced with [Tantivy](https://github.com/quickwit-oss/tantivy). +The index format is incompatible with Whoosh, so **the search index is automatically rebuilt from +scratch on first startup after upgrading**. No manual action is required for the rebuild itself. + +### Note and custom field search syntax + +The old Whoosh index exposed `note` and `custom_field` as flat text fields that were included in +unqualified searches (e.g. just typing `invoice` would match note content). With Tantivy these are +now structured JSON fields accessed via dotted paths: + +| Old syntax | New syntax | +| -------------------- | --------------------------- | +| `note:query` | `notes.note:query` | +| `custom_field:query` | `custom_fields.value:query` | + +**Saved views are migrated automatically.** Any saved view filter rule that used an explicit +`note:` or `custom_field:` field prefix in a fulltext query is rewritten to the new syntax by a +data migration that runs on upgrade. + +**Unqualified queries are not migrated.** If you had a saved view with a plain search term (e.g. +`invoice`) that happened to match note content or custom field values, it will no longer return +those matches. Update those queries to use the explicit prefix, for example: + +``` +invoice OR notes.note:invoice OR custom_fields.value:invoice +``` + +Custom field names can also be searched with `custom_fields.name:fieldname`. + +## OpenID Connect Token Endpoint Authentication + +Some existing OpenID Connect setups may require an explicit token endpoint authentication method after upgrading to v3. + +#### Action Required + +If OIDC login fails at the callback with an `invalid_client` error, add `token_auth_method` to the provider `settings` in +[`PAPERLESS_SOCIALACCOUNT_PROVIDERS`](configuration.md#PAPERLESS_SOCIALACCOUNT_PROVIDERS). + +For example: + +```json +{ + "openid_connect": { + "APPS": [ + { + ... + "settings": { + "server_url": "https://login.example.com", + "token_auth_method": "client_secret_basic" + } + } + ] + } +} +``` diff --git a/docs/setup.md b/docs/setup.md index 5795968ef..3b84fd729 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -140,24 +140,17 @@ a [superuser](usage.md#superusers) account. !!! warning - It is currently not possible to run the container rootless if additional languages are specified via `PAPERLESS_OCR_LANGUAGES`. + It is not possible to run the container rootless if additional languages are specified via `PAPERLESS_OCR_LANGUAGES`. -If you want to run Paperless as a rootless container, make this -change in `docker-compose.yml`: +If you want to run Paperless as a rootless container, set `user:` in `docker-compose.yml` to the UID and GID of your host user (use `id -u` and `id -g` to find these values). The container process starts directly as that user with no internal privilege remapping: -- Set the `user` running the container to map to the `paperless` - user in the container. This value (`user_id` below) should be - the same ID that `USERMAP_UID` and `USERMAP_GID` are set to in - `docker-compose.env`. See `USERMAP_UID` and `USERMAP_GID` - [here](configuration.md#docker). +```yaml +webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + user: '1000:1000' +``` -Your entry for Paperless should contain something like: - -> ``` -> webserver: -> image: ghcr.io/paperless-ngx/paperless-ngx:latest -> user: -> ``` +Do not combine this with `USERMAP_UID` or `USERMAP_GID`, which are intended for the non-rootless case described in step 3. **File systems without inotify support (e.g. NFS)** diff --git a/docs/usage.md b/docs/usage.md index 92b6bfd44..ed4fbbef4 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -814,13 +814,20 @@ contract you signed 8 years ago). When you search paperless for a document, it tries to match this query against your documents. Paperless will look for matching documents by -inspecting their content, title, correspondent, type and tags. Paperless -returns a scored list of results, so that documents matching your query -better will appear further up in the search results. +inspecting their content, title, correspondent, type, tags, notes, and +custom field values. Paperless returns a scored list of results, so that +documents matching your query better will appear further up in the search +results. By default, paperless returns only documents which contain all words -typed in the search bar. However, paperless also offers advanced search -syntax if you want to drill down the results further. +typed in the search bar. A few things to know about how matching works: + +- **Word-order-independent**: "invoice unpaid" and "unpaid invoice" return the same results. +- **Accent-insensitive**: searching `resume` also finds `résumé`, `cafe` finds `café`. +- **Separator-agnostic**: punctuation and separators are stripped during indexing, so + searching a partial number like `1312` finds documents containing `A-1312/B`. + +Paperless also offers advanced search syntax if you want to drill down further. Matching documents with logical expressions: @@ -849,18 +856,69 @@ Matching inexact words: produ*name ``` +Matching natural date keywords: + +``` +added:today +modified:yesterday +created:this_week +added:last_month +modified:this_year +``` + +Supported date keywords: `today`, `yesterday`, `this_week`, `last_week`, +`this_month`, `last_month`, `this_year`, `last_year`. + +#### Searching custom fields + +Custom field values are included in the full-text index, so a plain search +already matches documents whose custom field values contain your search terms. +To narrow by field name or value specifically: + +``` +custom_fields.value:policy +custom_fields.name:"Contract Number" +custom_fields.name:Insurance custom_fields.value:policy +``` + +- `custom_fields.value` matches against the value of any custom field. +- `custom_fields.name` matches the name of the field (use quotes for multi-word names). +- Combine both to find documents where a specific named field contains a specific value. + +Because separators are stripped during indexing, individual parts of formatted +codes are searchable on their own. A value stored as `A-1312/99.50` produces the +tokens `a`, `1312`, `99`, `50` — each searchable independently: + +``` +custom_fields.value:1312 +custom_fields.name:"Contract Number" custom_fields.value:1312 +``` + !!! note - Inexact terms are hard for search indexes. These queries might take a - while to execute. That's why paperless offers auto complete and query - correction. + Custom date fields do not support relative date syntax (e.g. `[now to 2 weeks]`). + For date ranges on custom date fields, use the document list filters in the web UI. + +#### Searching notes + +Notes content is included in full-text search automatically. To search +by note author or content specifically: + +``` +notes.user:alice +notes.note:reminder +notes.user:alice notes.note:insurance +``` All of these constructs can be combined as you see fit. If you want to -learn more about the query language used by paperless, paperless uses -Whoosh's default query language. Head over to [Whoosh query -language](https://whoosh.readthedocs.io/en/latest/querylang.html). For -details on what date parsing utilities are available, see [Date -parsing](https://whoosh.readthedocs.io/en/latest/dates.html#parsing-date-queries). +learn more about the query language used by paperless, see the +[Tantivy query language documentation](https://docs.rs/tantivy/latest/tantivy/query/struct.QueryParser.html). + +!!! note + + Fuzzy (approximate) matching can be enabled by setting + [`PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD`](configuration.md#PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD). + When enabled, paperless will include near-miss results ranked below exact matches. ## Keyboard shortcuts / hotkeys diff --git a/paperless.conf.example b/paperless.conf.example index 9974aeab6..a0c406f82 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -23,7 +23,8 @@ # Security and hosting -#PAPERLESS_SECRET_KEY=change-me +# Required. Generate with: python3 -c "import secrets; print(secrets.token_urlsafe(64))" +PAPERLESS_SECRET_KEY=change-me #PAPERLESS_URL=https://example.com #PAPERLESS_CSRF_TRUSTED_ORIGINS=https://example.com # can be set using PAPERLESS_URL #PAPERLESS_ALLOWED_HOSTS=example.com,www.example.com # can be set using PAPERLESS_URL diff --git a/pyproject.toml b/pyproject.toml index 339e788c4..30be1ae11 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "paperless-ngx" -version = "2.20.10" +version = "2.20.13" description = "A community-supported supercharged document management system: scan, index and archive all your physical documents" readme = "README.md" requires-python = ">=3.11" @@ -13,7 +13,6 @@ classifiers = [ ] # TODO: Move certain things to groups and then utilize that further # This will allow testing to not install a webserver, mysql, etc - dependencies = [ "azure-ai-documentintelligence>=1.0.2", "babel>=2.17", @@ -26,7 +25,7 @@ dependencies = [ # WARNING: django does not use semver. # Only patch versions are guaranteed to not introduce breaking changes. "django~=5.2.10", - "django-allauth[mfa,socialaccount]~=65.14.0", + "django-allauth[mfa,socialaccount]~=65.15.0", "django-auditlog~=3.4.1", "django-cachalot~=2.9.0", "django-celery-results~=2.6.0", @@ -47,7 +46,7 @@ dependencies = [ "faiss-cpu>=1.10", "filelock~=3.25.2", "flower~=2.0.1", - "gotenberg-client~=0.13.1", + "gotenberg-client~=0.14.0", "httpx-oauth~=0.16", "ijson>=3.2", "imap-tools~=1.11.0", @@ -60,7 +59,7 @@ dependencies = [ "llama-index-llms-openai>=0.6.13", "llama-index-vector-stores-faiss>=0.5.2", "nltk~=3.9.1", - "ocrmypdf~=16.13.0", + "ocrmypdf~=17.4.0", "openai>=1.76", "pathvalidate~=3.3.1", "pdf2image~=1.17.0", @@ -75,39 +74,40 @@ dependencies = [ "scikit-learn~=1.8.0", "sentence-transformers>=4.1", "setproctitle~=1.3.4", - "tika-client~=0.10.0", + "tantivy>=0.25.1", + "tika-client~=0.11.0", "torch~=2.10.0", "watchfiles>=1.1.1", "whitenoise~=6.11", - "whoosh-reloaded>=2.7.5", "zxing-cpp~=3.0.0", ] - -optional-dependencies.mariadb = [ +[project.optional-dependencies] +mariadb = [ "mysqlclient~=2.2.7", ] -optional-dependencies.postgres = [ +postgres = [ "psycopg[c,pool]==3.3", # Direct dependency for proper resolution of the pre-built wheels "psycopg-c==3.3", "psycopg-pool==3.3", ] -optional-dependencies.webserver = [ +webserver = [ "granian[uvloop]~=2.7.0", ] [dependency-groups] - dev = [ - { "include-group" = "docs" }, - { "include-group" = "testing" }, - { "include-group" = "lint" }, + { include-group = "docs" }, + { include-group = "lint" }, + { include-group = "testing" }, ] - docs = [ "zensical>=0.0.21", ] - +lint = [ + "prek~=0.3.0", + "ruff~=0.15.0", +] testing = [ "daphne", "factory-boy~=3.3.1", @@ -119,17 +119,12 @@ testing = [ "pytest-env~=1.5.0", "pytest-httpx", "pytest-mock~=3.15.1", - #"pytest-randomly~=4.0.1", + # "pytest-randomly~=4.0.1", "pytest-rerunfailures~=16.1", "pytest-sugar", "pytest-xdist~=3.8.0", + "time-machine>=2.13", ] - -lint = [ - "prek~=0.3.0", - "ruff~=0.15.0", -] - typing = [ "celery-types", "django-filter-stubs", @@ -154,24 +149,21 @@ typing = [ [tool.uv] required-version = ">=0.9.0" -package = false environments = [ "sys_platform == 'darwin'", "sys_platform == 'linux'", ] - +package = false [[tool.uv.index]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" explicit = true - [tool.uv.sources] # Markers are chosen to select these almost exclusively when building the Docker image psycopg-c = [ { url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.0/psycopg_c-3.3.0-cp312-cp312-linux_x86_64.whl", marker = "sys_platform == 'linux' and platform_machine == 'x86_64' and python_version == '3.12'" }, { url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.0/psycopg_c-3.3.0-cp312-cp312-linux_aarch64.whl", marker = "sys_platform == 'linux' and platform_machine == 'aarch64' and python_version == '3.12'" }, ] - torch = [ { index = "pytorch-cpu" }, ] @@ -186,10 +178,10 @@ respect-gitignore = true # https://docs.astral.sh/ruff/settings/ fix = true show-fixes = true - output-format = "grouped" +[tool.ruff.lint] # https://docs.astral.sh/ruff/rules/ -lint.extend-select = [ +extend-select = [ "COM", # https://docs.astral.sh/ruff/rules/#flake8-commas-com "DJ", # https://docs.astral.sh/ruff/rules/#flake8-django-dj "EXE", # https://docs.astral.sh/ruff/rules/#flake8-executable-exe @@ -214,121 +206,52 @@ lint.extend-select = [ "UP", # https://docs.astral.sh/ruff/rules/#pyupgrade-up "W", # https://docs.astral.sh/ruff/rules/#pycodestyle-e-w ] -lint.ignore = [ +ignore = [ "DJ001", "PLC0415", "RUF012", "SIM105", ] # Migrations -lint.per-file-ignores."*/migrations/*.py" = [ +per-file-ignores."*/migrations/*.py" = [ "E501", "SIM", "T201", ] # Testing -lint.per-file-ignores."*/tests/*.py" = [ +per-file-ignores."*/tests/*.py" = [ "E501", "SIM117", ] -lint.per-file-ignores.".github/scripts/*.py" = [ +per-file-ignores.".github/scripts/*.py" = [ "E501", "INP001", "SIM117", ] # Docker specific -lint.per-file-ignores."docker/rootfs/usr/local/bin/wait-for-redis.py" = [ +per-file-ignores."docker/rootfs/usr/local/bin/wait-for-redis.py" = [ "INP001", "T201", ] -lint.per-file-ignores."docker/wait-for-redis.py" = [ +per-file-ignores."docker/wait-for-redis.py" = [ "INP001", "T201", ] -lint.per-file-ignores."src/documents/models.py" = [ +per-file-ignores."src/documents/models.py" = [ "SIM115", ] -lint.per-file-ignores."src/paperless_tesseract/tests/test_parser.py" = [ - "RUF001", -] -lint.isort.force-single-line = true +isort.force-single-line = true [tool.codespell] write-changes = true ignore-words-list = "criterias,afterall,valeu,ureue,equest,ure,assertIn,Oktober,commitish" -skip = "src-ui/src/locale/*,src-ui/pnpm-lock.yaml,src-ui/e2e/*,src/paperless_mail/tests/samples/*,src/documents/tests/samples/*,*.po,*.json" +skip = """\ + src-ui/src/locale/*,src-ui/pnpm-lock.yaml,src-ui/e2e/*,src/paperless_mail/tests/samples/*,src/paperless/tests/samples\ + /mail/*,src/documents/tests/samples/*,*.po,*.json\ + """ -[tool.pytest] -minversion = "9.0" -pythonpath = [ "src" ] - -strict_config = true -strict_markers = true -strict_parametrization_ids = true -strict_xfail = true - -testpaths = [ - "src/documents/tests/", - "src/paperless/tests/", - "src/paperless_mail/tests/", - "src/paperless_tesseract/tests/", - "src/paperless_tika/tests", - "src/paperless_text/tests/", - "src/paperless_remote/tests/", - "src/paperless_ai/tests", -] - -addopts = [ - "--pythonwarnings=all", - "--cov", - "--cov-report=html", - "--cov-report=xml", - "--numprocesses=auto", - "--maxprocesses=16", - "--dist=loadscope", - "--durations=50", - "--durations-min=0.5", - "--junitxml=junit.xml", - "-o", - "junit_family=legacy", -] - -norecursedirs = [ "src/locale/", ".venv/", "src-ui/" ] - -DJANGO_SETTINGS_MODULE = "paperless.settings" - -markers = [ - "live: Integration tests requiring external services (Gotenberg, Tika, nginx, etc)", - "nginx: Tests that make HTTP requests to the local nginx service", - "gotenberg: Tests requiring Gotenberg service", - "tika: Tests requiring Tika service", - "greenmail: Tests requiring Greenmail service", - "date_parsing: Tests which cover date parsing from content or filename", - "management: Tests which cover management commands/functionality", -] - -[tool.pytest_env] -PAPERLESS_DISABLE_DBHANDLER = "true" -PAPERLESS_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache" -PAPERLESS_CHANNELS_BACKEND = "channels.layers.InMemoryChannelLayer" - -[tool.coverage.report] -exclude_also = [ - "if settings.AUDIT_LOG_ENABLED:", - "if AUDIT_LOG_ENABLED:", - "if TYPE_CHECKING:", -] - -[tool.coverage.run] -source = [ - "src/", -] -omit = [ - "*/tests/*", - "manage.py", - "paperless/wsgi.py", - "paperless/auth.py", -] +[tool.pyproject-fmt] +table_format = "long" [tool.mypy] mypy_path = "src" @@ -351,6 +274,71 @@ python-platform = "linux" [tool.django-stubs] django_settings_module = "paperless.settings" +[tool.pytest] +minversion = "9.0" +pythonpath = [ "src" ] +strict_config = true +strict_markers = true +strict_parametrization_ids = true +strict_xfail = true +testpaths = [ + "src/documents/tests/", + "src/paperless/tests/", + "src/paperless_mail/tests/", + "src/paperless_ai/tests", +] +addopts = [ + "--pythonwarnings=all", + "--cov", + "--cov-report=html", + "--cov-report=xml", + "--numprocesses=auto", + "--maxprocesses=16", + "--dist=loadscope", + "--durations=50", + "--durations-min=0.5", + "--junitxml=junit.xml", + "-o", + "junit_family=legacy", +] +norecursedirs = [ "src/locale/", ".venv/", "src-ui/" ] +DJANGO_SETTINGS_MODULE = "paperless.settings" +markers = [ + "live: Integration tests requiring external services (Gotenberg, Tika, nginx, etc)", + "nginx: Tests that make HTTP requests to the local nginx service", + "gotenberg: Tests requiring Gotenberg service", + "tika: Tests requiring Tika service", + "greenmail: Tests requiring Greenmail service", + "date_parsing: Tests which cover date parsing from content or filename", + "management: Tests which cover management commands/functionality", + "search: Tests for the Tantivy search backend", +] + +[tool.pytest_env] +PAPERLESS_SECRET_KEY = "test-secret-key-do-not-use-in-production" +PAPERLESS_DISABLE_DBHANDLER = "true" +PAPERLESS_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache" +PAPERLESS_CHANNELS_BACKEND = "channels.layers.InMemoryChannelLayer" +# I don't think anything hits this, but just in case, basically infinite +PAPERLESS_TOKEN_THROTTLE_RATE = "1000/min" + +[tool.coverage.report] +exclude_also = [ + "if settings.AUDIT_LOG_ENABLED:", + "if AUDIT_LOG_ENABLED:", + "if TYPE_CHECKING:", +] +[tool.coverage.run] +source = [ + "src/", +] +omit = [ + "*/tests/*", + "manage.py", + "paperless/wsgi.py", + "paperless/auth.py", +] + [tool.mypy-baseline] baseline_path = ".mypy-baseline.txt" sort_baseline = true diff --git a/src-ui/e2e/dashboard/requests/api-dashboard1.har b/src-ui/e2e/dashboard/requests/api-dashboard1.har index 07ff8ef9e..d39787c30 100644 --- a/src-ui/e2e/dashboard/requests/api-dashboard1.har +++ b/src-ui/e2e/dashboard/requests/api-dashboard1.har @@ -468,7 +468,7 @@ "time": 0.951, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__in=9", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__in=9", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ diff --git a/src-ui/e2e/dashboard/requests/api-dashboard2.har b/src-ui/e2e/dashboard/requests/api-dashboard2.har index 912fbf308..0918eba8f 100644 --- a/src-ui/e2e/dashboard/requests/api-dashboard2.har +++ b/src-ui/e2e/dashboard/requests/api-dashboard2.har @@ -534,7 +534,7 @@ "time": 0.793, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -594,7 +594,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, diff --git a/src-ui/e2e/dashboard/requests/api-dashboard3.har b/src-ui/e2e/dashboard/requests/api-dashboard3.har index 6c441970c..fbd31c37c 100644 --- a/src-ui/e2e/dashboard/requests/api-dashboard3.har +++ b/src-ui/e2e/dashboard/requests/api-dashboard3.har @@ -534,7 +534,7 @@ "time": 0.653, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__all=9", + "url": "http://localhost:8000/api/documents/?page=1&page_size=10&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__all=9", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ diff --git a/src-ui/e2e/document-detail/requests/api-document-detail2.har b/src-ui/e2e/document-detail/requests/api-document-detail2.har index ee3166211..1aeb6dc55 100644 --- a/src-ui/e2e/document-detail/requests/api-document-detail2.har +++ b/src-ui/e2e/document-detail/requests/api-document-detail2.har @@ -883,7 +883,7 @@ "time": 0.93, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__all=4", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__all=4", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -961,7 +961,7 @@ "time": -1, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__all=4", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__all=4", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ diff --git a/src-ui/e2e/document-list/document-list.spec.ts b/src-ui/e2e/document-list/document-list.spec.ts index 9aa4d2fdc..0cea8effa 100644 --- a/src-ui/e2e/document-list/document-list.spec.ts +++ b/src-ui/e2e/document-list/document-list.spec.ts @@ -16,7 +16,7 @@ test('basic filtering', async ({ page }) => { await expect(page).toHaveURL(/tags__id__all=9/) await expect(page.locator('pngx-document-list')).toHaveText(/8 documents/) await page.getByRole('button', { name: 'Document type' }).click() - await page.getByRole('menuitem', { name: 'Invoice Test 3' }).click() + await page.getByRole('menuitem', { name: /^Invoice Test/ }).click() await expect(page).toHaveURL(/document_type__id__in=1/) await expect(page.locator('pngx-document-list')).toHaveText(/3 documents/) await page.getByRole('button', { name: 'Reset filters' }).first().click() @@ -49,11 +49,11 @@ test('text filtering', async ({ page }) => { await page.getByRole('main').getByRole('combobox').click() await page.getByRole('main').getByRole('combobox').fill('test') await expect(page.locator('pngx-document-list')).toHaveText(/32 documents/) - await expect(page).toHaveURL(/title_content=test/) + await expect(page).toHaveURL(/text=test/) await page.getByRole('button', { name: 'Title & content' }).click() await page.getByRole('button', { name: 'Title', exact: true }).click() await expect(page.locator('pngx-document-list')).toHaveText(/9 documents/) - await expect(page).toHaveURL(/title__icontains=test/) + await expect(page).toHaveURL(/title_search=test/) await page.getByRole('button', { name: 'Title', exact: true }).click() await page.getByRole('button', { name: 'Advanced search' }).click() await expect(page).toHaveURL(/query=test/) diff --git a/src-ui/e2e/document-list/requests/api-document-list1.har b/src-ui/e2e/document-list/requests/api-document-list1.har index 6a4aa9ac1..35ce0537c 100644 --- a/src-ui/e2e/document-list/requests/api-document-list1.har +++ b/src-ui/e2e/document-list/requests/api-document-list1.har @@ -260,7 +260,7 @@ "time": 1.023, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -3545,7 +3545,7 @@ "time": 0.933, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__all=9", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__all=9", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3687,7 +3687,7 @@ "time": 0.597, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&tags__id__all=9&document_type__id__in=1", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&tags__id__all=9&document_type__id__in=1", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3833,7 +3833,7 @@ "time": 0.771, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3893,7 +3893,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -3971,7 +3971,7 @@ "time": 0.55, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&correspondent__id__in=1", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&correspondent__id__in=1", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4113,7 +4113,7 @@ "time": 0.554, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&correspondent__id__in=12,1", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&correspondent__id__in=12,1", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4255,7 +4255,7 @@ "time": 0.759, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&correspondent__id__none=12,1", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&correspondent__id__none=12,1", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4319,7 +4319,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":54,\"next\":\"http://localhost:8000/api/documents/?correspondent__id__none=12%2C1&ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,298,290,277,268,261,260,252,243,223,284,220,204,175,196,177,176,181,205,206,191,227,180,3,224,233,312,258,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":54,\"next\":\"http://localhost:8000/api/documents/?correspondent__id__none=12%2C1&ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,298,290,277,268,261,260,252,243,223,284,220,204,175,196,177,176,181,205,206,191,227,180,3,224,233,312,258,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4789,7 +4789,7 @@ "time": 0.754, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4849,7 +4849,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4927,7 +4927,7 @@ "time": 0.659, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&storage_path__id__in=5", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&storage_path__id__in=5", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5069,7 +5069,7 @@ "time": 0.8, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5129,7 +5129,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, diff --git a/src-ui/e2e/document-list/requests/api-document-list2.har b/src-ui/e2e/document-list/requests/api-document-list2.har index 65de66d17..f6a488b26 100644 --- a/src-ui/e2e/document-list/requests/api-document-list2.har +++ b/src-ui/e2e/document-list/requests/api-document-list2.har @@ -260,7 +260,7 @@ "time": 1.729, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -3545,7 +3545,7 @@ "time": 1.091, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&title_content=test", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&text=test", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3579,7 +3579,7 @@ "value": "true" }, { - "name": "title_content", + "name": "text", "value": "test" } ], @@ -4303,7 +4303,7 @@ "time": 0.603, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&title__icontains=test", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&title_search=test", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4337,7 +4337,7 @@ "value": "true" }, { - "name": "title__icontains", + "name": "title_search", "value": "test" } ], @@ -4445,7 +4445,7 @@ "time": 0.602, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&query=test", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&query=test", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4587,7 +4587,7 @@ "time": 0.523, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number=test", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number=test", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4664,7 +4664,7 @@ "time": 1.59, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number=1123", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number=1123", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4806,7 +4806,7 @@ "time": 1.859, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number__gt=1123", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number__gt=1123", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4948,7 +4948,7 @@ "time": 0.571, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number__lt=1123", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number__lt=1123", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5089,7 +5089,7 @@ "time": 0.757, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number__isnull=1", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number__isnull=1", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5153,7 +5153,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":55,\"next\":\"http://localhost:8000/api/documents/?archive_serial_number__isnull=1&ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,176,5,181,205,191,227,180,224,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]}]}" + "text": "{\"count\":55,\"next\":\"http://localhost:8000/api/documents/?archive_serial_number__isnull=1&ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,176,5,181,205,191,227,180,224,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]}]}" }, "headersSize": -1, "bodySize": -1, @@ -5231,7 +5231,7 @@ "time": 0.574, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&archive_serial_number__isnull=0", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&archive_serial_number__isnull=0", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ diff --git a/src-ui/e2e/document-list/requests/api-document-list3.har b/src-ui/e2e/document-list/requests/api-document-list3.har index 291915a65..9872331de 100644 --- a/src-ui/e2e/document-list/requests/api-document-list3.har +++ b/src-ui/e2e/document-list/requests/api-document-list3.har @@ -260,7 +260,7 @@ "time": 0.944, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -3545,7 +3545,7 @@ "time": 0.828, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&query=created:%5B-3%20month%20to%20now%5D", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&query=created:%5B-3%20month%20to%20now%5D", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3687,7 +3687,7 @@ "time": 1.501, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&created__date__gte=2022-12-11", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true&created__date__gte=2022-12-11", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ diff --git a/src-ui/e2e/document-list/requests/api-document-list4.har b/src-ui/e2e/document-list/requests/api-document-list4.har index 60657e3c9..a9e8815dd 100644 --- a/src-ui/e2e/document-list/requests/api-document-list4.har +++ b/src-ui/e2e/document-list/requests/api-document-list4.har @@ -260,7 +260,7 @@ "time": 0.803, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -3545,7 +3545,7 @@ "time": 1.454, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-archive_serial_number&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-archive_serial_number&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -3605,7 +3605,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-archive_serial_number&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[298,206,177,7,4,3,5,175,176,179,180,181,191,196,204,205,219,220,223,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,261,268,277,278,284,290,295,296,297,307,310,312],\"results\":[{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-archive_serial_number&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[298,206,177,7,4,3,5,175,176,179,180,181,191,196,204,205,219,220,223,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,261,268,277,278,284,290,295,296,297,307,310,312],\"results\":[{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4299,7 +4299,7 @@ "time": 0.695, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-correspondent__name&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-correspondent__name&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4359,7 +4359,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-correspondent__name&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[4,179,296,196,5,7,295,297,3,180,181,191,205,206,243,252,220,223,298,310,175,176,177,204,219,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,244,246,247,248,249,250,251,254,255,256,258,259,260,261,268,277,278,284,290,307,312],\"results\":[{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-correspondent__name&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[4,179,296,196,5,7,295,297,3,180,181,191,205,206,243,252,220,223,298,310,175,176,177,204,219,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,244,246,247,248,249,250,251,254,255,256,258,259,260,261,268,277,278,284,290,307,312],\"results\":[{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4437,7 +4437,7 @@ "time": 0.804, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-title&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-title&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4497,7 +4497,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-title&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[219,284,307,179,295,7,5,177,176,3,224,205,206,191,204,233,235,236,237,175,196,290,181,310,312,228,227,296,259,260,298,225,223,220,180,232,230,231,238,234,277,242,241,243,244,246,4,254,250,249,261,268,258,278,255,252,256,251,248,297,247],\"results\":[{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-title&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[219,284,307,179,295,7,5,177,176,3,224,205,206,191,204,233,235,236,237,175,196,290,181,310,312,228,227,296,259,260,298,225,223,220,180,232,230,231,238,234,277,242,241,243,244,246,4,254,250,249,261,268,258,278,255,252,256,251,248,297,247],\"results\":[{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4575,7 +4575,7 @@ "time": 0.72, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-document_type__name&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-document_type__name&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4635,7 +4635,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-document_type__name&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[3,180,181,220,223,243,277,296,310,176,4,5,7,175,177,179,191,196,204,205,206,219,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,244,246,247,248,249,250,251,252,254,255,256,258,259,260,261,268,278,284,290,295,297,298,307,312],\"results\":[{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-document_type__name&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[3,180,181,220,223,243,277,296,310,176,4,5,7,175,177,179,191,196,204,205,206,219,224,225,227,228,230,231,232,233,234,235,236,237,238,241,242,244,246,247,248,249,250,251,252,254,255,256,258,259,260,261,268,278,284,290,295,297,298,307,312],\"results\":[{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4713,7 +4713,7 @@ "time": 0.651, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4773,7 +4773,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4851,7 +4851,7 @@ "time": 0.74, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-added&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-added&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -4911,7 +4911,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-added&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[312,310,307,298,297,296,295,290,284,278,277,268,261,260,259,258,256,255,254,252,251,250,249,248,247,246,244,243,242,241,238,237,236,235,234,233,232,231,230,228,227,225,224,223,220,219,206,205,204,196,191,181,180,179,177,176,175,7,5,4,3],\"results\":[{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-added&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[312,310,307,298,297,296,295,290,284,278,277,268,261,260,259,258,256,255,254,252,251,250,249,248,247,246,244,243,242,241,238,237,236,235,234,233,232,231,230,228,227,225,224,223,220,219,206,205,204,196,191,181,180,179,177,176,175,7,5,4,3],\"results\":[{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -4989,7 +4989,7 @@ "time": 0.747, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-modified&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-modified&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5049,7 +5049,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-modified&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[296,278,298,312,310,290,231,307,297,176,223,277,175,3,295,191,205,5,181,252,180,284,243,233,260,261,268,4,220,224,219,259,206,258,256,255,254,251,250,249,248,247,246,244,242,241,238,237,236,235,234,232,230,228,227,225,204,196,177,7,179],\"results\":[{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-modified&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[296,278,298,312,310,290,231,307,297,176,223,277,175,3,295,191,205,5,181,252,180,284,243,233,260,261,268,4,220,224,219,259,206,258,256,255,254,251,250,249,248,247,246,244,242,241,238,237,236,235,234,232,230,228,227,225,204,196,177,7,179],\"results\":[{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -5127,7 +5127,7 @@ "time": 0.837, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-num_notes&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-num_notes&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5187,7 +5187,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-num_notes&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[277,175,296,7,3,176,231,261,297,298,307,4,5,177,179,180,181,191,196,204,205,206,219,220,223,224,225,227,228,230,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,268,278,284,290,295,310,312],\"results\":[{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-num_notes&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[277,175,296,7,3,176,231,261,297,298,307,4,5,177,179,180,181,191,196,204,205,206,219,220,223,224,225,227,228,230,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,268,278,284,290,295,310,312],\"results\":[{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":231,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Knee Emergency Radiol\",\"content\":\"CHAPTER IV-3\\n\\nLower Extremity: Patient 3\\n\\nKnee pain in two patients\\nfollowing minor trauma\\n\\nPATIENT 3A A 62-year-old woman\\ntwisted her knee two days earlier\\nwhile moving a sofa at her home.\\nHer pain persisted and she needed a\\ncane to walk.\\n\\nOn examination, the lateral as-\\npect of her knee was tender and\\nthere was a small effusion. Flexion\\nwas limited to 60(cid:2). There was no\\ntenderness over the patella. Her\\nquadriceps strength was good and\\nthere was no ligamentous instability.\\n\\nPATIENT 3B A 24-year-old woman\\nwas struck on the lateral aspect o\",\"tags\":[],\"created\":\"2000-11-01T00:00:00Z\",\"created_date\":\"2000-11-01\",\"modified\":\"2023-03-18T20:53:39.573447Z\",\"added\":\"2022-03-13T15:56:11.171627Z\",\"archive_serial_number\":null,\"original_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"archived_file_name\":\"2000-11-01 Knee Emergency Radiol.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":35,\"note\":\"Add one\",\"created\":\"2023-03-18T20:53:47.946025Z\",\"document\":231,\"user\":2}]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, @@ -5265,7 +5265,7 @@ "time": 0.759, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=num_notes&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=num_notes&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -5325,7 +5325,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=num_notes&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[4,5,177,179,180,181,191,196,204,205,206,219,220,223,224,225,227,228,230,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,268,278,284,290,295,310,312,3,176,231,261,297,298,307,7,175,296,277],\"results\":[{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=num_notes&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[4,5,177,179,180,181,191,196,204,205,206,219,220,223,224,225,227,228,230,232,233,234,235,236,237,238,241,242,243,244,246,247,248,249,250,251,252,254,255,256,258,259,260,268,278,284,290,295,310,312,3,176,231,261,297,298,307,7,175,296,277],\"results\":[{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":225,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Sabaté-2003-The contribution of\",\"content\":\"The contribution of vegetarian diets to health and disease: a\\nparadigm shift?1–3\\n\\nJoan Sabaté\\n\\nABSTRACT\\nAdvances in nutrition research during the past\\nfew decades have changed scientists’ understanding of the contri-\\nbution of vegetarian diets to human health and disease. Diets largely\\nbased on plant foods, such as well-balanced vegetarian diets, could\\nbest prevent nutrient deficiencies as well as diet-related chronic dis-\\neases. However, restrictive or unbalanced vegetarian diets may lead\\nto nutritional deficiencies, particularly in situations \",\"tags\":[],\"created\":\"1990-03-13T00:00:00Z\",\"created_date\":\"1990-03-13\",\"modified\":\"2022-03-13T15:53:35.781177Z\",\"added\":\"2022-03-13T15:53:35.501205Z\",\"archive_serial_number\":null,\"original_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"archived_file_name\":\"1990-03-13 Sabaté-2003-The contribution of.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":228,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Wenrich-Cheerleader to Coach\",\"content\":\"Moderator: Paul A. Hemmer, MD, MPH\\n\\nFeedback in Teaching and Learning\\n\\nFrom Cheerleader to Coach: The Developmental \\nProgression of Bedside Teachers in Giving \\nFeedback to Early Learners\\nMarjorie D. Wenrich, MPH, Molly Blackley Jackson, MD, Ramoncita R. Maestas, MD, \\nIneke H.A.P. Wolfhagen, PhD, and Albert J.J. Scherpbier, MD, PhD\\n\\nAbstract\\n\\nBackground\\nMedical students learn clinical skills at the \\nbedside from teaching clinicians, who \\noften learn to teach by teaching. Little is \\nknown about the process of becoming an \\neffective clinical teach\",\"tags\":[4],\"created\":\"2007-03-01T00:00:00Z\",\"created_date\":\"2007-03-01\",\"modified\":\"2022-03-13T15:55:00.200623Z\",\"added\":\"2022-03-13T15:54:59.957066Z\",\"archive_serial_number\":null,\"original_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"archived_file_name\":\"2007-03-01 Wenrich-Cheerleader to Coach.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":230,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Lara-2010-Diffuse-alveolar-hemorrhage\",\"content\":\"CHEST Recent Advances in Chest Medicine\\n\\nDiffuse Alveolar Hemorrhage \\n\\nAbigail R. Lara , MD ; and Marvin I. Schwarz , MD , FCCP \\n\\nDiffuse alveolar hemorrhage (DAH) is often a catastrophic clinical syndrome causing respiratory \\nfailure. Recognition of DAH often requires BAL as symptoms are nonspecifi c, hemoptysis is \\nabsent in up to one-third of patients, and radiographic imaging is also nonspecifi c and similar to \\nother acute alveolar fi lling processes. Once the diagnosis is established, the underlying cause \\nmust be established in order to ini\",\"tags\":[4],\"created\":\"2009-08-27T00:00:00Z\",\"created_date\":\"2009-08-27\",\"modified\":\"2022-03-13T15:55:56.127564Z\",\"added\":\"2022-03-13T15:55:55.717855Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"archived_file_name\":\"2009-08-27 Lara-2010-Diffuse-alveolar-hemorrhage.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":235,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jama_zhong_2019_oi_190019\",\"content\":\"Research\\n\\nJAMA | Original Investigation\\nAssociations of Dietary Cholesterol or Egg Consumption\\nWith Incident Cardiovascular Disease and Mortality\\n\\nVictor W. Zhong, PhD; Linda Van Horn, PhD; Marilyn C. Cornelis, PhD; John T. Wilkins, MD, MS; Hongyan Ning, MD, MS;\\nMercedes R. Carnethon, PhD; Philip Greenland, MD; Robert J. Mentz, MD; Katherine L. Tucker, PhD; Lihui Zhao, PhD;\\nArnita F. Norwood, PhD; Donald M. Lloyd-Jones, MD, ScM; Norrina B. Allen, PhD\\n\\nIMPORTANCE Cholesterol is a common nutrient in the human diet and eggs are a major source\\nof d\",\"tags\":[],\"created\":\"1985-03-25T00:00:00Z\",\"created_date\":\"1985-03-25\",\"modified\":\"2022-03-13T15:58:20.036498Z\",\"added\":\"2022-03-13T15:58:19.509334Z\",\"archive_serial_number\":null,\"original_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"archived_file_name\":\"1985-03-25 jama_zhong_2019_oi_190019.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":238,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Jauch-2013-Guidelines for the Early Management\",\"content\":\"AHA/ASA Guideline\\n\\nGuidelines for the Early Management of Patients \\nWith Acute Ischemic Stroke\\nA Guideline for Healthcare Professionals From the American Heart \\nAssociation/American Stroke Association\\nThe American Academy of Neurology affirms the value of this guideline as an educational \\ntool for neurologists.\\n\\nEndorsed by the American Association of Neurological Surgeons and Congress \\nof Neurological Surgeons\\n\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\nD\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nw\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nn\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\nl\\no\\no\\no\\no\\no\\no\\no\\no\\no\\no\\na\\na\\na\\na\\na\\na\\na\\n\",\"tags\":[4],\"created\":\"2009-03-01T00:00:00Z\",\"created_date\":\"2009-03-01\",\"modified\":\"2022-03-13T15:59:12.744798Z\",\"added\":\"2022-03-13T15:59:10.560640Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"archived_file_name\":\"2009-03-01 Jauch-2013-Guidelines for the Early Management.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":241,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Glassick 2000 Acad Med Boyers expanded def of scholarship\",\"content\":\"Boyer’s Expanded Definitions of Scholarship, the\\nStandards for Assessing Scholarship, and the\\nElusiveness of the Scholarship of Teaching\\n\\nA R T I C L E\\n\\nCharles E. Glassick, PhD\\n\\nABSTRACT\\n\\nDebate about faculty roles and rewards in higher educa-\\ntion during the past decade has been fueled by the work\\nof the Carnegie Foundation for the Advancement of\\nTeaching, principally Scholarship Reconsidered and Schol-\\narship Assessed. The author summarizes those publications\\nand reviews the more recent work of Lee Shulman on the\\nscholarship of teaching.\\n\\nIn \",\"tags\":[],\"created\":\"1989-03-01T00:00:00Z\",\"created_date\":\"1989-03-01\",\"modified\":\"2022-03-13T15:59:25.008092Z\",\"added\":\"2022-03-13T15:59:24.865834Z\",\"archive_serial_number\":null,\"original_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"archived_file_name\":\"1989-03-01 Glassick 2000 Acad Med Boyers expanded def of scholarship.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":244,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Ericsson_Deliberate Practice_Med Educ_2007\",\"content\":\"clinical performance\\n\\nAn expert-performance perspective of research on\\nmedical expertise: the study of clinical performance\\n\\nK ANDERS ERICSSON\\n\\nCONTEXT Three decades ago Elstein et al. pub-\\nlished their classic book on medical expertise, in\\nwhich they described their failure to identify superior\\nperformance by peer-nominated diagnosticians using\\nhigh- and low-fidelity simulations of the everyday\\npractice of doctors.\\n\\nOBJECTIVE This paper reviews the results of\\nsubsequent research, with a particular emphasis on\\nthe progress toward Elstein et al.(\",\"tags\":[],\"created\":\"2004-03-01T00:00:00Z\",\"created_date\":\"2004-03-01\",\"modified\":\"2022-03-13T16:00:13.891872Z\",\"added\":\"2022-03-13T16:00:13.671286Z\",\"archive_serial_number\":null,\"original_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"archived_file_name\":\"2004-03-01 Ericsson_Deliberate Practice_Med Educ_2007.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":251,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1777.full\",\"content\":\"C l i n i c a l C a r e / E d u c a t i o n / N u t r i t i o n\\n\\nO R I G I N A L\\n\\nA R T I C L E\\n\\nA Low-Fat Vegan Diet Improves Glycemic\\nControl and Cardiovascular Risk Factors in\\na Randomized Clinical Trial in Individuals\\nWith Type 2 Diabetes\\n\\n1,2\\n\\n1\\n\\nNEAL D. BARNARD, MD\\nJOSHUA COHEN, MD\\n3\\nDAVID J.A. JENKINS, MD, PHD\\nGABRIELLE TURNER-MCGRIEVY, MS, RD\\nLISE GLOEDE, RD, CDE\\n\\n5\\n\\n4\\n\\n2\\n\\nBRENT JASTER, MD\\n2\\nKIM SEIDL, MS, RD\\nAMBER A. GREEN, RD\\nSTANLEY TALPERS, MD\\n\\n2\\n\\n1\\n\\nOBJECTIVE — We sought to investigate whether a low-fat vegan diet improves glycemic\",\"tags\":[4],\"created\":\"2006-03-20T00:00:00Z\",\"created_date\":\"2006-03-20\",\"modified\":\"2022-03-15T07:48:33.046219Z\",\"added\":\"2022-03-15T07:48:32.734784Z\",\"archive_serial_number\":null,\"original_file_name\":\"2006-03-20 1777.full.pdf\",\"archived_file_name\":\"2006-03-20 1777.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":256,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"1995-Tissue plasminogen activator for acute is\",\"content\":\"\\n\\nCopyright, 1995, by the Massachusetts Medical Society\\n\\nVolume 333\\n\\nDECEMBER 14, 1995\\n\\nNumber 24\\n\\nTISSUE PLASMINOGEN ACTIVATOR FOR ACUTE ISCHEMIC STROKE\\n\\nT\\n\\nHE\\n\\nN\\n\\nATIONAL\\n\\nNSTITUTE\\n\\nOF\\n\\nEUROLOGICAL\\n\\nISORDERS\\n\\nAND\\n\\nTROKE\\n\\n\\n\\nS\\n\\nrt-PA S\\n\\nTROKE\\n\\nS\\n\\nTUDY\\n\\nG\\n\\nROUP\\n\\n*\\n\\n\\n\\nN\\n\\nD\\n\\nI\\n\\nMethods.\\n\\nBackground.\\n\\nAbstract\\nThrombolytic therapy for acute\\nischemic stroke has been approached cautiously be-\\ncause there were high rates of intracerebral hemorrhage\\nin early clinical trials. We performed a randomized, dou-\\nble-blind trial of intravenous recombinant ti\",\"tags\":[],\"created\":\"1995-12-14T00:00:00Z\",\"created_date\":\"1995-12-14\",\"modified\":\"2022-03-15T15:26:36.261713Z\",\"added\":\"2022-03-15T15:26:35.956683Z\",\"archive_serial_number\":null,\"original_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"archived_file_name\":\"1995-12-14 1995-Tissue plasminogen activator for acute is.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":259,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Testing Old Date 2\",\"content\":\"Release Notes \\n\\nSimba ODBC Driver for SQL Server 1.2.3 \\n\\nThe release notes provide details of enhancements, features, and known issues in Simba ODBC \\nDriver for SQL Server 1.2.3, as well as the version history. \\n\\nResolved Issues \\n\\nThe following issues have been resolved in Simba ODBC Driver for SQL Server 1.2.3. \\n\\nWhen querying large SQL_NUMERIC or SQL_DECIMAL values and retrieving the values as \\nSQL_C_SBIGINT data, an error occurs \\n\\nThis issue has been resolved. You can now retrieve SQL_NUMERIC or SQL_DECIMAL values as \\nSQL_C_SBIGINT data. \\n\\nK\",\"tags\":[6],\"created\":\"1972-01-31T06:16:54Z\",\"created_date\":\"1972-01-31\",\"modified\":\"2022-05-16T05:48:28.628441Z\",\"added\":\"2022-03-16T03:49:02.104010Z\",\"archive_serial_number\":null,\"original_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"archived_file_name\":\"1972-01-31 Testing Old Date 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, diff --git a/src-ui/e2e/document-list/requests/api-document-list5.har b/src-ui/e2e/document-list/requests/api-document-list5.har index 8e96ed962..edfde924e 100644 --- a/src-ui/e2e/document-list/requests/api-document-list5.har +++ b/src-ui/e2e/document-list/requests/api-document-list5.har @@ -260,7 +260,7 @@ "time": 0.944, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[5],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9,5],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, diff --git a/src-ui/e2e/document-list/requests/api-document-list6.har b/src-ui/e2e/document-list/requests/api-document-list6.har index 194b2f7b7..5e0125a99 100644 --- a/src-ui/e2e/document-list/requests/api-document-list6.har +++ b/src-ui/e2e/document-list/requests/api-document-list6.har @@ -260,7 +260,7 @@ "time": 0.871, "request": { "method": "GET", - "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true", + "url": "http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true", "httpVersion": "HTTP/1.1", "cookies": [], "headers": [ @@ -320,7 +320,7 @@ "content": { "size": -1, "mimeType": "application/json", - "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" + "text": "{\"count\":61,\"next\":\"http://localhost:8000/api/documents/?ordering=-created&page=2&page_size=50&truncate_content=true&include_selection_data=true\",\"previous\":null,\"all\":[310,307,297,298,296,290,277,268,261,260,252,243,223,284,220,204,179,175,196,177,176,7,5,181,205,206,191,227,180,3,224,4,233,312,258,295,236,254,242,278,246,255,232,234,219,250,248,249,247,237,230,238,228,251,244,231,256,225,241,235,259],\"results\":[{\"id\":310,\"correspondent\":3,\"document_type\":1,\"storage_path\":null,\"title\":\"[paperless] test post-owner\",\"content\":\"Medical Teacher\\r\\n\\r\\nISSN: 0142-159X (Print) 1466-187X (Online) Journal homepage: http://www.tandfonline.com/loi/imte20\\r\\n\\r\\nHas the new Kirkpatrick generation built a better\\r\\nhammer for our evaluation toolbox?\\r\\n\\r\\nKatherine A. Moreau\\r\\n\\r\\nTo cite this article: Katherine A. Moreau (2017) Has the new Kirkpatrick generation built\\r\\na better hammer for our evaluation toolbox?, Medical Teacher, 39:9, 999-1001, DOI:\\r\\n10.1080/0142159X.2017.1337874\\r\\n\\r\\nTo link to this article: https://doi.org/10.1080/0142159X.2017.1337874\\r\\n\\r\\nPublished online: 26 Jun 2017.\\r\\n\\r\\nS\",\"tags\":[9,2,20],\"created\":\"2023-03-26T00:00:00Z\",\"created_date\":\"2023-03-26\",\"modified\":\"2023-04-27T21:13:54.604887Z\",\"added\":\"2022-12-14T06:20:26.891909Z\",\"archive_serial_number\":null,\"original_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"archived_file_name\":\"2023-03-26 Corresp Owned by Test [paperless] test post-owner.pdf\",\"owner\":15,\"user_can_change\":false,\"notes\":[]},{\"id\":307,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"tablerates\",\"content\":\"Country,Region/State,\\\"Zip/Postal Code\\\",\\\"Weight (and above)\\\",\\\"Shipping Price\\\"\",\"tags\":[],\"created\":\"2022-12-12T00:00:00Z\",\"created_date\":\"2022-12-12\",\"modified\":\"2023-03-18T20:45:15.922135Z\",\"added\":\"2022-12-12T21:23:06.607087Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-12-12 tablerates.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":34,\"note\":\"Hiya\",\"created\":\"2023-03-18T20:45:15.231332Z\",\"document\":307,\"user\":2}]},{\"id\":297,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"1 Testing New Title Updated 2\",\"content\":\"one,1.0\\nfive,5.0\",\"tags\":[4,9],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-03-18T03:22:11.771968Z\",\"added\":\"2022-10-03T00:53:12.731161Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-03 Correspondent 9 1 Testing New Title Updated 2.txt\",\"archived_file_name\":null,\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":65,\"note\":\"hiya\",\"created\":\"2023-04-29T07:10:13.732931Z\",\"document\":297,\"user\":2}]},{\"id\":298,\"correspondent\":3,\"document_type\":null,\"storage_path\":null,\"title\":\"Sample100.csv\",\"content\":\"Serial Number,Company Name,Employee Markme,Description,Leave\\r\\n9788189999599,TALES OF SHIVA,Mark,mark,0\\r\\n9780099578079,1Q84 THE COMPLETE TRILOGY,HARUKI MURAKAMI,Mark,0\\r\\n9780198082897,MY KUMAN,Mark,Mark,0\\r\\n9780007880331,THE GOD OF SMAAL THINGS,ARUNDHATI ROY,4TH HARPER COLLINS,2\\r\\n9780545060455,THE BLACK CIRCLE,Mark,4TH HARPER COLLINS,0\\r\\n9788126525072,THE THREE LAWS OF PERFORMANCE,Mark,4TH HARPER COLLINS,0\\r\\n9789381626610,CHAMarkKYA MANTRA,Mark,4TH HARPER COLLINS,0\\r\\n9788184513523,59.FLAGS,Mark,4TH HARPER COLLINS,0\\r\\n9780743234801,THE POWER OF POSITIV\",\"tags\":[9,10,2],\"created\":\"2022-10-03T00:00:00Z\",\"created_date\":\"2022-10-03\",\"modified\":\"2023-05-04T06:35:51.600152Z\",\"added\":\"2022-10-03T06:54:52.615096Z\",\"archive_serial_number\":112412326,\"original_file_name\":\"2022-10-03 Corresp Owned by Test Sample100.csv.csv\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":64,\"note\":\"testing\",\"created\":\"2023-04-29T06:50:02.993401Z\",\"document\":298,\"user\":2}]},{\"id\":296,\"correspondent\":1,\"document_type\":1,\"storage_path\":null,\"title\":\"UM_PPBE_en_v29\",\"content\":\"PowerPanel® Business Edition \\nUser’s Manual \\n\\nRev. 29 \\n\\n2018/04 \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nELECTRONIC END USER LICENSE AGREEMENT FOR CYBERPOWER POWERPANEL BUSINESS \\n\\nEDITION \\n\\nNOTICE TO USER: \\n\\nTHIS IS A CONTRACT. BY INSTALLING THIS SOFTWARE YOU ACCEPT ALL THE TERMS AND \\n\\nCONDITIONS OF THIS AGREEMENT. The End User License Agreement and copyright of CyberPower \\n\\nPowerPanel® Business Edition product and related explanatory materials (\\\"Software\\\") are owned by Cyber \\n\\nPower Systems (USA), Inc. The term \\\"Software\\\" also shall include any upgrades, modified\",\"tags\":[4,9],\"created\":\"2022-10-02T00:00:00Z\",\"created_date\":\"2022-10-02\",\"modified\":\"2023-05-12T06:11:20.780276Z\",\"added\":\"2022-10-02T07:17:09.462696Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"archived_file_name\":\"2022-10-02 Test Correspondent 1 UM_PPBE_en_v29.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[{\"id\":58,\"note\":\"add another\",\"created\":\"2023-04-29T05:59:04.944315Z\",\"document\":296,\"user\":2},{\"id\":59,\"note\":\"test again\",\"created\":\"2023-04-29T05:59:26.727002Z\",\"document\":296,\"user\":2},{\"id\":67,\"note\":\"This is a new note\",\"created\":\"2023-05-12T16:17:07.202260Z\",\"document\":296,\"user\":2},{\"id\":68,\"note\":\"Testing another note\",\"created\":\"2023-05-12T16:51:30.556198Z\",\"document\":296,\"user\":2}]},{\"id\":290,\"correspondent\":null,\"document_type\":null,\"storage_path\":2,\"title\":\"drylab Test\",\"content\":\"Drylab(cid:78)(cid:101)(cid:119)(cid:115)\\n\\n(cid:102)(cid:111)(cid:114)(cid:32)(cid:105)(cid:110)(cid:118)(cid:101)(cid:115)(cid:116)(cid:111)(cid:114)(cid:115)(cid:32)(cid:38)(cid:32)(cid:102)(cid:114)(cid:105)(cid:101)(cid:110)(cid:100)(cid:115)(cid:32)(cid:225)(cid:32)(cid:77)(cid:97)(cid:121)(cid:32)(cid:50)(cid:48)(cid:49)(cid:55)\\n\\nWelcome to our 昀椀rst newsletter of 2017! It's\\nbeen a while since the last one, and a lot has\\nhappened. We promise to keep them coming\\nevery two months hereafter, and permit\\nourselves to make this one rather long.\",\"tags\":[9],\"created\":\"2022-09-12T00:00:00Z\",\"created_date\":\"2022-09-12\",\"modified\":\"2023-03-31T20:29:00.967776Z\",\"added\":\"2022-09-12T18:50:37.033041Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-09-12 drylab Test.pdf\",\"archived_file_name\":\"2022-09-12 drylab Test.pdf\",\"owner\":2,\"user_can_change\":true,\"notes\":[]},{\"id\":277,\"correspondent\":null,\"document_type\":1,\"storage_path\":2,\"title\":\"InDesign 2022 Scripting Read Me\",\"content\":\"Adobe® InDesign® 2022 Scripting ReadMe\\n\\nThis document contains information about scripting in Adobe InDesign 2022, including:\\n\\n•\\n\\n•\\n\\n•\\n\\n•\\n\\nA summary of the InDesign scripting documentation (see “InDesign Scripting Documentation” on \\npage 1).\\n\\nDirections for running a script (see “Running Scripts” on page 2).\\n\\nA list and brief description of InDesign sample scripts (see “Sample Scripts” on page 2).\\n\\nA list of known issues in InDesign scripting (see “Known Issues Related to InDesign Scripting” on \\npage 9).\\n\\nFor more information on InDesign script\",\"tags\":[4,9,10,14,2,3,5,19],\"created\":\"2022-06-10T00:00:00Z\",\"created_date\":\"2022-06-10\",\"modified\":\"2023-03-04T03:59:21.797338Z\",\"added\":\"2022-06-10T20:11:42.076216Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"archived_file_name\":\"2022-06-10 InDesign 2022 Scripting Read Me.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":30,\"note\":\"One more time\",\"created\":\"2023-03-17T22:02:14.357575Z\",\"document\":277,\"user\":2},{\"id\":31,\"note\":\"We're gonna celebrate\",\"created\":\"2023-03-17T22:02:24.321943Z\",\"document\":277,\"user\":2},{\"id\":32,\"note\":\"And again\",\"created\":\"2023-03-17T22:04:57.074641Z\",\"document\":277,\"user\":2},{\"id\":33,\"note\":\"All good\",\"created\":\"2023-03-17T22:05:01.631415Z\",\"document\":277,\"user\":2},{\"id\":36,\"note\":\"This is a comment with some markdown. Watch this:\\n\\n- [Here's a doc link](http://localhost:4200/documents/278)\",\"created\":\"2023-03-19T06:44:05.380252Z\",\"document\":277,\"user\":2},{\"id\":37,\"note\":\"1. Markdown\\n2. Is cool\\n3. But how important is it?\",\"created\":\"2023-03-19T06:48:14.739706Z\",\"document\":277,\"user\":2}]},{\"id\":268,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2019-08-04 DSA Questionnaire 5-8-19\",\"content\":\"\",\"tags\":[4,5],\"created\":\"2022-04-29T07:00:00Z\",\"created_date\":\"2022-04-29\",\"modified\":\"2022-06-21T17:22:34.753362Z\",\"added\":\"2022-04-29T04:01:09.925272Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-04-29 2019-08-04 DSA Questionnaire 5-8-19.pdf\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":261,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"2sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus \\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie \\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus \\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas. \\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex \\neget ex. Duis dignissim lacus vitae velit laoreet, vi\",\"tags\":[4,5],\"created\":\"2022-03-28T07:00:00Z\",\"created_date\":\"2022-03-28\",\"modified\":\"2022-06-23T14:42:32.862290Z\",\"added\":\"2022-03-29T06:13:00.346932Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"archived_file_name\":\"2022-03-28 2sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":3,\"note\":\"Testing a new comment\",\"created\":\"2022-09-12T15:28:39.485497Z\",\"document\":261,\"user\":2}]},{\"id\":260,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"Sonstige ScanPC2022 03-24_081058\",\"content\":\"This is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a test for the double space character issue \\n\\nThis is a \",\"tags\":[],\"created\":\"2022-03-24T15:19:32Z\",\"created_date\":\"2022-03-24\",\"modified\":\"2022-06-23T14:42:36.111030Z\",\"added\":\"2022-03-24T15:20:10.112852Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"archived_file_name\":\"2022-03-24 Sonstige ScanPC2022 03-24_081058.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":252,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"2011 BP Pie 2\",\"content\":\"Patient BP Distribution 2011\\n\\nIsolated Systolic \\nHypertension, 31, 6% \\n\\nStage 2 \\nHypertension,\\n44, 9% \\n\\nStage 1 Hypertension,\\n65, 13%\\n\\nNormal, 150, 30% \\n\\nPre-hypertension , 212, 42%\",\"tags\":[],\"created\":\"2022-03-15T07:00:00Z\",\"created_date\":\"2022-03-15\",\"modified\":\"2022-08-24T20:55:46.025466Z\",\"added\":\"2022-03-15T07:48:42.746115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"archived_file_name\":\"2022-03-15 Correspondent 2 2011 BP Pie 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":243,\"correspondent\":2,\"document_type\":1,\"storage_path\":5,\"title\":\"French Country Bread Revised.docx\",\"content\":\"French Country Bread\\n\\nFor the Leaven\\n1 heaped tablespoon mature sourdough starter (20-30 grams)\\n100 grams Water (80 degrees),\\n50 grams whole wheat bread flour\\n50 grams white bread flour\\n\\nThe night before you plan to make the dough, place 1-2 tablespoon of the matured\\nstarter in a bowl. Feed with 100 grams flour blend and the 100 grams water. Cover with\\na kitchen towel. Let rest in a cool, dark place for 10-12 hours. To test leaven's readiness,\\ndrop a spoonful into a bowl of room-temperature water. If it sinks, it is not ready and\\nneeds more time t\",\"tags\":[5],\"created\":\"2022-03-13T08:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2022-08-07T02:33:15.003110Z\",\"added\":\"2022-03-13T15:59:33.299799Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 2 French Country Bread Revised.docx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":223,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"Review-of-New-York-Federal-Petitions-article\",\"content\":\"Review of New York Federal Petitions for Confirmation\\nof Arbitral Awards Shows Swift Resolutions and\\n\\nCertainty of Awards\\n\\nBy Tim McCarthy, David Hoffman, and Ryham Ragab\\n\\nIntroduction\\nTo allay any possible concern that American liti-\\ngiousness could make New York a difficult venue for\\nexpeditious confirmation of arbitral awards,' the authors\\nundertook a review of post-award proceedings in the\\nUnited States District Court for the Southern District of\\nNew York, under the auspices of the Arbitration Commit-\\ntee of the New York City Bar Associatio\",\"tags\":[4,10,6,2,15,3,1,18,13],\"created\":\"2022-03-13T00:00:00Z\",\"created_date\":\"2022-03-13\",\"modified\":\"2023-03-04T04:44:05.347425Z\",\"added\":\"2022-03-13T15:53:15.665948Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"archived_file_name\":\"2022-03-13 Correspondent 14 Review-of-New-York-Federal-Petitions-article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":284,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_letter\",\"content\":\"Test Name \\n\\n123-456-7890 \\n\\nJanuary 2, 2022 \\nJuly 14, 1984 \\nApril 22, 2013 \\n\\nTrenz Pruca \\nCompany Name \\n4321 First Street \\nAnytown, State ZIP \\n\\nDear Trenz, \\n\\nHere9s a date: 4/22/2013 \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit, set eiusmod tempor incidunt et \\nlabore et dolore magna aliquam. Ut enim ad minim veniam, quis nostrud exerc. Irure dolor in \\nreprehend incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis \\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure \\ndol\",\"tags\":[4],\"created\":\"2022-01-02T08:00:00Z\",\"created_date\":\"2022-01-02\",\"modified\":\"2022-08-07T14:47:05.879898Z\",\"added\":\"2022-08-07T14:47:05.640920Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-02 test_letter.pdf\",\"archived_file_name\":\"2022-01-02 test_letter.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":220,\"correspondent\":17,\"document_type\":1,\"storage_path\":5,\"title\":\"ReadMe Test\",\"content\":\"Contact Sheet Demo\\n\\nGiven a set of image files (JPEG, GIF, PNG), this script will open a new Illustrator document and create a \\ncontact sheet with the images laid out in a grid. \\n\\nTo run the script, drag a folder with images onto the script. Select the horizontal and vertical grid \\ndimensions, and the script will do the rest.\",\"tags\":[4],\"created\":\"2022-01-01T16:52:03Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-06-06T16:50:48.298610Z\",\"added\":\"2022-03-13T15:52:27.469883Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"archived_file_name\":\"2022-01-01 Correspondent 14 ReadMe Test.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":204,\"correspondent\":null,\"document_type\":null,\"storage_path\":5,\"title\":\"multi-page-mixedxx\",\"content\":\"This is a multi page document. Page 1.\\n\\nThis is a multi page document. Page 2.\\n\\nThis is a multi page document. Page 3.\\n\\nThis is a multi page document. Page 4.\\n\\nThis is a multi page document. Page 5.\\n\\nThis is a multi page document. Page 6.\",\"tags\":[4],\"created\":\"2022-01-01T08:00:00Z\",\"created_date\":\"2022-01-01\",\"modified\":\"2022-03-11T16:11:09.714031Z\",\"added\":\"2022-02-20T09:35:34.970457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"archived_file_name\":\"2022-01-01 multi-page-mixedxx.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":179,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"simple txt file\",\"content\":\"This is a test file.\",\"tags\":[4],\"created\":\"2021-03-06T22:31:53.716035Z\",\"created_date\":\"2021-03-06\",\"modified\":\"2022-02-17T22:14:18.110787Z\",\"added\":\"2021-03-06T22:31:55.141629Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-03-06 Test Correspondent 1 simple txt file.txt\",\"archived_file_name\":null,\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":175,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"file-sample_150kBs\",\"content\":\"Lorem ipsum\\n\\nLorem ipsum dolor sit amet, consectetur adipiscing\\nelit. Nunc ac faucibus odio.\\n\\nVestibulum neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut\\nvarius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum\\ncondimentum. Vivamus dapibus sodales ex, vitae malesuada ipsum cursus\\nconvallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis,\\nvulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus\\nnisl blandit. Integer lacinia ante ac\",\"tags\":[4],\"created\":\"2021-02-15T00:00:00Z\",\"created_date\":\"2021-02-15\",\"modified\":\"2023-02-17T22:25:47.449036Z\",\"added\":\"2021-01-26T22:46:32.447764Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"archived_file_name\":\"2021-02-15 file-sample_150kBs.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":70,\"note\":\"This is a second note\",\"created\":\"2023-05-12T17:04:50.873017Z\",\"document\":175,\"user\":2},{\"id\":71,\"note\":\"And a third\",\"created\":\"2023-05-12T17:04:54.027561Z\",\"document\":175,\"user\":2},{\"id\":72,\"note\":\"One more\",\"created\":\"2023-05-12T17:04:57.581521Z\",\"document\":175,\"user\":2},{\"id\":73,\"note\":\"This is a new note\",\"created\":\"2023-05-14T06:05:17.715744Z\",\"document\":175,\"user\":2}]},{\"id\":196,\"correspondent\":4,\"document_type\":null,\"storage_path\":8,\"title\":\"f_combineds\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et \\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean \\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada \\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus. \\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer \\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non s\",\"tags\":[4,7],\"created\":\"2021-02-07T08:00:00Z\",\"created_date\":\"2021-02-07\",\"modified\":\"2022-02-18T07:49:07.123474Z\",\"added\":\"2021-03-14T15:14:11.879665Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"archived_file_name\":\"2021-02-07 Newest Correspondent f_combineds.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":177,\"correspondent\":null,\"document_type\":null,\"storage_path\":8,\"title\":\"sample-pdf-download-10-mb-longer-title\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4,5],\"created\":\"2021-01-26T22:46:26Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2022-02-18T07:18:15.696906Z\",\"added\":\"2021-01-26T22:47:02.320418Z\",\"archive_serial_number\":112412324,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb-longer-title.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":176,\"correspondent\":null,\"document_type\":2,\"storage_path\":null,\"title\":\"sample-pdf-download-10-mb copy_red\",\"content\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae fringilla nunc. Phasellus et\\nnulla ipsum. Vestibulum quis ex lacus. Mauris sit amet mi a lacus interdum accumsan. Aenean\\nfermentum tempus ante sed rutrum. Aenean et magna elementum, suscipit tellus non, malesuada\\nturpis. Ut eleifend urna eget nisl fermentum, consequat ullamcorper ex rhoncus.\\n\\nIn tincidunt elit id dignissim facilisis. Nunc iaculis odio nisl, sit amet sagittis turpis aliquet eu. Integer\\nvestibulum, ipsum vel volutpat varius, augue arcu pulvinar urna, non sceler\",\"tags\":[4],\"created\":\"2021-01-26T00:00:00Z\",\"created_date\":\"2021-01-26\",\"modified\":\"2023-03-16T07:40:27.863487Z\",\"added\":\"2021-01-26T22:46:43.688020Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"archived_file_name\":\"2021-01-26 sample-pdf-download-10-mb copy_red.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":28,\"note\":\"This is one\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":176,\"user\":2}]},{\"id\":7,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-with-images\",\"content\":\"Curabitur bibendum ante urna, sed blandit libero egestas id. Pellentesque rhoncus elit in lacus\\nultrices fringilla. Nam ac metus eu turpis mattis rutrum. Mauris mattis sem ex, facilisis molestie\\nsapien luctus non. Vestibulum tincidunt urna at odio suscipit, vel congue felis cursus. Etiam tellus\\nmagna, egestas ac suscipit in, laoreet quis felis. Proin non orci id dui tincidunt egestas.\\n\\nVestibulum eleifend, ligula a scelerisque vehicula, risus justo ultricies ligula, et interdum lorem ex\\neget ex. Duis dignissim lacus vitae velit laoreet, vitae p\",\"tags\":[4,3],\"created\":\"2021-01-21T03:28:33Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-02-18T06:42:05.282698Z\",\"added\":\"2021-01-21T03:28:54.056068Z\",\"archive_serial_number\":112412322,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-with-images.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":18,\"note\":\"Here's one\",\"created\":\"2023-03-17T04:58:18.085861Z\",\"document\":7,\"user\":2},{\"id\":19,\"note\":\"Adding another\",\"created\":\"2023-03-17T04:58:52.076411Z\",\"document\":7,\"user\":2},{\"id\":26,\"note\":\"Hiya man\",\"created\":\"2023-03-17T05:27:55.315286Z\",\"document\":7,\"user\":2}]},{\"id\":5,\"correspondent\":12,\"document_type\":null,\"storage_path\":5,\"title\":\"sample-pdf-file\",\"content\":\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been\\nthe industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of\\ntype and scrambled it to make a type specimen book. It has survived not only five centuries, but also\\nthe leap into electronic typesetting, remaining essentially unchanged. It was popularised in the\\n1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with\\ndesktop publishing software like Aldus PageMaker including \",\"tags\":[4,3,1],\"created\":\"2021-01-21T00:00:00Z\",\"created_date\":\"2021-01-21\",\"modified\":\"2022-12-11T01:01:50.525990Z\",\"added\":\"2021-01-21T03:28:38.587225Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"archived_file_name\":\"2021-01-21 Correspondent 9 sample-pdf-file.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":181,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"asample\",\"content\":\"A Simple PDF File \\r\\n\\r\\nThis is a small demonstration .pdf file - \\r\\n\\r\\njust for use in the Virtual Mechanics tutorials. More text. And more \\r\\ntext. And more text. And more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\r\\nmore text. And more text. And more text. And more text. And more text. \\r\\nAnd more text. And more text. \\r\\n\\r\\nAnd more text. And more text. And more text. And more text. And more \\r\\ntext. And more text. And more text.\",\"tags\":[4,1],\"created\":\"2021-01-20T00:00:00Z\",\"created_date\":\"2021-01-20\",\"modified\":\"2022-12-08T10:43:22.071931Z\",\"added\":\"2021-03-14T14:50:24.567268Z\",\"archive_serial_number\":null,\"original_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"archived_file_name\":\"2021-01-20 Correspondent 2 asample.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":205,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 5 10.24.48\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[4,3],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-12T19:38:36.183758Z\",\"added\":\"2022-02-22T09:46:25.736288Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 5 10.24.48.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":206,\"correspondent\":2,\"document_type\":null,\"storage_path\":null,\"title\":\"pdf-sample 210.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,2,1],\"created\":\"2020-12-28T06:23:56Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-05-16T05:46:58.682191Z\",\"added\":\"2022-02-22T09:46:25.737479Z\",\"archive_serial_number\":112412325,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 210.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":191,\"correspondent\":2,\"document_type\":null,\"storage_path\":2,\"title\":\"pdf-sample 1 11.24.48 PM\",\"content\":\"Adobe Acrobat PDF Files\\n\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\nthe application and platform used to create it.\\n\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\nproblems commonly encountered with electronic file sharing.\\n\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\nReader. Recipients of other file formats sometimes can't open files because they\\n\",\"tags\":[4,7,2],\"created\":\"2020-12-28T00:00:00Z\",\"created_date\":\"2020-12-28\",\"modified\":\"2022-12-13T05:39:04.690271Z\",\"added\":\"2021-03-14T14:54:17.851803Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"archived_file_name\":\"2020-12-28 Correspondent 2 pdf-sample 1 11.24.48 PM.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":227,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"USC Fact sheet \",\"content\":\"Accreditation Status Change Toolkit \\n\\n\\nThis fact sheet and frequently asked questions (FAQ) are intended to help our leaders answer questions \\nthey may receive about accreditation status changes. This toolkit is being shared with KSOM chairs, \\nHealth System leadership, faculty council members, faculty and other leaders likely to get questions. \\n\\nThis toolkit is for internal use only and is not to be posted publicly. \\n\\n& What It Means \\n\\no \\n\\n\\n\\n\\n\\n\\n\\n \\n\\n The ACGME has decided to withdraw accreditation of our Cardiovascular Disease (Medicine) \\nWhat\",\"tags\":[4],\"created\":\"2020-06-30T00:00:00Z\",\"created_date\":\"2020-06-30\",\"modified\":\"2022-03-13T15:54:16.009200Z\",\"added\":\"2022-03-13T15:54:15.419431Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"archived_file_name\":\"2020-06-30 USC Fact sheet .pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":180,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"New Title Test 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,1],\"created\":\"2020-05-21T07:00:00Z\",\"created_date\":\"2020-05-21\",\"modified\":\"2022-08-13T14:11:41.449660Z\",\"added\":\"2021-03-14T14:50:18.505435Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"archived_file_name\":\"2020-05-21 Correspondent 2 New Title Test 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":3,\"correspondent\":2,\"document_type\":1,\"storage_path\":null,\"title\":\"sample 2\",\"content\":\"A Simple PDF File \\n\\nThis is a small demonstration .pdf file - \\n\\njust for use in the Virtual Mechanics tutorials. More text. And more \\ntext. And more text. And more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. Boring, zzzzz. And more text. And more text. And \\nmore text. And more text. And more text. And more text. And more text. \\nAnd more text. And more text. \\n\\nAnd more text. And more text. And more text. And more text. And more \\ntext. And more text. And more text. Even more. C\",\"tags\":[4,5],\"created\":\"2020-05-10T20:52:02.204000Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-12-14T08:27:30.532148Z\",\"added\":\"2021-01-20T23:38:34.225574Z\",\"archive_serial_number\":1123,\"original_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"archived_file_name\":\"2020-05-10 Correspondent 2 sample 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[{\"id\":29,\"note\":\"\",\"created\":\"2023-03-17T07:03:50.248390Z\",\"document\":3,\"user\":2}]},{\"id\":224,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"rotated\",\"content\":\"This is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text. This is the text that\\nappears on the first page. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text.\\nThis is the text that appears on the first page. It’s a lot of text. This is the text that appears on the first\\npage. It’s a lot of text. This is the text that appears on the first page. It’s a lot of text\",\"tags\":[],\"created\":\"2020-05-10T16:45:49Z\",\"created_date\":\"2020-05-10\",\"modified\":\"2022-05-22T15:35:49.553530Z\",\"added\":\"2022-03-13T15:53:17.058938Z\",\"archive_serial_number\":null,\"original_file_name\":\"2020-05-10 rotated.pdf\",\"archived_file_name\":\"2020-05-10 rotated.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":4,\"correspondent\":1,\"document_type\":null,\"storage_path\":null,\"title\":\"A Sample PDF 2\",\"content\":\"Lorem Ipsum \\n\\n\\\"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...\\\" \\n\\n\\\"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain...\\\" \\n\\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris vitae erat nibh. Morbi imperdiet \\nscelerisque massa, non ornare turpis elementum consectetur. Praesent laoreet vitae libero eget \\npulvinar. Fusce malesuada massa at tincidunt tincidunt. Orci varius natoque penatibus et magnis dis \\nparturient montes, nascetur r\",\"tags\":[2],\"created\":\"2020-02-03T23:37:58Z\",\"created_date\":\"2020-02-03\",\"modified\":\"2022-06-18T04:15:43.853057Z\",\"added\":\"2021-01-20T23:38:36.441384Z\",\"archive_serial_number\":112412321,\"original_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"archived_file_name\":\"2020-02-03 Test Correspondent 1 A Sample PDF 2.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":233,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"jgme-11-01-15_1\",\"content\":\"TO THE EDITOR\\n\\n‘‘Future-Proofing’’\\nCommunication Skills\\nfor Future Physician\\nLearners\\n\\nI have often cringed at depictions of physicians in\\n\\nthe media. The classic depiction of physicians\\nhas been marked by a detached, cold disregard,\\nand truly awful communication skills. Though much\\nhas changed over the years, this caricature persists\\nwell beyond the era of cigarette-wielding physicians\\ndiagnosing ‘‘hysteria.’’ This pejorative stereotype\\nalways seemed so wrong to me, entirely at odds with\\nthe people with whom I work and know to be warm\\nand thoug\",\"tags\":[],\"created\":\"2018-07-31T07:00:00Z\",\"created_date\":\"2018-07-31\",\"modified\":\"2022-08-07T02:29:02.633532Z\",\"added\":\"2022-03-13T15:56:31.810988Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"archived_file_name\":\"2018-07-31 jgme-11-01-15_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":312,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"[paperless] Owned by Test Not Shared\",\"content\":\"Abstract ID Number: 191092\\r\\nThis Abstract is Best Characterized As: Research Abstract\\r\\nThis Abstract’s Focus is Best Characterized As: Undergraduate Medical Education (UME)\\r\\nMost Appropriate Sub Category: Ultrasound\\r\\n\\r\\nAbstract Title: Medical Students Want More Ultrasound Incorporated Into Their Education\\r\\n\\r\\nAbstract:\\r\\nBackground:\\r\\nUltrasound (US) has become increasingly important in emergency medicine (EM) training, but informal feedback from\\r\\nrotating medical students suggested that many programs have not incorporated US training into their r\",\"tags\":[4,9,2],\"created\":\"2018-07-01T00:00:00Z\",\"created_date\":\"2018-07-01\",\"modified\":\"2023-05-02T07:30:47.939341Z\",\"added\":\"2023-03-01T09:40:10.899460Z\",\"archive_serial_number\":null,\"original_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"archived_file_name\":\"2018-07-01 [paperless] Owned by Test Not Shared.pdf\",\"owner\":15,\"user_can_change\":true,\"notes\":[]},{\"id\":258,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2017.10.20-ICC-NYIAC-MoU\",\"content\":\"MEMORANDUM OF UNDERSTANDING\\nBETWEEN\\nNew York International Arbitration Center\\nAND\\nSICANA, Inc.\\nAND\\nINTERNATIONAL CHAMBER OF COMMERCE\\n\\nThis Memorandum of Understanding (“MOU”) is executed with effect from October 20, 2017,\\n\\nby and\\n\\nbetween New York International Arbitration Center (“ NYIAC “) and SICANA, Inc. (“SICANA”), a DeJaware\\n\\nnonstock corporation and International Chamber of Commerce (“ ICC ”), an association esta\\n\\nblished\\n\\nunder the French law of 1 July 1901 on contract of association, acting on behalf of its working bolly, the\\n\\nInternat\",\"tags\":[],\"created\":\"2017-10-20T00:00:00Z\",\"created_date\":\"2017-10-20\",\"modified\":\"2022-03-15T17:06:34.473466Z\",\"added\":\"2022-03-15T17:06:34.395275Z\",\"archive_serial_number\":null,\"original_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"archived_file_name\":\"2017-10-20 2017.10.20-ICC-NYIAC-MoU.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":295,\"correspondent\":12,\"document_type\":null,\"storage_path\":null,\"title\":\"sample_invoice_pdfa\",\"content\":\"InInvvoicoicee\\n\\nCustomer Name\\nStreet\\nPostcode City\\nCountry\\n\\nInvoice date:\\nInvoice number:\\nPayment due:\\n\\nYesLogic Pty. Ltd.\\n7 / 39 Bouverie St\\nCarlton VIC 3053\\nAustralia\\n\\nwww.yeslogic.com\\nABN 32 101 193 560\\n\\nNov 26, 2016\\n161126\\n30 days after invoice date\\n\\nDescription\\n\\nFrom\\n\\nUntil\\n\\nPrince Upgrades & Support\\n\\nNov 26, 2016\\n\\nNov 26, 2017\\n\\nTotal\\n\\nAmount\\n\\nUSD $950.00\\n\\nUSD $950.00\\n\\nPlease transfer amount to:\\n\\nBank account name:\\nName of Bank:\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank State Branch (BSB):\\nBank account number:\\nBank SWIFT code:\",\"tags\":[4,9],\"created\":\"2016-11-26T00:00:00Z\",\"created_date\":\"2016-11-26\",\"modified\":\"2022-12-14T07:14:09.404545Z\",\"added\":\"2022-09-12T19:09:08.194023Z\",\"archive_serial_number\":null,\"original_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"archived_file_name\":\"2016-11-26 Correspondent 9 sample_invoice_pdfa.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":236,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-7-4-549\",\"content\":\"A Systematic Review and Qualitative Analysis to\\nDetermine Quality Indicators for\\nHealth Professions Education Blogs and Podcasts\\n\\nREVIEWS\\n\\nQuinten S. Paterson\\nBrent Thoma, MD, MA\\nW. Kenneth Milne, MD\\nMichelle Lin, MD\\nTeresa M. Chan, BEd, MD, FRCPC\\n\\nABSTRACT\\n\\nBackground Historically, trainees in undergraduate and graduate health professions education have relied on secondary\\nresources, such as textbooks and lectures, for core learning activities. Recently, blogs and podcasts have entered into mainstream\\nusage, especially for residents and educat\",\"tags\":[],\"created\":\"2015-12-01T00:00:00Z\",\"created_date\":\"2015-12-01\",\"modified\":\"2022-03-13T15:58:36.295789Z\",\"added\":\"2022-03-13T15:58:36.074589Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"archived_file_name\":\"2015-12-01 i1949-8357-7-4-549.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":254,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"501 JGN book Ch4-5 2018\",\"content\":\"Chapter 4 \\nINSTRUCTIONAL STRATEGIES \\n\\nChapter Content \\nSelecting Instructional Strategies \\nTechniques Used in Classroom Settings \\nTechniques Used in Clinical Settings \\nTable Comparing Categories of Competence to Teaching Techniques \\nBibliography \\n\\nSelecting Instructional Strategies \\n\\n\\nInstructional methods or strategies are the tools used to direct the learners' activities toward \\nachieving desired goals and objectives. The success of an instructor in using each tool \\ndepends on how appropriate the tool is for the intended audience and intended\",\"tags\":[8],\"created\":\"2015-10-02T00:00:00Z\",\"created_date\":\"2015-10-02\",\"modified\":\"2022-03-15T07:48:57.018035Z\",\"added\":\"2022-03-15T07:48:55.295562Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"archived_file_name\":\"2015-10-02 501 JGN book Ch4-5 2018.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":242,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Hearing-Checklist-1\",\"content\":\"International Arbitration Pre-Hearing Checklist \\nAníbal Sabater, Chaffetz Lindsey LLP1 \\nJuly 2015 \\n\\n\\n\\n\\nHearing Dates & Location \\n\\n1. On what day is the hearing scheduled to start? \\n\\n2. On what day is the hearing expected to end? \\n\\n3. Are there going to be days “off” between hearing start and end? \\n\\n4. At what time will sessions start and end every day? \\n\\n5. When and for how long are breaks expected to take place during the hearing? \\n\\n6. Are hearing facilities booked with an appropriately sized hearing room? Does this include set-up \\n\\nand break-\",\"tags\":[],\"created\":\"2015-07-01T00:00:00Z\",\"created_date\":\"2015-07-01\",\"modified\":\"2022-03-13T15:59:35.931186Z\",\"added\":\"2022-03-13T15:59:32.142898Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"archived_file_name\":\"2015-07-01 Hearing-Checklist-1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":278,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2015-05-31 i1949-8357-8-2-219\",\"content\":\"EDUCATIONAL INNOVATION\\n\\nApproved Instructional Resources Series: A\\nNational Initiative to Identify Quality Emergency\\nMedicine Blog and Podcast Content for Resident\\nEducation\\n\\nMichelle Lin, MD\\nNikita Joshi, MD\\nAndrew Grock, MD\\nAnand Swaminathan, MD, MPH\\nEric J. Morley, MD, MS\\n\\nABSTRACT\\n\\nJeremy Branzetti, MD\\nTaku Taira, MD\\nFelix Ankel, MD\\nLalena M. Yarris, MD, MCR\\n\\nBackground Emergency medicine (EM) residency programs can provide up to 20% of their planned didactic experiences\\nasynchronously through the Individualized Interactive Instruction (III\",\"tags\":[],\"created\":\"2015-06-01T00:00:00Z\",\"created_date\":\"2015-06-01\",\"modified\":\"2023-05-08T08:35:51.463491Z\",\"added\":\"2022-08-07T04:07:34.590976Z\",\"archive_serial_number\":null,\"original_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"archived_file_name\":\"2015-06-01 2015-05-31 i1949-8357-8-2-219.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":246,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"DRS14program\",\"content\":\"N E W Y O R K S T A T E B A R A S S O C I A T I O N\\n\\nDispute Resolution Section\\nAnnual Meeting\\nThursday, January 30, 2014\\nNew York Hilton Midtown\\n1335 Avenue of the Americas, New York City\\n\\nDRS Executive Committee Meeting\\n8:00 a.m. - 9:00 a.m.\\nMadison, 2nd Floor\\n\\nMCLE Morning Program\\n9:15 a.m. - 12:00 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nMCLE Afternoon Program\\n1:30 p.m. - 4:50 p.m.\\nRendezvous Trianon, 3rd Floor\\n\\nNetworking Luncheon\\n12:00 p.m.\\nDorsey & Whitney LLP, \\n51 West 52nd Street\\n\\nCocktail Reception\\n5:00 p.m. - 7:00 p.m. \\n\\n\\n\\nPaul, Weiss, Ri\",\"tags\":[],\"created\":\"2014-01-30T00:00:00Z\",\"created_date\":\"2014-01-30\",\"modified\":\"2022-03-13T16:00:41.258206Z\",\"added\":\"2022-03-13T16:00:41.171480Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-30 DRS14program.pdf\",\"archived_file_name\":\"2014-01-30 DRS14program.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":255,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"2014 - Hamstra - Acad Med - Reconsidering fide\",\"content\":\"Reconsidering Fidelity in Simulation-Based \\nTraining\\nStanley J. Hamstra, PhD, Ryan Brydges, PhD, Rose Hatala, MD, MSc, \\nBenjamin Zendejas, MD, MSc, and David A. Cook, MD, MHPE\\n\\nPerspective\\n\\nAbstract\\n\\nIn simulation-based health professions \\neducation, the concept of simulator \\nfidelity is usually understood as the \\ndegree to which a simulator looks, \\nfeels, and acts like a human patient. \\nAlthough this can be a useful guide \\nin designing simulators, this definition \\nemphasizes technological advances and \\nphysical resemblance over principles \\nof \",\"tags\":[8],\"created\":\"2014-01-20T00:00:00Z\",\"created_date\":\"2014-01-20\",\"modified\":\"2022-03-15T07:49:19.543577Z\",\"added\":\"2022-03-15T07:49:14.513866Z\",\"archive_serial_number\":null,\"original_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"archived_file_name\":\"2014-01-20 2014 - Hamstra - Acad Med - Reconsidering fide.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":232,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"Litigation-Journal-Article\",\"content\":\"New York\\nA New Home of\\n\\nInternational Arbitration?\\n\\nBRIAN FARKAS AND MARIE CASSARD\\n\\n\\n\\n\\n\\nBrian Farkas is with Goetz Fitzpatrick LLP, and Marie Cassard is an LLM candidate\\n\\nin dispute resolution at Cardozo School of Law. Both are in New York City.\\n\\nParis and London—traditionally the global centers of interna-\\ntional arbitration—should begin to worry. Over the past few\\nyears, New York has undertaken a thoughtful, multifaceted ef-\\nfort to attract more international arbitrations. Collaborative\\nand coincidental initiatives from the private sector, mu\",\"tags\":[],\"created\":\"2013-06-01T00:00:00Z\",\"created_date\":\"2013-06-01\",\"modified\":\"2022-03-13T15:56:14.286468Z\",\"added\":\"2022-03-13T15:56:12.956349Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"archived_file_name\":\"2013-06-01 Litigation-Journal-Article.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":234,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"January-30-press-release\",\"content\":\"FOR IMMEDIATE RELEASE \\n\\n\\n\\n\\n\\nNew York Plans Opening of International Arbitration Center \\nCenter Will Strengthen New York's Role as Premier International Arbitration Site \\n\\n\\nNEW YORK, NY – January 30, 2013 – The New York International Arbitration Center (\\\"NYIAC\\\"), \\nfounded with the support of 33 leading law firms to promote and strengthen the conduct of international \\narbitration in New York, has announced at its launch celebration last week that it will officially open its \\ndoors in late Spring 2013. The Center will enable New York City to enhan\",\"tags\":[],\"created\":\"2013-01-30T00:00:00Z\",\"created_date\":\"2013-01-30\",\"modified\":\"2022-03-13T15:58:07.064428Z\",\"added\":\"2022-03-13T15:58:06.974115Z\",\"archive_serial_number\":null,\"original_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"archived_file_name\":\"2013-01-30 January-30-press-release.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":219,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"test_new_1\",\"content\":\"Adobe Acrobat PDF Files\\r\\n\\r\\nAdobe® Portable Document Format (PDF) is a universal file format that preserves all\\r\\nof the fonts, formatting, colours and graphics of any source document, regardless of\\r\\nthe application and platform used to create it.\\r\\n\\r\\nAdobe PDF is an ideal format for electronic document distribution as it overcomes the\\r\\nproblems commonly encountered with electronic file sharing.\\r\\n\\r\\n• Anyone, anywhere can open a PDF file. All you need is the free Adobe Acrobat\\r\\nReader. Recipients of other file formats sometimes can't open files bec\",\"tags\":[],\"created\":\"2012-11-21T08:00:00Z\",\"created_date\":\"2012-11-21\",\"modified\":\"2022-05-18T10:27:32.623122Z\",\"added\":\"2022-03-11T22:17:10.722995Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-11-21 test_new_1.pdf\",\"archived_file_name\":\"2012-11-21 test_new_1.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":250,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"394_2012_Article_380\",\"content\":\"Eur J Nutr (2012) 51:637–663\\nDOI 10.1007/s00394-012-0380-y\\n\\nR E V I E W\\n\\nCritical review: vegetables and fruit in the prevention of chronic\\ndiseases\\n\\nHeiner Boeing • Angela Bechthold • Achim Bub • Sabine Ellinger •\\nDirk Haller • Anja Kroke • Eva Leschik-Bonnet • Manfred J. Mu¨ ller •\\nHelmut Oberritter • Matthias Schulze • Peter Stehle • Bernhard Watzl\\n\\nReceived: 13 February 2012 / Accepted: 9 May 2012 / Published online: 9 June 2012\\n(cid:2) The Author(s) 2012. This article is published with open access at Springerlink.com\\n\\nAbstract\\nBackground V\",\"tags\":[],\"created\":\"2012-02-13T00:00:00Z\",\"created_date\":\"2012-02-13\",\"modified\":\"2022-03-15T07:47:17.517316Z\",\"added\":\"2022-03-15T07:47:16.764975Z\",\"archive_serial_number\":null,\"original_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"archived_file_name\":\"2012-02-13 394_2012_Article_380.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":248,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"11 Castiglioni fac sucess 2013\",\"content\":\"JGIM\\n\\nPERSPECTIVES\\n\\nSucceeding as a Clinician Educator: Useful Tips\\nand Resources\\n\\nAnalia Castiglioni, MD1, Eva Aagaard, MD2, Abby Spencer, MD, MS3,\\nLaura Nicholson, MD, PhD4,5, Reena Karani, MD6, Carol K. Bates, MD7, Lisa L. Willett, MD8, and\\nShobhina G. Chheda, MD, MPH9\\n1Division of General Internal Medicine( University of Alabama at Birmingham, Birmingham VA Medical Center, Birmingham, AL, USA; 2Division\\nof General Internal Medicine University of Colorado School of Medicine, Aurora, CO, USA; 3Division of General Internal Medicine Temple\\nUniv\",\"tags\":[],\"created\":\"2011-11-26T00:00:00Z\",\"created_date\":\"2011-11-26\",\"modified\":\"2022-03-15T07:44:44.250464Z\",\"added\":\"2022-03-15T07:44:44.042390Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"archived_file_name\":\"2011-11-26 11 Castiglioni fac sucess 2013.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":249,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"38.full\",\"content\":\"Nutrition FYI\\n\\nPreparing to Prescribe Plant-Based Diets for Diabetes \\nPrevention and Treatment\\n\\nCaroline Trapp, MSN, APRN, BC-ADM, CDE, and Susan Levin, MS, RD\\n\\nThe number of people worldwide \\nwith type 2 diabetes is expected \\nto double by 2030.1 In the United \\nStates, diabetes affects ~ 26 \\nmillion people of all ages, about \\none-fourth of whom are not yet \\ndiagnosed.2 Despite the availability \\nof a wide range of pharmacological \\ntreatments and the best efforts of \\ndiabetes educators and other health \\ncare professionals, good control \\nof diabet\",\"tags\":[4],\"created\":\"2011-09-27T00:00:00Z\",\"created_date\":\"2011-09-27\",\"modified\":\"2022-03-15T07:44:56.566398Z\",\"added\":\"2022-03-15T07:44:56.344535Z\",\"archive_serial_number\":null,\"original_file_name\":\"2011-09-27 38.full.pdf\",\"archived_file_name\":\"2011-09-27 38.full.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":247,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"'15 EM Clinics- Crashing PHTN copy\",\"content\":\"M a n a g e m e n t o f C r a s h i n g\\nP a t i e n t s wi t h Pu l m o n a r y\\nH y p e r t e n s i o n\\n\\nJohn C. Greenwood, MD\\n\\na,*, Ryan M. Spangler, MD\\n\\nb\\n\\nKEYWORDS\\n(cid:1) Pulmonary hypertension (cid:1) Right ventricular failure (cid:1) Cardiogenic shock\\n\\nKEY POINTS\\n\\n(cid:1) Management goals for patients with pulmonary hypertension (PH) are to optimize preload\\nand volume status, maintain right ventricular function, prevent right coronary artery mal-\\nperfusion, reduce right ventricular afterload, and reverse the underlying cause whenever\\nposs\",\"tags\":[4],\"created\":\"2010-12-01T00:00:00Z\",\"created_date\":\"2010-12-01\",\"modified\":\"2022-03-15T07:44:35.526159Z\",\"added\":\"2022-03-15T07:44:31.004457Z\",\"archive_serial_number\":null,\"original_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"archived_file_name\":\"2010-12-01 '15 EM Clinics- Crashing PHTN copy.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]},{\"id\":237,\"correspondent\":null,\"document_type\":null,\"storage_path\":null,\"title\":\"i1949-8357-2-2-147\",\"content\":\"E D I T O R I A L\\n\\nBeyond Must: Supporting the Evolving\\nRole of the Designated Institutional Official\\n\\nLisa Bellini, MD\\n\\nDiane Hartmann, MD\\n\\nLawrence Opas, MD\\n\\nWhat Must I Do Today?\\n\\nOur daily schedules often require that we balance our\\nprofessional and personal obligations. Accomplishing the\\ntasks of the day must be done with particular efficiency to\\nensure timely arrival at evening events such as the family meal\\nor an open house at school for one of our children. Barring an\\nunpredictable graduate medical education (GME) crisis (the\\nfrequency \",\"tags\":[4],\"created\":\"2009-09-01T00:00:00Z\",\"created_date\":\"2009-09-01\",\"modified\":\"2022-03-13T15:58:53.272297Z\",\"added\":\"2022-03-13T15:58:51.568000Z\",\"archive_serial_number\":null,\"original_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"archived_file_name\":\"2009-09-01 i1949-8357-2-2-147.pdf\",\"owner\":null,\"user_can_change\":true,\"notes\":[]}]}" }, "headersSize": -1, "bodySize": -1, diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index e7088e90d..f30605a4e 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -5,14 +5,14 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/alert/alert.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/alert/alert.ts 50 Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/carousel/carousel.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/carousel/carousel.ts 131,135 Currently selected slide number read by screen reader @@ -20,114 +20,114 @@ Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/carousel/carousel.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/carousel/carousel.ts 159,162 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/carousel/carousel.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/carousel/carousel.ts 202,203 Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation-select.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation-select.ts 91 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation-select.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation-select.ts 91 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation-select.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation-select.ts 91 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation-select.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation-select.ts 91 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation.ts 83,85 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation.ts 112 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation.ts 112 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/datepicker/datepicker-navigation.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/datepicker/datepicker-navigation.ts 112 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/pagination/pagination-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/pagination/pagination-config.ts 20 @@ -135,105 +135,105 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/progressbar/progressbar.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/progressbar/progressbar.ts 41,42 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/timepicker/timepicker-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/timepicker/timepicker-config.ts 21 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.0_@angular+core@21.2.0_@angular+_fdecb2f5429dfeda6301fd300107de5b/node_modules/src/toast/toast-config.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@20.0.0_@angular+common@21.2.6_@angular+core@21.2.6_@angular+_0766f480734948ad660a180d719522cc/node_modules/src/toast/toast-config.ts 54 @@ -297,11 +297,11 @@ src/app/components/app-frame/app-frame.component.html - 87 + 88 src/app/components/app-frame/app-frame.component.html - 89 + 90 src/app/components/dashboard/dashboard.component.html @@ -324,11 +324,11 @@ src/app/components/app-frame/app-frame.component.html - 94 + 95 src/app/components/app-frame/app-frame.component.html - 96 + 97 src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html @@ -375,15 +375,15 @@ src/app/components/app-frame/app-frame.component.html - 54 + 55 src/app/components/app-frame/app-frame.component.html - 273 + 274 src/app/components/app-frame/app-frame.component.html - 275 + 276 @@ -532,15 +532,79 @@ 125 - - Discard + + Cancel src/app/components/admin/config/config.component.html 62 - src/app/components/document-detail/document-detail.component.html - 452 + src/app/components/admin/settings/settings.component.html + 399 + + + src/app/components/common/confirm-dialog/confirm-dialog.component.ts + 47 + + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 25 + + + src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html + 51 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 27 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 19 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 39 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 80 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 76 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 30 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 56 + + + src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html + 115 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 31 + + + src/app/components/common/profile-edit-dialog/profile-edit-dialog.component.html + 182 + + + src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html + 81 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 21 + + + src/app/components/manage/saved-views/saved-views.component.html + 82 @@ -664,11 +728,11 @@ src/app/components/app-frame/app-frame.component.html - 308 + 309 src/app/components/app-frame/app-frame.component.html - 311 + 312 @@ -1017,7 +1081,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts - 208 + 203 @@ -1075,11 +1139,11 @@ src/app/components/app-frame/app-frame.component.html - 233 + 234 src/app/components/app-frame/app-frame.component.html - 235 + 236 src/app/components/manage/saved-views/saved-views.component.html @@ -1217,7 +1281,7 @@ src/app/components/document-detail/document-detail.component.ts - 1758 + 1760 @@ -1514,77 +1578,6 @@ 389 - - Cancel - - src/app/components/admin/settings/settings.component.html - 399 - - - src/app/components/common/confirm-dialog/confirm-dialog.component.ts - 47 - - - src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 25 - - - src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html - 51 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 27 - - - src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html - 19 - - - src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 39 - - - src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 80 - - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 76 - - - src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 30 - - - src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html - 56 - - - src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html - 115 - - - src/app/components/common/permissions-dialog/permissions-dialog.component.html - 31 - - - src/app/components/common/profile-edit-dialog/profile-edit-dialog.component.html - 182 - - - src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html - 81 - - - src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html - 21 - - - src/app/components/manage/saved-views/saved-views.component.html - 82 - - Use system language @@ -1707,7 +1700,7 @@ src/app/components/app-frame/app-frame.component.html - 204 + 205 src/app/components/common/input/tags/tags.component.ts @@ -1789,15 +1782,15 @@ src/app/components/app-frame/app-frame.component.ts - 156 + 164 src/app/components/app-frame/app-frame.component.ts - 230 + 238 src/app/components/app-frame/app-frame.component.ts - 255 + 263 @@ -1808,11 +1801,11 @@ src/app/components/app-frame/app-frame.component.html - 296 + 297 src/app/components/app-frame/app-frame.component.html - 298 + 299 @@ -2231,11 +2224,11 @@ src/app/components/app-frame/app-frame.component.html - 256 + 257 src/app/components/app-frame/app-frame.component.html - 259 + 260 @@ -2407,7 +2400,7 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts - 265 + 276 src/app/components/manage/mail/mail.component.html @@ -2457,11 +2450,11 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts - 261 + 272 src/app/components/manage/document-attributes/management-list/management-list.component.ts - 422 + 453 @@ -2495,7 +2488,7 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts - 424 + 455 src/app/components/manage/mail/mail.component.ts @@ -2588,11 +2581,11 @@ src/app/components/app-frame/app-frame.component.html - 287 + 288 src/app/components/app-frame/app-frame.component.html - 289 + 290 @@ -2802,19 +2795,19 @@ src/app/components/document-detail/document-detail.component.ts - 1759 + 1761 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 833 + 899 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 871 + 935 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 894 + 958 src/app/components/manage/document-attributes/custom-fields/custom-fields.component.ts @@ -2822,7 +2815,7 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts - 426 + 457 src/app/components/manage/mail/mail.component.ts @@ -2904,90 +2897,90 @@ Logged in as src/app/components/app-frame/app-frame.component.html - 46 + 47 My Profile src/app/components/app-frame/app-frame.component.html - 50 + 51 Logout src/app/components/app-frame/app-frame.component.html - 57 + 58 Documentation src/app/components/app-frame/app-frame.component.html - 62 + 63 src/app/components/app-frame/app-frame.component.html - 317 + 318 src/app/components/app-frame/app-frame.component.html - 320 + 321 Saved views src/app/components/app-frame/app-frame.component.html - 104 + 105 src/app/components/app-frame/app-frame.component.html - 134 + 135 Open documents src/app/components/app-frame/app-frame.component.html - 143 + 144 Close all src/app/components/app-frame/app-frame.component.html - 163 + 164 src/app/components/app-frame/app-frame.component.html - 165 + 166 Manage src/app/components/app-frame/app-frame.component.html - 174 + 175 Attributes src/app/components/app-frame/app-frame.component.html - 181 + 182 src/app/components/app-frame/app-frame.component.html - 183 + 184 Correspondents src/app/components/app-frame/app-frame.component.html - 209 + 210 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3002,7 +2995,7 @@ Document types src/app/components/app-frame/app-frame.component.html - 214 + 215 src/app/components/manage/document-attributes/document-attributes.component.ts @@ -3013,7 +3006,7 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 219 + 220 src/app/components/manage/document-attributes/document-attributes.component.ts @@ -3024,7 +3017,7 @@ Custom fields src/app/components/app-frame/app-frame.component.html - 224 + 225 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -3034,10 +3027,6 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 84 - - src/app/components/document-list/filter-editor/filter-editor.component.ts - 203 - src/app/components/manage/document-attributes/document-attributes.component.ts 129 @@ -3047,11 +3036,11 @@ Workflows src/app/components/app-frame/app-frame.component.html - 242 + 243 src/app/components/app-frame/app-frame.component.html - 244 + 245 src/app/components/manage/workflows/workflows.component.html @@ -3062,92 +3051,92 @@ Mail src/app/components/app-frame/app-frame.component.html - 249 + 250 src/app/components/app-frame/app-frame.component.html - 252 + 253 Administration src/app/components/app-frame/app-frame.component.html - 267 + 268 Configuration src/app/components/app-frame/app-frame.component.html - 280 + 281 src/app/components/app-frame/app-frame.component.html - 282 + 283 GitHub src/app/components/app-frame/app-frame.component.html - 327 + 328 is available. src/app/components/app-frame/app-frame.component.html - 336,337 + 337,338 Click to view. src/app/components/app-frame/app-frame.component.html - 337 + 338 Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 341 + 342 How does this work? src/app/components/app-frame/app-frame.component.html - 348,350 + 349,351 Update available src/app/components/app-frame/app-frame.component.html - 361 + 362 Sidebar views updated src/app/components/app-frame/app-frame.component.ts - 343 + 383 Error updating sidebar views src/app/components/app-frame/app-frame.component.ts - 346 + 386 An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 367 + 407 @@ -3404,27 +3393,27 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 470 + 536 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 510 + 576 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 548 + 614 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 586 + 652 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 648 + 714 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 781 + 847 @@ -3512,7 +3501,7 @@ src/app/components/document-detail/document-detail.component.ts - 1812 + 1814 @@ -3523,7 +3512,7 @@ src/app/components/document-detail/document-detail.component.ts - 1813 + 1815 @@ -3534,7 +3523,7 @@ src/app/components/document-detail/document-detail.component.ts - 1814 + 1816 @@ -4714,7 +4703,7 @@ src/app/components/manage/document-attributes/management-list/tag-list/tag-list.component.ts - 49 + 48 @@ -5499,7 +5488,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 785 + 851 @@ -5736,7 +5725,7 @@ Open filter src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 788 + 823 @@ -7327,7 +7316,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 481 this string is used to separate processing, failed and added on the file upload widget @@ -7489,7 +7478,7 @@ src/main.ts - 411 + 416 @@ -7511,7 +7500,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts - 195 + 194 src/app/data/document.ts @@ -7684,6 +7673,13 @@ 450 + + Discard + + src/app/components/document-detail/document-detail.component.html + 452 + + Document loading... @@ -7851,7 +7847,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 783 + 849 @@ -7869,7 +7865,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 829 + 895 @@ -7890,88 +7886,88 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1385 + 1387 Error executing operation src/app/components/document-detail/document-detail.component.ts - 1396 + 1398 Error downloading document src/app/components/document-detail/document-detail.component.ts - 1459 + 1461 Page Fit src/app/components/document-detail/document-detail.component.ts - 1539 + 1541 PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1779 + 1781 Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1791 + 1793 Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1802 + 1804 Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1836 + 1838 Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1850 + 1852 Print failed. src/app/components/document-detail/document-detail.component.ts - 1889 + 1891 Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 1901 + 1903 An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 1966 + 1968 src/app/components/document-detail/document-detail.component.ts - 1970 + 1972 @@ -8215,25 +8211,25 @@ Error executing bulk operation src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 321 + 319 "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 407 + 473 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 413 + 479 "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 409 + 475 This is for messages like 'modify "tag1" and "tag2"' @@ -8241,7 +8237,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417,419 + 483,485 this is for messages like 'modify "tag1", "tag2" and "tag3"' @@ -8249,39 +8245,39 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 434 + 500 - This operation will add the tag "" to selected document(s). + This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 440 + 506 This operation will add the tags to selected document(s). + )"/> to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 445,447 + 511,513 - This operation will remove the tag "" from selected document(s). + This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 453 + 519 This operation will remove the tags from selected document(s). + )"/> from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458,460 + 524,526 @@ -8289,112 +8285,112 @@ changedTags.itemsToAdd )"/> and remove the tags on selected document(s). + )"/> on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 462,466 + 528,532 Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 503 + 569 - This operation will assign the correspondent "" to selected document(s). + This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 505 + 571 - This operation will remove the correspondent from selected document(s). + This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 507 + 573 Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 541 + 607 - This operation will assign the document type "" to selected document(s). + This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 543 + 609 - This operation will remove the document type from selected document(s). + This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 545 + 611 Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 579 + 645 - This operation will assign the storage path "" to selected document(s). + This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 581 + 647 - This operation will remove the storage path from selected document(s). + This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 583 + 649 Confirm custom field assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 612 + 678 - This operation will assign the custom field "" to selected document(s). + This operation will assign the custom field "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 618 + 684 This operation will assign the custom fields to selected document(s). + )"/> to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 623,625 + 689,691 - This operation will remove the custom field "" from selected document(s). + This operation will remove the custom field "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 631 + 697 This operation will remove the custom fields from selected document(s). + )"/> from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 636,638 + 702,704 @@ -8402,94 +8398,94 @@ changedCustomFields.itemsToAdd )"/> and remove the custom fields on selected document(s). + )"/> on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 640,644 + 706,710 - Move selected document(s) to the trash? + Move selected document(s) to the trash? src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 782 + 848 - This operation will permanently recreate the archive files for selected document(s). + This operation will permanently recreate the archive files for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 830 + 896 The archive files will be re-generated with the current settings. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 831 + 897 Rotate confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 868 + 932 - This operation will add rotated versions of the document(s). + This operation will add rotated versions of the document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 869 + 933 Merge confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 892 + 956 - This operation will merge selected documents into a new document. + This operation will merge selected documents into a new document. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 893 + 957 Merged document will be queued for consumption. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 916 + 980 Custom fields updated. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 940 + 1004 Error updating custom fields. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 949 + 1013 Share link bundle creation requested. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 989 + 1053 Share link bundle creation is not available yet. src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 996 + 1060 @@ -8721,7 +8717,7 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts - 132 + 143 src/app/data/matching-model.ts @@ -8817,7 +8813,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts - 200 + 199 src/app/data/document.ts @@ -9020,56 +9016,63 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 197 File type src/app/components/document-list/filter-editor/filter-editor.component.ts - 205 + 200 + + + + Custom fields (Deprecated) + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 210 More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 214 + 215 equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 220 + 221 is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 224 + 225 is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 228 + 229 greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 232 + 233 less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 236 + 237 @@ -9078,14 +9081,14 @@ )?.name"/> src/app/components/document-list/filter-editor/filter-editor.component.ts - 277,281 + 278,282 Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 283 + 284 @@ -9094,14 +9097,14 @@ )?.name"/> src/app/components/document-list/filter-editor/filter-editor.component.ts - 289,293 + 290,294 Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 295 + 296 @@ -9110,70 +9113,77 @@ )?.name"/> src/app/components/document-list/filter-editor/filter-editor.component.ts - 301,305 + 302,306 Without storage path src/app/components/document-list/filter-editor/filter-editor.component.ts - 307 + 308 Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 311,313 + 312,314 Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 317 + 318 Custom fields query src/app/components/document-list/filter-editor/filter-editor.component.ts - 321 + 322 Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 324 + 326 + + + + Title & content: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 330 ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 327 + 333 Owner: src/app/components/document-list/filter-editor/filter-editor.component.ts - 330 + 336 Owner not in: src/app/components/document-list/filter-editor/filter-editor.component.ts - 333 + 339 Without an owner src/app/components/document-list/filter-editor/filter-editor.component.ts - 336 + 342 @@ -9536,7 +9546,7 @@ Automatic src/app/components/manage/document-attributes/management-list/management-list.component.ts - 130 + 141 src/app/data/matching-model.ts @@ -9547,63 +9557,63 @@ Successfully created . src/app/components/manage/document-attributes/management-list/management-list.component.ts - 218 + 229 Error occurred while creating . src/app/components/manage/document-attributes/management-list/management-list.component.ts - 223 + 234 Successfully updated "". src/app/components/manage/document-attributes/management-list/management-list.component.ts - 238 + 249 Error occurred while saving . src/app/components/manage/document-attributes/management-list/management-list.component.ts - 243 + 254 Associated documents will not be deleted. src/app/components/manage/document-attributes/management-list/management-list.component.ts - 263 + 274 Error while deleting element src/app/components/manage/document-attributes/management-list/management-list.component.ts - 279 + 290 Error saving settings src/app/components/manage/document-attributes/management-list/management-list.component.ts - 318 + 329 Permissions updated successfully src/app/components/manage/document-attributes/management-list/management-list.component.ts - 402 + 433 Error updating permissions src/app/components/manage/document-attributes/management-list/management-list.component.ts - 409 + 440 src/app/components/manage/mail/mail.component.ts @@ -9618,21 +9628,21 @@ This operation will permanently delete the selected . src/app/components/manage/document-attributes/management-list/management-list.component.ts - 423 + 454 Objects deleted successfully src/app/components/manage/document-attributes/management-list/management-list.component.ts - 437 + 472 Error deleting objects src/app/components/manage/document-attributes/management-list/management-list.component.ts - 443 + 478 @@ -9660,21 +9670,21 @@ tag src/app/components/manage/document-attributes/management-list/tag-list/tag-list.component.ts - 43 + 42 tags src/app/components/manage/document-attributes/management-list/tag-list/tag-list.component.ts - 44 + 43 Do you really want to delete the tag ""? src/app/components/manage/document-attributes/management-list/tag-list/tag-list.component.ts - 60 + 59 @@ -11187,21 +11197,21 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 609 + 635 Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 610 + 636 You can restart the tour from the settings page. src/app/services/settings.service.ts - 683 + 708 @@ -11352,14 +11362,14 @@ Prev src/main.ts - 410 + 415 End src/main.ts - 412 + 417 diff --git a/src-ui/package.json b/src-ui/package.json index d133b7df4..d42f0ab87 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -1,6 +1,6 @@ { "name": "paperless-ngx-ui", - "version": "2.20.10", + "version": "2.20.13", "scripts": { "preinstall": "npx only-allow pnpm", "ng": "ng", @@ -11,17 +11,17 @@ }, "private": true, "dependencies": { - "@angular/cdk": "^21.2.0", - "@angular/common": "~21.2.0", - "@angular/compiler": "~21.2.0", - "@angular/core": "~21.2.0", - "@angular/forms": "~21.2.0", - "@angular/localize": "~21.2.0", - "@angular/platform-browser": "~21.2.0", - "@angular/platform-browser-dynamic": "~21.2.0", - "@angular/router": "~21.2.0", + "@angular/cdk": "^21.2.4", + "@angular/common": "~21.2.6", + "@angular/compiler": "~21.2.6", + "@angular/core": "~21.2.6", + "@angular/forms": "~21.2.6", + "@angular/localize": "~21.2.6", + "@angular/platform-browser": "~21.2.6", + "@angular/platform-browser-dynamic": "~21.2.6", + "@angular/router": "~21.2.6", "@ng-bootstrap/ng-bootstrap": "^20.0.0", - "@ng-select/ng-select": "^21.4.1", + "@ng-select/ng-select": "^21.5.2", "@ngneat/dirty-check-forms": "^3.0.3", "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.8", @@ -29,7 +29,7 @@ "mime-names": "^1.0.0", "ngx-bootstrap-icons": "^1.9.3", "ngx-color": "^10.1.0", - "ngx-cookie-service": "^21.1.0", + "ngx-cookie-service": "^21.3.1", "ngx-device-detector": "^11.0.0", "ngx-ui-tour-ng-bootstrap": "^18.0.0", "pdfjs-dist": "^5.4.624", @@ -42,26 +42,26 @@ "devDependencies": { "@angular-builders/custom-webpack": "^21.0.3", "@angular-builders/jest": "^21.0.3", - "@angular-devkit/core": "^21.2.0", - "@angular-devkit/schematics": "^21.2.0", - "@angular-eslint/builder": "21.3.0", - "@angular-eslint/eslint-plugin": "21.3.0", - "@angular-eslint/eslint-plugin-template": "21.3.0", - "@angular-eslint/schematics": "21.3.0", - "@angular-eslint/template-parser": "21.3.0", - "@angular/build": "^21.2.0", - "@angular/cli": "~21.2.0", - "@angular/compiler-cli": "~21.2.0", + "@angular-devkit/core": "^21.2.3", + "@angular-devkit/schematics": "^21.2.3", + "@angular-eslint/builder": "21.3.1", + "@angular-eslint/eslint-plugin": "21.3.1", + "@angular-eslint/eslint-plugin-template": "21.3.1", + "@angular-eslint/schematics": "21.3.1", + "@angular-eslint/template-parser": "21.3.1", + "@angular/build": "^21.2.3", + "@angular/cli": "~21.2.3", + "@angular/compiler-cli": "~21.2.6", "@codecov/webpack-plugin": "^1.9.1", "@playwright/test": "^1.58.2", "@types/jest": "^30.0.0", - "@types/node": "^25.3.3", - "@typescript-eslint/eslint-plugin": "^8.54.0", - "@typescript-eslint/parser": "^8.54.0", - "@typescript-eslint/utils": "^8.54.0", - "eslint": "^10.0.2", - "jest": "30.2.0", - "jest-environment-jsdom": "^30.2.0", + "@types/node": "^25.5.0", + "@typescript-eslint/eslint-plugin": "^8.57.2", + "@typescript-eslint/parser": "^8.57.2", + "@typescript-eslint/utils": "^8.57.2", + "eslint": "^10.1.0", + "jest": "30.3.0", + "jest-environment-jsdom": "^30.3.0", "jest-junit": "^16.0.0", "jest-preset-angular": "^16.1.1", "jest-websocket-mock": "^2.5.0", diff --git a/src-ui/pnpm-lock.yaml b/src-ui/pnpm-lock.yaml index c531839a5..dae33bc30 100644 --- a/src-ui/pnpm-lock.yaml +++ b/src-ui/pnpm-lock.yaml @@ -9,41 +9,41 @@ importers: .: dependencies: '@angular/cdk': - specifier: ^21.2.0 - version: 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + specifier: ^21.2.4 + version: 21.2.4(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/common': - specifier: ~21.2.0 - version: 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + specifier: ~21.2.6 + version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) '@angular/compiler': - specifier: ~21.2.0 - version: 21.2.0 + specifier: ~21.2.6 + version: 21.2.6 '@angular/core': - specifier: ~21.2.0 - version: 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + specifier: ~21.2.6 + version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/forms': - specifier: ~21.2.0 - version: 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + specifier: ~21.2.6 + version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/localize': - specifier: ~21.2.0 - version: 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0) + specifier: ~21.2.6 + version: 21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6) '@angular/platform-browser': - specifier: ~21.2.0 - version: 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + specifier: ~21.2.6 + version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/platform-browser-dynamic': - specifier: ~21.2.0 - version: 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))) + specifier: ~21.2.6 + version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))) '@angular/router': - specifier: ~21.2.0 - version: 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + specifier: ~21.2.6 + version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@ng-bootstrap/ng-bootstrap': specifier: ^20.0.0 - version: 20.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2) + version: 20.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@popperjs/core@2.11.8)(rxjs@7.8.2) '@ng-select/ng-select': - specifier: ^21.4.1 - version: 21.4.1(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)) + specifier: ^21.5.2 + version: 21.5.2(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)) '@ngneat/dirty-check-forms': specifier: ^3.0.3 - version: 3.0.3(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/router@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(lodash-es@4.17.21)(rxjs@7.8.2) + version: 3.0.3(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(lodash-es@4.17.21)(rxjs@7.8.2) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -58,19 +58,19 @@ importers: version: 1.0.0 ngx-bootstrap-icons: specifier: ^1.9.3 - version: 1.9.3(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 1.9.3(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) ngx-color: specifier: ^10.1.0 - version: 10.1.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 10.1.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) ngx-cookie-service: - specifier: ^21.1.0 - version: 21.1.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + specifier: ^21.3.1 + version: 21.3.1(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) ngx-device-detector: specifier: ^11.0.0 - version: 11.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 11.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) ngx-ui-tour-ng-bootstrap: specifier: ^18.0.0 - version: 18.0.0(9f28d3e6eaf246a683609aafac107126) + version: 18.0.0(957a18d57a4419785daf6612885cd3fb) pdfjs-dist: specifier: ^5.4.624 version: 5.4.624 @@ -92,40 +92,40 @@ importers: devDependencies: '@angular-builders/custom-webpack': specifier: ^21.0.3 - version: 21.0.3(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jest-environment-jsdom@30.2.0(canvas@3.0.0))(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) + version: 21.0.3(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jest-environment-jsdom@30.3.0(canvas@3.0.0))(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(jiti@2.6.1)(less@4.4.2)(postcss@8.5.8)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) '@angular-builders/jest': specifier: ^21.0.3 - version: 21.0.3(b3fc6e706e4ec543940067da51c1bcc4) + version: 21.0.3(de4975aded7c1b8c16c42c3502fe689b) '@angular-devkit/core': - specifier: ^21.2.0 - version: 21.2.0(chokidar@5.0.0) + specifier: ^21.2.3 + version: 21.2.3(chokidar@5.0.0) '@angular-devkit/schematics': - specifier: ^21.2.0 - version: 21.2.0(chokidar@5.0.0) + specifier: ^21.2.3 + version: 21.2.3(chokidar@5.0.0) '@angular-eslint/builder': - specifier: 21.3.0 - version: 21.3.0(@angular/cli@21.2.0(@types/node@25.3.3)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 21.3.1 + version: 21.3.1(@angular/cli@21.2.3(@types/node@25.5.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/eslint-plugin': - specifier: 21.3.0 - version: 21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 21.3.1 + version: 21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/eslint-plugin-template': - specifier: 21.3.0 - version: 21.3.0(@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.54.0)(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 21.3.1 + version: 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.57.2)(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/schematics': - specifier: 21.3.0 - version: 21.3.0(@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.0(@types/node@25.3.3)(chokidar@5.0.0))(@typescript-eslint/types@8.54.0)(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 21.3.1 + version: 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.3(@types/node@25.5.0)(chokidar@5.0.0))(@typescript-eslint/types@8.57.2)(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/template-parser': - specifier: 21.3.0 - version: 21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 21.3.1 + version: 21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@angular/build': - specifier: ^21.2.0 - version: 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) + specifier: ^21.2.3 + version: 21.2.3(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.8)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) '@angular/cli': - specifier: ~21.2.0 - version: 21.2.0(@types/node@25.3.3)(chokidar@5.0.0) + specifier: ~21.2.3 + version: 21.2.3(@types/node@25.5.0)(chokidar@5.0.0) '@angular/compiler-cli': - specifier: ~21.2.0 - version: 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + specifier: ~21.2.6 + version: 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) '@codecov/webpack-plugin': specifier: ^1.9.1 version: 1.9.1(webpack@5.105.3) @@ -136,32 +136,32 @@ importers: specifier: ^30.0.0 version: 30.0.0 '@types/node': - specifier: ^25.3.3 - version: 25.3.3 + specifier: ^25.5.0 + version: 25.5.0 '@typescript-eslint/eslint-plugin': - specifier: ^8.54.0 - version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.57.2 + version: 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^8.54.0 - version: 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.57.2 + version: 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/utils': - specifier: ^8.54.0 - version: 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.57.2 + version: 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) eslint: - specifier: ^10.0.2 - version: 10.0.2(jiti@2.6.1) + specifier: ^10.1.0 + version: 10.1.0(jiti@2.6.1) jest: - specifier: 30.2.0 - version: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) + specifier: 30.3.0 + version: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) jest-environment-jsdom: - specifier: ^30.2.0 - version: 30.2.0(canvas@3.0.0) + specifier: ^30.3.0 + version: 30.3.0(canvas@3.0.0) jest-junit: specifier: ^16.0.0 version: 16.0.0 jest-preset-angular: specifier: ^16.1.1 - version: 16.1.1(c76dc1c8ec36d3a138dfbfdecb5c07d6) + version: 16.1.1(84f6d80ef84de676e7bcbce762f185a5) jest-websocket-mock: specifier: ^2.5.0 version: 2.5.0 @@ -170,7 +170,7 @@ importers: version: 4.3.0(prettier@3.4.2)(typescript@5.9.3) ts-node: specifier: ~10.9.1 - version: 10.9.2(@types/node@25.3.3)(typescript@5.9.3) + version: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -280,8 +280,13 @@ packages: engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular-devkit/architect@0.2102.0': - resolution: {integrity: sha512-kYFwTNzToG2SJMxj2f41w3QRtdqlrFuF+bpZrtIaHOP078Ktld8EPIp9KqB0Y46Vvs69ifby5Q1/wPD9wA3iaw==} + '@angular-devkit/architect@0.2102.3': + resolution: {integrity: sha512-G4wSWUbtWp1WCKw5GMRqHH8g4m5RBpIyzt8n8IX5Pm6iYe/rwCBSKL3ktEkk7AYMwjtonkRlDtAK1GScFsf1Sg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + + '@angular-devkit/architect@0.2102.6': + resolution: {integrity: sha512-h4qybKypR7OuwcTHPQI1zRm7abXgmPiV49vI2UeMtVVY/GKzru9gMexcYmWabzEyBY8w6VSfWjV2X+eit2EhDQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true @@ -351,8 +356,8 @@ packages: chokidar: optional: true - '@angular-devkit/core@21.2.0': - resolution: {integrity: sha512-HZdTn46Ca6qbb9Zef8R/+TWsk6mNKRm4rJyL3PxHP6HnVCwSPNZ0LNN9BjVREBs+UlRdXqBGFBZh5D1nBgu5GQ==} + '@angular-devkit/core@21.2.3': + resolution: {integrity: sha512-i++JVHOijyFckjdYqKbSXUpKnvmO2a0Utt/wQVwiLAT0O9H1hR/2NGPzubB4hnLMNSyVWY8diminaF23mZ0xjA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^5.0.0 @@ -360,49 +365,58 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@21.2.0': - resolution: {integrity: sha512-3kn3FI5v7BQ7Zct6raek+WgvyDwOJ8wElbyC903GxMQCDBRGGcevhHvTAIHhknihEsrgplzPhTlWeMbk1JfdFg==} + '@angular-devkit/core@21.2.6': + resolution: {integrity: sha512-u5gPTAY7MC02uACQE39xxiFcm1hslF+ih/f2borMWnhER0JNTpHjLiLRXFkq7or7+VVHU30zfhK4XNAuO4WTIg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^5.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/schematics@21.2.3': + resolution: {integrity: sha512-tc/bBloRTVIBWGRiMPln1QbW+2QPj+YnWL/nG79abLKWkdrL9dJLcCRXY7dsPNrxOc/QF+8tVpnr8JofhWL9cQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-eslint/builder@21.3.0': - resolution: {integrity: sha512-26QUUouei52biUFAlJSrWNAU9tuF2miKwd8uHdxWwCF31xz+OxC5+NfudWvt1AFaYow7gWueX1QX3rNNtSPDrg==} + '@angular-eslint/builder@21.3.1': + resolution: {integrity: sha512-1f1Lyp5e7OH6txiV224HaY3G1uRCj91OSKq7hT2Vw9NRw6zWFc1anBpDeLVjpL9ptUxzUGIQR5jEV54hOPayoQ==} peerDependencies: '@angular/cli': '>= 21.0.0 < 22.0.0' eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '*' - '@angular-eslint/bundled-angular-compiler@21.3.0': - resolution: {integrity: sha512-l521I24J9gJxyMbRkrM24Tc7W8J8BP+TDAmVs2nT8+lXbS3kg8QpWBRtd+hNUgq6o+vt+lKBkytnEfu8OiqeRg==} + '@angular-eslint/bundled-angular-compiler@21.3.1': + resolution: {integrity: sha512-jjbnJPUXQeQBJ8RM+ahlbt4GH2emVN8JvG3AhFbPci1FrqXi9cOOfkbwLmvpoyTli4LF8gy7g4ctFqnlRgqryw==} - '@angular-eslint/eslint-plugin-template@21.3.0': - resolution: {integrity: sha512-lVixd/KypPWgA/5/pUOhJV9MTcaHjYZEqyOi+IiLk+h+maGxn6/s6Ot+20n+XGS85zAgOY+qUw6EEQ11hoojIQ==} + '@angular-eslint/eslint-plugin-template@21.3.1': + resolution: {integrity: sha512-ndPWJodkcEOu2PVUxlUwyz4D2u3r9KO7veWmStVNOLeNrICJA+nQvrz2BWCu0l48rO0K5ezsy0JFcQDVwE/5mw==} peerDependencies: - '@angular-eslint/template-parser': 21.3.0 + '@angular-eslint/template-parser': 21.3.1 '@typescript-eslint/types': ^7.11.0 || ^8.0.0 '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '*' - '@angular-eslint/eslint-plugin@21.3.0': - resolution: {integrity: sha512-Whf/AUUBekOlfSJRS78m76YGrBQAZ3waXE7oOdlW5xEQvn8jBDN9EGuNnjg/syZzvzjK4ZpYC4g1XYXrc+fQIg==} + '@angular-eslint/eslint-plugin@21.3.1': + resolution: {integrity: sha512-08NNTxwawRLTWPLl8dg1BnXMwimx93y4wMEwx2aWQpJbIt4pmNvwJzd+NgoD/Ag2VdLS/gOMadhJH5fgaYKsPQ==} peerDependencies: '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '*' - '@angular-eslint/schematics@21.3.0': - resolution: {integrity: sha512-8deU/zVY9f8k8kAQQ9PL130ox2VlrZw3fMxgsPNAY5tjQ0xk0J2YVSszYHhcqdMGG1J01IsxIjvQaJ4pFfEmMw==} + '@angular-eslint/schematics@21.3.1': + resolution: {integrity: sha512-1U2u4ZsZvwT30aXRLsIJf6tULIiioo9BtASNsldpYecU3/m/1+F61lCYG79qt7YWbif9KABPYZlFTJUFGN8HWA==} peerDependencies: '@angular/cli': '>= 21.0.0 < 22.0.0' - '@angular-eslint/template-parser@21.3.0': - resolution: {integrity: sha512-ysyou1zAY6M6rSZNdIcYKGd4nk6TCapamyFNB3ivmTlVZ0O35TS9o/rJ0aUttuHgDp+Ysgs3ql+LA746PXgCyQ==} + '@angular-eslint/template-parser@21.3.1': + resolution: {integrity: sha512-moERVCTekQKOvR8RMuEOtWSO3VS1qrzA3keI1dPto/JVB8Nqp9w3R5ZpEoXHzh4zgEryosxmPgdi6UczJe2ouQ==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '*' - '@angular-eslint/utils@21.3.0': - resolution: {integrity: sha512-oNigH6w3l+owTMboj/uFG0tHOy43uH8BpQRtBOQL1/s2+5in/BJ2Fjobv3SyizxTgeJ1FhRefbkT8GmVjK7jAA==} + '@angular-eslint/utils@21.3.1': + resolution: {integrity: sha512-Q3SGA1/36phZhmsp1mYrKzp/jcmqofRr861MYn46FaWIKSYXBYRzl+H3FIJKBu5CE36Bggu6hbNpwGPuUp+MCg==} peerDependencies: '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -454,8 +468,8 @@ packages: vitest: optional: true - '@angular/build@21.2.0': - resolution: {integrity: sha512-K0EqiHz2y7TSyD4adWD0+C/P9khKlrsSWavXWxGRvoSJC/H3I3SK5Z6BWwftBibXR1Fis7njwvl5IGAlQrDchA==} + '@angular/build@21.2.3': + resolution: {integrity: sha512-u4bhVQruK7KOuHQuoltqlHg+szp0f6rnsGIUolJnT3ez5V6OuSoWIxUorSbvryi2DiKRD/3iwMq7qJN1aN9HCA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^21.0.0 @@ -465,7 +479,7 @@ packages: '@angular/platform-browser': ^21.0.0 '@angular/platform-server': ^21.0.0 '@angular/service-worker': ^21.0.0 - '@angular/ssr': ^21.2.0 + '@angular/ssr': ^21.2.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^21.0.0 @@ -500,46 +514,46 @@ packages: vitest: optional: true - '@angular/cdk@21.2.0': - resolution: {integrity: sha512-1P0TNL1F51NC7JAaXabaAHY7Y1zBloLSZXfml1POa4a116V+y/QZfPGsxM0LwD1qSSXhSb2LNl7duTtJAP39bA==} + '@angular/cdk@21.2.4': + resolution: {integrity: sha512-Zv+q9Z/wVWTt0ckuO3gnU7PbpCLTr1tKPEsofLGGzDufA5/85aBLn2UiLcjlY6wQ+V3EMqANhGo/8XJgvBEYFA==} peerDependencies: '@angular/common': ^21.0.0 || ^22.0.0 '@angular/core': ^21.0.0 || ^22.0.0 '@angular/platform-browser': ^21.0.0 || ^22.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/cli@21.2.0': - resolution: {integrity: sha512-yaGEpckqgOemcHkoWeH92i9eNrcbr9iE/dnxL+Du6s9spTAXJ2jjtYfszhmowuQZkCK5rjecMb8ctNtHlaGCjg==} + '@angular/cli@21.2.3': + resolution: {integrity: sha512-QzDxnSy8AUOz6ca92xfbNuEmRdWRDi1dfFkxDVr+4l6XUnA9X6VmOi7ioCO1I9oDR73LXHybOqkqHBYDlqt/Ag==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@21.2.0': - resolution: {integrity: sha512-6zJMPi0i/XDniEgv3/t2BjuDHiOG44lgIR5PYyxqGpgJ0kqB5hku/0TuentNEi1VnBYgthnfhjek7c+lakXmhw==} + '@angular/common@21.2.6': + resolution: {integrity: sha512-2FcpZ1h6AZ4JwCIlnpHCYrbRTGQTOj/RFXkuX/qw7K6cFmJGfWFMmr++xWtHZEvUddfbR9hqDo+v1mkqEKE/Kw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.2.0 + '@angular/core': 21.2.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@21.2.0': - resolution: {integrity: sha512-gZd58p0/JjgdxMX3v+LjCB6e3dBIfNVr/YzXoh55TfffdBCUQY94hl1+DFQkJ72K5EX+1zbaz03dIm30kw1bGw==} + '@angular/compiler-cli@21.2.6': + resolution: {integrity: sha512-CiPmat4+D+hWXMTAY++09WeII/5D0r6iTjdLdaTq8tlo0uJcrOlazib4CpA94kJ2CRdzfhmC1H+ttwBI1xIlTg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 21.2.0 + '@angular/compiler': 21.2.6 typescript: '>=5.9 <6.1' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@21.2.0': - resolution: {integrity: sha512-0RPkma8UVNpse/VJcXT9w6SKzTMz4J/uMGj0l9enM1frg9xrx1fwi/lLmaVV9Nr9LfqPjQdxNFFlvaBB7g/2zg==} + '@angular/compiler@21.2.6': + resolution: {integrity: sha512-shGkb/aAIPbG8oSYkVJ0msGlRdDVcJBVaUVx2KenMltifQjfLn5N8DFMAzOR6haaA3XeugFExxKqmvySjrVq+A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@21.2.0': - resolution: {integrity: sha512-VnTbmZq3g3Q+s3nCZ8VUDMLjMezOg/bqUxAJ/DrRWCrEcTP5JO3mrNPs3FHj+qlB0T+BQP7uQv6QTzPVKybwoA==} + '@angular/core@21.2.6': + resolution: {integrity: sha512-svgK5DhFlQlS+sMybXftn08rHHRiDGY/uIKT5LZUaKgyffnkPb8uClpMIW0NzANtU8qs8pwgDZFoJw85Ia3oqQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 21.2.0 + '@angular/compiler': 21.2.6 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -548,50 +562,50 @@ packages: zone.js: optional: true - '@angular/forms@21.2.0': - resolution: {integrity: sha512-NduUtPWLauH/FLayEDkLyaKAGqKzXbcfO7468LOWCXN3crhNVQyIWRQPOUcdpoJwDAGLpN85m3DhJhXNnA9c5w==} + '@angular/forms@21.2.6': + resolution: {integrity: sha512-i8BoWxBAm0g2xOMcQ8wTdj07gqMPIFYIyefCOo0ezcGj5XhYjd+C2UrYnKsup0aMZqqEAO1l2aZbmfHx9xLheQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.0 - '@angular/core': 21.2.0 - '@angular/platform-browser': 21.2.0 + '@angular/common': 21.2.6 + '@angular/core': 21.2.6 + '@angular/platform-browser': 21.2.6 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@21.2.0': - resolution: {integrity: sha512-blVjzwHSaKbFNCQN/RZy8rSbFgajMw3kBzGrDY08atMDOPn90L2nE4dot+9d0JlKAX2gL8Qfx44YgIWBI5MfsA==} + '@angular/localize@21.2.6': + resolution: {integrity: sha512-+nScGHruNCUiGz9nbNyFLO0Wg5dGZt+PBH/9wvzCxe1A+VhyiRSNCTD9hjcjsjtK3WPTRPd+Vo1s2URn+fgD4A==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 21.2.0 - '@angular/compiler-cli': 21.2.0 + '@angular/compiler': 21.2.6 + '@angular/compiler-cli': 21.2.6 - '@angular/platform-browser-dynamic@21.2.0': - resolution: {integrity: sha512-eTHNTnTEP25eCyu4MJdPAAc/7Ib5XtR/dqUlzZdNoAldREPNw95FF12QMunvnen66v3CvCYdND8rAlbz2LkK7g==} + '@angular/platform-browser-dynamic@21.2.6': + resolution: {integrity: sha512-6a+zA9jM70b1kH3fSfAJIEVmkE3qB3oIXw7otWkv1nEhOJtNO0mM0dTUuO70C3GhnV9tmpLXa2him56C2LhVig==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.0 - '@angular/compiler': 21.2.0 - '@angular/core': 21.2.0 - '@angular/platform-browser': 21.2.0 + '@angular/common': 21.2.6 + '@angular/compiler': 21.2.6 + '@angular/core': 21.2.6 + '@angular/platform-browser': 21.2.6 - '@angular/platform-browser@21.2.0': - resolution: {integrity: sha512-IUGukpvvT2B5Dl76qzk6rY7UIHUT9u4BhT2AwVz+5JqcX9KwQtYD17Gt7wj6bvIgCXKWG+CfN8Zd9DECOCYWjg==} + '@angular/platform-browser@21.2.6': + resolution: {integrity: sha512-LW1vPXVHvy71LBahn+fSzPlWQl25kJIdcXq+ptG7HsMVgbPQ3/vvkKXAHYaRdppLGCFL+v+3dQGHYLNLiYL9qg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 21.2.0 - '@angular/common': 21.2.0 - '@angular/core': 21.2.0 + '@angular/animations': 21.2.6 + '@angular/common': 21.2.6 + '@angular/core': 21.2.6 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@21.2.0': - resolution: {integrity: sha512-siliJ+jJRUCRZ0cdkqc7zww9Didz56Z0Z2YPIuR2n5TZLiuJY+jAf6xotXKp/v6v8XoGJwLiRNipGgNDRIAlWA==} + '@angular/router@21.2.6': + resolution: {integrity: sha512-0ajhkKYeOqHQEEH88+Q0HrheR3helwTvdTqD/0gTaapCe+HOoC+SYwmzzsYP2zwAxBNQEg4JHOGKQ30X9/gwgw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.0 - '@angular/core': 21.2.0 - '@angular/platform-browser': 21.2.0 + '@angular/common': 21.2.6 + '@angular/core': 21.2.6 + '@angular/platform-browser': 21.2.6 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -708,12 +722,12 @@ packages: resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} hasBin: true @@ -796,8 +810,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -844,8 +858,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1248,14 +1262,14 @@ packages: resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} engines: {node: '>=14.17.0'} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.9.0': + resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.9.0': + resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} '@esbuild/aix-ppc64@0.27.2': resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} @@ -1579,39 +1593,39 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.2': - resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + '@eslint/config-array@0.23.3': + resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.2': - resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + '@eslint/config-helpers@0.5.3': + resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.0': - resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + '@eslint/core@1.1.1': + resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@3.0.2': - resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + '@eslint/object-schema@3.0.3': + resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.0': - resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + '@eslint/plugin-kit@0.6.1': + resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@gar/promise-retry@1.0.2': - resolution: {integrity: sha512-Lm/ZLhDZcBECta3TmCQSngiQykFdfw+QtI1/GYMsZd4l3nG+P8WLB16XuS7WaBGLQ+9E+cOcWQsth9cayuGt8g==} + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} engines: {node: ^20.17.0 || >=22.9.0} '@harperfast/extended-iterable@1.0.3': resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} - '@hono/node-server@1.19.9': - resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + '@hono/node-server@1.19.12': + resolution: {integrity: sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -1782,12 +1796,12 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@30.2.0': - resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} + '@jest/console@30.3.0': + resolution: {integrity: sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@30.2.0': - resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} + '@jest/core@30.3.0': + resolution: {integrity: sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1799,6 +1813,10 @@ packages: resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/diff-sequences@30.3.0': + resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/environment-jsdom-abstract@30.2.0': resolution: {integrity: sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -1809,26 +1827,44 @@ packages: canvas: optional: true + '@jest/environment-jsdom-abstract@30.3.0': + resolution: {integrity: sha512-0hNFs5N6We3DMCwobzI0ydhkY10sT1tZSC0AAiy+0g2Dt/qEWgrcV5BrMxPczhe41cxW4qm6X+jqZaUdpZIajA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + canvas: ^3.0.0 + jsdom: '*' + peerDependenciesMeta: + canvas: + optional: true + '@jest/environment@30.2.0': resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/environment@30.3.0': + resolution: {integrity: sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect-utils@30.0.5': resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.2.0': - resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} + '@jest/expect-utils@30.3.0': + resolution: {integrity: sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.2.0': - resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} + '@jest/expect@30.3.0': + resolution: {integrity: sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/fake-timers@30.2.0': resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/fake-timers@30.3.0': + resolution: {integrity: sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/get-type@30.0.1': resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -1837,16 +1873,16 @@ packages: resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.2.0': - resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} + '@jest/globals@30.3.0': + resolution: {integrity: sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/pattern@30.0.1': resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@30.2.0': - resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} + '@jest/reporters@30.3.0': + resolution: {integrity: sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1862,24 +1898,24 @@ packages: resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/snapshot-utils@30.2.0': - resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} + '@jest/snapshot-utils@30.3.0': + resolution: {integrity: sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/source-map@30.0.1': resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@30.2.0': - resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} + '@jest/test-result@30.3.0': + resolution: {integrity: sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@30.2.0': - resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} + '@jest/test-sequencer@30.3.0': + resolution: {integrity: sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@30.2.0': - resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + '@jest/transform@30.3.0': + resolution: {integrity: sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/types@30.0.5': @@ -1890,16 +1926,16 @@ packages: resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@30.3.0': + resolution: {integrity: sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -2335,8 +2371,11 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.1': - resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@ng-bootstrap/ng-bootstrap@20.0.0': resolution: {integrity: sha512-Jt+GUQ0PdM8VsOUUVr7vTQXhwcGwe2DCe1mmfS21vz9pLSOtGRz41ohZKc1egUevj5Rxm2sHVq5Sve68/nTMfA==} @@ -2348,8 +2387,8 @@ packages: '@popperjs/core': ^2.11.8 rxjs: ^6.5.3 || ^7.4.0 - '@ng-select/ng-select@21.4.1': - resolution: {integrity: sha512-CwAnzyY12WnjzkPe5p+Av7jU79ghHlK+dPSzeIjuI5eIA7XuOMBRL8KfV+bQ0IuoQfc3XDhsGwwm18vWvf83IA==} + '@ng-select/ng-select@21.5.2': + resolution: {integrity: sha512-QFfZ00Z/UfZikK3BCyl4rWpZGd7W5YE2ScTbRcC2jH6QN8E1pNgxH1bBS05p2YEYZIA6RZ5/HcJguj3ipPy5Jw==} engines: {node: ^20.19.0 || ^22.12.0 || ^24.0.0} peerDependencies: '@angular/common': ^21.0.0 @@ -2722,153 +2761,153 @@ packages: '@rolldown/pluginutils@1.0.0-rc.4': resolution: {integrity: sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==} - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} cpu: [x64] os: [linux] - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} cpu: [x64] os: [win32] - '@schematics/angular@21.2.0': - resolution: {integrity: sha512-GQUIeGzZwCT9/W5MAkKnkwETROPbA1eRmy3JF56jLmvr95tJnypGOG8jGYy0d+tcEVujIouh48r4J3bJQg5mrw==} + '@schematics/angular@21.2.3': + resolution: {integrity: sha512-rCEprgpNbJLl9Rm/t92eRYc1eIqD4BAJqB1OO8fzQolyDajCcOBpohjXkuLYSwK9RMyS6f+szNnYGOQawlrPYw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sigstore/bundle@4.0.0': resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/core@3.1.0': - resolution: {integrity: sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==} + '@sigstore/core@3.2.0': + resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} engines: {node: ^20.17.0 || >=22.9.0} '@sigstore/protobuf-specs@0.5.0': resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/sign@4.1.0': - resolution: {integrity: sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==} + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/tuf@4.0.1': - resolution: {integrity: sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==} + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} engines: {node: ^20.17.0 || >=22.9.0} '@sigstore/verify@3.1.0': @@ -2887,6 +2926,9 @@ packages: '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@sinonjs/fake-timers@15.1.1': + resolution: {integrity: sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -2985,8 +3027,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@25.3.3': - resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} + '@types/node@25.5.0': + resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -3024,66 +3066,66 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.54.0': - resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} + '@typescript-eslint/eslint-plugin@8.57.2': + resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.54.0 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^8.57.2 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.54.0': - resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} + '@typescript-eslint/parser@8.57.2': + resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.54.0': - resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} + '@typescript-eslint/project-service@8.57.2': + resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.54.0': - resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} + '@typescript-eslint/scope-manager@8.57.2': + resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.54.0': - resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} + '@typescript-eslint/tsconfig-utils@8.57.2': + resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.54.0': - resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} + '@typescript-eslint/type-utils@8.57.2': + resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.54.0': - resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} + '@typescript-eslint/types@8.57.2': + resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.54.0': - resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} + '@typescript-eslint/typescript-estree@8.57.2': + resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.54.0': - resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} + '@typescript-eslint/utils@8.57.2': + resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.54.0': - resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} + '@typescript-eslint/visitor-keys@8.57.2': + resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3277,11 +3319,6 @@ packages: resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} @@ -3397,8 +3434,8 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - babel-jest@30.2.0: - resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} + babel-jest@30.3.0: + resolution: {integrity: sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@babel/core': ^7.11.0 || ^8.0.0-0 @@ -3414,8 +3451,8 @@ packages: resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} engines: {node: '>=12'} - babel-plugin-jest-hoist@30.2.0: - resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} + babel-plugin-jest-hoist@30.3.0: + resolution: {integrity: sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-plugin-polyfill-corejs2@0.4.15: @@ -3438,8 +3475,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-jest@30.2.0: - resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} + babel-preset-jest@30.3.0: + resolution: {integrity: sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@babel/core': ^7.11.0 || ^8.0.0-beta.1 @@ -3459,6 +3496,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + baseline-browser-mapping@2.10.13: + resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==} + engines: {node: '>=6.0.0'} + hasBin: true + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -3502,14 +3544,14 @@ packages: peerDependencies: '@popperjs/core': ^2.11.8 - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.13: + resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.3: + resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -3521,6 +3563,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -3542,8 +3589,8 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@20.0.3: - resolution: {integrity: sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==} + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} engines: {node: ^20.17.0 || >=22.9.0} call-bind-apply-helpers@1.0.2: @@ -3569,6 +3616,9 @@ packages: caniuse-lite@1.0.30001775: resolution: {integrity: sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==} + caniuse-lite@1.0.30001784: + resolution: {integrity: sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw==} + canvas@3.0.0: resolution: {integrity: sha512-NtcIBY88FjymQy+g2g5qnuP5IslrbWCQ3A6rSr1PeuYxVRapRZ3BZCrDyAakvI6CuDYidgZaf55ygulFVwROdg==} engines: {node: ^18.12.0 || >= 20.9.0} @@ -3611,16 +3661,12 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@4.3.0: - resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} - engines: {node: '>=8'} - ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} - cjs-module-lexer@2.1.0: - resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} + cjs-module-lexer@2.2.0: + resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} @@ -3654,8 +3700,8 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -3809,8 +3855,8 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dedent@1.7.0: - resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -3904,6 +3950,9 @@ packages: electron-to-chromium@1.5.302: resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} + electron-to-chromium@1.5.331: + resolution: {integrity: sha512-IbxXrsTlD3hRodkLnbxAPP4OuJYdWCeM3IOdT+CpcMoIwIoDfCmRpEtSPfwBXxVkg9xmBeY7Lz2Eo2TDn/HC3Q==} + emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} @@ -4016,24 +4065,20 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@9.1.1: - resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@5.0.1: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.0.2: - resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + eslint@10.1.0: + resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -4042,8 +4087,8 @@ packages: jiti: optional: true - espree@11.1.1: - resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} esprima@4.0.1: @@ -4109,15 +4154,15 @@ packages: resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - expect@30.2.0: - resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} + expect@30.3.0: + resolution: {integrity: sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - express-rate-limit@8.2.1: - resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==} + express-rate-limit@8.3.2: + resolution: {integrity: sha512-77VmFeJkO0/rvimEDuUC5H30oqUC4EyOhyGccfqoLebB0oiEYfM7nwPrsDsBL1gsTpwfzX8SFy2MT3TDyRq+bg==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -4193,8 +4238,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} @@ -4295,8 +4340,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true @@ -4335,8 +4380,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hono@4.12.3: - resolution: {integrity: sha512-SFsVSjp8sj5UumXOOFlkZOG6XS9SJDKw0TbwFeV+AJ8xlST8kxK5Z/5EYa111UY8732lK2S/xB653ceuaoGwpg==} + hono@4.12.9: + resolution: {integrity: sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==} engines: {node: '>=16.9.0'} hosted-git-info@9.0.2: @@ -4444,8 +4489,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@5.1.4: - resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + immutable@5.1.5: + resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -4474,10 +4519,6 @@ packages: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} - ip-address@10.0.1: - resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} - engines: {node: '>= 12'} - ip-address@10.1.0: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} @@ -4617,16 +4658,16 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-changed-files@30.2.0: - resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} + jest-changed-files@30.3.0: + resolution: {integrity: sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@30.2.0: - resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} + jest-circus@30.3.0: + resolution: {integrity: sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@30.2.0: - resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} + jest-cli@30.3.0: + resolution: {integrity: sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -4635,8 +4676,8 @@ packages: node-notifier: optional: true - jest-config@30.2.0: - resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} + jest-config@30.3.0: + resolution: {integrity: sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' @@ -4658,20 +4699,20 @@ packages: resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-diff@30.2.0: - resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + jest-diff@30.3.0: + resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-docblock@30.2.0: resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@30.2.0: - resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} + jest-each@30.3.0: + resolution: {integrity: sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-jsdom@30.2.0: - resolution: {integrity: sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==} + jest-environment-jsdom@30.3.0: + resolution: {integrity: sha512-RLEOJy6ip1lpw0yqJ8tB3i88FC7VBz7i00Zvl2qF71IdxjS98gC9/0SPWYIBVXHm5hgCYK0PAlSlnHGGy9RoMg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -4679,32 +4720,32 @@ packages: canvas: optional: true - jest-environment-node@30.2.0: - resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} + jest-environment-node@30.3.0: + resolution: {integrity: sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@30.2.0: - resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + jest-haste-map@30.3.0: + resolution: {integrity: sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-junit@16.0.0: resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==} engines: {node: '>=10.12.0'} - jest-leak-detector@30.2.0: - resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} + jest-leak-detector@30.3.0: + resolution: {integrity: sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-matcher-utils@30.0.5: resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.2.0: - resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + jest-matcher-utils@30.3.0: + resolution: {integrity: sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-message-util@30.0.5: @@ -4715,6 +4756,10 @@ packages: resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@30.3.0: + resolution: {integrity: sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@30.0.5: resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -4723,6 +4768,10 @@ packages: resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@30.3.0: + resolution: {integrity: sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -4748,24 +4797,24 @@ packages: resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.2.0: - resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} + jest-resolve-dependencies@30.3.0: + resolution: {integrity: sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@30.2.0: - resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} + jest-resolve@30.3.0: + resolution: {integrity: sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@30.2.0: - resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} + jest-runner@30.3.0: + resolution: {integrity: sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@30.2.0: - resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} + jest-runtime@30.3.0: + resolution: {integrity: sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@30.2.0: - resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} + jest-snapshot@30.3.0: + resolution: {integrity: sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@30.0.5: @@ -4776,12 +4825,16 @@ packages: resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@30.2.0: - resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} + jest-util@30.3.0: + resolution: {integrity: sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@30.2.0: - resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} + jest-validate@30.3.0: + resolution: {integrity: sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-watcher@30.3.0: + resolution: {integrity: sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-websocket-mock@2.5.0: @@ -4791,12 +4844,12 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@30.2.0: - resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + jest-worker@30.3.0: + resolution: {integrity: sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@30.2.0: - resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} + jest@30.3.0: + resolution: {integrity: sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -4809,8 +4862,8 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + jose@6.2.2: + resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4962,8 +5015,8 @@ packages: lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-symbols@7.0.1: resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} @@ -4976,8 +5029,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.6: - resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -4997,8 +5050,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - make-fetch-happen@15.0.4: - resolution: {integrity: sha512-vM2sG+wbVeVGYcCm16mM3d5fuem9oC28n436HjsGO3LcxoTI8LNVa4rwZDn3f76+cWyT4GGJDxjTYU1I2nr6zw==} + make-fetch-happen@15.0.5: + resolution: {integrity: sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==} engines: {node: ^20.17.0 || >=22.9.0} makeerror@1.0.12: @@ -5091,15 +5144,15 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -5113,8 +5166,8 @@ packages: resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} engines: {node: ^20.17.0 || >=22.9.0} - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + minipass-flush@1.0.7: + resolution: {integrity: sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==} engines: {node: '>= 8'} minipass-pipeline@1.2.4: @@ -5163,8 +5216,8 @@ packages: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true - msgpackr@1.11.8: - resolution: {integrity: sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==} + msgpackr@1.11.9: + resolution: {integrity: sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==} multicast-dns@7.2.5: resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} @@ -5182,8 +5235,8 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - napi-postinstall@0.3.3: - resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -5223,8 +5276,8 @@ packages: '@angular/common': '>=19.0.0-0' '@angular/core': '>=19.0.0-0' - ngx-cookie-service@21.1.0: - resolution: {integrity: sha512-W3IsoMImUVNt0ZuMesEuQJUGrEgKJaPkQGGfCg7zjUGM/EaeAIbIkfNktNIgUDmeUYapZQJa2pSg4YuK4v1gVQ==} + ngx-cookie-service@21.3.1: + resolution: {integrity: sha512-8VEA2W7W2W3yPXhemJoVtXxr+3WW2DNLV4OaCIKDzLdzUUxJ6SzPHMmXXa26Pg8pa+fZxHK1hZfqJfUxr9RMBw==} peerDependencies: '@angular/common': ^21.0.0 '@angular/core': ^21.0.0 @@ -5250,8 +5303,8 @@ packages: '@angular/core': ^21.1.0 '@ng-bootstrap/ng-bootstrap': ^20.0.0 - node-abi@3.87.0: - resolution: {integrity: sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==} + node-abi@3.89.0: + resolution: {integrity: sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==} engines: {node: '>=10'} node-addon-api@6.1.0: @@ -5282,6 +5335,9 @@ packages: node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + node-releases@2.0.36: + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + nopt@9.0.0: resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} engines: {node: ^20.17.0 || >=22.9.0} @@ -5326,8 +5382,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.22: - resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5475,8 +5531,8 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} pdfjs-dist@5.4.624: resolution: {integrity: sha512-sm6TxKTtWv1Oh6n3C6J6a8odejb5uO4A4zo/2dgkHuC0iu8ZMAXOezEODkVaoVp8nX1Xzr+0WxFJJmUr45hQzg==} @@ -5485,14 +5541,18 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -5580,6 +5640,10 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + powershell-utils@0.1.0: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} @@ -5621,6 +5685,10 @@ packages: resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-format@30.3.0: + resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + proc-log@6.1.0: resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} engines: {node: ^20.17.0 || >=22.9.0} @@ -5779,8 +5847,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6120,8 +6188,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} tapable@2.3.0: @@ -6135,8 +6203,8 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar@7.5.9: - resolution: {integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==} + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} terser-webpack-plugin@5.3.16: @@ -6218,8 +6286,8 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -6351,14 +6419,6 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} - unique-filename@5.0.0: - resolution: {integrity: sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==} - engines: {node: ^20.17.0 || >=22.9.0} - - unique-slug@6.0.0: - resolution: {integrity: sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==} - engines: {node: ^20.17.0 || >=22.9.0} - universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -6647,18 +6707,6 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.19.0: resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} engines: {node: '>=10.0.0'} @@ -6740,10 +6788,10 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: - zod: ^3.25 || ^4 + zod: ^3.25.28 || ^4 zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -6871,10 +6919,10 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-builders/common@5.0.3(@types/node@25.3.3)(chokidar@5.0.0)(typescript@5.9.3)': + '@angular-builders/common@5.0.3(@types/node@25.5.0)(chokidar@5.0.0)(typescript@5.9.3)': dependencies: - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - ts-node: 10.9.2(@types/node@25.3.3)(typescript@5.9.3) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + ts-node: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) tsconfig-paths: 4.2.0 transitivePeerDependencies: - '@swc/core' @@ -6883,15 +6931,15 @@ snapshots: - chokidar - typescript - '@angular-builders/custom-webpack@21.0.3(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jest-environment-jsdom@30.2.0(canvas@3.0.0))(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': + '@angular-builders/custom-webpack@21.0.3(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jest-environment-jsdom@30.3.0(canvas@3.0.0))(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(jiti@2.6.1)(less@4.4.2)(postcss@8.5.8)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': dependencies: - '@angular-builders/common': 5.0.3(@types/node@25.3.3)(chokidar@5.0.0)(typescript@5.9.3) + '@angular-builders/common': 5.0.3(@types/node@25.5.0)(chokidar@5.0.0)(typescript@5.9.3) '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) - '@angular-devkit/build-angular': 21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jest-environment-jsdom@30.2.0(canvas@3.0.0))(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0) - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular/build': 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) - lodash: 4.17.23 + '@angular-devkit/build-angular': 21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jest-environment-jsdom@30.3.0(canvas@3.0.0))(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular/build': 21.2.3(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.8)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) + lodash: 4.18.1 webpack-merge: 6.0.1 transitivePeerDependencies: - '@angular/compiler' @@ -6901,6 +6949,8 @@ snapshots: - '@angular/platform-server' - '@angular/service-worker' - '@angular/ssr' + - '@emnapi/core' + - '@emnapi/runtime' - '@rspack/core' - '@swc/core' - '@swc/wasm' @@ -6936,18 +6986,18 @@ snapshots: - webpack-cli - yaml - '@angular-builders/jest@21.0.3(b3fc6e706e4ec543940067da51c1bcc4)': + '@angular-builders/jest@21.0.3(de4975aded7c1b8c16c42c3502fe689b)': dependencies: - '@angular-builders/common': 5.0.3(@types/node@25.3.3)(chokidar@5.0.0)(typescript@5.9.3) + '@angular-builders/common': 5.0.3(@types/node@25.5.0)(chokidar@5.0.0)(typescript@5.9.3) '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) - '@angular-devkit/build-angular': 21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jest-environment-jsdom@30.2.0(canvas@3.0.0))(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0) - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser-dynamic': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))) - jest: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - jest-preset-angular: 16.1.1(c76dc1c8ec36d3a138dfbfdecb5c07d6) - lodash: 4.17.23 + '@angular-devkit/build-angular': 21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jest-environment-jsdom@30.3.0(canvas@3.0.0))(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser-dynamic': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))) + jest: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-preset-angular: 16.1.1(84f6d80ef84de676e7bcbce762f185a5) + lodash: 4.18.1 transitivePeerDependencies: - '@angular/platform-browser' - '@babel/core' @@ -6969,21 +7019,28 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/architect@0.2102.0(chokidar@5.0.0)': + '@angular-devkit/architect@0.2102.3(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jest-environment-jsdom@30.2.0(canvas@3.0.0))(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0)': + '@angular-devkit/architect@0.2102.6(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.6(chokidar@5.0.0) + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-angular@21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jest-environment-jsdom@30.3.0(canvas@3.0.0))(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(jiti@2.6.1)(typescript@5.9.3)(yaml@2.7.0)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) '@angular-devkit/build-webpack': 0.2101.2(chokidar@5.0.0)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.3))(webpack@5.104.1(esbuild@0.27.2)) '@angular-devkit/core': 21.1.2(chokidar@5.0.0) - '@angular/build': 21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + '@angular/build': 21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0) + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) '@babel/core': 7.28.5 '@babel/generator': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 @@ -6994,11 +7051,11 @@ snapshots: '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.1(esbuild@0.27.2)) + '@ngtools/webpack': 21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.1(esbuild@0.27.2)) ansi-colors: 4.1.3 autoprefixer: 10.4.23(postcss@8.5.6) babel-loader: 10.0.0(@babel/core@7.28.5)(webpack@5.104.1(esbuild@0.27.2)) - browserslist: 4.28.1 + browserslist: 4.28.2 copy-webpack-plugin: 13.0.1(webpack@5.104.1(esbuild@0.27.2)) css-loader: 7.1.2(webpack@5.104.1(esbuild@0.27.2)) esbuild-wasm: 0.27.2 @@ -7035,14 +7092,16 @@ snapshots: webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.104.1(esbuild@0.27.2)) optionalDependencies: - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/localize': 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/localize': 21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) esbuild: 0.27.2 - jest: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - jest-environment-jsdom: 30.2.0(canvas@3.0.0) + jest: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-environment-jsdom: 30.3.0(canvas@3.0.0) transitivePeerDependencies: - '@angular/compiler' + - '@emnapi/core' + - '@emnapi/runtime' - '@rspack/core' - '@swc/core' - '@types/node' @@ -7084,7 +7143,7 @@ snapshots: optionalDependencies: chokidar: 5.0.0 - '@angular-devkit/core@21.2.0(chokidar@5.0.0)': + '@angular-devkit/core@21.2.3(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -7095,9 +7154,20 @@ snapshots: optionalDependencies: chokidar: 5.0.0 - '@angular-devkit/schematics@21.2.0(chokidar@5.0.0)': + '@angular-devkit/core@21.2.6(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 + + '@angular-devkit/schematics@21.2.3(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 0.30.21 ora: 9.3.0 @@ -7105,46 +7175,46 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@21.3.0(@angular/cli@21.2.0(@types/node@25.3.3)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/builder@21.3.1(@angular/cli@21.2.3(@types/node@25.5.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-devkit/architect': 0.2102.0(chokidar@5.0.0) - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular/cli': 21.2.0(@types/node@25.3.3)(chokidar@5.0.0) - eslint: 10.0.2(jiti@2.6.1) + '@angular-devkit/architect': 0.2102.6(chokidar@5.0.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular/cli': 21.2.3(@types/node@25.5.0)(chokidar@5.0.0) + eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - chokidar - '@angular-eslint/bundled-angular-compiler@21.3.0': {} + '@angular-eslint/bundled-angular-compiler@21.3.1': {} - '@angular-eslint/eslint-plugin-template@21.3.0(@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.54.0)(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/eslint-plugin-template@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.57.2)(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.0 - '@angular-eslint/template-parser': 21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@angular-eslint/utils': 21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@angular-eslint/bundled-angular-compiler': 21.3.1 + '@angular-eslint/template-parser': 21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) aria-query: 5.3.2 axobject-query: 4.1.0 - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 - '@angular-eslint/eslint-plugin@21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/eslint-plugin@21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.0 - '@angular-eslint/utils': 21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + '@angular-eslint/bundled-angular-compiler': 21.3.1 + '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.1.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 - '@angular-eslint/schematics@21.3.0(@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.0(@types/node@25.3.3)(chokidar@5.0.0))(@typescript-eslint/types@8.54.0)(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/schematics@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.3(@types/node@25.5.0)(chokidar@5.0.0))(@typescript-eslint/types@8.57.2)(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.0(chokidar@5.0.0) - '@angular-eslint/eslint-plugin': 21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@angular-eslint/eslint-plugin-template': 21.3.0(@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.54.0)(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@angular/cli': 21.2.0(@types/node@25.3.3)(chokidar@5.0.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.3(chokidar@5.0.0) + '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.57.2)(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@angular/cli': 21.2.3(@types/node@25.5.0)(chokidar@5.0.0) ignore: 7.0.5 semver: 7.7.4 strip-json-comments: 3.1.1 @@ -7156,33 +7226,33 @@ snapshots: - eslint - typescript - '@angular-eslint/template-parser@21.3.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/template-parser@21.3.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.0 - eslint: 10.0.2(jiti@2.6.1) - eslint-scope: 9.1.1 + '@angular-eslint/bundled-angular-compiler': 21.3.1 + eslint: 10.1.0(jiti@2.6.1) + eslint-scope: 9.1.2 typescript: 5.9.3 - '@angular-eslint/utils@21.3.0(@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/utils@21.3.1(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-eslint/bundled-angular-compiler': 21.3.0 - '@typescript-eslint/utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@angular-eslint/bundled-angular-compiler': 21.3.1 + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 - '@angular/build@21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': + '@angular/build@21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.2(chokidar@5.0.0) - '@angular/compiler': 21.2.0 - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + '@angular/compiler': 21.2.6 + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.3.3) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0)) + '@inquirer/confirm': 5.1.21(@types/node@25.5.0) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0)) beasties: 0.3.5 - browserslist: 4.28.1 + browserslist: 4.28.2 esbuild: 0.27.2 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 @@ -7193,7 +7263,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.4 - rolldown: 1.0.0-beta.58 + rolldown: 1.0.0-beta.58(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) sass: 1.97.1 semver: 7.7.3 source-map-support: 0.5.21 @@ -7201,16 +7271,18 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.18.2 - vite: 7.3.0(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0) + vite: 7.3.0(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0) watchpack: 2.5.0 optionalDependencies: - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/localize': 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/localize': 21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) less: 4.4.2 lmdb: 3.4.4 postcss: 8.5.6 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@types/node' - chokidar - jiti @@ -7223,19 +7295,19 @@ snapshots: - tsx - yaml - '@angular/build@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(@types/node@25.3.3)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': + '@angular/build@21.2.3(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)(@types/node@25.5.0)(chokidar@5.0.0)(jiti@2.6.1)(less@4.4.2)(postcss@8.5.8)(terser@5.44.1)(tslib@2.8.1)(typescript@5.9.3)(yaml@2.7.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.0(chokidar@5.0.0) - '@angular/compiler': 21.2.0 - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + '@angular-devkit/architect': 0.2102.3(chokidar@5.0.0) + '@angular/compiler': 21.2.6 + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.3.3) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0)) + '@inquirer/confirm': 5.1.21(@types/node@25.5.0) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0)) beasties: 0.4.1 - browserslist: 4.28.1 + browserslist: 4.28.2 esbuild: 0.27.3 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 @@ -7246,7 +7318,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.4 - rolldown: 1.0.0-rc.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) sass: 1.97.3 semver: 7.7.4 source-map-support: 0.5.21 @@ -7254,16 +7326,18 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.22.0 - vite: 7.3.1(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0) + vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/localize': 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/localize': 21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) less: 4.4.2 lmdb: 3.5.1 - postcss: 8.5.6 + postcss: 8.5.8 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@types/node' - chokidar - jiti @@ -7276,24 +7350,24 @@ snapshots: - tsx - yaml - '@angular/cdk@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/cdk@21.2.4(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@21.2.0(@types/node@25.3.3)(chokidar@5.0.0)': + '@angular/cli@21.2.3(@types/node@25.5.0)(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.2102.0(chokidar@5.0.0) - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.0(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@25.3.3) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@25.3.3))(@types/node@25.3.3)(listr2@9.0.5) + '@angular-devkit/architect': 0.2102.3(chokidar@5.0.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.3(chokidar@5.0.0) + '@inquirer/prompts': 7.10.1(@types/node@25.5.0) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@25.5.0))(@types/node@25.5.0)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.6) - '@schematics/angular': 21.2.0(chokidar@5.0.0) + '@schematics/angular': 21.2.3(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.48.1 ini: 6.0.0 @@ -7311,15 +7385,15 @@ snapshots: - chokidar - supports-color - '@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2)': + '@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3)': + '@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3)': dependencies: - '@angular/compiler': 21.2.0 + '@angular/compiler': 21.2.6 '@babel/core': 7.29.0 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 5.0.0 @@ -7333,31 +7407,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@21.2.0': + '@angular/compiler@21.2.6': dependencies: tslib: 2.8.1 - '@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)': + '@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 21.2.0 + '@angular/compiler': 21.2.6 zone.js: 0.16.1 - '@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) '@standard-schema/spec': 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0)': + '@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6)': dependencies: - '@angular/compiler': 21.2.0 - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + '@angular/compiler': 21.2.6 + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) '@babel/core': 7.29.0 '@types/babel__core': 7.20.5 tinyglobby: 0.2.15 @@ -7365,25 +7439,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/platform-browser-dynamic@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))': + '@angular/platform-browser-dynamic@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/compiler': 21.2.0 - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.6 + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) tslib: 2.8.1 - '@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))': + '@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - '@angular/router@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) rxjs: 7.8.2 tslib: 2.8.1 @@ -7409,8 +7483,8 @@ snapshots: '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -7429,8 +7503,8 @@ snapshots: '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -7445,7 +7519,7 @@ snapshots: '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -7453,7 +7527,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -7467,7 +7541,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -7585,12 +7659,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.6': + '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@babel/parser@7.29.0': + '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 @@ -7678,7 +7752,7 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 @@ -7723,7 +7797,7 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 @@ -8167,7 +8241,7 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@babel/traverse@7.29.0': @@ -8175,7 +8249,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3 @@ -8232,18 +8306,18 @@ snapshots: '@discoveryjs/json-ext@0.6.3': {} - '@emnapi/core@1.8.1': + '@emnapi/core@1.9.0': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.9.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.0': dependencies: tslib: 2.8.1 optional: true @@ -8404,48 +8478,46 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.6.1))': dependencies: - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.1.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.2': + '@eslint/config-array@0.23.3': dependencies: - '@eslint/object-schema': 3.0.2 + '@eslint/object-schema': 3.0.3 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.2': + '@eslint/config-helpers@0.5.3': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.1.1 - '@eslint/core@1.1.0': + '@eslint/core@1.1.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/object-schema@3.0.2': {} + '@eslint/object-schema@3.0.3': {} - '@eslint/plugin-kit@0.6.0': + '@eslint/plugin-kit@0.6.1': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.1.1 levn: 0.4.1 '@fastify/busboy@2.1.1': {} - '@gar/promise-retry@1.0.2': - dependencies: - retry: 0.13.1 + '@gar/promise-retry@1.0.3': {} '@harperfast/extended-iterable@1.0.3': optional: true - '@hono/node-server@1.19.9(hono@4.12.3)': + '@hono/node-server@1.19.12(hono@4.12.9)': dependencies: - hono: 4.12.3 + hono: 4.12.9 '@humanfs/core@0.19.1': {} @@ -8460,128 +8532,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@25.3.3)': + '@inquirer/checkbox@4.3.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/type': 3.0.10(@types/node@25.5.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/confirm@5.1.21(@types/node@25.3.3)': + '@inquirer/confirm@5.1.21(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/core@10.3.2(@types/node@25.3.3)': + '@inquirer/core@10.3.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/type': 3.0.10(@types/node@25.5.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/editor@4.2.23(@types/node@25.3.3)': + '@inquirer/editor@4.2.23(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/external-editor': 1.0.3(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/external-editor': 1.0.3(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/expand@4.0.23(@types/node@25.3.3)': + '@inquirer/expand@4.0.23(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/external-editor@1.0.3(@types/node@25.3.3)': + '@inquirer/external-editor@1.0.3(@types/node@25.5.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@25.3.3)': + '@inquirer/input@4.3.1(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/number@3.0.23(@types/node@25.3.3)': + '@inquirer/number@3.0.23(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/password@4.0.23(@types/node@25.3.3)': + '@inquirer/password@4.0.23(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/prompts@7.10.1(@types/node@25.3.3)': + '@inquirer/prompts@7.10.1(@types/node@25.5.0)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.3.3) - '@inquirer/confirm': 5.1.21(@types/node@25.3.3) - '@inquirer/editor': 4.2.23(@types/node@25.3.3) - '@inquirer/expand': 4.0.23(@types/node@25.3.3) - '@inquirer/input': 4.3.1(@types/node@25.3.3) - '@inquirer/number': 3.0.23(@types/node@25.3.3) - '@inquirer/password': 4.0.23(@types/node@25.3.3) - '@inquirer/rawlist': 4.1.11(@types/node@25.3.3) - '@inquirer/search': 3.2.2(@types/node@25.3.3) - '@inquirer/select': 4.4.2(@types/node@25.3.3) + '@inquirer/checkbox': 4.3.2(@types/node@25.5.0) + '@inquirer/confirm': 5.1.21(@types/node@25.5.0) + '@inquirer/editor': 4.2.23(@types/node@25.5.0) + '@inquirer/expand': 4.0.23(@types/node@25.5.0) + '@inquirer/input': 4.3.1(@types/node@25.5.0) + '@inquirer/number': 3.0.23(@types/node@25.5.0) + '@inquirer/password': 4.0.23(@types/node@25.5.0) + '@inquirer/rawlist': 4.1.11(@types/node@25.5.0) + '@inquirer/search': 3.2.2(@types/node@25.5.0) + '@inquirer/select': 4.4.2(@types/node@25.5.0) optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/rawlist@4.1.11(@types/node@25.3.3)': + '@inquirer/rawlist@4.1.11(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/search@3.2.2(@types/node@25.3.3)': + '@inquirer/search@3.2.2(@types/node@25.5.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/type': 3.0.10(@types/node@25.5.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/select@4.4.2(@types/node@25.3.3)': + '@inquirer/select@4.4.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.3.3) + '@inquirer/core': 10.3.2(@types/node@25.5.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/type': 3.0.10(@types/node@25.5.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@inquirer/type@3.0.10(@types/node@25.3.3)': + '@inquirer/type@3.0.10(@types/node@25.5.0)': optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@isaacs/cliui@8.0.2': dependencies: @@ -8606,44 +8678,43 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@30.2.0': + '@jest/console@30.3.0': dependencies: - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 chalk: 4.1.2 - jest-message-util: 30.2.0 - jest-util: 30.2.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 slash: 3.0.0 - '@jest/core@30.2.0(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3))': + '@jest/core@30.3.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3))': dependencies: - '@jest/console': 30.2.0 + '@jest/console': 30.3.0 '@jest/pattern': 30.0.1 - '@jest/reporters': 30.2.0 - '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/reporters': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 4.3.0 + ci-info: 4.4.0 exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - jest-haste-map: 30.2.0 - jest-message-util: 30.2.0 + jest-changed-files: 30.3.0 + jest-config: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-haste-map: 30.3.0 + jest-message-util: 30.3.0 jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-resolve-dependencies: 30.2.0 - jest-runner: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - jest-watcher: 30.2.0 - micromatch: 4.0.8 - pretty-format: 30.2.0 + jest-resolve: 30.3.0 + jest-resolve-dependencies: 30.3.0 + jest-runner: 30.3.0 + jest-runtime: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 + jest-watcher: 30.3.0 + pretty-format: 30.3.0 slash: 3.0.0 transitivePeerDependencies: - babel-plugin-macros @@ -8653,38 +8724,60 @@ snapshots: '@jest/diff-sequences@30.0.1': {} + '@jest/diff-sequences@30.3.0': {} + '@jest/environment-jsdom-abstract@30.2.0(canvas@3.0.0)(jsdom@26.1.0(canvas@3.0.0))': dependencies: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 '@types/jsdom': 21.1.7 - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-mock: 30.2.0 jest-util: 30.2.0 jsdom: 26.1.0(canvas@3.0.0) optionalDependencies: canvas: 3.0.0 + '@jest/environment-jsdom-abstract@30.3.0(canvas@3.0.0)(jsdom@26.1.0(canvas@3.0.0))': + dependencies: + '@jest/environment': 30.3.0 + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 + '@types/jsdom': 21.1.7 + '@types/node': 25.5.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 + jsdom: 26.1.0(canvas@3.0.0) + optionalDependencies: + canvas: 3.0.0 + '@jest/environment@30.2.0': dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-mock: 30.2.0 + '@jest/environment@30.3.0': + dependencies: + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 + jest-mock: 30.3.0 + '@jest/expect-utils@30.0.5': dependencies: '@jest/get-type': 30.0.1 - '@jest/expect-utils@30.2.0': + '@jest/expect-utils@30.3.0': dependencies: '@jest/get-type': 30.1.0 - '@jest/expect@30.2.0': + '@jest/expect@30.3.0': dependencies: - expect: 30.2.0 - jest-snapshot: 30.2.0 + expect: 30.3.0 + jest-snapshot: 30.3.0 transitivePeerDependencies: - supports-color @@ -8692,51 +8785,60 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 + '@jest/fake-timers@30.3.0': + dependencies: + '@jest/types': 30.3.0 + '@sinonjs/fake-timers': 15.1.1 + '@types/node': 25.5.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 + '@jest/get-type@30.0.1': {} '@jest/get-type@30.1.0': {} - '@jest/globals@30.2.0': + '@jest/globals@30.3.0': dependencies: - '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 - '@jest/types': 30.2.0 - jest-mock: 30.2.0 + '@jest/environment': 30.3.0 + '@jest/expect': 30.3.0 + '@jest/types': 30.3.0 + jest-mock: 30.3.0 transitivePeerDependencies: - supports-color '@jest/pattern@30.0.1': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-regex-util: 30.0.1 - '@jest/reporters@30.2.0': + '@jest/reporters@30.3.0': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.2.0 - '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 + '@jest/console': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 25.3.3 + '@types/node': 25.5.0 chalk: 4.1.2 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 exit-x: 0.2.2 - glob: 10.4.5 + glob: 10.5.0 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - jest-message-util: 30.2.0 - jest-util: 30.2.0 - jest-worker: 30.2.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 + jest-worker: 30.3.0 slash: 3.0.0 string-length: 4.0.2 v8-to-istanbul: 9.3.0 @@ -8751,9 +8853,9 @@ snapshots: dependencies: '@sinclair/typebox': 0.34.48 - '@jest/snapshot-utils@30.2.0': + '@jest/snapshot-utils@30.3.0': dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 chalk: 4.1.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 @@ -8764,34 +8866,33 @@ snapshots: callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@30.2.0': + '@jest/test-result@30.3.0': dependencies: - '@jest/console': 30.2.0 - '@jest/types': 30.2.0 + '@jest/console': 30.3.0 + '@jest/types': 30.3.0 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 - '@jest/test-sequencer@30.2.0': + '@jest/test-sequencer@30.3.0': dependencies: - '@jest/test-result': 30.2.0 + '@jest/test-result': 30.3.0 graceful-fs: 4.2.11 - jest-haste-map: 30.2.0 + jest-haste-map: 30.3.0 slash: 3.0.0 - '@jest/transform@30.2.0': + '@jest/transform@30.3.0': dependencies: '@babel/core': 7.29.0 - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 7.0.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 30.2.0 + jest-haste-map: 30.3.0 jest-regex-util: 30.0.1 - jest-util: 30.2.0 - micromatch: 4.0.8 + jest-util: 30.3.0 pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 5.0.1 @@ -8804,8 +8905,8 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.3.3 - '@types/yargs': 17.0.33 + '@types/node': 25.5.0 + '@types/yargs': 17.0.35 chalk: 4.1.2 '@jest/types@30.2.0': @@ -8814,8 +8915,18 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.3.3 - '@types/yargs': 17.0.33 + '@types/node': 25.5.0 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jest/types@30.3.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 25.5.0 + '@types/yargs': 17.0.35 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -8828,8 +8939,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/resolve-uri@3.1.1': {} - '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.11': @@ -8846,7 +8955,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.9': dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': @@ -8978,10 +9087,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@25.3.3))(@types/node@25.3.3)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@25.5.0))(@types/node@25.5.0)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@25.3.3) - '@inquirer/type': 3.0.10(@types/node@25.3.3) + '@inquirer/prompts': 7.10.1(@types/node@25.5.0) + '@inquirer/type': 3.0.10(@types/node@25.5.0) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' @@ -9030,7 +9139,7 @@ snapshots: '@modelcontextprotocol/sdk@1.26.0(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.9(hono@4.12.3) + '@hono/node-server': 1.19.12(hono@4.12.9) ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) content-type: 1.0.5 @@ -9039,14 +9148,14 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.0.6 express: 5.2.1 - express-rate-limit: 8.2.1(express@5.2.1) - hono: 4.12.3 - jose: 6.1.3 + express-rate-limit: 8.3.2(express@5.2.1) + hono: 4.12.9 + jose: 6.2.2 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 zod: 4.3.6 - zod-to-json-schema: 3.25.1(zod@4.3.6) + zod-to-json-schema: 3.25.2(zod@4.3.6) transitivePeerDependencies: - supports-color @@ -9190,47 +9299,47 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.0 + '@emnapi/runtime': 1.9.0 '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.1': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.0 + '@emnapi/runtime': 1.9.0 '@tybys/wasm-util': 0.10.1 optional: true - '@ng-bootstrap/ng-bootstrap@20.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2)': + '@ng-bootstrap/ng-bootstrap@20.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@popperjs/core@2.11.8)(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/forms': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/localize': 21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/forms': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/localize': 21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6) '@popperjs/core': 2.11.8 rxjs: 7.8.2 tslib: 2.8.1 - '@ng-select/ng-select@21.4.1(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))': + '@ng-select/ng-select@21.5.2(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))': dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/forms': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/forms': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) tslib: 2.8.1 - ? '@ngneat/dirty-check-forms@3.0.3(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/router@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(lodash-es@4.17.21)(rxjs@7.8.2)' + ? '@ngneat/dirty-check-forms@3.0.3(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(lodash-es@4.17.21)(rxjs@7.8.2)' : dependencies: - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/forms': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/router': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/forms': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/router': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) lodash-es: 4.17.21 rxjs: 7.8.2 tslib: 2.8.1 - '@ngtools/webpack@21.1.2(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.1(esbuild@0.27.2))': + '@ngtools/webpack@21.1.2(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.104.1(esbuild@0.27.2))': dependencies: - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) typescript: 5.9.3 webpack: 5.104.1(esbuild@0.27.2) @@ -9239,7 +9348,7 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.2.6 + lru-cache: 11.2.7 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color @@ -9250,10 +9359,10 @@ snapshots: '@npmcli/git@7.0.2': dependencies: - '@gar/promise-retry': 1.0.2 + '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.2.6 + lru-cache: 11.2.7 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 semver: 7.7.4 @@ -9486,14 +9595,20 @@ snapshots: '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.58': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.58(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.4': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.4(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.58': @@ -9512,85 +9627,85 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.4': {} - '@rollup/rollup-android-arm-eabi@4.59.0': + '@rollup/rollup-android-arm-eabi@4.60.1': optional: true - '@rollup/rollup-android-arm64@4.59.0': + '@rollup/rollup-android-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-arm64@4.59.0': + '@rollup/rollup-darwin-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-x64@4.59.0': + '@rollup/rollup-darwin-x64@4.60.1': optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': + '@rollup/rollup-freebsd-arm64@4.60.1': optional: true - '@rollup/rollup-freebsd-x64@4.59.0': + '@rollup/rollup-freebsd-x64@4.60.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': + '@rollup/rollup-linux-arm-musleabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': + '@rollup/rollup-linux-arm64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': + '@rollup/rollup-linux-arm64-musl@4.60.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': + '@rollup/rollup-linux-loong64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': + '@rollup/rollup-linux-loong64-musl@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': + '@rollup/rollup-linux-ppc64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': + '@rollup/rollup-linux-ppc64-musl@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': + '@rollup/rollup-linux-riscv64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': + '@rollup/rollup-linux-riscv64-musl@4.60.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': + '@rollup/rollup-linux-s390x-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.59.0': + '@rollup/rollup-linux-x64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': + '@rollup/rollup-linux-x64-musl@4.60.1': optional: true - '@rollup/rollup-openbsd-x64@4.59.0': + '@rollup/rollup-openbsd-x64@4.60.1': optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': + '@rollup/rollup-openharmony-arm64@4.60.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': + '@rollup/rollup-win32-arm64-msvc@4.60.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': + '@rollup/rollup-win32-ia32-msvc@4.60.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': + '@rollup/rollup-win32-x64-gnu@4.60.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': + '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true - '@schematics/angular@21.2.0(chokidar@5.0.0)': + '@schematics/angular@21.2.3(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.0(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.0(chokidar@5.0.0) + '@angular-devkit/core': 21.2.3(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.3(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -9599,22 +9714,22 @@ snapshots: dependencies: '@sigstore/protobuf-specs': 0.5.0 - '@sigstore/core@3.1.0': {} + '@sigstore/core@3.2.0': {} '@sigstore/protobuf-specs@0.5.0': {} - '@sigstore/sign@4.1.0': + '@sigstore/sign@4.1.1': dependencies: + '@gar/promise-retry': 1.0.3 '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 - make-fetch-happen: 15.0.4 + make-fetch-happen: 15.0.5 proc-log: 6.1.0 - promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@4.0.1': + '@sigstore/tuf@4.0.2': dependencies: '@sigstore/protobuf-specs': 0.5.0 tuf-js: 4.1.0 @@ -9624,7 +9739,7 @@ snapshots: '@sigstore/verify@3.1.0': dependencies: '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 '@sinclair/typebox@0.27.10': {} @@ -9639,6 +9754,10 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers@15.1.1': + dependencies: + '@sinonjs/commons': 3.0.1 + '@standard-schema/spec@1.1.0': {} '@tsconfig/node10@1.0.9': {} @@ -9654,7 +9773,7 @@ snapshots: '@tufjs/models@4.1.0': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 10.2.4 + minimatch: 10.2.5 '@tybys/wasm-util@0.10.1': dependencies: @@ -9663,7 +9782,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -9675,7 +9794,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': @@ -9685,20 +9804,20 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/bonjour@3.5.13': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.8 - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/connect@3.4.38': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/eslint-scope@3.7.7': dependencies: @@ -9716,7 +9835,7 @@ snapshots: '@types/express-serve-static-core@4.19.8': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -9732,7 +9851,7 @@ snapshots: '@types/http-proxy@1.17.17': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/istanbul-lib-coverage@2.0.6': {} @@ -9751,7 +9870,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -9761,9 +9880,9 @@ snapshots: '@types/node-forge@1.3.14': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 - '@types/node@25.3.3': + '@types/node@25.5.0': dependencies: undici-types: 7.18.2 @@ -9776,11 +9895,11 @@ snapshots: '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/send@1.2.1': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/serve-index@1.9.4': dependencies: @@ -9789,12 +9908,12 @@ snapshots: '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/send': 0.17.6 '@types/sockjs@0.3.36': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/stack-utils@2.0.3': {} @@ -9802,104 +9921,104 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.33': + '@types/yargs@17.0.35': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/type-utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.54.0 - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/type-utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 + eslint: 10.1.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.54.0 + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.57.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) - '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.54.0': + '@typescript-eslint/scope-manager@8.57.2': dependencies: - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/visitor-keys': 8.54.0 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 - '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint: 10.1.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.54.0': {} + '@typescript-eslint/types@8.57.2': {} - '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/visitor-keys': 8.54.0 + '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 - minimatch: 9.0.5 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.54.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.54.0': + '@typescript-eslint/visitor-keys@8.57.2': dependencies: - '@typescript-eslint/types': 8.54.0 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.57.2 + eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} @@ -9962,13 +10081,13 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0))': dependencies: - vite: 7.3.0(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0) + vite: 7.3.0(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0) - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0))': dependencies: - vite: 7.3.1(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0) + vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0) '@webassemblyjs/ast@1.14.1': dependencies: @@ -10074,8 +10193,6 @@ snapshots: acorn-walk@8.3.1: {} - acorn@8.14.0: {} - acorn@8.16.0: {} adjust-sourcemap-loader@4.0.0: @@ -10167,7 +10284,7 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: 2.3.2 arg@4.1.3: {} @@ -10183,8 +10300,8 @@ snapshots: autoprefixer@10.4.23(postcss@8.5.6): dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001775 + browserslist: 4.28.2 + caniuse-lite: 1.0.30001784 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 @@ -10192,13 +10309,13 @@ snapshots: axobject-query@4.1.0: {} - babel-jest@30.2.0(@babel/core@7.29.0): + babel-jest@30.3.0(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.3.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 7.0.1 - babel-preset-jest: 30.2.0(@babel/core@7.29.0) + babel-preset-jest: 30.3.0(@babel/core@7.29.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -10221,7 +10338,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@30.2.0: + babel-plugin-jest-hoist@30.3.0: dependencies: '@types/babel__core': 7.20.5 @@ -10268,10 +10385,10 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) - babel-preset-jest@30.2.0(@babel/core@7.29.0): + babel-preset-jest@30.3.0(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 - babel-plugin-jest-hoist: 30.2.0 + babel-plugin-jest-hoist: 30.3.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) balanced-match@1.0.2: {} @@ -10283,6 +10400,8 @@ snapshots: baseline-browser-mapping@2.10.0: {} + baseline-browser-mapping@2.10.13: {} + batch@0.6.1: {} beasties@0.3.5: @@ -10304,9 +10423,9 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.1.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.8 postcss-media-query-parser: 0.2.3 - postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss-safe-parser: 7.0.1(postcss@8.5.8) before-after-hook@2.2.3: {} @@ -10363,16 +10482,16 @@ snapshots: dependencies: '@popperjs/core': 2.11.8 - brace-expansion@1.1.12: + brace-expansion@1.1.13: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.0.3: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -10388,6 +10507,14 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.13 + caniuse-lite: 1.0.30001784 + electron-to-chromium: 1.5.331 + node-releases: 2.0.36 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 @@ -10410,19 +10537,18 @@ snapshots: bytes@3.1.2: {} - cacache@20.0.3: + cacache@20.0.4: dependencies: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.2.6 + lru-cache: 11.2.7 minipass: 7.1.3 minipass-collect: 2.0.1 - minipass-flush: 1.0.5 + minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 p-map: 7.0.4 ssri: 13.0.1 - unique-filename: 5.0.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -10442,6 +10568,8 @@ snapshots: caniuse-lite@1.0.30001775: {} + caniuse-lite@1.0.30001784: {} + canvas@3.0.0: dependencies: node-addon-api: 7.1.1 @@ -10487,11 +10615,9 @@ snapshots: chrome-trace-event@1.0.4: {} - ci-info@4.3.0: {} - ci-info@4.4.0: {} - cjs-module-lexer@2.1.0: {} + cjs-module-lexer@2.2.0: {} cli-cursor@5.0.0: dependencies: @@ -10526,7 +10652,7 @@ snapshots: co@4.6.0: {} - collect-v8-coverage@1.0.2: {} + collect-v8-coverage@1.0.3: {} color-convert@2.0.1: dependencies: @@ -10591,7 +10717,7 @@ snapshots: core-js-compat@3.48.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 core-util-is@1.0.3: {} @@ -10672,7 +10798,7 @@ snapshots: mimic-response: 3.1.0 optional: true - dedent@1.7.0: {} + dedent@1.7.2: {} deep-extend@0.6.0: optional: true @@ -10743,6 +10869,8 @@ snapshots: electron-to-chromium@1.5.302: {} + electron-to-chromium@1.5.331: {} + emittery@0.13.1: {} emoji-regex@10.6.0: {} @@ -10871,7 +10999,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@9.1.1: + eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 '@types/estree': 1.0.8 @@ -10880,18 +11008,16 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@5.0.1: {} - eslint@10.0.2(jiti@2.6.1): + eslint@10.1.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.2 - '@eslint/config-helpers': 0.5.2 - '@eslint/core': 1.1.0 - '@eslint/plugin-kit': 0.6.0 + '@eslint/config-array': 0.23.3 + '@eslint/config-helpers': 0.5.3 + '@eslint/core': 1.1.1 + '@eslint/plugin-kit': 0.6.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -10900,9 +11026,9 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 9.1.1 + eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 - espree: 11.1.1 + espree: 11.2.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -10913,7 +11039,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -10921,7 +11047,7 @@ snapshots: transitivePeerDependencies: - supports-color - espree@11.1.1: + espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) @@ -10983,21 +11109,21 @@ snapshots: jest-mock: 30.0.5 jest-util: 30.0.5 - expect@30.2.0: + expect@30.3.0: dependencies: - '@jest/expect-utils': 30.2.0 + '@jest/expect-utils': 30.3.0 '@jest/get-type': 30.1.0 - jest-matcher-utils: 30.2.0 - jest-message-util: 30.2.0 - jest-mock: 30.2.0 - jest-util: 30.2.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 exponential-backoff@3.1.3: {} - express-rate-limit@8.2.1(express@5.2.1): + express-rate-limit@8.3.2(express@5.2.1): dependencies: express: 5.2.1 - ip-address: 10.0.1 + ip-address: 10.1.0 express@4.22.1: dependencies: @@ -11133,12 +11259,12 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.2 keyv: 4.5.4 flat@5.0.2: {} - flatted@3.3.3: {} + flatted@3.4.2: {} follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: @@ -11219,18 +11345,18 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@13.0.6: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 minipass: 7.1.3 path-scurry: 2.0.2 @@ -11266,11 +11392,11 @@ snapshots: dependencies: function-bind: 1.1.2 - hono@4.12.3: {} + hono@4.12.9: {} hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.2.7 hpack.js@2.1.6: dependencies: @@ -11384,7 +11510,7 @@ snapshots: ignore-walk@8.0.0: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 ignore@5.3.2: {} @@ -11393,7 +11519,7 @@ snapshots: image-size@0.5.5: optional: true - immutable@5.1.4: {} + immutable@5.1.5: {} import-fresh@3.3.1: dependencies: @@ -11419,8 +11545,6 @@ snapshots: ini@6.0.0: {} - ip-address@10.0.1: {} - ip-address@10.1.0: {} ipaddr.js@1.9.1: {} @@ -11500,7 +11624,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.4 @@ -11532,31 +11656,31 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jest-changed-files@30.2.0: + jest-changed-files@30.3.0: dependencies: execa: 5.1.1 - jest-util: 30.2.0 + jest-util: 30.3.0 p-limit: 3.1.0 - jest-circus@30.2.0: + jest-circus@30.3.0: dependencies: - '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/environment': 30.3.0 + '@jest/expect': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 chalk: 4.1.2 co: 4.6.0 - dedent: 1.7.0 + dedent: 1.7.2 is-generator-fn: 2.1.0 - jest-each: 30.2.0 - jest-matcher-utils: 30.2.0 - jest-message-util: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 - jest-util: 30.2.0 + jest-each: 30.3.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-runtime: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 p-limit: 3.1.0 - pretty-format: 30.2.0 + pretty-format: 30.3.0 pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 @@ -11564,17 +11688,17 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)): + jest-cli@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 + '@jest/core': 30.3.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - jest-util: 30.2.0 - jest-validate: 30.2.0 + jest-config: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + jest-util: 30.3.0 + jest-validate: 30.3.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -11583,35 +11707,34 @@ snapshots: - supports-color - ts-node - jest-config@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)): + jest-config@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): dependencies: '@babel/core': 7.29.0 '@jest/get-type': 30.1.0 '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.29.0) + '@jest/test-sequencer': 30.3.0 + '@jest/types': 30.3.0 + babel-jest: 30.3.0(@babel/core@7.29.0) chalk: 4.1.2 - ci-info: 4.3.0 + ci-info: 4.4.0 deepmerge: 4.3.1 - glob: 10.4.5 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-circus: 30.2.0 + jest-circus: 30.3.0 jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 + jest-environment-node: 30.3.0 jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 + jest-resolve: 30.3.0 + jest-runner: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 parse-json: 5.2.0 - pretty-format: 30.2.0 + pretty-format: 30.3.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.3.3 - ts-node: 10.9.2(@types/node@25.3.3)(typescript@5.9.3) + '@types/node': 25.5.0 + ts-node: 10.9.2(@types/node@25.5.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -11630,31 +11753,29 @@ snapshots: chalk: 4.1.2 pretty-format: 30.0.5 - jest-diff@30.2.0: + jest-diff@30.3.0: dependencies: - '@jest/diff-sequences': 30.0.1 + '@jest/diff-sequences': 30.3.0 '@jest/get-type': 30.1.0 chalk: 4.1.2 - pretty-format: 30.2.0 + pretty-format: 30.3.0 jest-docblock@30.2.0: dependencies: detect-newline: 3.1.0 - jest-each@30.2.0: + jest-each@30.3.0: dependencies: '@jest/get-type': 30.1.0 - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 chalk: 4.1.2 - jest-util: 30.2.0 - pretty-format: 30.2.0 + jest-util: 30.3.0 + pretty-format: 30.3.0 - jest-environment-jsdom@30.2.0(canvas@3.0.0): + jest-environment-jsdom@30.3.0(canvas@3.0.0): dependencies: - '@jest/environment': 30.2.0 - '@jest/environment-jsdom-abstract': 30.2.0(canvas@3.0.0)(jsdom@26.1.0(canvas@3.0.0)) - '@types/jsdom': 21.1.7 - '@types/node': 25.3.3 + '@jest/environment': 30.3.0 + '@jest/environment-jsdom-abstract': 30.3.0(canvas@3.0.0)(jsdom@26.1.0(canvas@3.0.0)) jsdom: 26.1.0(canvas@3.0.0) optionalDependencies: canvas: 3.0.0 @@ -11663,29 +11784,29 @@ snapshots: - supports-color - utf-8-validate - jest-environment-node@30.2.0: + jest-environment-node@30.3.0: dependencies: - '@jest/environment': 30.2.0 - '@jest/fake-timers': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 - jest-mock: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 + '@jest/environment': 30.3.0 + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 jest-get-type@29.6.3: {} - jest-haste-map@30.2.0: + jest-haste-map@30.3.0: dependencies: - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 30.0.1 - jest-util: 30.2.0 - jest-worker: 30.2.0 - micromatch: 4.0.8 + jest-util: 30.3.0 + jest-worker: 30.3.0 + picomatch: 4.0.4 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -11697,10 +11818,10 @@ snapshots: uuid: 8.3.2 xml: 1.0.1 - jest-leak-detector@30.2.0: + jest-leak-detector@30.3.0: dependencies: '@jest/get-type': 30.1.0 - pretty-format: 30.2.0 + pretty-format: 30.3.0 jest-matcher-utils@30.0.5: dependencies: @@ -11709,12 +11830,12 @@ snapshots: jest-diff: 30.0.5 pretty-format: 30.0.5 - jest-matcher-utils@30.2.0: + jest-matcher-utils@30.3.0: dependencies: '@jest/get-type': 30.1.0 chalk: 4.1.2 - jest-diff: 30.2.0 - pretty-format: 30.2.0 + jest-diff: 30.3.0 + pretty-format: 30.3.0 jest-message-util@30.0.5: dependencies: @@ -11740,36 +11861,54 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.3.0: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 30.3.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + picomatch: 4.0.4 + pretty-format: 30.3.0 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@30.0.5: dependencies: '@jest/types': 30.0.5 - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-util: 30.0.5 jest-mock@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@types/node': 25.5.0 jest-util: 30.2.0 - jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): - optionalDependencies: - jest-resolve: 30.2.0 - - jest-preset-angular@16.1.1(c76dc1c8ec36d3a138dfbfdecb5c07d6): + jest-mock@30.3.0: dependencies: - '@angular/compiler-cli': 21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-browser-dynamic': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.0)(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))) + '@jest/types': 30.3.0 + '@types/node': 25.5.0 + jest-util: 30.3.0 + + jest-pnp-resolver@1.2.3(jest-resolve@30.3.0): + optionalDependencies: + jest-resolve: 30.3.0 + + jest-preset-angular@16.1.1(84f6d80ef84de676e7bcbce762f185a5): + dependencies: + '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-browser-dynamic': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))) '@jest/environment-jsdom-abstract': 30.2.0(canvas@3.0.0)(jsdom@26.1.0(canvas@3.0.0)) bs-logger: 0.2.6 esbuild-wasm: 0.27.3 - jest: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) + jest: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) jest-util: 30.2.0 jsdom: 26.1.0(canvas@3.0.0) pretty-format: 30.2.0 - ts-jest: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(typescript@5.9.3) + ts-jest: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.3.0)(@jest/types@30.3.0)(babel-jest@30.3.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(typescript@5.9.3) typescript: 5.9.3 optionalDependencies: esbuild: 0.27.3 @@ -11782,140 +11921,149 @@ snapshots: jest-regex-util@30.0.1: {} - jest-resolve-dependencies@30.2.0: + jest-resolve-dependencies@30.3.0: dependencies: jest-regex-util: 30.0.1 - jest-snapshot: 30.2.0 + jest-snapshot: 30.3.0 transitivePeerDependencies: - supports-color - jest-resolve@30.2.0: + jest-resolve@30.3.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 30.2.0 - jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) - jest-util: 30.2.0 - jest-validate: 30.2.0 + jest-haste-map: 30.3.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.3.0) + jest-util: 30.3.0 + jest-validate: 30.3.0 slash: 3.0.0 unrs-resolver: 1.11.1 - jest-runner@30.2.0: + jest-runner@30.3.0: dependencies: - '@jest/console': 30.2.0 - '@jest/environment': 30.2.0 - '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/console': 30.3.0 + '@jest/environment': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-haste-map: 30.2.0 - jest-leak-detector: 30.2.0 - jest-message-util: 30.2.0 - jest-resolve: 30.2.0 - jest-runtime: 30.2.0 - jest-util: 30.2.0 - jest-watcher: 30.2.0 - jest-worker: 30.2.0 + jest-environment-node: 30.3.0 + jest-haste-map: 30.3.0 + jest-leak-detector: 30.3.0 + jest-message-util: 30.3.0 + jest-resolve: 30.3.0 + jest-runtime: 30.3.0 + jest-util: 30.3.0 + jest-watcher: 30.3.0 + jest-worker: 30.3.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@30.2.0: + jest-runtime@30.3.0: dependencies: - '@jest/environment': 30.2.0 - '@jest/fake-timers': 30.2.0 - '@jest/globals': 30.2.0 + '@jest/environment': 30.3.0 + '@jest/fake-timers': 30.3.0 + '@jest/globals': 30.3.0 '@jest/source-map': 30.0.1 - '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 chalk: 4.1.2 - cjs-module-lexer: 2.1.0 - collect-v8-coverage: 1.0.2 - glob: 10.4.5 + cjs-module-lexer: 2.2.0 + collect-v8-coverage: 1.0.3 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-haste-map: 30.2.0 - jest-message-util: 30.2.0 - jest-mock: 30.2.0 + jest-haste-map: 30.3.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-snapshot: 30.2.0 - jest-util: 30.2.0 + jest-resolve: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@30.2.0: + jest-snapshot@30.3.0: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/types': 7.29.0 - '@jest/expect-utils': 30.2.0 + '@jest/expect-utils': 30.3.0 '@jest/get-type': 30.1.0 - '@jest/snapshot-utils': 30.2.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 + '@jest/snapshot-utils': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) chalk: 4.1.2 - expect: 30.2.0 + expect: 30.3.0 graceful-fs: 4.2.11 - jest-diff: 30.2.0 - jest-matcher-utils: 30.2.0 - jest-message-util: 30.2.0 - jest-util: 30.2.0 - pretty-format: 30.2.0 + jest-diff: 30.3.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 + pretty-format: 30.3.0 semver: 7.7.4 - synckit: 0.11.11 + synckit: 0.11.12 transitivePeerDependencies: - supports-color jest-util@30.0.5: dependencies: '@jest/types': 30.0.5 - '@types/node': 25.3.3 + '@types/node': 25.5.0 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 - picomatch: 4.0.3 + picomatch: 4.0.4 jest-util@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@types/node': 25.5.0 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 - picomatch: 4.0.3 + picomatch: 4.0.4 - jest-validate@30.2.0: + jest-util@30.3.0: + dependencies: + '@jest/types': 30.3.0 + '@types/node': 25.5.0 + chalk: 4.1.2 + ci-info: 4.4.0 + graceful-fs: 4.2.11 + picomatch: 4.0.4 + + jest-validate@30.3.0: dependencies: '@jest/get-type': 30.1.0 - '@jest/types': 30.2.0 + '@jest/types': 30.3.0 camelcase: 6.3.0 chalk: 4.1.2 leven: 3.1.0 - pretty-format: 30.2.0 + pretty-format: 30.3.0 - jest-watcher@30.2.0: + jest-watcher@30.3.0: dependencies: - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 - '@types/node': 25.3.3 + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 25.5.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 30.2.0 + jest-util: 30.3.0 string-length: 4.0.2 jest-websocket-mock@2.5.0: @@ -11925,24 +12073,24 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@30.2.0: + jest-worker@30.3.0: dependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 '@ungap/structured-clone': 1.3.0 - jest-util: 30.2.0 + jest-util: 30.3.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)): + jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) - '@jest/types': 30.2.0 + '@jest/core': 30.3.0(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) + '@jest/types': 30.3.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) + jest-cli: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -11952,7 +12100,7 @@ snapshots: jiti@2.6.1: {} - jose@6.1.3: {} + jose@6.2.2: {} js-tokens@4.0.0: {} @@ -11974,7 +12122,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.22 + nwsapi: 2.2.23 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -11985,7 +12133,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.3 + ws: 8.19.0 xml-name-validator: 5.0.0 optionalDependencies: canvas: 3.0.0 @@ -12077,7 +12225,7 @@ snapshots: lmdb@3.4.4: dependencies: - msgpackr: 1.11.8 + msgpackr: 1.11.9 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.1 @@ -12095,7 +12243,7 @@ snapshots: lmdb@3.5.1: dependencies: '@harperfast/extended-iterable': 1.0.3 - msgpackr: 1.11.8 + msgpackr: 1.11.9 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 ordered-binary: 1.6.1 @@ -12134,7 +12282,7 @@ snapshots: lodash.memoize@4.1.2: {} - lodash@4.17.23: {} + lodash@4.18.1: {} log-symbols@7.0.1: dependencies: @@ -12151,7 +12299,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.6: {} + lru-cache@11.2.7: {} lru-cache@5.1.1: dependencies: @@ -12173,15 +12321,16 @@ snapshots: make-error@1.3.6: {} - make-fetch-happen@15.0.4: + make-fetch-happen@15.0.5: dependencies: - '@gar/promise-retry': 1.0.2 + '@gar/promise-retry': 1.0.3 '@npmcli/agent': 4.0.0 - cacache: 20.0.3 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 http-cache-semantics: 4.2.0 minipass: 7.1.3 minipass-fetch: 5.0.2 - minipass-flush: 1.0.5 + minipass-flush: 1.0.7 minipass-pipeline: 1.2.4 negotiator: 1.0.0 proc-log: 6.1.0 @@ -12229,7 +12378,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 mime-db@1.52.0: {} @@ -12265,17 +12414,17 @@ snapshots: minimalistic-assert@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.13 - minimatch@9.0.5: + minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 minimist@1.2.8: {} @@ -12291,7 +12440,7 @@ snapshots: optionalDependencies: iconv-lite: 0.7.2 - minipass-flush@1.0.5: + minipass-flush@1.0.7: dependencies: minipass: 3.3.6 @@ -12338,7 +12487,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 optional: true - msgpackr@1.11.8: + msgpackr@1.11.9: optionalDependencies: msgpackr-extract: 3.0.3 optional: true @@ -12355,7 +12504,7 @@ snapshots: napi-build-utils@2.0.0: optional: true - napi-postinstall@0.3.3: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -12373,52 +12522,52 @@ snapshots: neo-async@2.6.2: {} - ngx-bootstrap-icons@1.9.3(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)): + ngx-bootstrap-icons@1.9.3(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - ngx-color@10.1.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)): + ngx-color@10.1.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) '@ctrl/tinycolor': 4.2.0 material-colors: 1.2.6 tslib: 2.8.1 - ngx-cookie-service@21.1.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)): + ngx-cookie-service@21.3.1(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - ngx-device-detector@11.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)): + ngx-device-detector@11.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - ngx-ui-tour-core@16.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/router@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(rxjs@7.8.2): + ngx-ui-tour-core@16.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(rxjs@7.8.2): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/router': 21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/router': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) rxjs: 7.8.2 tslib: 2.8.1 - ngx-ui-tour-ng-bootstrap@18.0.0(9f28d3e6eaf246a683609aafac107126): + ngx-ui-tour-ng-bootstrap@18.0.0(957a18d57a4419785daf6612885cd3fb): dependencies: - '@angular/common': 21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1) - '@ng-bootstrap/ng-bootstrap': 20.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.0(@angular/compiler-cli@21.2.0(@angular/compiler@21.2.0)(typescript@5.9.3))(@angular/compiler@21.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2) - ngx-ui-tour-core: 16.0.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/router@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.0(@angular/common@21.2.0(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.0(@angular/compiler@21.2.0)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@ng-bootstrap/ng-bootstrap': 20.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(@angular/localize@21.2.6(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@5.9.3))(@angular/compiler@21.2.6))(@popperjs/core@2.11.8)(rxjs@7.8.2) + ngx-ui-tour-core: 16.0.0(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2))(rxjs@7.8.2) tslib: 2.8.1 transitivePeerDependencies: - '@angular/router' - rxjs - node-abi@3.87.0: + node-abi@3.89.0: dependencies: semver: 7.7.4 optional: true @@ -12441,11 +12590,11 @@ snapshots: env-paths: 2.2.1 exponential-backoff: 3.1.3 graceful-fs: 4.2.11 - make-fetch-happen: 15.0.4 + make-fetch-happen: 15.0.5 nopt: 9.0.0 proc-log: 6.1.0 semver: 7.7.4 - tar: 7.5.9 + tar: 7.5.13 tinyglobby: 0.2.15 which: 6.0.1 transitivePeerDependencies: @@ -12458,6 +12607,8 @@ snapshots: node-releases@2.0.27: {} + node-releases@2.0.36: {} + nopt@9.0.0: dependencies: abbrev: 4.0.0 @@ -12497,7 +12648,7 @@ snapshots: dependencies: '@npmcli/redact': 4.0.0 jsonparse: 1.3.1 - make-fetch-happen: 15.0.4 + make-fetch-happen: 15.0.5 minipass: 7.1.3 minipass-fetch: 5.0.2 minizlib: 3.1.0 @@ -12514,7 +12665,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.22: {} + nwsapi@2.2.23: {} object-assign@4.1.1: {} @@ -12626,7 +12777,7 @@ snapshots: '@npmcli/package-json': 7.0.5 '@npmcli/promise-spawn': 9.0.1 '@npmcli/run-script': 10.0.4 - cacache: 20.0.3 + cacache: 20.0.4 fs-minipass: 3.0.3 minipass: 7.1.3 npm-package-arg: 13.0.2 @@ -12637,7 +12788,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.1.0 ssri: 13.0.1 - tar: 7.5.9 + tar: 7.5.13 transitivePeerDependencies: - supports-color @@ -12691,12 +12842,12 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.6 + lru-cache: 11.2.7 minipass: 7.1.3 path-to-regexp@0.1.12: {} - path-to-regexp@8.3.0: {} + path-to-regexp@8.4.2: {} pdfjs-dist@5.4.624: optionalDependencies: @@ -12705,10 +12856,12 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} picomatch@4.0.3: {} + picomatch@4.0.4: {} + pify@4.0.1: optional: true @@ -12766,9 +12919,9 @@ snapshots: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-safe-parser@7.0.1(postcss@8.5.6): + postcss-safe-parser@7.0.1(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser@7.1.1: dependencies: @@ -12783,6 +12936,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + powershell-utils@0.1.0: {} prebuild-install@7.1.3: @@ -12793,7 +12952,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.87.0 + node-abi: 3.89.0 pump: 3.0.4 rc: 1.2.8 simple-get: 4.0.1 @@ -12828,6 +12987,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.3.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + proc-log@6.1.0: {} process-nextick-args@2.0.1: {} @@ -12911,7 +13076,7 @@ snapshots: readdirp@3.6.0: dependencies: - picomatch: 2.3.1 + picomatch: 2.3.2 readdirp@4.1.2: {} @@ -12981,7 +13146,7 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.58: + rolldown@1.0.0-beta.58(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0): dependencies: '@oxc-project/types': 0.106.0 '@rolldown/pluginutils': 1.0.0-beta.58 @@ -12996,11 +13161,14 @@ snapshots: '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.58 '@rolldown/binding-linux-x64-musl': 1.0.0-beta.58 '@rolldown/binding-openharmony-arm64': 1.0.0-beta.58 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.58 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.58(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.58 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.58 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - rolldown@1.0.0-rc.4: + rolldown@1.0.0-rc.4(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0): dependencies: '@oxc-project/types': 0.113.0 '@rolldown/pluginutils': 1.0.0-rc.4 @@ -13015,39 +13183,42 @@ snapshots: '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.4 '@rolldown/binding-linux-x64-musl': 1.0.0-rc.4 '@rolldown/binding-openharmony-arm64': 1.0.0-rc.4 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4(@emnapi/core@1.9.0)(@emnapi/runtime@1.9.0) '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.4 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.4 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - rollup@4.59.0: + rollup@4.60.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.59.0 - '@rollup/rollup-android-arm64': 4.59.0 - '@rollup/rollup-darwin-arm64': 4.59.0 - '@rollup/rollup-darwin-x64': 4.59.0 - '@rollup/rollup-freebsd-arm64': 4.59.0 - '@rollup/rollup-freebsd-x64': 4.59.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 - '@rollup/rollup-linux-arm-musleabihf': 4.59.0 - '@rollup/rollup-linux-arm64-gnu': 4.59.0 - '@rollup/rollup-linux-arm64-musl': 4.59.0 - '@rollup/rollup-linux-loong64-gnu': 4.59.0 - '@rollup/rollup-linux-loong64-musl': 4.59.0 - '@rollup/rollup-linux-ppc64-gnu': 4.59.0 - '@rollup/rollup-linux-ppc64-musl': 4.59.0 - '@rollup/rollup-linux-riscv64-gnu': 4.59.0 - '@rollup/rollup-linux-riscv64-musl': 4.59.0 - '@rollup/rollup-linux-s390x-gnu': 4.59.0 - '@rollup/rollup-linux-x64-gnu': 4.59.0 - '@rollup/rollup-linux-x64-musl': 4.59.0 - '@rollup/rollup-openbsd-x64': 4.59.0 - '@rollup/rollup-openharmony-arm64': 4.59.0 - '@rollup/rollup-win32-arm64-msvc': 4.59.0 - '@rollup/rollup-win32-ia32-msvc': 4.59.0 - '@rollup/rollup-win32-x64-gnu': 4.59.0 - '@rollup/rollup-win32-x64-msvc': 4.59.0 + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 fsevents: 2.3.3 router@2.2.0: @@ -13056,7 +13227,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.2 transitivePeerDependencies: - supports-color @@ -13084,7 +13255,7 @@ snapshots: sass@1.97.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.4 + immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -13092,7 +13263,7 @@ snapshots: sass@1.97.3: dependencies: chokidar: 4.0.3 - immutable: 5.1.4 + immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -13244,10 +13415,10 @@ snapshots: sigstore@4.1.0: dependencies: '@sigstore/bundle': 4.0.0 - '@sigstore/core': 3.1.0 + '@sigstore/core': 3.2.0 '@sigstore/protobuf-specs': 0.5.0 - '@sigstore/sign': 4.1.0 - '@sigstore/tuf': 4.0.1 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 '@sigstore/verify': 3.1.0 transitivePeerDependencies: - supports-color @@ -13443,7 +13614,7 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.11: + synckit@0.11.12: dependencies: '@pkgr/core': 0.2.9 @@ -13466,7 +13637,7 @@ snapshots: readable-stream: 3.6.2 optional: true - tar@7.5.9: + tar@7.5.13: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -13553,16 +13724,16 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.3.0)(@jest/types@30.3.0)(babel-jest@30.3.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@25.3.3)(ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3)) + jest: 30.3.0(@types/node@25.5.0)(ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -13572,21 +13743,21 @@ snapshots: yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.29.0 - '@jest/transform': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.29.0) + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + babel-jest: 30.3.0(@babel/core@7.29.0) esbuild: 0.27.3 jest-util: 30.2.0 - ts-node@10.9.2(@types/node@25.3.3)(typescript@5.9.3): + ts-node@10.9.2(@types/node@25.5.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.3.3 - acorn: 8.14.0 + '@types/node': 25.5.0 + acorn: 8.16.0 acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 @@ -13608,7 +13779,7 @@ snapshots: dependencies: '@tufjs/models': 4.1.0 debug: 4.4.3 - make-fetch-happen: 15.0.4 + make-fetch-happen: 15.0.5 transitivePeerDependencies: - supports-color @@ -13668,14 +13839,6 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} - unique-filename@5.0.0: - dependencies: - unique-slug: 6.0.0 - - unique-slug@6.0.0: - dependencies: - imurmurhash: 0.1.4 - universal-user-agent@6.0.1: {} unpipe@1.0.0: {} @@ -13687,7 +13850,7 @@ snapshots: unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.3.3 + napi-postinstall: 0.3.4 optionalDependencies: '@unrs/resolver-binding-android-arm-eabi': 1.11.1 '@unrs/resolver-binding-android-arm64': 1.11.1 @@ -13715,6 +13878,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -13743,16 +13912,16 @@ snapshots: vary@1.1.2: {} - vite@7.3.0(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0): + vite@7.3.0(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.1)(terser@5.44.1)(yaml@2.7.0): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.59.0 + rollup: 4.60.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -13760,16 +13929,16 @@ snapshots: terser: 5.44.1 yaml: 2.7.0 - vite@7.3.1(@types/node@25.3.3)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0): + vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(less@4.4.2)(sass@1.97.3)(terser@5.44.1)(yaml@2.7.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.59.0 + postcss: 8.5.8 + rollup: 4.60.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.3.3 + '@types/node': 25.5.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -13933,7 +14102,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.16.0 acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.1 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.20.0 es-module-lexer: 2.0.0 @@ -14051,8 +14220,6 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.3: {} - ws@8.19.0: {} wsl-utils@0.1.0: @@ -14112,7 +14279,7 @@ snapshots: yoctocolors@2.1.2: {} - zod-to-json-schema@3.25.1(zod@4.3.6): + zod-to-json-schema@3.25.2(zod@4.3.6): dependencies: zod: 4.3.6 diff --git a/src-ui/src/app/components/admin/config/config.component.html b/src-ui/src/app/components/admin/config/config.component.html index fcb50183a..38ddbf3a7 100644 --- a/src-ui/src/app/components/admin/config/config.component.html +++ b/src-ui/src/app/components/admin/config/config.component.html @@ -59,7 +59,7 @@
- +
diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html index d876e28ea..11a4aefe2 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.html +++ b/src-ui/src/app/components/app-frame/app-frame.component.html @@ -1,7 +1,7 @@
-
+
@@ -378,7 +379,7 @@
-
diff --git a/src-ui/src/app/components/app-frame/app-frame.component.scss b/src-ui/src/app/components/app-frame/app-frame.component.scss index 77bf9bf21..c069eeefc 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.scss +++ b/src-ui/src/app/components/app-frame/app-frame.component.scss @@ -44,6 +44,23 @@ .sidebar { top: 3.5rem; } + + .search-container { + max-height: 4.5rem; + overflow: hidden; + transition: max-height .2s ease, opacity .2s ease, padding-top .2s ease, padding-bottom .2s ease; + + &.mobile-hidden { + max-height: 0; + opacity: 0; + padding-top: 0 !important; + padding-bottom: 0 !important; + } + } + + main.mobile-search-hidden { + padding-top: 56px; + } } main { diff --git a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts b/src-ui/src/app/components/app-frame/app-frame.component.spec.ts index 931f46254..1341c6e5a 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts +++ b/src-ui/src/app/components/app-frame/app-frame.component.spec.ts @@ -293,6 +293,59 @@ describe('AppFrameComponent', () => { expect(component.isMenuCollapsed).toBeTruthy() }) + it('should hide mobile search when scrolling down and show it when scrolling up', () => { + Object.defineProperty(globalThis, 'innerWidth', { + value: 767, + }) + + component.ngOnInit() + + Object.defineProperty(globalThis, 'scrollY', { + configurable: true, + value: 40, + }) + component.onWindowScroll() + expect(component.mobileSearchHidden).toBe(true) + + Object.defineProperty(globalThis, 'scrollY', { + configurable: true, + value: 0, + }) + component.onWindowScroll() + expect(component.mobileSearchHidden).toBe(false) + }) + + it('should keep mobile search visible on desktop scroll or resize', () => { + Object.defineProperty(globalThis, 'innerWidth', { + value: 1024, + }) + component.ngOnInit() + component.mobileSearchHidden = true + + component.onWindowScroll() + + expect(component.mobileSearchHidden).toBe(false) + + component.mobileSearchHidden = true + component.onWindowResize() + }) + + it('should keep mobile search visible while the mobile menu is expanded', () => { + Object.defineProperty(globalThis, 'innerWidth', { + value: 767, + }) + component.ngOnInit() + component.isMenuCollapsed = false + + Object.defineProperty(globalThis, 'scrollY', { + configurable: true, + value: 40, + }) + component.onWindowScroll() + + expect(component.mobileSearchHidden).toBe(false) + }) + it('should support close document & navigate on close current doc', () => { const closeSpy = jest.spyOn(openDocumentsService, 'closeDocument') closeSpy.mockReturnValue(of(true)) diff --git a/src-ui/src/app/components/app-frame/app-frame.component.ts b/src-ui/src/app/components/app-frame/app-frame.component.ts index 5218d829c..7989eb3e1 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.ts +++ b/src-ui/src/app/components/app-frame/app-frame.component.ts @@ -51,6 +51,8 @@ import { ComponentWithPermissions } from '../with-permissions/with-permissions.c import { GlobalSearchComponent } from './global-search/global-search.component' import { ToastsDropdownComponent } from './toasts-dropdown/toasts-dropdown.component' +const SCROLL_THRESHOLD = 16 + @Component({ selector: 'pngx-app-frame', templateUrl: './app-frame.component.html', @@ -94,6 +96,10 @@ export class AppFrameComponent slimSidebarAnimating: boolean = false + public mobileSearchHidden: boolean = false + + private lastScrollY: number = 0 + constructor() { super() const permissionsService = this.permissionsService @@ -111,6 +117,8 @@ export class AppFrameComponent } ngOnInit(): void { + this.lastScrollY = window.scrollY + if (this.settingsService.get(SETTINGS_KEYS.UPDATE_CHECKING_ENABLED)) { this.checkForUpdates() } @@ -263,6 +271,38 @@ export class AppFrameComponent return this.settingsService.get(SETTINGS_KEYS.AI_ENABLED) } + @HostListener('window:resize') + onWindowResize(): void { + if (!this.isMobileViewport()) { + this.mobileSearchHidden = false + } + } + + @HostListener('window:scroll') + onWindowScroll(): void { + const currentScrollY = window.scrollY + + if (!this.isMobileViewport() || this.isMenuCollapsed === false) { + this.mobileSearchHidden = false + this.lastScrollY = currentScrollY + return + } + + const delta = currentScrollY - this.lastScrollY + + if (currentScrollY <= 0 || delta < -SCROLL_THRESHOLD) { + this.mobileSearchHidden = false + } else if (currentScrollY > SCROLL_THRESHOLD && delta > SCROLL_THRESHOLD) { + this.mobileSearchHidden = true + } + + this.lastScrollY = currentScrollY + } + + private isMobileViewport(): boolean { + return window.innerWidth < 768 + } + closeMenu() { this.isMenuCollapsed = true } diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts b/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts index eaae4a814..1be801478 100644 --- a/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts +++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.spec.ts @@ -24,7 +24,7 @@ import { FILTER_HAS_DOCUMENT_TYPE_ANY, FILTER_HAS_STORAGE_PATH_ANY, FILTER_HAS_TAGS_ALL, - FILTER_TITLE_CONTENT, + FILTER_SIMPLE_TEXT, } from 'src/app/data/filter-rule-type' import { GlobalSearchType, SETTINGS_KEYS } from 'src/app/data/ui-settings' import { DocumentListViewService } from 'src/app/services/document-list-view.service' @@ -545,7 +545,7 @@ describe('GlobalSearchComponent', () => { component.query = 'test' component.runFullSearch() expect(qfSpy).toHaveBeenCalledWith([ - { rule_type: FILTER_TITLE_CONTENT, value: 'test' }, + { rule_type: FILTER_SIMPLE_TEXT, value: 'test' }, ]) settingsService.set( diff --git a/src-ui/src/app/components/app-frame/global-search/global-search.component.ts b/src-ui/src/app/components/app-frame/global-search/global-search.component.ts index 4f9a2467c..e95b52cfc 100644 --- a/src-ui/src/app/components/app-frame/global-search/global-search.component.ts +++ b/src-ui/src/app/components/app-frame/global-search/global-search.component.ts @@ -25,7 +25,7 @@ import { FILTER_HAS_DOCUMENT_TYPE_ANY, FILTER_HAS_STORAGE_PATH_ANY, FILTER_HAS_TAGS_ALL, - FILTER_TITLE_CONTENT, + FILTER_SIMPLE_TEXT, } from 'src/app/data/filter-rule-type' import { ObjectWithId } from 'src/app/data/object-with-id' import { GlobalSearchType, SETTINGS_KEYS } from 'src/app/data/ui-settings' @@ -410,7 +410,7 @@ export class GlobalSearchComponent implements OnInit { public runFullSearch() { const ruleType = this.useAdvancedForFullSearch ? FILTER_FULLTEXT_QUERY - : FILTER_TITLE_CONTENT + : FILTER_SIMPLE_TEXT this.documentService.searchQuery = this.useAdvancedForFullSearch ? this.query : '' diff --git a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts index 89e7b1fee..2466ced73 100644 --- a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts @@ -4,7 +4,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing' import { By } from '@angular/platform-browser' import { NgbAccordionButton, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' import { of, throwError } from 'rxjs' -import { FILTER_TITLE } from 'src/app/data/filter-rule-type' +import { FILTER_SIMPLE_TITLE } from 'src/app/data/filter-rule-type' import { DocumentService } from 'src/app/services/rest/document.service' import { StoragePathService } from 'src/app/services/rest/storage-path.service' import { SettingsService } from 'src/app/services/settings.service' @@ -105,7 +105,7 @@ describe('StoragePathEditDialogComponent', () => { null, 'created', true, - [{ rule_type: FILTER_TITLE, value: 'bar' }], + [{ rule_type: FILTER_SIMPLE_TITLE, value: 'bar' }], { truncate_content: true } ) listSpy.mockReturnValueOnce( diff --git a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts index f06831588..68ce40f5e 100644 --- a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts @@ -23,7 +23,7 @@ import { } from 'rxjs' import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component' import { Document } from 'src/app/data/document' -import { FILTER_TITLE } from 'src/app/data/filter-rule-type' +import { FILTER_SIMPLE_TITLE } from 'src/app/data/filter-rule-type' import { DEFAULT_MATCHING_ALGORITHM } from 'src/app/data/matching-model' import { StoragePath } from 'src/app/data/storage-path' import { IfOwnerDirective } from 'src/app/directives/if-owner.directive' @@ -146,7 +146,7 @@ export class StoragePathEditDialogComponent null, 'created', true, - [{ rule_type: FILTER_TITLE, value: title }], + [{ rule_type: FILTER_SIMPLE_TITLE, value: title }], { truncate_content: true } ) .pipe( diff --git a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts index 9dc5f019f..c8a536eab 100644 --- a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts +++ b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.spec.ts @@ -631,6 +631,59 @@ describe('FilterableDropdownComponent & FilterableDropdownSelectionModel', () => ]) }) + it('deselecting a parent clears selected descendants', () => { + const root: Tag = { id: 100, name: 'Root Tag' } + const child: Tag = { id: 101, name: 'Child Tag', parent: root.id } + const grandchild: Tag = { + id: 102, + name: 'Grandchild Tag', + parent: child.id, + } + const other: Tag = { id: 103, name: 'Other Tag' } + + selectionModel.items = [root, child, grandchild, other] + selectionModel.set(root.id, ToggleableItemState.Selected, false) + selectionModel.set(child.id, ToggleableItemState.Selected, false) + selectionModel.set(grandchild.id, ToggleableItemState.Selected, false) + selectionModel.set(other.id, ToggleableItemState.Selected, false) + + selectionModel.toggle(root.id, false) + + expect(selectionModel.getSelectedItems()).toEqual([other]) + }) + + it('un-excluding a parent clears excluded descendants', () => { + const root: Tag = { id: 110, name: 'Root Tag' } + const child: Tag = { id: 111, name: 'Child Tag', parent: root.id } + const other: Tag = { id: 112, name: 'Other Tag' } + + selectionModel.items = [root, child, other] + selectionModel.set(root.id, ToggleableItemState.Excluded, false) + selectionModel.set(child.id, ToggleableItemState.Excluded, false) + selectionModel.set(other.id, ToggleableItemState.Excluded, false) + + selectionModel.exclude(root.id, false) + + expect(selectionModel.getExcludedItems()).toEqual([other]) + }) + + it('excluding a selected parent clears selected descendants', () => { + const root: Tag = { id: 120, name: 'Root Tag' } + const child: Tag = { id: 121, name: 'Child Tag', parent: root.id } + const other: Tag = { id: 122, name: 'Other Tag' } + + selectionModel.manyToOne = true + selectionModel.items = [root, child, other] + selectionModel.set(root.id, ToggleableItemState.Selected, false) + selectionModel.set(child.id, ToggleableItemState.Selected, false) + selectionModel.set(other.id, ToggleableItemState.Selected, false) + + selectionModel.exclude(root.id, false) + + expect(selectionModel.getExcludedItems()).toEqual([root]) + expect(selectionModel.getSelectedItems()).toEqual([other]) + }) + it('resorts items immediately when document count sorting enabled', () => { const apple: Tag = { id: 55, name: 'Apple' } const zebra: Tag = { id: 56, name: 'Zebra' } diff --git a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts index f5b6ba89c..9b6eb11e4 100644 --- a/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts +++ b/src-ui/src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts @@ -20,9 +20,9 @@ import { Subject, filter, takeUntil } from 'rxjs' import { NEGATIVE_NULL_FILTER_VALUE } from 'src/app/data/filter-rule-type' import { MatchingModel } from 'src/app/data/matching-model' import { ObjectWithPermissions } from 'src/app/data/object-with-permissions' +import { SelectionDataItem } from 'src/app/data/results' import { FilterPipe } from 'src/app/pipes/filter.pipe' import { HotKeyService } from 'src/app/services/hot-key.service' -import { SelectionDataItem } from 'src/app/services/rest/document.service' import { pngxPopperOptions } from 'src/app/utils/popper-options' import { LoadingComponentWithPermissions } from '../../loading-component/loading.component' import { ClearableBadgeComponent } from '../clearable-badge/clearable-badge.component' @@ -235,6 +235,7 @@ export class FilterableDropdownSelectionModel { state == ToggleableItemState.Excluded ) { this.temporarySelectionStates.delete(id) + this.clearDescendantSelections(id) } if (!id) { @@ -261,6 +262,7 @@ export class FilterableDropdownSelectionModel { if (this.manyToOne || this.singleSelect) { this.temporarySelectionStates.set(id, ToggleableItemState.Excluded) + this.clearDescendantSelections(id) if (this.singleSelect) { for (let key of this.temporarySelectionStates.keys()) { @@ -281,9 +283,15 @@ export class FilterableDropdownSelectionModel { newState = ToggleableItemState.NotSelected } this.temporarySelectionStates.set(id, newState) + if (newState == ToggleableItemState.Excluded) { + this.clearDescendantSelections(id) + } } } else if (!id || state == ToggleableItemState.Excluded) { this.temporarySelectionStates.delete(id) + if (id) { + this.clearDescendantSelections(id) + } } if (fireEvent) { @@ -295,6 +303,33 @@ export class FilterableDropdownSelectionModel { return this.selectionStates.get(id) || ToggleableItemState.NotSelected } + private clearDescendantSelections(id: number) { + for (const descendantID of this.getDescendantIDs(id)) { + this.temporarySelectionStates.delete(descendantID) + } + } + + private getDescendantIDs(id: number): number[] { + const descendants: number[] = [] + const queue: number[] = [id] + + while (queue.length) { + const parentID = queue.shift() + for (const item of this._items) { + if ( + typeof item?.id === 'number' && + typeof (item as any)['parent'] === 'number' && + (item as any)['parent'] === parentID + ) { + descendants.push(item.id) + queue.push(item.id) + } + } + } + + return descendants + } + get logicalOperator(): LogicalOperator { return this.temporaryLogicalOperator } diff --git a/src-ui/src/app/components/common/input/document-link/document-link.component.spec.ts b/src-ui/src/app/components/common/input/document-link/document-link.component.spec.ts index 7021012ab..f8a8f3817 100644 --- a/src-ui/src/app/components/common/input/document-link/document-link.component.spec.ts +++ b/src-ui/src/app/components/common/input/document-link/document-link.component.spec.ts @@ -3,7 +3,7 @@ import { provideHttpClientTesting } from '@angular/common/http/testing' import { ComponentFixture, TestBed } from '@angular/core/testing' import { NG_VALUE_ACCESSOR } from '@angular/forms' import { of, throwError } from 'rxjs' -import { FILTER_TITLE } from 'src/app/data/filter-rule-type' +import { FILTER_SIMPLE_TITLE } from 'src/app/data/filter-rule-type' import { DocumentService } from 'src/app/services/rest/document.service' import { DocumentLinkComponent } from './document-link.component' @@ -99,7 +99,7 @@ describe('DocumentLinkComponent', () => { null, 'created', true, - [{ rule_type: FILTER_TITLE, value: 'bar' }], + [{ rule_type: FILTER_SIMPLE_TITLE, value: 'bar' }], { truncate_content: true } ) listSpy.mockReturnValueOnce(throwError(() => new Error())) diff --git a/src-ui/src/app/components/common/input/document-link/document-link.component.ts b/src-ui/src/app/components/common/input/document-link/document-link.component.ts index b50f5701d..9bfb60063 100644 --- a/src-ui/src/app/components/common/input/document-link/document-link.component.ts +++ b/src-ui/src/app/components/common/input/document-link/document-link.component.ts @@ -28,7 +28,7 @@ import { tap, } from 'rxjs' import { Document } from 'src/app/data/document' -import { FILTER_TITLE } from 'src/app/data/filter-rule-type' +import { FILTER_SIMPLE_TITLE } from 'src/app/data/filter-rule-type' import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe' import { DocumentService } from 'src/app/services/rest/document.service' import { AbstractInputComponent } from '../abstract-input' @@ -121,7 +121,7 @@ export class DocumentLinkComponent null, 'created', true, - [{ rule_type: FILTER_TITLE, value: title }], + [{ rule_type: FILTER_SIMPLE_TITLE, value: title }], { truncate_content: true } ) .pipe( diff --git a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts b/src-ui/src/app/components/document-detail/document-detail.component.spec.ts index 5b7d7ef13..504ec79ee 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.spec.ts @@ -959,7 +959,7 @@ describe('DocumentDetailComponent', () => { component.reprocess() const modalCloseSpy = jest.spyOn(openModal, 'close') openModal.componentInstance.confirmClicked.next() - expect(reprocessSpy).toHaveBeenCalledWith([doc.id]) + expect(reprocessSpy).toHaveBeenCalledWith({ documents: [doc.id] }) expect(modalSpy).toHaveBeenCalled() expect(toastSpy).toHaveBeenCalled() expect(modalCloseSpy).toHaveBeenCalled() diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index 25c854e53..91f448056 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -1379,25 +1379,27 @@ export class DocumentDetailComponent modal.componentInstance.btnCaption = $localize`Proceed` modal.componentInstance.confirmClicked.subscribe(() => { modal.componentInstance.buttonsEnabled = false - this.documentsService.reprocessDocuments([this.document.id]).subscribe({ - next: () => { - this.toastService.showInfo( - $localize`Reprocess operation for "${this.document.title}" will begin in the background.` - ) - if (modal) { - modal.close() - } - }, - error: (error) => { - if (modal) { - modal.componentInstance.buttonsEnabled = true - } - this.toastService.showError( - $localize`Error executing operation`, - error - ) - }, - }) + this.documentsService + .reprocessDocuments({ documents: [this.document.id] }) + .subscribe({ + next: () => { + this.toastService.showInfo( + $localize`Reprocess operation for "${this.document.title}" will begin in the background.` + ) + if (modal) { + modal.close() + } + }, + error: (error) => { + if (modal) { + modal.componentInstance.buttonsEnabled = true + } + this.toastService.showError( + $localize`Error executing operation`, + error + ) + }, + }) }) } diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html index 19934ffb8..52b56287a 100644 --- a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -92,7 +92,7 @@ -
@@ -103,13 +103,13 @@ class="btn btn-sm btn-outline-primary" id="dropdownSend" ngbDropdownToggle - [disabled]="disabled || list.selected.size === 0" + [disabled]="disabled || !list.hasSelection || list.allSelected" >
Send
-
@if (emailEnabled) { - } diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts index 2cebe47e0..8f82be1ab 100644 --- a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.spec.ts @@ -13,6 +13,7 @@ import { of, throwError } from 'rxjs' import { Correspondent } from 'src/app/data/correspondent' import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field' import { DocumentType } from 'src/app/data/document-type' +import { FILTER_TITLE } from 'src/app/data/filter-rule-type' import { Results } from 'src/app/data/results' import { StoragePath } from 'src/app/data/storage-path' import { Tag } from 'src/app/data/tag' @@ -273,6 +274,92 @@ describe('BulkEditorComponent', () => { expect(component.customFieldsSelectionModel.selectionSize()).toEqual(1) }) + it('should apply list selection data to tags menu when all filtered documents are selected', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + fixture.detectChanges() + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + jest + .spyOn(documentListViewService, 'selectedCount', 'get') + .mockReturnValue(3) + documentListViewService.selectionData = selectionData + const getSelectionDataSpy = jest.spyOn(documentService, 'getSelectionData') + + component.openTagsDropdown() + + expect(getSelectionDataSpy).not.toHaveBeenCalled() + expect(component.tagSelectionModel.selectionSize()).toEqual(1) + }) + + it('should apply list selection data to document types menu when all filtered documents are selected', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + fixture.detectChanges() + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + documentListViewService.selectionData = selectionData + const getSelectionDataSpy = jest.spyOn(documentService, 'getSelectionData') + + component.openDocumentTypeDropdown() + + expect(getSelectionDataSpy).not.toHaveBeenCalled() + expect(component.documentTypeDocumentCounts).toEqual( + selectionData.selected_document_types + ) + }) + + it('should apply list selection data to correspondents menu when all filtered documents are selected', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + fixture.detectChanges() + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + documentListViewService.selectionData = selectionData + const getSelectionDataSpy = jest.spyOn(documentService, 'getSelectionData') + + component.openCorrespondentDropdown() + + expect(getSelectionDataSpy).not.toHaveBeenCalled() + expect(component.correspondentDocumentCounts).toEqual( + selectionData.selected_correspondents + ) + }) + + it('should apply list selection data to storage paths menu when all filtered documents are selected', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + fixture.detectChanges() + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + documentListViewService.selectionData = selectionData + const getSelectionDataSpy = jest.spyOn(documentService, 'getSelectionData') + + component.openStoragePathDropdown() + + expect(getSelectionDataSpy).not.toHaveBeenCalled() + expect(component.storagePathDocumentCounts).toEqual( + selectionData.selected_storage_paths + ) + }) + + it('should apply list selection data to custom fields menu when all filtered documents are selected', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + fixture.detectChanges() + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + documentListViewService.selectionData = selectionData + const getSelectionDataSpy = jest.spyOn(documentService, 'getSelectionData') + + component.openCustomFieldsDropdown() + + expect(getSelectionDataSpy).not.toHaveBeenCalled() + expect(component.customFieldDocumentCounts).toEqual( + selectionData.selected_custom_fields + ) + }) + it('should execute modify tags bulk operation', () => { jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) jest @@ -300,13 +387,56 @@ describe('BulkEditorComponent', () => { parameters: { add_tags: [101], remove_tags: [] }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` ) // listAllFilteredIds }) + it('should execute modify tags bulk operation for all filtered documents', () => { + jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) + jest + .spyOn(documentListViewService, 'documents', 'get') + .mockReturnValue([{ id: 3 }, { id: 4 }]) + jest + .spyOn(documentListViewService, 'selected', 'get') + .mockReturnValue(new Set([3, 4])) + jest + .spyOn(documentListViewService, 'allSelected', 'get') + .mockReturnValue(true) + jest + .spyOn(documentListViewService, 'filterRules', 'get') + .mockReturnValue([{ rule_type: FILTER_TITLE, value: 'apple' }]) + jest + .spyOn(documentListViewService, 'selectedCount', 'get') + .mockReturnValue(25) + jest + .spyOn(permissionsService, 'currentUserHasObjectPermissions') + .mockReturnValue(true) + component.showConfirmationDialogs = false + fixture.detectChanges() + + component.setTags({ + itemsToAdd: [{ id: 101 }], + itemsToRemove: [], + }) + + const req = httpTestingController.expectOne( + `${environment.apiBaseUrl}documents/bulk_edit/` + ) + req.flush(true) + expect(req.request.body).toEqual({ + all: true, + filters: { title_search: 'apple' }, + method: 'modify_tags', + parameters: { add_tags: [101], remove_tags: [] }, + }) + httpTestingController.match( + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` + ) // list reload + }) + it('should execute modify tags bulk operation with confirmation dialog if enabled', () => { let modal: NgbModalRef modalService.activeInstances.subscribe((m) => (modal = m[0])) @@ -332,7 +462,7 @@ describe('BulkEditorComponent', () => { .expectOne(`${environment.apiBaseUrl}documents/bulk_edit/`) .flush(true) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -423,7 +553,7 @@ describe('BulkEditorComponent', () => { parameters: { correspondent: 101 }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -455,7 +585,7 @@ describe('BulkEditorComponent', () => { .expectOne(`${environment.apiBaseUrl}documents/bulk_edit/`) .flush(true) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -521,7 +651,7 @@ describe('BulkEditorComponent', () => { parameters: { document_type: 101 }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -553,7 +683,7 @@ describe('BulkEditorComponent', () => { .expectOne(`${environment.apiBaseUrl}documents/bulk_edit/`) .flush(true) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -619,7 +749,7 @@ describe('BulkEditorComponent', () => { parameters: { storage_path: 101 }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -651,7 +781,7 @@ describe('BulkEditorComponent', () => { .expectOne(`${environment.apiBaseUrl}documents/bulk_edit/`) .flush(true) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -717,7 +847,7 @@ describe('BulkEditorComponent', () => { parameters: { add_custom_fields: [101], remove_custom_fields: [102] }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -749,7 +879,7 @@ describe('BulkEditorComponent', () => { .expectOne(`${environment.apiBaseUrl}documents/bulk_edit/`) .flush(true) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -858,7 +988,7 @@ describe('BulkEditorComponent', () => { documents: [3, 4], }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -951,7 +1081,7 @@ describe('BulkEditorComponent', () => { documents: [3, 4], }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -986,7 +1116,7 @@ describe('BulkEditorComponent', () => { source_mode: 'latest_version', }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -1027,7 +1157,7 @@ describe('BulkEditorComponent', () => { metadata_document_id: 3, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -1046,7 +1176,7 @@ describe('BulkEditorComponent', () => { delete_originals: true, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -1067,7 +1197,7 @@ describe('BulkEditorComponent', () => { archive_fallback: true, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -1089,22 +1219,39 @@ describe('BulkEditorComponent', () => { component.downloadForm.get('downloadFileTypeArchive').patchValue(true) fixture.detectChanges() let downloadSpy = jest.spyOn(documentService, 'bulkDownload') + downloadSpy.mockReturnValue(of(new Blob())) //archive component.downloadSelected() - expect(downloadSpy).toHaveBeenCalledWith([3, 4], 'archive', false) + expect(downloadSpy).toHaveBeenCalledWith( + { documents: [3, 4] }, + 'archive', + false + ) //originals component.downloadForm.get('downloadFileTypeArchive').patchValue(false) component.downloadForm.get('downloadFileTypeOriginals').patchValue(true) component.downloadSelected() - expect(downloadSpy).toHaveBeenCalledWith([3, 4], 'originals', false) + expect(downloadSpy).toHaveBeenCalledWith( + { documents: [3, 4] }, + 'originals', + false + ) //both component.downloadForm.get('downloadFileTypeArchive').patchValue(true) component.downloadSelected() - expect(downloadSpy).toHaveBeenCalledWith([3, 4], 'both', false) + expect(downloadSpy).toHaveBeenCalledWith( + { documents: [3, 4] }, + 'both', + false + ) //formatting component.downloadForm.get('downloadUseFormatting').patchValue(true) component.downloadSelected() - expect(downloadSpy).toHaveBeenCalledWith([3, 4], 'both', true) + expect(downloadSpy).toHaveBeenCalledWith( + { documents: [3, 4] }, + 'both', + true + ) httpTestingController.match( `${environment.apiBaseUrl}documents/bulk_download/` @@ -1153,7 +1300,7 @@ describe('BulkEditorComponent', () => { }, }) httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` @@ -1450,6 +1597,7 @@ describe('BulkEditorComponent', () => { expect(modal.componentInstance.customFields.length).toEqual(2) expect(modal.componentInstance.fieldsToAddIds).toEqual([1, 2]) + expect(modal.componentInstance.selection).toEqual({ documents: [3, 4] }) expect(modal.componentInstance.documents).toEqual([3, 4]) modal.componentInstance.failed.emit() @@ -1460,7 +1608,7 @@ describe('BulkEditorComponent', () => { expect(toastServiceShowInfoSpy).toHaveBeenCalled() expect(listReloadSpy).toHaveBeenCalled() httpTestingController.match( - `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true` + `${environment.apiBaseUrl}documents/?page=1&page_size=50&ordering=-created&truncate_content=true&include_selection_data=true` ) // list reload httpTestingController.match( `${environment.apiBaseUrl}documents/?page=1&page_size=100000&fields=id` diff --git a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts index c23cd6c5f..a456ec2cb 100644 --- a/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts +++ b/src-ui/src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -16,6 +16,7 @@ import { first, map, Observable, Subject, switchMap, takeUntil } from 'rxjs' import { ConfirmDialogComponent } from 'src/app/components/common/confirm-dialog/confirm-dialog.component' import { CustomField } from 'src/app/data/custom-field' import { MatchingModel } from 'src/app/data/matching-model' +import { SelectionDataItem } from 'src/app/data/results' import { SETTINGS_KEYS } from 'src/app/data/ui-settings' import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive' import { DocumentListViewService } from 'src/app/services/document-list-view.service' @@ -30,9 +31,9 @@ import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service import { DocumentTypeService } from 'src/app/services/rest/document-type.service' import { DocumentBulkEditMethod, + DocumentSelectionQuery, DocumentService, MergeDocumentsRequest, - SelectionDataItem, } from 'src/app/services/rest/document.service' import { SavedViewService } from 'src/app/services/rest/saved-view.service' import { ShareLinkBundleService } from 'src/app/services/rest/share-link-bundle.service' @@ -41,6 +42,7 @@ import { TagService } from 'src/app/services/rest/tag.service' import { SettingsService } from 'src/app/services/settings.service' import { ToastService } from 'src/app/services/toast.service' import { flattenTags } from 'src/app/utils/flatten-tags' +import { queryParamsFromFilterRules } from 'src/app/utils/query-params' import { MergeConfirmDialogComponent } from '../../common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component' import { RotateConfirmDialogComponent } from '../../common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component' import { CorrespondentEditDialogComponent } from '../../common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component' @@ -261,17 +263,13 @@ export class BulkEditorComponent modal: NgbModalRef, method: DocumentBulkEditMethod, args: any, - overrideDocumentIDs?: number[] + overrideSelection?: DocumentSelectionQuery ) { if (modal) { modal.componentInstance.buttonsEnabled = false } this.documentService - .bulkEdit( - overrideDocumentIDs ?? Array.from(this.list.selected), - method, - args - ) + .bulkEdit(overrideSelection ?? this.getSelectionQuery(), method, args) .pipe(first()) .subscribe({ next: () => this.handleOperationSuccess(modal), @@ -329,7 +327,7 @@ export class BulkEditorComponent ) { let selectionData = new Map() items.forEach((i) => { - if (i.document_count == this.list.selected.size) { + if (i.document_count == this.list.selectedCount) { selectionData.set(i.id, ToggleableItemState.Selected) } else if (i.document_count > 0) { selectionData.set(i.id, ToggleableItemState.PartiallySelected) @@ -338,7 +336,31 @@ export class BulkEditorComponent selectionModel.init(selectionData) } + private getSelectionQuery(): DocumentSelectionQuery { + if (this.list.allSelected) { + return { + all: true, + filters: queryParamsFromFilterRules(this.list.filterRules), + } + } + + return { + documents: Array.from(this.list.selected), + } + } + + private getSelectionSize(): number { + return this.list.selectedCount + } + openTagsDropdown() { + if (this.list.allSelected) { + const selectionData = this.list.selectionData + this.tagDocumentCounts = selectionData?.selected_tags ?? [] + this.applySelectionData(this.tagDocumentCounts, this.tagSelectionModel) + return + } + this.documentService .getSelectionData(Array.from(this.list.selected)) .pipe(first()) @@ -349,6 +371,17 @@ export class BulkEditorComponent } openDocumentTypeDropdown() { + if (this.list.allSelected) { + const selectionData = this.list.selectionData + this.documentTypeDocumentCounts = + selectionData?.selected_document_types ?? [] + this.applySelectionData( + this.documentTypeDocumentCounts, + this.documentTypeSelectionModel + ) + return + } + this.documentService .getSelectionData(Array.from(this.list.selected)) .pipe(first()) @@ -362,6 +395,17 @@ export class BulkEditorComponent } openCorrespondentDropdown() { + if (this.list.allSelected) { + const selectionData = this.list.selectionData + this.correspondentDocumentCounts = + selectionData?.selected_correspondents ?? [] + this.applySelectionData( + this.correspondentDocumentCounts, + this.correspondentSelectionModel + ) + return + } + this.documentService .getSelectionData(Array.from(this.list.selected)) .pipe(first()) @@ -375,6 +419,17 @@ export class BulkEditorComponent } openStoragePathDropdown() { + if (this.list.allSelected) { + const selectionData = this.list.selectionData + this.storagePathDocumentCounts = + selectionData?.selected_storage_paths ?? [] + this.applySelectionData( + this.storagePathDocumentCounts, + this.storagePathsSelectionModel + ) + return + } + this.documentService .getSelectionData(Array.from(this.list.selected)) .pipe(first()) @@ -388,6 +443,17 @@ export class BulkEditorComponent } openCustomFieldsDropdown() { + if (this.list.allSelected) { + const selectionData = this.list.selectionData + this.customFieldDocumentCounts = + selectionData?.selected_custom_fields ?? [] + this.applySelectionData( + this.customFieldDocumentCounts, + this.customFieldsSelectionModel + ) + return + } + this.documentService .getSelectionData(Array.from(this.list.selected)) .pipe(first()) @@ -437,33 +503,33 @@ export class BulkEditorComponent changedTags.itemsToRemove.length == 0 ) { let tag = changedTags.itemsToAdd[0] - modal.componentInstance.message = $localize`This operation will add the tag "${tag.name}" to ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will add the tag "${tag.name}" to ${this.getSelectionSize()} selected document(s).` } else if ( changedTags.itemsToAdd.length > 1 && changedTags.itemsToRemove.length == 0 ) { modal.componentInstance.message = $localize`This operation will add the tags ${this._localizeList( changedTags.itemsToAdd - )} to ${this.list.selected.size} selected document(s).` + )} to ${this.getSelectionSize()} selected document(s).` } else if ( changedTags.itemsToAdd.length == 0 && changedTags.itemsToRemove.length == 1 ) { let tag = changedTags.itemsToRemove[0] - modal.componentInstance.message = $localize`This operation will remove the tag "${tag.name}" from ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will remove the tag "${tag.name}" from ${this.getSelectionSize()} selected document(s).` } else if ( changedTags.itemsToAdd.length == 0 && changedTags.itemsToRemove.length > 1 ) { modal.componentInstance.message = $localize`This operation will remove the tags ${this._localizeList( changedTags.itemsToRemove - )} from ${this.list.selected.size} selected document(s).` + )} from ${this.getSelectionSize()} selected document(s).` } else { modal.componentInstance.message = $localize`This operation will add the tags ${this._localizeList( changedTags.itemsToAdd )} and remove the tags ${this._localizeList( changedTags.itemsToRemove - )} on ${this.list.selected.size} selected document(s).` + )} on ${this.getSelectionSize()} selected document(s).` } modal.componentInstance.btnClass = 'btn-warning' @@ -502,9 +568,9 @@ export class BulkEditorComponent }) modal.componentInstance.title = $localize`Confirm correspondent assignment` if (correspondent) { - modal.componentInstance.message = $localize`This operation will assign the correspondent "${correspondent.name}" to ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will assign the correspondent "${correspondent.name}" to ${this.getSelectionSize()} selected document(s).` } else { - modal.componentInstance.message = $localize`This operation will remove the correspondent from ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will remove the correspondent from ${this.getSelectionSize()} selected document(s).` } modal.componentInstance.btnClass = 'btn-warning' modal.componentInstance.btnCaption = $localize`Confirm` @@ -540,9 +606,9 @@ export class BulkEditorComponent }) modal.componentInstance.title = $localize`Confirm document type assignment` if (documentType) { - modal.componentInstance.message = $localize`This operation will assign the document type "${documentType.name}" to ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will assign the document type "${documentType.name}" to ${this.getSelectionSize()} selected document(s).` } else { - modal.componentInstance.message = $localize`This operation will remove the document type from ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will remove the document type from ${this.getSelectionSize()} selected document(s).` } modal.componentInstance.btnClass = 'btn-warning' modal.componentInstance.btnCaption = $localize`Confirm` @@ -578,9 +644,9 @@ export class BulkEditorComponent }) modal.componentInstance.title = $localize`Confirm storage path assignment` if (storagePath) { - modal.componentInstance.message = $localize`This operation will assign the storage path "${storagePath.name}" to ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will assign the storage path "${storagePath.name}" to ${this.getSelectionSize()} selected document(s).` } else { - modal.componentInstance.message = $localize`This operation will remove the storage path from ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will remove the storage path from ${this.getSelectionSize()} selected document(s).` } modal.componentInstance.btnClass = 'btn-warning' modal.componentInstance.btnCaption = $localize`Confirm` @@ -615,33 +681,33 @@ export class BulkEditorComponent changedCustomFields.itemsToRemove.length == 0 ) { let customField = changedCustomFields.itemsToAdd[0] - modal.componentInstance.message = $localize`This operation will assign the custom field "${customField.name}" to ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will assign the custom field "${customField.name}" to ${this.getSelectionSize()} selected document(s).` } else if ( changedCustomFields.itemsToAdd.length > 1 && changedCustomFields.itemsToRemove.length == 0 ) { modal.componentInstance.message = $localize`This operation will assign the custom fields ${this._localizeList( changedCustomFields.itemsToAdd - )} to ${this.list.selected.size} selected document(s).` + )} to ${this.getSelectionSize()} selected document(s).` } else if ( changedCustomFields.itemsToAdd.length == 0 && changedCustomFields.itemsToRemove.length == 1 ) { let customField = changedCustomFields.itemsToRemove[0] - modal.componentInstance.message = $localize`This operation will remove the custom field "${customField.name}" from ${this.list.selected.size} selected document(s).` + modal.componentInstance.message = $localize`This operation will remove the custom field "${customField.name}" from ${this.getSelectionSize()} selected document(s).` } else if ( changedCustomFields.itemsToAdd.length == 0 && changedCustomFields.itemsToRemove.length > 1 ) { modal.componentInstance.message = $localize`This operation will remove the custom fields ${this._localizeList( changedCustomFields.itemsToRemove - )} from ${this.list.selected.size} selected document(s).` + )} from ${this.getSelectionSize()} selected document(s).` } else { modal.componentInstance.message = $localize`This operation will assign the custom fields ${this._localizeList( changedCustomFields.itemsToAdd )} and remove the custom fields ${this._localizeList( changedCustomFields.itemsToRemove - )} on ${this.list.selected.size} selected document(s).` + )} on ${this.getSelectionSize()} selected document(s).` } modal.componentInstance.btnClass = 'btn-warning' @@ -779,7 +845,7 @@ export class BulkEditorComponent backdrop: 'static', }) modal.componentInstance.title = $localize`Confirm` - modal.componentInstance.messageBold = $localize`Move ${this.list.selected.size} selected document(s) to the trash?` + modal.componentInstance.messageBold = $localize`Move ${this.getSelectionSize()} selected document(s) to the trash?` modal.componentInstance.message = $localize`Documents can be restored prior to permanent deletion.` modal.componentInstance.btnClass = 'btn-danger' modal.componentInstance.btnCaption = $localize`Move to trash` @@ -789,13 +855,13 @@ export class BulkEditorComponent modal.componentInstance.buttonsEnabled = false this.executeDocumentAction( modal, - this.documentService.deleteDocuments(Array.from(this.list.selected)) + this.documentService.deleteDocuments(this.getSelectionQuery()) ) }) } else { this.executeDocumentAction( null, - this.documentService.deleteDocuments(Array.from(this.list.selected)) + this.documentService.deleteDocuments(this.getSelectionQuery()) ) } } @@ -811,7 +877,7 @@ export class BulkEditorComponent : 'originals' this.documentService .bulkDownload( - Array.from(this.list.selected), + this.getSelectionQuery(), downloadFileType, this.downloadForm.get('downloadUseFormatting').value ) @@ -827,7 +893,7 @@ export class BulkEditorComponent backdrop: 'static', }) modal.componentInstance.title = $localize`Reprocess confirm` - modal.componentInstance.messageBold = $localize`This operation will permanently recreate the archive files for ${this.list.selected.size} selected document(s).` + modal.componentInstance.messageBold = $localize`This operation will permanently recreate the archive files for ${this.getSelectionSize()} selected document(s).` modal.componentInstance.message = $localize`The archive files will be re-generated with the current settings.` modal.componentInstance.btnClass = 'btn-danger' modal.componentInstance.btnCaption = $localize`Proceed` @@ -837,9 +903,7 @@ export class BulkEditorComponent modal.componentInstance.buttonsEnabled = false this.executeDocumentAction( modal, - this.documentService.reprocessDocuments( - Array.from(this.list.selected) - ) + this.documentService.reprocessDocuments(this.getSelectionQuery()) ) }) } @@ -866,7 +930,7 @@ export class BulkEditorComponent }) const rotateDialog = modal.componentInstance as RotateConfirmDialogComponent rotateDialog.title = $localize`Rotate confirm` - rotateDialog.messageBold = $localize`This operation will add rotated versions of the ${this.list.selected.size} document(s).` + rotateDialog.messageBold = $localize`This operation will add rotated versions of the ${this.getSelectionSize()} document(s).` rotateDialog.btnClass = 'btn-danger' rotateDialog.btnCaption = $localize`Proceed` rotateDialog.documentID = Array.from(this.list.selected)[0] @@ -877,7 +941,7 @@ export class BulkEditorComponent this.executeDocumentAction( modal, this.documentService.rotateDocuments( - Array.from(this.list.selected), + this.getSelectionQuery(), rotateDialog.degrees ) ) @@ -890,7 +954,7 @@ export class BulkEditorComponent }) const mergeDialog = modal.componentInstance as MergeConfirmDialogComponent mergeDialog.title = $localize`Merge confirm` - mergeDialog.messageBold = $localize`This operation will merge ${this.list.selected.size} selected documents into a new document.` + mergeDialog.messageBold = $localize`This operation will merge ${this.getSelectionSize()} selected documents into a new document.` mergeDialog.btnCaption = $localize`Proceed` mergeDialog.documentIDs = Array.from(this.list.selected) mergeDialog.confirmClicked @@ -935,7 +999,7 @@ export class BulkEditorComponent (item) => item.id ) - dialog.documents = Array.from(this.list.selected) + dialog.selection = this.getSelectionQuery() dialog.succeeded.subscribe((result) => { this.toastService.showInfo($localize`Custom fields updated.`) this.list.reload() diff --git a/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.spec.ts b/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.spec.ts index 40ec327ba..1e31c0e05 100644 --- a/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.spec.ts @@ -48,7 +48,7 @@ describe('CustomFieldsBulkEditDialogComponent', () => { .mockReturnValue(of('Success')) const successSpy = jest.spyOn(component.succeeded, 'emit') - component.documents = [1, 2] + component.selection = [1, 2] component.fieldsToAddIds = [1] component.form.controls['1'].setValue('Value 1') component.save() @@ -63,7 +63,7 @@ describe('CustomFieldsBulkEditDialogComponent', () => { .mockReturnValue(throwError(new Error('Error'))) const failSpy = jest.spyOn(component.failed, 'emit') - component.documents = [1, 2] + component.selection = [1, 2] component.fieldsToAddIds = [1] component.form.controls['1'].setValue('Value 1') component.save() diff --git a/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.ts b/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.ts index 8452e5388..7d3878c59 100644 --- a/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.ts +++ b/src-ui/src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.ts @@ -17,7 +17,10 @@ import { SelectComponent } from 'src/app/components/common/input/select/select.c import { TextComponent } from 'src/app/components/common/input/text/text.component' import { UrlComponent } from 'src/app/components/common/input/url/url.component' import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field' -import { DocumentService } from 'src/app/services/rest/document.service' +import { + DocumentSelectionQuery, + DocumentService, +} from 'src/app/services/rest/document.service' import { TextAreaComponent } from '../../../common/input/textarea/textarea.component' @Component({ @@ -76,7 +79,11 @@ export class CustomFieldsBulkEditDialogComponent { public form: FormGroup = new FormGroup({}) - public documents: number[] = [] + public selection: DocumentSelectionQuery = { documents: [] } + + public get documents(): number[] { + return this.selection.documents + } initForm() { Object.keys(this.form.controls).forEach((key) => { @@ -91,7 +98,7 @@ export class CustomFieldsBulkEditDialogComponent { public save() { this.documentService - .bulkEdit(this.documents, 'modify_custom_fields', { + .bulkEdit(this.selection, 'modify_custom_fields', { add_custom_fields: this.form.value, remove_custom_fields: this.fieldsToRemoveIds, }) diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.html b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.html index b154324c7..b3a29aed4 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.html +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.html @@ -15,7 +15,7 @@ } @if (document && displayFields?.includes(DisplayField.TAGS)) { -
+
@for (tagID of tagIDs; track tagID) { } diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss index 508c5251a..dce77802e 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.scss @@ -72,4 +72,14 @@ a { max-width: 80%; row-gap: .2rem; line-height: 1; + + &.tags-no-wrap { + ::ng-deep .badge { + display: inline-block; + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } } diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts index 63cfc5a50..982b3980b 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.spec.ts @@ -82,6 +82,16 @@ describe('DocumentCardSmallComponent', () => { ).toHaveLength(6) }) + it('should clear hidden tag counter when tag count falls below the limit', () => { + expect(component.moreTags).toEqual(3) + + component.document.tags = [1, 2, 3, 4, 5, 6] + fixture.detectChanges() + + expect(component.moreTags).toBeNull() + expect(fixture.nativeElement.textContent).not.toContain('+ 3') + }) + it('should try to close the preview on mouse leave', () => { component.popupPreview = { close: jest.fn(), diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts index ad428dfab..05f84d752 100644 --- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts +++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts @@ -126,6 +126,7 @@ export class DocumentCardSmallComponent this.moreTags = this.document.tags.length - (limit - 1) return this.document.tags.slice(0, limit - 1) } else { + this.moreTags = null return this.document.tags } } diff --git a/src-ui/src/app/components/document-list/document-list.component.html b/src-ui/src/app/components/document-list/document-list.component.html index 176513663..aadec7d77 100644 --- a/src-ui/src/app/components/document-list/document-list.component.html +++ b/src-ui/src/app/components/document-list/document-list.component.html @@ -2,8 +2,8 @@
@@ -17,7 +17,7 @@ Select:
- @if (list.selected.size > 0) { + @if (list.hasSelection) { @@ -127,11 +127,11 @@
Loading... } - @if (list.selected.size > 0) { - {list.collectionSize, plural, =1 {Selected {{list.selected.size}} of one document} other {Selected {{list.selected.size}} of {{list.collectionSize || 0}} documents}} + @if (list.hasSelection) { + {list.collectionSize, plural, =1 {Selected {{list.selectedCount}} of one document} other {Selected {{list.selectedCount}} of {{list.collectionSize || 0}} documents}} } @if (!list.isReloading) { - @if (list.selected.size === 0) { + @if (!list.hasSelection) { {list.collectionSize, plural, =1 {One document} other {{{list.collectionSize || 0}} documents}} } @if (isFiltered) {  (filtered) @@ -142,7 +142,7 @@ Reset filters } - @if (!list.isReloading && list.selected.size > 0) { + @if (!list.isReloading && list.hasSelection) { diff --git a/src-ui/src/app/components/document-list/document-list.component.scss b/src-ui/src/app/components/document-list/document-list.component.scss index 0e10b83da..06f4c4531 100644 --- a/src-ui/src/app/components/document-list/document-list.component.scss +++ b/src-ui/src/app/components/document-list/document-list.component.scss @@ -56,13 +56,20 @@ $paperless-card-breakpoints: ( .sticky-top { z-index: 990; // below main navbar - top: calc(7rem - 2px); // height of navbar (mobile) + top: calc(7rem - 2px); // height of navbar + search row (mobile) + transition: top 0.2s ease; @media (min-width: 580px) { top: 3.5rem; // height of navbar } } +@media (max-width: 579.98px) { + :host-context(main.mobile-search-hidden) .sticky-top { + top: calc(3.5rem - 2px); // height of navbar only when search is hidden + } +} + .table .form-check { padding: 0.2rem; min-height: 0; diff --git a/src-ui/src/app/components/document-list/document-list.component.spec.ts b/src-ui/src/app/components/document-list/document-list.component.spec.ts index 3ea39ccb0..9ea7f27de 100644 --- a/src-ui/src/app/components/document-list/document-list.component.spec.ts +++ b/src-ui/src/app/components/document-list/document-list.component.spec.ts @@ -388,8 +388,8 @@ describe('DocumentListComponent', () => { it('should support select all, none, page & range', () => { jest.spyOn(documentListService, 'documents', 'get').mockReturnValue(docs) jest - .spyOn(documentService, 'listAllFilteredIds') - .mockReturnValue(of(docs.map((d) => d.id))) + .spyOn(documentListService, 'collectionSize', 'get') + .mockReturnValue(docs.length) fixture.detectChanges() expect(documentListService.selected.size).toEqual(0) const docCards = fixture.debugElement.queryAll( @@ -403,7 +403,8 @@ describe('DocumentListComponent', () => { displayModeButtons[2].triggerEventHandler('click') expect(selectAllSpy).toHaveBeenCalled() fixture.detectChanges() - expect(documentListService.selected.size).toEqual(3) + expect(documentListService.allSelected).toBeTruthy() + expect(documentListService.selectedCount).toEqual(3) docCards.forEach((card) => { expect(card.context.selected).toBeTruthy() }) diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index 2cd2ccaf3..eb453d4dc 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -240,7 +240,7 @@ export class DocumentListComponent } get isBulkEditing(): boolean { - return this.list.selected.size > 0 + return this.list.hasSelection } toggleDisplayField(field: DisplayField) { @@ -327,7 +327,7 @@ export class DocumentListComponent }) .pipe(takeUntil(this.unsubscribeNotifier)) .subscribe(() => { - if (this.list.selected.size > 0) { + if (this.list.hasSelection) { this.list.selectNone() } else if (this.isFiltered) { this.resetFilters() @@ -356,7 +356,7 @@ export class DocumentListComponent .pipe(takeUntil(this.unsubscribeNotifier)) .subscribe(() => { if (this.list.documents.length > 0) { - if (this.list.selected.size > 0) { + if (this.list.hasSelection) { this.openDocumentDetail(Array.from(this.list.selected)[0]) } else { this.openDocumentDetail(this.list.documents[0]) diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts index bf5240f1b..d75e38630 100644 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts +++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.spec.ts @@ -67,6 +67,8 @@ import { FILTER_OWNER_DOES_NOT_INCLUDE, FILTER_OWNER_ISNULL, FILTER_SHARED_BY_USER, + FILTER_SIMPLE_TEXT, + FILTER_SIMPLE_TITLE, FILTER_STORAGE_PATH, FILTER_TITLE, FILTER_TITLE_CONTENT, @@ -312,7 +314,7 @@ describe('FilterEditorComponent', () => { expect(component.textFilter).toEqual(null) component.filterRules = [ { - rule_type: FILTER_TITLE_CONTENT, + rule_type: FILTER_SIMPLE_TEXT, value: 'foo', }, ] @@ -320,6 +322,18 @@ describe('FilterEditorComponent', () => { expect(component.textFilterTarget).toEqual('title-content') // TEXT_FILTER_TARGET_TITLE_CONTENT })) + it('should ingest legacy text filter rules for doc title + content', fakeAsync(() => { + expect(component.textFilter).toEqual(null) + component.filterRules = [ + { + rule_type: FILTER_TITLE_CONTENT, + value: 'legacy foo', + }, + ] + expect(component.textFilter).toEqual('legacy foo') + expect(component.textFilterTarget).toEqual('title-content') // TEXT_FILTER_TARGET_TITLE_CONTENT + })) + it('should ingest text filter rules for doc asn', fakeAsync(() => { expect(component.textFilter).toEqual(null) component.filterRules = [ @@ -1117,7 +1131,7 @@ describe('FilterEditorComponent', () => { expect(component.textFilter).toEqual('foo') expect(component.filterRules).toEqual([ { - rule_type: FILTER_TITLE_CONTENT, + rule_type: FILTER_SIMPLE_TEXT, value: 'foo', }, ]) @@ -1136,7 +1150,7 @@ describe('FilterEditorComponent', () => { expect(component.textFilterTarget).toEqual('title') expect(component.filterRules).toEqual([ { - rule_type: FILTER_TITLE, + rule_type: FILTER_SIMPLE_TITLE, value: 'foo', }, ]) @@ -1250,30 +1264,12 @@ describe('FilterEditorComponent', () => { ]) })) - it('should convert user input to correct filter rules on custom fields query', fakeAsync(() => { - component.textFilterInput.nativeElement.value = 'foo' - component.textFilterInput.nativeElement.dispatchEvent(new Event('input')) - const textFieldTargetDropdown = fixture.debugElement.queryAll( - By.directive(NgbDropdownItem) - )[3] - textFieldTargetDropdown.triggerEventHandler('click') // TEXT_FILTER_TARGET_CUSTOM_FIELDS - fixture.detectChanges() - tick(400) - expect(component.textFilterTarget).toEqual('custom-fields') - expect(component.filterRules).toEqual([ - { - rule_type: FILTER_CUSTOM_FIELDS_TEXT, - value: 'foo', - }, - ]) - })) - it('should convert user input to correct filter rules on mime type', fakeAsync(() => { component.textFilterInput.nativeElement.value = 'pdf' component.textFilterInput.nativeElement.dispatchEvent(new Event('input')) const textFieldTargetDropdown = fixture.debugElement.queryAll( By.directive(NgbDropdownItem) - )[4] + )[3] textFieldTargetDropdown.triggerEventHandler('click') // TEXT_FILTER_TARGET_MIME_TYPE fixture.detectChanges() tick(400) @@ -1291,8 +1287,8 @@ describe('FilterEditorComponent', () => { component.textFilterInput.nativeElement.dispatchEvent(new Event('input')) const textFieldTargetDropdown = fixture.debugElement.queryAll( By.directive(NgbDropdownItem) - )[5] - textFieldTargetDropdown.triggerEventHandler('click') // TEXT_FILTER_TARGET_ASN + )[4] + textFieldTargetDropdown.triggerEventHandler('click') // TEXT_FILTER_TARGET_FULLTEXT_QUERY fixture.detectChanges() tick(400) expect(component.textFilterTarget).toEqual('fulltext-query') @@ -1696,12 +1692,56 @@ describe('FilterEditorComponent', () => { ]) })) + it('should convert legacy title filters into full text query when adding a created relative date', fakeAsync(() => { + component.filterRules = [ + { + rule_type: FILTER_TITLE, + value: 'foo', + }, + ] + const dateCreatedDropdown = fixture.debugElement.queryAll( + By.directive(DatesDropdownComponent) + )[0] + component.dateCreatedRelativeDate = RelativeDate.WITHIN_1_WEEK + dateCreatedDropdown.triggerEventHandler('datesSet') + fixture.detectChanges() + tick(400) + expect(component.filterRules).toEqual([ + { + rule_type: FILTER_FULLTEXT_QUERY, + value: 'foo,created:[-1 week to now]', + }, + ]) + })) + + it('should convert simple title filters into full text query when adding a created relative date', fakeAsync(() => { + component.filterRules = [ + { + rule_type: FILTER_SIMPLE_TITLE, + value: 'foo', + }, + ] + const dateCreatedDropdown = fixture.debugElement.queryAll( + By.directive(DatesDropdownComponent) + )[0] + component.dateCreatedRelativeDate = RelativeDate.WITHIN_1_WEEK + dateCreatedDropdown.triggerEventHandler('datesSet') + fixture.detectChanges() + tick(400) + expect(component.filterRules).toEqual([ + { + rule_type: FILTER_FULLTEXT_QUERY, + value: 'foo,created:[-1 week to now]', + }, + ]) + })) + it('should leave relative dates not in quick list intact', fakeAsync(() => { component.textFilterInput.nativeElement.value = 'created:[-2 week to now]' component.textFilterInput.nativeElement.dispatchEvent(new Event('input')) const textFieldTargetDropdown = fixture.debugElement.queryAll( By.directive(NgbDropdownItem) - )[5] + )[4] textFieldTargetDropdown.triggerEventHandler('click') fixture.detectChanges() tick(400) @@ -2031,12 +2071,30 @@ describe('FilterEditorComponent', () => { component.filterRules = [ { - rule_type: FILTER_TITLE, + rule_type: FILTER_SIMPLE_TITLE, value: 'foo', }, ] expect(component.generateFilterName()).toEqual('Title: foo') + component.filterRules = [ + { + rule_type: FILTER_TITLE_CONTENT, + value: 'legacy foo', + }, + ] + expect(component.generateFilterName()).toEqual( + 'Title & content: legacy foo' + ) + + component.filterRules = [ + { + rule_type: FILTER_SIMPLE_TEXT, + value: 'foo', + }, + ] + expect(component.generateFilterName()).toEqual('Title & content: foo') + component.filterRules = [ { rule_type: FILTER_ASN, @@ -2156,6 +2214,36 @@ describe('FilterEditorComponent', () => { }) }) + it('should hide deprecated custom fields target from default text filter targets', () => { + expect(component.textFilterTargets).not.toContainEqual({ + id: 'custom-fields', + name: $localize`Custom fields (Deprecated)`, + }) + }) + + it('should keep deprecated custom fields target available for legacy filters', fakeAsync(() => { + component.filterRules = [ + { + rule_type: FILTER_CUSTOM_FIELDS_TEXT, + value: 'foo', + }, + ] + fixture.detectChanges() + tick() + + expect(component.textFilterTarget).toEqual('custom-fields') + expect(component.textFilterTargets).toContainEqual({ + id: 'custom-fields', + name: $localize`Custom fields (Deprecated)`, + }) + expect(component.filterRules).toEqual([ + { + rule_type: FILTER_CUSTOM_FIELDS_TEXT, + value: 'foo', + }, + ]) + })) + it('should call autocomplete endpoint on input', fakeAsync(() => { component.textFilterTarget = 'fulltext-query' // TEXT_FILTER_TARGET_FULLTEXT_QUERY const autocompleteSpy = jest.spyOn(searchService, 'autocomplete') diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts index b717c13fc..b4e63317a 100644 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts +++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts @@ -71,11 +71,14 @@ import { FILTER_OWNER_DOES_NOT_INCLUDE, FILTER_OWNER_ISNULL, FILTER_SHARED_BY_USER, + FILTER_SIMPLE_TEXT, + FILTER_SIMPLE_TITLE, FILTER_STORAGE_PATH, FILTER_TITLE, FILTER_TITLE_CONTENT, NEGATIVE_NULL_FILTER_VALUE, } from 'src/app/data/filter-rule-type' +import { SelectionData, SelectionDataItem } from 'src/app/data/results' import { PermissionAction, PermissionType, @@ -84,11 +87,7 @@ import { import { CorrespondentService } from 'src/app/services/rest/correspondent.service' import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service' import { DocumentTypeService } from 'src/app/services/rest/document-type.service' -import { - DocumentService, - SelectionData, - SelectionDataItem, -} from 'src/app/services/rest/document.service' +import { DocumentService } from 'src/app/services/rest/document.service' import { SearchService } from 'src/app/services/rest/search.service' import { StoragePathService } from 'src/app/services/rest/storage-path.service' import { TagService } from 'src/app/services/rest/tag.service' @@ -198,10 +197,6 @@ const DEFAULT_TEXT_FILTER_TARGET_OPTIONS = [ name: $localize`Title & content`, }, { id: TEXT_FILTER_TARGET_ASN, name: $localize`ASN` }, - { - id: TEXT_FILTER_TARGET_CUSTOM_FIELDS, - name: $localize`Custom fields`, - }, { id: TEXT_FILTER_TARGET_MIME_TYPE, name: $localize`File type` }, { id: TEXT_FILTER_TARGET_FULLTEXT_QUERY, @@ -209,6 +204,12 @@ const DEFAULT_TEXT_FILTER_TARGET_OPTIONS = [ }, ] +const DEPRECATED_CUSTOM_FIELDS_TEXT_FILTER_TARGET_OPTION = { + // Kept only so legacy saved views can render and be edited away from, remove me eventually + id: TEXT_FILTER_TARGET_CUSTOM_FIELDS, + name: $localize`Custom fields (Deprecated)`, +} + const TEXT_FILTER_TARGET_MORELIKE_OPTION = { id: TEXT_FILTER_TARGET_FULLTEXT_MORELIKE, name: $localize`More like`, @@ -321,8 +322,13 @@ export class FilterEditorComponent return $localize`Custom fields query` case FILTER_TITLE: + case FILTER_SIMPLE_TITLE: return $localize`Title: ${rule.value}` + case FILTER_TITLE_CONTENT: + case FILTER_SIMPLE_TEXT: + return $localize`Title & content: ${rule.value}` + case FILTER_ASN: return $localize`ASN: ${rule.value}` @@ -356,12 +362,16 @@ export class FilterEditorComponent _moreLikeDoc: Document get textFilterTargets() { + let targets = DEFAULT_TEXT_FILTER_TARGET_OPTIONS if (this.textFilterTarget == TEXT_FILTER_TARGET_FULLTEXT_MORELIKE) { - return DEFAULT_TEXT_FILTER_TARGET_OPTIONS.concat([ - TEXT_FILTER_TARGET_MORELIKE_OPTION, + targets = targets.concat([TEXT_FILTER_TARGET_MORELIKE_OPTION]) + } + if (this.textFilterTarget == TEXT_FILTER_TARGET_CUSTOM_FIELDS) { + targets = targets.concat([ + DEPRECATED_CUSTOM_FIELDS_TEXT_FILTER_TARGET_OPTION, ]) } - return DEFAULT_TEXT_FILTER_TARGET_OPTIONS + return targets } textFilterTarget = TEXT_FILTER_TARGET_TITLE_CONTENT @@ -440,10 +450,12 @@ export class FilterEditorComponent value.forEach((rule) => { switch (rule.rule_type) { case FILTER_TITLE: + case FILTER_SIMPLE_TITLE: this._textFilter = rule.value this.textFilterTarget = TEXT_FILTER_TARGET_TITLE break case FILTER_TITLE_CONTENT: + case FILTER_SIMPLE_TEXT: this._textFilter = rule.value this.textFilterTarget = TEXT_FILTER_TARGET_TITLE_CONTENT break @@ -765,12 +777,15 @@ export class FilterEditorComponent this.textFilterTarget == TEXT_FILTER_TARGET_TITLE_CONTENT ) { filterRules.push({ - rule_type: FILTER_TITLE_CONTENT, + rule_type: FILTER_SIMPLE_TEXT, value: this._textFilter.trim(), }) } if (this._textFilter && this.textFilterTarget == TEXT_FILTER_TARGET_TITLE) { - filterRules.push({ rule_type: FILTER_TITLE, value: this._textFilter }) + filterRules.push({ + rule_type: FILTER_SIMPLE_TITLE, + value: this._textFilter, + }) } if (this.textFilterTarget == TEXT_FILTER_TARGET_ASN) { if ( @@ -1012,7 +1027,10 @@ export class FilterEditorComponent ) { existingRule = filterRules.find( (fr) => - fr.rule_type == FILTER_TITLE_CONTENT || fr.rule_type == FILTER_TITLE + fr.rule_type == FILTER_TITLE_CONTENT || + fr.rule_type == FILTER_SIMPLE_TEXT || + fr.rule_type == FILTER_TITLE || + fr.rule_type == FILTER_SIMPLE_TITLE ) existingRule.rule_type = FILTER_FULLTEXT_QUERY } diff --git a/src-ui/src/app/components/manage/document-attributes/document-attributes.component.html b/src-ui/src/app/components/manage/document-attributes/document-attributes.component.html index bee9a29aa..118b61ce3 100644 --- a/src-ui/src/app/components/manage/document-attributes/document-attributes.component.html +++ b/src-ui/src/app/components/manage/document-attributes/document-attributes.component.html @@ -9,8 +9,8 @@
@@ -25,7 +25,7 @@ Select:
- @if (activeManagementList.selectedObjects.size > 0) { + @if (activeManagementList.hasSelection) { @@ -40,11 +40,11 @@
diff --git a/src/documents/templates/account/password_reset.html b/src/documents/templates/account/password_reset.html index 019babd52..64629c76d 100644 --- a/src/documents/templates/account/password_reset.html +++ b/src/documents/templates/account/password_reset.html @@ -14,8 +14,8 @@ {% endif %} {% translate "Email" as i18n_email %}
- - + +
diff --git a/src/documents/templates/account/password_reset_from_key.html b/src/documents/templates/account/password_reset_from_key.html index a9b2c3406..bc06ee85c 100644 --- a/src/documents/templates/account/password_reset_from_key.html +++ b/src/documents/templates/account/password_reset_from_key.html @@ -17,12 +17,12 @@ {% translate "New Password" as i18n_new_password1 %} {% translate "Confirm Password" as i18n_new_password2 %}
- - + +
- - + +
diff --git a/src/documents/templates/account/password_reset_from_key_done.html b/src/documents/templates/account/password_reset_from_key_done.html index 420901a6c..4909ea9be 100644 --- a/src/documents/templates/account/password_reset_from_key_done.html +++ b/src/documents/templates/account/password_reset_from_key_done.html @@ -11,5 +11,5 @@ {% block form_content %} {% url 'account_login' as login_url %} -

{% blocktranslate %}Your new password has been set. You can now log in{% endblocktranslate %}.

+

{% translate "Your new password has been set. You can now" %} {% translate "log in" %}.

{% endblock form_content %} diff --git a/src/documents/templates/account/signup.html b/src/documents/templates/account/signup.html index 9ab79d3df..000cd6366 100644 --- a/src/documents/templates/account/signup.html +++ b/src/documents/templates/account/signup.html @@ -8,7 +8,7 @@ {% block form_top_content %} {% if not FIRST_INSTALL %}

- {% blocktrans %}Already have an account? Sign in{% endblocktrans %} + {% translate "Already have an account?" %} {% translate "Sign in" %}

{% endif %} {% endblock form_top_content %} @@ -16,7 +16,7 @@ {% block form_content %} {% if FIRST_INSTALL %}

- {% blocktrans %}Note: This is the first user account for this installation and will be granted superuser privileges.{% endblocktrans %} + {% translate "Note: This is the first user account for this installation and will be granted superuser privileges." %}

{% endif %} {% translate "Username" as i18n_username %} @@ -24,20 +24,20 @@ {% translate "Password" as i18n_password1 %} {% translate "Password (again)" as i18n_password2 %}
- - + +
- - + +
- - + +
- - + +
diff --git a/src/documents/templates/mfa/authenticate.html b/src/documents/templates/mfa/authenticate.html index cfc29da2b..e86565189 100644 --- a/src/documents/templates/mfa/authenticate.html +++ b/src/documents/templates/mfa/authenticate.html @@ -9,15 +9,15 @@ {% block form_top_content %}

- {% blocktranslate %}Your account is protected by two-factor authentication. Please enter an authenticator code:{% endblocktranslate %} + {% translate "Your account is protected by two-factor authentication. Please enter an authenticator code:" %}

{% endblock form_top_content %} {% block form_content %} {% translate "Code" as i18n_code %}
- - + +
diff --git a/src/documents/templates/socialaccount/authentication_error.html b/src/documents/templates/socialaccount/authentication_error.html index 6450a1678..8891f924e 100644 --- a/src/documents/templates/socialaccount/authentication_error.html +++ b/src/documents/templates/socialaccount/authentication_error.html @@ -7,5 +7,5 @@ {% block form_content %} {% url 'account_login' as login_url %} -

{% blocktranslate %}An error occurred while attempting to login via your social network account. Back to the login page{% endblocktranslate %}

+

{% translate "An error occurred while attempting to login via your social network account. Back to the" %} {% translate "login page" %}

{% endblock form_content %} diff --git a/src/documents/templates/socialaccount/login.html b/src/documents/templates/socialaccount/login.html index 70c71ced2..4e2e595a0 100644 --- a/src/documents/templates/socialaccount/login.html +++ b/src/documents/templates/socialaccount/login.html @@ -7,7 +7,9 @@ {% block form_content %}

- {% blocktrans with provider.name as provider %}You are about to connect a new third-party account from {{ provider }}.{% endblocktrans %} + {% filter force_escape %} + {% blocktrans with provider=provider.name %}You are about to connect a new third-party account from {{ provider }}.{% endblocktrans %} + {% endfilter %}

diff --git a/src/documents/templates/socialaccount/signup.html b/src/documents/templates/socialaccount/signup.html index 01f70a524..cf84ea935 100644 --- a/src/documents/templates/socialaccount/signup.html +++ b/src/documents/templates/socialaccount/signup.html @@ -7,18 +7,20 @@ {% block form_content %}

- {% blocktrans with provider_name=account.get_provider.name %}You are about to use your {{provider_name}} account to login.{% endblocktrans %} - {% blocktrans %}As a final step, please complete the following form:{% endblocktrans %} + {% filter force_escape %} + {% blocktrans with provider_name=account.get_provider.name %}You are about to use your {{ provider_name }} account to login.{% endblocktrans %} + {% endfilter %} + {% translate "As a final step, please complete the following form:" %}

{% translate "Username" as i18n_username %} {% translate "Email (optional)" as i18n_email %}
- - + +
- - + +
{% if redirect_field_value %} diff --git a/src/documents/tests/conftest.py b/src/documents/tests/conftest.py index a33771fd1..5cde34768 100644 --- a/src/documents/tests/conftest.py +++ b/src/documents/tests/conftest.py @@ -1,5 +1,6 @@ import shutil import zoneinfo +from collections.abc import Generator from dataclasses import dataclass from pathlib import Path from typing import TYPE_CHECKING @@ -82,8 +83,8 @@ def sample_doc( return DocumentFactory( title="test", - checksum="42995833e01aea9b3edee44bbfdd7ce1", - archive_checksum="62acb0bcbfbcaa62ca6ad3668e4e404b", + checksum="1093cf6e32adbd16b06969df09215d42c4a3a8938cc18b39455953f08d1ff2ab", + archive_checksum="706124ecde3c31616992fa979caed17a726b1c9ccdba70e82a4ff796cea97ccf", content="test content", pk=1, filename="0000001.pdf", @@ -92,6 +93,26 @@ def sample_doc( ) +@pytest.fixture() +def _search_index( + tmp_path: Path, + settings: SettingsWrapper, +) -> Generator[None, None, None]: + """Create a temp index directory and point INDEX_DIR at it. + + Resets the backend singleton before and after so each test gets a clean + index rather than reusing a stale singleton from another test. + """ + from documents.search import reset_backend + + index_dir = tmp_path / "index" + index_dir.mkdir() + settings.INDEX_DIR = index_dir + reset_backend() + yield + reset_backend() + + @pytest.fixture() def settings_timezone(settings: SettingsWrapper) -> zoneinfo.ZoneInfo: return zoneinfo.ZoneInfo(settings.TIME_ZONE) diff --git a/src/documents/tests/data/v1.17.4.model.pickle b/src/documents/tests/data/v1.17.4.model.pickle deleted file mode 100644 index 4b2734607..000000000 Binary files a/src/documents/tests/data/v1.17.4.model.pickle and /dev/null differ diff --git a/src/documents/tests/factories.py b/src/documents/tests/factories.py index d1d88587c..b0fd68428 100644 --- a/src/documents/tests/factories.py +++ b/src/documents/tests/factories.py @@ -60,7 +60,7 @@ class DocumentFactory(DjangoModelFactory): model = Document title = factory.Faker("sentence", nb_words=4) - checksum = factory.Faker("md5") + checksum = factory.Faker("sha256") content = factory.Faker("paragraph") correspondent = None document_type = None diff --git a/src/documents/tests/management/test_management_sanity_checker.py b/src/documents/tests/management/test_management_sanity_checker.py index 64f21e966..f0752ef10 100644 --- a/src/documents/tests/management/test_management_sanity_checker.py +++ b/src/documents/tests/management/test_management_sanity_checker.py @@ -163,13 +163,23 @@ class TestRenderResultsSummary: class TestDocumentSanityCheckerCommand: def test_no_issues(self, sample_doc: Document) -> None: out = StringIO() - call_command("document_sanity_checker", "--no-progress-bar", stdout=out) + call_command( + "document_sanity_checker", + "--no-progress-bar", + stdout=out, + skip_checks=True, + ) assert "No issues detected" in out.getvalue() def test_missing_original(self, sample_doc: Document) -> None: Path(sample_doc.source_path).unlink() out = StringIO() - call_command("document_sanity_checker", "--no-progress-bar", stdout=out) + call_command( + "document_sanity_checker", + "--no-progress-bar", + stdout=out, + skip_checks=True, + ) output = out.getvalue() assert "ERROR" in output assert "Original of document does not exist" in output @@ -187,7 +197,12 @@ class TestDocumentSanityCheckerCommand: Path(doc.thumbnail_path).touch() out = StringIO() - call_command("document_sanity_checker", "--no-progress-bar", stdout=out) + call_command( + "document_sanity_checker", + "--no-progress-bar", + stdout=out, + skip_checks=True, + ) output = out.getvalue() assert "ERROR" in output assert "Checksum mismatch. Stored: abc, actual:" in output diff --git a/src/paperless_remote/tests/__init__.py b/src/documents/tests/search/__init__.py similarity index 100% rename from src/paperless_remote/tests/__init__.py rename to src/documents/tests/search/__init__.py diff --git a/src/documents/tests/search/conftest.py b/src/documents/tests/search/conftest.py new file mode 100644 index 000000000..ccc26d695 --- /dev/null +++ b/src/documents/tests/search/conftest.py @@ -0,0 +1,33 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +from documents.search._backend import TantivyBackend +from documents.search._backend import reset_backend + +if TYPE_CHECKING: + from collections.abc import Generator + from pathlib import Path + + from pytest_django.fixtures import SettingsWrapper + + +@pytest.fixture +def index_dir(tmp_path: Path, settings: SettingsWrapper) -> Path: + path = tmp_path / "index" + path.mkdir() + settings.INDEX_DIR = path + return path + + +@pytest.fixture +def backend() -> Generator[TantivyBackend, None, None]: + b = TantivyBackend() # path=None → in-memory index + b.open() + try: + yield b + finally: + b.close() + reset_backend() diff --git a/src/documents/tests/search/test_backend.py b/src/documents/tests/search/test_backend.py new file mode 100644 index 000000000..ff9638e63 --- /dev/null +++ b/src/documents/tests/search/test_backend.py @@ -0,0 +1,755 @@ +import pytest +from django.contrib.auth.models import User + +from documents.models import CustomField +from documents.models import CustomFieldInstance +from documents.models import Document +from documents.models import Note +from documents.search._backend import SearchMode +from documents.search._backend import TantivyBackend +from documents.search._backend import get_backend +from documents.search._backend import reset_backend + +pytestmark = [pytest.mark.search, pytest.mark.django_db] + + +class TestWriteBatch: + """Test WriteBatch context manager functionality.""" + + def test_rolls_back_on_exception(self, backend: TantivyBackend): + """Batch operations must rollback on exception to preserve index integrity.""" + doc = Document.objects.create( + title="Rollback Target", + content="should survive", + checksum="RB1", + pk=1, + ) + backend.add_or_update(doc) + + try: + with backend.batch_update() as batch: + batch.remove(doc.pk) + raise RuntimeError("simulated failure") + except RuntimeError: + pass + + r = backend.search( + "should survive", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert r.total == 1 + + +class TestSearch: + """Test search functionality.""" + + def test_text_mode_limits_default_search_to_title_and_content( + self, + backend: TantivyBackend, + ): + """Simple text mode must not match metadata-only fields.""" + doc = Document.objects.create( + title="Invoice document", + content="monthly statement", + checksum="TXT1", + pk=9, + ) + backend.add_or_update(doc) + + metadata_only = backend.search( + "document_type:invoice", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert metadata_only.total == 0 + + content_match = backend.search( + "monthly", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert content_match.total == 1 + + def test_title_mode_limits_default_search_to_title_only( + self, + backend: TantivyBackend, + ): + """Title mode must not match content-only terms.""" + doc = Document.objects.create( + title="Invoice document", + content="monthly statement", + checksum="TXT2", + pk=10, + ) + backend.add_or_update(doc) + + content_only = backend.search( + "monthly", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TITLE, + ) + assert content_only.total == 0 + + title_match = backend.search( + "invoice", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TITLE, + ) + assert title_match.total == 1 + + def test_text_mode_matches_partial_term_substrings( + self, + backend: TantivyBackend, + ): + """Simple text mode should support substring matching within tokens.""" + doc = Document.objects.create( + title="Account access", + content="password reset instructions", + checksum="TXT3", + pk=11, + ) + backend.add_or_update(doc) + + prefix_match = backend.search( + "pass", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert prefix_match.total == 1 + + infix_match = backend.search( + "sswo", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert infix_match.total == 1 + + phrase_match = backend.search( + "sswo re", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert phrase_match.total == 1 + + def test_text_mode_does_not_match_on_partial_term_overlap( + self, + backend: TantivyBackend, + ): + """Simple text mode should not match documents that merely share partial fragments.""" + doc = Document.objects.create( + title="Adobe Acrobat PDF Files", + content="Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + checksum="TXT7", + pk=13, + ) + backend.add_or_update(doc) + + non_match = backend.search( + "raptor", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert non_match.total == 0 + + def test_text_mode_anchors_later_query_tokens_to_token_starts( + self, + backend: TantivyBackend, + ): + """Multi-token simple search should not match later tokens in the middle of a word.""" + exact_doc = Document.objects.create( + title="Z-Berichte 6", + content="monthly report", + checksum="TXT9", + pk=15, + ) + prefix_doc = Document.objects.create( + title="Z-Berichte 60", + content="monthly report", + checksum="TXT10", + pk=16, + ) + false_positive = Document.objects.create( + title="Z-Berichte 16", + content="monthly report", + checksum="TXT11", + pk=17, + ) + backend.add_or_update(exact_doc) + backend.add_or_update(prefix_doc) + backend.add_or_update(false_positive) + + results = backend.search( + "Z-Berichte 6", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + result_ids = {hit["id"] for hit in results.hits} + + assert exact_doc.id in result_ids + assert prefix_doc.id in result_ids + assert false_positive.id not in result_ids + + def test_text_mode_ignores_queries_without_searchable_tokens( + self, + backend: TantivyBackend, + ): + """Simple text mode should safely return no hits for symbol-only strings.""" + doc = Document.objects.create( + title="Guide", + content="This is a guide.", + checksum="TXT8", + pk=14, + ) + backend.add_or_update(doc) + + no_tokens = backend.search( + "!!!", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + assert no_tokens.total == 0 + + def test_title_mode_matches_partial_term_substrings( + self, + backend: TantivyBackend, + ): + """Title mode should support substring matching within title tokens.""" + doc = Document.objects.create( + title="Password guide", + content="reset instructions", + checksum="TXT4", + pk=12, + ) + backend.add_or_update(doc) + + prefix_match = backend.search( + "pass", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TITLE, + ) + assert prefix_match.total == 1 + + infix_match = backend.search( + "sswo", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TITLE, + ) + assert infix_match.total == 1 + + phrase_match = backend.search( + "sswo gu", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TITLE, + ) + assert phrase_match.total == 1 + + def test_scores_normalised_top_hit_is_one(self, backend: TantivyBackend): + """Search scores must be normalized so top hit has score 1.0 for UI consistency.""" + for i, title in enumerate(["bank invoice", "bank statement", "bank receipt"]): + doc = Document.objects.create( + title=title, + content=title, + checksum=f"SN{i}", + pk=10 + i, + ) + backend.add_or_update(doc) + r = backend.search( + "bank", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert r.hits[0]["score"] == pytest.approx(1.0) + assert all(0.0 <= h["score"] <= 1.0 for h in r.hits) + + def test_sort_field_ascending(self, backend: TantivyBackend): + """Searching with sort_reverse=False must return results in ascending ASN order.""" + for asn in [30, 10, 20]: + doc = Document.objects.create( + title="sortable", + content="sortable content", + checksum=f"SFA{asn}", + archive_serial_number=asn, + ) + backend.add_or_update(doc) + + r = backend.search( + "sortable", + user=None, + page=1, + page_size=10, + sort_field="archive_serial_number", + sort_reverse=False, + ) + assert r.total == 3 + asns = [Document.objects.get(pk=h["id"]).archive_serial_number for h in r.hits] + assert asns == [10, 20, 30] + + def test_sort_field_descending(self, backend: TantivyBackend): + """Searching with sort_reverse=True must return results in descending ASN order.""" + for asn in [30, 10, 20]: + doc = Document.objects.create( + title="sortable", + content="sortable content", + checksum=f"SFD{asn}", + archive_serial_number=asn, + ) + backend.add_or_update(doc) + + r = backend.search( + "sortable", + user=None, + page=1, + page_size=10, + sort_field="archive_serial_number", + sort_reverse=True, + ) + assert r.total == 3 + asns = [Document.objects.get(pk=h["id"]).archive_serial_number for h in r.hits] + assert asns == [30, 20, 10] + + def test_fuzzy_threshold_filters_low_score_hits( + self, + backend: TantivyBackend, + settings, + ): + """When ADVANCED_FUZZY_SEARCH_THRESHOLD exceeds all normalized scores, hits must be filtered out.""" + doc = Document.objects.create( + title="Invoice document", + content="financial report", + checksum="FT1", + pk=120, + ) + backend.add_or_update(doc) + + # Threshold above 1.0 filters every hit (normalized scores top out at 1.0) + settings.ADVANCED_FUZZY_SEARCH_THRESHOLD = 1.1 + r = backend.search( + "invoice", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert r.hits == [] + + def test_owner_filter(self, backend: TantivyBackend): + """Document owners can search their private documents; other users cannot access them.""" + owner = User.objects.create_user("owner") + other = User.objects.create_user("other") + doc = Document.objects.create( + title="Private", + content="secret", + checksum="PF1", + pk=20, + owner=owner, + ) + backend.add_or_update(doc) + + assert ( + backend.search( + "secret", + user=owner, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ).total + == 1 + ) + assert ( + backend.search( + "secret", + user=other, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ).total + == 0 + ) + + +class TestRebuild: + """Test index rebuilding functionality.""" + + def test_with_iter_wrapper_called(self, backend: TantivyBackend): + """Index rebuild must pass documents through iter_wrapper for progress tracking.""" + seen = [] + + def wrapper(docs): + for doc in docs: + seen.append(doc.pk) + yield doc + + Document.objects.create(title="Tracked", content="x", checksum="TW1", pk=30) + backend.rebuild(Document.objects.all(), iter_wrapper=wrapper) + assert 30 in seen + + +class TestAutocomplete: + """Test autocomplete functionality.""" + + def test_basic_functionality(self, backend: TantivyBackend): + """Autocomplete must return words matching the given prefix.""" + doc = Document.objects.create( + title="Invoice from Microsoft Corporation", + content="payment details", + checksum="AC1", + pk=40, + ) + backend.add_or_update(doc) + + results = backend.autocomplete("micro", limit=10) + assert "microsoft" in results + + def test_results_ordered_by_document_frequency(self, backend: TantivyBackend): + """Autocomplete results must be ordered by document frequency to prioritize common terms.""" + # "payment" appears in 3 docs; "payslip" in 1 — "pay" prefix should + # return "payment" before "payslip". + for i, (title, checksum) in enumerate( + [ + ("payment invoice", "AF1"), + ("payment receipt", "AF2"), + ("payment confirmation", "AF3"), + ("payslip march", "AF4"), + ], + start=41, + ): + doc = Document.objects.create( + title=title, + content="details", + checksum=checksum, + pk=i, + ) + backend.add_or_update(doc) + + results = backend.autocomplete("pay", limit=10) + assert results.index("payment") < results.index("payslip") + + +class TestMoreLikeThis: + """Test more like this functionality.""" + + def test_excludes_original(self, backend: TantivyBackend): + """More like this queries must exclude the reference document from results.""" + doc1 = Document.objects.create( + title="Important document", + content="financial information", + checksum="MLT1", + pk=50, + ) + doc2 = Document.objects.create( + title="Another document", + content="financial report", + checksum="MLT2", + pk=51, + ) + backend.add_or_update(doc1) + backend.add_or_update(doc2) + + results = backend.more_like_this(doc_id=50, user=None, page=1, page_size=10) + returned_ids = [hit["id"] for hit in results.hits] + assert 50 not in returned_ids # Original document excluded + + def test_with_user_applies_permission_filter(self, backend: TantivyBackend): + """more_like_this with a user must exclude documents that user cannot see.""" + viewer = User.objects.create_user("mlt_viewer") + other = User.objects.create_user("mlt_other") + public_doc = Document.objects.create( + title="Public financial document", + content="quarterly financial analysis report figures", + checksum="MLT3", + pk=52, + ) + private_doc = Document.objects.create( + title="Private financial document", + content="quarterly financial analysis report figures", + checksum="MLT4", + pk=53, + owner=other, + ) + backend.add_or_update(public_doc) + backend.add_or_update(private_doc) + + results = backend.more_like_this(doc_id=52, user=viewer, page=1, page_size=10) + returned_ids = [hit["id"] for hit in results.hits] + # private_doc is owned by other, so viewer cannot see it + assert 53 not in returned_ids + + def test_document_not_in_index_returns_empty(self, backend: TantivyBackend): + """more_like_this for a doc_id absent from the index must return empty results.""" + results = backend.more_like_this(doc_id=9999, user=None, page=1, page_size=10) + assert results.hits == [] + assert results.total == 0 + + +class TestSingleton: + """Test get_backend() and reset_backend() singleton lifecycle.""" + + @pytest.fixture(autouse=True) + def _clean(self): + reset_backend() + yield + reset_backend() + + def test_returns_same_instance_on_repeated_calls(self, index_dir): + """Singleton pattern: repeated calls to get_backend() must return the same instance.""" + assert get_backend() is get_backend() + + def test_reinitializes_when_index_dir_changes(self, tmp_path, settings): + """Backend singleton must reinitialize when INDEX_DIR setting changes for test isolation.""" + settings.INDEX_DIR = tmp_path / "a" + (tmp_path / "a").mkdir() + b1 = get_backend() + + settings.INDEX_DIR = tmp_path / "b" + (tmp_path / "b").mkdir() + b2 = get_backend() + + assert b1 is not b2 + assert b2._path == tmp_path / "b" + + def test_reset_forces_new_instance(self, index_dir): + """reset_backend() must force creation of a new backend instance on next get_backend() call.""" + b1 = get_backend() + reset_backend() + b2 = get_backend() + assert b1 is not b2 + + +class TestFieldHandling: + """Test handling of various document fields.""" + + def test_none_values_handled_correctly(self, backend: TantivyBackend): + """Document fields with None values must not cause indexing errors.""" + doc = Document.objects.create( + title="Test Doc", + content="test content", + checksum="NV1", + pk=60, + original_filename=None, + page_count=None, + ) + # Should not raise an exception + backend.add_or_update(doc) + + results = backend.search( + "test", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 1 + + def test_custom_fields_include_name_and_value(self, backend: TantivyBackend): + """Custom fields must be indexed with both field name and value for structured queries.""" + # Create a custom field + field = CustomField.objects.create( + name="Invoice Number", + data_type=CustomField.FieldDataType.STRING, + ) + doc = Document.objects.create( + title="Invoice", + content="test", + checksum="CF1", + pk=70, + ) + CustomFieldInstance.objects.create( + document=doc, + field=field, + value_text="INV-2024-001", + ) + + # Should not raise an exception during indexing + backend.add_or_update(doc) + + results = backend.search( + "invoice", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 1 + + def test_select_custom_field_indexes_label_not_id(self, backend: TantivyBackend): + """SELECT custom fields must index the human-readable label, not the opaque option ID.""" + field = CustomField.objects.create( + name="Category", + data_type=CustomField.FieldDataType.SELECT, + extra_data={ + "select_options": [ + {"id": "opt_abc", "label": "Invoice"}, + {"id": "opt_def", "label": "Receipt"}, + ], + }, + ) + doc = Document.objects.create( + title="Categorised doc", + content="test", + checksum="SEL1", + pk=71, + ) + CustomFieldInstance.objects.create( + document=doc, + field=field, + value_select="opt_abc", + ) + backend.add_or_update(doc) + + # Label should be findable + results = backend.search( + "custom_fields.value:invoice", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 1 + + # Opaque ID must not appear in the index + results = backend.search( + "custom_fields.value:opt_abc", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 0 + + def test_none_custom_field_value_not_indexed(self, backend: TantivyBackend): + """Custom field instances with no value set must not produce an index entry.""" + field = CustomField.objects.create( + name="Optional", + data_type=CustomField.FieldDataType.SELECT, + extra_data={"select_options": [{"id": "opt_1", "label": "Yes"}]}, + ) + doc = Document.objects.create( + title="Unset field doc", + content="test", + checksum="SEL2", + pk=72, + ) + CustomFieldInstance.objects.create( + document=doc, + field=field, + value_select=None, + ) + backend.add_or_update(doc) + + # The string "none" must not appear as an indexed value + results = backend.search( + "custom_fields.value:none", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 0 + + def test_notes_include_user_information(self, backend: TantivyBackend): + """Notes must be indexed with user information when available for structured queries.""" + user = User.objects.create_user("notewriter") + doc = Document.objects.create( + title="Doc with notes", + content="test", + checksum="NT1", + pk=80, + ) + Note.objects.create(document=doc, note="Important note", user=user) + + # Should not raise an exception during indexing + backend.add_or_update(doc) + + # Test basic document search first + results = backend.search( + "test", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 1, ( + f"Expected 1, got {results.total}. Document content should be searchable." + ) + + # Test notes search — must use structured JSON syntax now that note + # is no longer in DEFAULT_SEARCH_FIELDS + results = backend.search( + "notes.note:important", + user=None, + page=1, + page_size=10, + sort_field=None, + sort_reverse=False, + ) + assert results.total == 1, ( + f"Expected 1, got {results.total}. Note content should be searchable via notes.note: prefix." + ) diff --git a/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py b/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py new file mode 100644 index 000000000..739ea996c --- /dev/null +++ b/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py @@ -0,0 +1,138 @@ +import pytest + +from documents.tests.utils import TestMigrations + +pytestmark = pytest.mark.search + + +class TestMigrateFulltextQueryFieldPrefixes(TestMigrations): + migrate_from = "0016_sha256_checksums" + migrate_to = "0017_migrate_fulltext_query_field_prefixes" + + def setUpBeforeMigration(self, apps) -> None: + User = apps.get_model("auth", "User") + SavedView = apps.get_model("documents", "SavedView") + SavedViewFilterRule = apps.get_model("documents", "SavedViewFilterRule") + + user = User.objects.create(username="testuser") + + def make_rule(value: str): + view = SavedView.objects.create( + owner=user, + name=f"view-{value}", + sort_field="created", + ) + return SavedViewFilterRule.objects.create( + saved_view=view, + rule_type=20, # fulltext query + value=value, + ) + + # Simple field prefixes + self.rule_note = make_rule("note:invoice") + self.rule_cf = make_rule("custom_field:amount") + + # Combined query + self.rule_combined = make_rule("note:invoice AND custom_field:total") + + # Parenthesized groups (Whoosh syntax) + self.rule_parens = make_rule("(note:invoice OR note:receipt)") + + # Prefix operators + self.rule_plus = make_rule("+note:foo") + self.rule_minus = make_rule("-note:bar") + + # Boosted + self.rule_boost = make_rule("note:test^2") + + # Should NOT be rewritten — no field prefix match + self.rule_no_match = make_rule("title:hello content:world") + + # Should NOT false-positive on word boundaries + self.rule_denote = make_rule("denote:foo") + + # Already using new syntax — should be idempotent + self.rule_already_migrated = make_rule("notes.note:foo") + self.rule_already_migrated_cf = make_rule("custom_fields.value:bar") + + # Null value — should not crash + view_null = SavedView.objects.create( + owner=user, + name="view-null", + sort_field="created", + ) + self.rule_null = SavedViewFilterRule.objects.create( + saved_view=view_null, + rule_type=20, + value=None, + ) + + # Non-fulltext rule type — should be untouched + view_other = SavedView.objects.create( + owner=user, + name="view-other-type", + sort_field="created", + ) + self.rule_other_type = SavedViewFilterRule.objects.create( + saved_view=view_other, + rule_type=0, # title contains + value="note:something", + ) + + def test_note_prefix_rewritten(self): + self.rule_note.refresh_from_db() + self.assertEqual(self.rule_note.value, "notes.note:invoice") + + def test_custom_field_prefix_rewritten(self): + self.rule_cf.refresh_from_db() + self.assertEqual(self.rule_cf.value, "custom_fields.value:amount") + + def test_combined_query_rewritten(self): + self.rule_combined.refresh_from_db() + self.assertEqual( + self.rule_combined.value, + "notes.note:invoice AND custom_fields.value:total", + ) + + def test_parenthesized_groups(self): + self.rule_parens.refresh_from_db() + self.assertEqual( + self.rule_parens.value, + "(notes.note:invoice OR notes.note:receipt)", + ) + + def test_plus_prefix(self): + self.rule_plus.refresh_from_db() + self.assertEqual(self.rule_plus.value, "+notes.note:foo") + + def test_minus_prefix(self): + self.rule_minus.refresh_from_db() + self.assertEqual(self.rule_minus.value, "-notes.note:bar") + + def test_boosted(self): + self.rule_boost.refresh_from_db() + self.assertEqual(self.rule_boost.value, "notes.note:test^2") + + def test_no_match_unchanged(self): + self.rule_no_match.refresh_from_db() + self.assertEqual(self.rule_no_match.value, "title:hello content:world") + + def test_word_boundary_no_false_positive(self): + self.rule_denote.refresh_from_db() + self.assertEqual(self.rule_denote.value, "denote:foo") + + def test_already_migrated_idempotent(self): + self.rule_already_migrated.refresh_from_db() + self.assertEqual(self.rule_already_migrated.value, "notes.note:foo") + + def test_already_migrated_cf_idempotent(self): + self.rule_already_migrated_cf.refresh_from_db() + self.assertEqual(self.rule_already_migrated_cf.value, "custom_fields.value:bar") + + def test_null_value_no_crash(self): + self.rule_null.refresh_from_db() + self.assertIsNone(self.rule_null.value) + + def test_non_fulltext_rule_untouched(self): + self.rule_other_type.refresh_from_db() + self.assertEqual(self.rule_other_type.value, "note:something") diff --git a/src/documents/tests/search/test_query.py b/src/documents/tests/search/test_query.py new file mode 100644 index 000000000..74a064dbb --- /dev/null +++ b/src/documents/tests/search/test_query.py @@ -0,0 +1,530 @@ +from __future__ import annotations + +import re +from datetime import UTC +from datetime import datetime +from datetime import tzinfo +from typing import TYPE_CHECKING +from zoneinfo import ZoneInfo + +import pytest +import tantivy +import time_machine + +from documents.search._query import _date_only_range +from documents.search._query import _datetime_range +from documents.search._query import _rewrite_compact_date +from documents.search._query import build_permission_filter +from documents.search._query import normalize_query +from documents.search._query import parse_user_query +from documents.search._query import rewrite_natural_date_keywords +from documents.search._schema import build_schema +from documents.search._tokenizer import register_tokenizers + +if TYPE_CHECKING: + from django.contrib.auth.base_user import AbstractBaseUser + +pytestmark = pytest.mark.search + +EASTERN = ZoneInfo("America/New_York") # UTC-5 / UTC-4 (DST) +AUCKLAND = ZoneInfo("Pacific/Auckland") # UTC+13 in southern-hemisphere summer + + +def _range(result: str, field: str) -> tuple[str, str]: + m = re.search(rf"{field}:\[(.+?) TO (.+?)\]", result) + assert m, f"No range for {field!r} in: {result!r}" + return m.group(1), m.group(2) + + +class TestCreatedDateField: + """ + created is a Django DateField: indexed as midnight UTC of the local calendar + date. No offset arithmetic needed - the local calendar date is what matters. + """ + + @pytest.mark.parametrize( + ("tz", "expected_lo", "expected_hi"), + [ + pytest.param(UTC, "2026-03-28T00:00:00Z", "2026-03-29T00:00:00Z", id="utc"), + pytest.param( + EASTERN, + "2026-03-28T00:00:00Z", + "2026-03-29T00:00:00Z", + id="eastern_same_calendar_date", + ), + ], + ) + @time_machine.travel(datetime(2026, 3, 28, 15, 30, tzinfo=UTC), tick=False) + def test_today(self, tz: tzinfo, expected_lo: str, expected_hi: str) -> None: + lo, hi = _range(rewrite_natural_date_keywords("created:today", tz), "created") + assert lo == expected_lo + assert hi == expected_hi + + @time_machine.travel(datetime(2026, 3, 28, 3, 0, tzinfo=UTC), tick=False) + def test_today_auckland_ahead_of_utc(self) -> None: + # UTC 03:00 -> Auckland (UTC+13) = 16:00 same date; local date = 2026-03-28 + lo, _ = _range( + rewrite_natural_date_keywords("created:today", AUCKLAND), + "created", + ) + assert lo == "2026-03-28T00:00:00Z" + + @pytest.mark.parametrize( + ("field", "keyword", "expected_lo", "expected_hi"), + [ + pytest.param( + "created", + "yesterday", + "2026-03-27T00:00:00Z", + "2026-03-28T00:00:00Z", + id="yesterday", + ), + pytest.param( + "created", + "this_week", + "2026-03-23T00:00:00Z", + "2026-03-30T00:00:00Z", + id="this_week_mon_sun", + ), + pytest.param( + "created", + "last_week", + "2026-03-16T00:00:00Z", + "2026-03-23T00:00:00Z", + id="last_week", + ), + pytest.param( + "created", + "this_month", + "2026-03-01T00:00:00Z", + "2026-04-01T00:00:00Z", + id="this_month", + ), + pytest.param( + "created", + "last_month", + "2026-02-01T00:00:00Z", + "2026-03-01T00:00:00Z", + id="last_month", + ), + pytest.param( + "created", + "this_year", + "2026-01-01T00:00:00Z", + "2027-01-01T00:00:00Z", + id="this_year", + ), + pytest.param( + "created", + "last_year", + "2025-01-01T00:00:00Z", + "2026-01-01T00:00:00Z", + id="last_year", + ), + ], + ) + @time_machine.travel(datetime(2026, 3, 28, 15, 0, tzinfo=UTC), tick=False) + def test_date_keywords( + self, + field: str, + keyword: str, + expected_lo: str, + expected_hi: str, + ) -> None: + # 2026-03-28 is Saturday; Mon-Sun week calculation built into expectations + query = f"{field}:{keyword}" + lo, hi = _range(rewrite_natural_date_keywords(query, UTC), field) + assert lo == expected_lo + assert hi == expected_hi + + @time_machine.travel(datetime(2026, 12, 15, 12, 0, tzinfo=UTC), tick=False) + def test_this_month_december_wraps_to_next_year(self) -> None: + # December: next month must roll over to January 1 of next year + lo, hi = _range( + rewrite_natural_date_keywords("created:this_month", UTC), + "created", + ) + assert lo == "2026-12-01T00:00:00Z" + assert hi == "2027-01-01T00:00:00Z" + + @time_machine.travel(datetime(2026, 1, 15, 12, 0, tzinfo=UTC), tick=False) + def test_last_month_january_wraps_to_previous_year(self) -> None: + # January: last month must roll back to December 1 of previous year + lo, hi = _range( + rewrite_natural_date_keywords("created:last_month", UTC), + "created", + ) + assert lo == "2025-12-01T00:00:00Z" + assert hi == "2026-01-01T00:00:00Z" + + def test_unknown_keyword_raises(self) -> None: + with pytest.raises(ValueError, match="Unknown keyword"): + _date_only_range("bogus_keyword", UTC) + + +class TestDateTimeFields: + """ + added/modified store full UTC datetimes. Natural keywords must convert + the local day boundaries to UTC - timezone offset arithmetic IS required. + """ + + @time_machine.travel(datetime(2026, 3, 28, 15, 30, tzinfo=UTC), tick=False) + def test_added_today_eastern(self) -> None: + # EDT = UTC-4; local midnight 2026-03-28 00:00 EDT = 2026-03-28 04:00 UTC + lo, hi = _range(rewrite_natural_date_keywords("added:today", EASTERN), "added") + assert lo == "2026-03-28T04:00:00Z" + assert hi == "2026-03-29T04:00:00Z" + + @time_machine.travel(datetime(2026, 3, 29, 2, 0, tzinfo=UTC), tick=False) + def test_added_today_auckland_midnight_crossing(self) -> None: + # UTC 02:00 on 2026-03-29 -> Auckland (UTC+13) = 2026-03-29 15:00 local + # Auckland midnight = UTC 2026-03-28 11:00 + lo, hi = _range(rewrite_natural_date_keywords("added:today", AUCKLAND), "added") + assert lo == "2026-03-28T11:00:00Z" + assert hi == "2026-03-29T11:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 15, 0, tzinfo=UTC), tick=False) + def test_modified_today_utc(self) -> None: + lo, hi = _range( + rewrite_natural_date_keywords("modified:today", UTC), + "modified", + ) + assert lo == "2026-03-28T00:00:00Z" + assert hi == "2026-03-29T00:00:00Z" + + @pytest.mark.parametrize( + ("keyword", "expected_lo", "expected_hi"), + [ + pytest.param( + "yesterday", + "2026-03-27T00:00:00Z", + "2026-03-28T00:00:00Z", + id="yesterday", + ), + pytest.param( + "this_week", + "2026-03-23T00:00:00Z", + "2026-03-30T00:00:00Z", + id="this_week", + ), + pytest.param( + "last_week", + "2026-03-16T00:00:00Z", + "2026-03-23T00:00:00Z", + id="last_week", + ), + pytest.param( + "this_month", + "2026-03-01T00:00:00Z", + "2026-04-01T00:00:00Z", + id="this_month", + ), + pytest.param( + "last_month", + "2026-02-01T00:00:00Z", + "2026-03-01T00:00:00Z", + id="last_month", + ), + pytest.param( + "this_year", + "2026-01-01T00:00:00Z", + "2027-01-01T00:00:00Z", + id="this_year", + ), + pytest.param( + "last_year", + "2025-01-01T00:00:00Z", + "2026-01-01T00:00:00Z", + id="last_year", + ), + ], + ) + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_datetime_keywords_utc( + self, + keyword: str, + expected_lo: str, + expected_hi: str, + ) -> None: + # 2026-03-28 is Saturday; weekday()==5 so Monday=2026-03-23 + lo, hi = _range(rewrite_natural_date_keywords(f"added:{keyword}", UTC), "added") + assert lo == expected_lo + assert hi == expected_hi + + @time_machine.travel(datetime(2026, 12, 15, 12, 0, tzinfo=UTC), tick=False) + def test_this_month_december_wraps_to_next_year(self) -> None: + # December: next month wraps to January of next year + lo, hi = _range(rewrite_natural_date_keywords("added:this_month", UTC), "added") + assert lo == "2026-12-01T00:00:00Z" + assert hi == "2027-01-01T00:00:00Z" + + @time_machine.travel(datetime(2026, 1, 15, 12, 0, tzinfo=UTC), tick=False) + def test_last_month_january_wraps_to_previous_year(self) -> None: + # January: last month wraps back to December of previous year + lo, hi = _range(rewrite_natural_date_keywords("added:last_month", UTC), "added") + assert lo == "2025-12-01T00:00:00Z" + assert hi == "2026-01-01T00:00:00Z" + + def test_unknown_keyword_raises(self) -> None: + with pytest.raises(ValueError, match="Unknown keyword"): + _datetime_range("bogus_keyword", UTC) + + +class TestWhooshQueryRewriting: + """All Whoosh query syntax variants must be rewritten to ISO 8601 before Tantivy parses them.""" + + @time_machine.travel(datetime(2026, 3, 28, 15, 0, tzinfo=UTC), tick=False) + def test_compact_date_shim_rewrites_to_iso(self) -> None: + result = rewrite_natural_date_keywords("created:20240115120000", UTC) + assert "2024-01-15" in result + assert "20240115120000" not in result + + @time_machine.travel(datetime(2026, 3, 28, 15, 0, tzinfo=UTC), tick=False) + def test_relative_range_shim_removes_now(self) -> None: + result = rewrite_natural_date_keywords("added:[now-7d TO now]", UTC) + assert "now" not in result + assert "2026-03-" in result + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_minus_7_days(self) -> None: + lo, hi = _range( + rewrite_natural_date_keywords("added:[-7 days to now]", UTC), + "added", + ) + assert lo == "2026-03-21T12:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_minus_1_week(self) -> None: + lo, hi = _range( + rewrite_natural_date_keywords("added:[-1 week to now]", UTC), + "added", + ) + assert lo == "2026-03-21T12:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_minus_1_month_uses_relativedelta(self) -> None: + # relativedelta(months=1) from 2026-03-28 = 2026-02-28 (not 29) + lo, hi = _range( + rewrite_natural_date_keywords("created:[-1 month to now]", UTC), + "created", + ) + assert lo == "2026-02-28T12:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_minus_1_year(self) -> None: + lo, hi = _range( + rewrite_natural_date_keywords("modified:[-1 year to now]", UTC), + "modified", + ) + assert lo == "2025-03-28T12:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_plural_unit_hours(self) -> None: + lo, hi = _range( + rewrite_natural_date_keywords("added:[-3 hours to now]", UTC), + "added", + ) + assert lo == "2026-03-28T09:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_bracket_case_insensitive(self) -> None: + result = rewrite_natural_date_keywords("added:[-1 WEEK TO NOW]", UTC) + assert "now" not in result.lower() + lo, hi = _range(result, "added") + assert lo == "2026-03-21T12:00:00Z" + assert hi == "2026-03-28T12:00:00Z" + + @time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False) + def test_relative_range_swaps_bounds_when_lo_exceeds_hi(self) -> None: + # [now+1h TO now-1h] has lo > hi before substitution; they must be swapped + lo, hi = _range( + rewrite_natural_date_keywords("added:[now+1h TO now-1h]", UTC), + "added", + ) + assert lo == "2026-03-28T11:00:00Z" + assert hi == "2026-03-28T13:00:00Z" + + def test_8digit_created_date_field_always_uses_utc_midnight(self) -> None: + # created is a DateField: boundaries are always UTC midnight, no TZ offset + result = rewrite_natural_date_keywords("created:20231201", EASTERN) + lo, hi = _range(result, "created") + assert lo == "2023-12-01T00:00:00Z" + assert hi == "2023-12-02T00:00:00Z" + + def test_8digit_added_datetime_field_converts_local_midnight_to_utc(self) -> None: + # added is DateTimeField: midnight Dec 1 Eastern (EST = UTC-5) = 05:00 UTC + result = rewrite_natural_date_keywords("added:20231201", EASTERN) + lo, hi = _range(result, "added") + assert lo == "2023-12-01T05:00:00Z" + assert hi == "2023-12-02T05:00:00Z" + + def test_8digit_modified_datetime_field_converts_local_midnight_to_utc( + self, + ) -> None: + result = rewrite_natural_date_keywords("modified:20231201", EASTERN) + lo, hi = _range(result, "modified") + assert lo == "2023-12-01T05:00:00Z" + assert hi == "2023-12-02T05:00:00Z" + + def test_8digit_invalid_date_passes_through_unchanged(self) -> None: + assert rewrite_natural_date_keywords("added:20231340", UTC) == "added:20231340" + + def test_compact_14digit_invalid_date_passes_through_unchanged(self) -> None: + # Month=13 makes datetime() raise ValueError; the token must be left as-is + assert _rewrite_compact_date("20231300120000") == "20231300120000" + + +class TestParseUserQuery: + """parse_user_query runs the full preprocessing pipeline.""" + + @pytest.fixture + def query_index(self) -> tantivy.Index: + schema = build_schema() + idx = tantivy.Index(schema, path=None) + register_tokenizers(idx, "") + return idx + + def test_returns_tantivy_query(self, query_index: tantivy.Index) -> None: + assert isinstance(parse_user_query(query_index, "invoice", UTC), tantivy.Query) + + def test_fuzzy_mode_does_not_raise( + self, + query_index: tantivy.Index, + settings, + ) -> None: + settings.ADVANCED_FUZZY_SEARCH_THRESHOLD = 0.5 + assert isinstance(parse_user_query(query_index, "invoice", UTC), tantivy.Query) + + def test_date_rewriting_applied_before_tantivy_parse( + self, + query_index: tantivy.Index, + ) -> None: + # created:today must be rewritten to an ISO range before Tantivy parses it; + # if passed raw, Tantivy would reject "today" as an invalid date value + with time_machine.travel(datetime(2026, 3, 28, 12, 0, tzinfo=UTC), tick=False): + q = parse_user_query(query_index, "created:today", UTC) + assert isinstance(q, tantivy.Query) + + +class TestPassthrough: + """Queries without field prefixes or unrelated content pass through unchanged.""" + + def test_bare_keyword_no_field_prefix_unchanged(self) -> None: + # Bare 'today' with no field: prefix passes through unchanged + result = rewrite_natural_date_keywords("bank statement today", UTC) + assert "today" in result + + def test_unrelated_query_unchanged(self) -> None: + assert rewrite_natural_date_keywords("title:invoice", UTC) == "title:invoice" + + +class TestNormalizeQuery: + """normalize_query expands comma-separated values and collapses whitespace.""" + + def test_normalize_expands_comma_separated_tags(self) -> None: + assert normalize_query("tag:foo,bar") == "tag:foo AND tag:bar" + + def test_normalize_expands_three_values(self) -> None: + assert normalize_query("tag:foo,bar,baz") == "tag:foo AND tag:bar AND tag:baz" + + def test_normalize_collapses_whitespace(self) -> None: + assert normalize_query("bank statement") == "bank statement" + + def test_normalize_no_commas_unchanged(self) -> None: + assert normalize_query("bank statement") == "bank statement" + + +class TestPermissionFilter: + """ + build_permission_filter tests use an in-memory index — no DB access needed. + + Users are constructed as unsaved model instances (django_user_model(pk=N)) + so no database round-trip occurs; only .pk is read by build_permission_filter. + """ + + @pytest.fixture + def perm_index(self) -> tantivy.Index: + schema = build_schema() + idx = tantivy.Index(schema, path=None) + register_tokenizers(idx, "") + return idx + + def _add_doc( + self, + idx: tantivy.Index, + doc_id: int, + owner_id: int | None = None, + viewer_ids: tuple[int, ...] = (), + ) -> None: + writer = idx.writer() + doc = tantivy.Document() + doc.add_unsigned("id", doc_id) + # Only add owner_id field if the document has an owner + if owner_id is not None: + doc.add_unsigned("owner_id", owner_id) + for vid in viewer_ids: + doc.add_unsigned("viewer_id", vid) + writer.add_document(doc) + writer.commit() + idx.reload() + + def test_perm_no_owner_visible_to_any_user( + self, + perm_index: tantivy.Index, + django_user_model: type[AbstractBaseUser], + ) -> None: + """Documents with no owner must be visible to every user.""" + self._add_doc(perm_index, doc_id=1, owner_id=None) + user = django_user_model(pk=99) + perm = build_permission_filter(perm_index.schema, user) + assert perm_index.searcher().search(perm, limit=10).count == 1 + + def test_perm_owned_by_user_is_visible( + self, + perm_index: tantivy.Index, + django_user_model: type[AbstractBaseUser], + ) -> None: + """A document owned by the requesting user must be visible.""" + self._add_doc(perm_index, doc_id=2, owner_id=42) + user = django_user_model(pk=42) + perm = build_permission_filter(perm_index.schema, user) + assert perm_index.searcher().search(perm, limit=10).count == 1 + + def test_perm_owned_by_other_not_visible( + self, + perm_index: tantivy.Index, + django_user_model: type[AbstractBaseUser], + ) -> None: + """A document owned by a different user must not be visible.""" + self._add_doc(perm_index, doc_id=3, owner_id=42) + user = django_user_model(pk=99) + perm = build_permission_filter(perm_index.schema, user) + assert perm_index.searcher().search(perm, limit=10).count == 0 + + def test_perm_shared_viewer_is_visible( + self, + perm_index: tantivy.Index, + django_user_model: type[AbstractBaseUser], + ) -> None: + """A document explicitly shared with a user must be visible to that user.""" + self._add_doc(perm_index, doc_id=4, owner_id=42, viewer_ids=(99,)) + user = django_user_model(pk=99) + perm = build_permission_filter(perm_index.schema, user) + assert perm_index.searcher().search(perm, limit=10).count == 1 + + def test_perm_only_owned_docs_hidden_from_others( + self, + perm_index: tantivy.Index, + django_user_model: type[AbstractBaseUser], + ) -> None: + """Only unowned documents appear when the user owns none of them.""" + self._add_doc(perm_index, doc_id=5, owner_id=10) # owned by 10 + self._add_doc(perm_index, doc_id=6, owner_id=None) # unowned + user = django_user_model(pk=20) + perm = build_permission_filter(perm_index.schema, user) + assert perm_index.searcher().search(perm, limit=10).count == 1 # only unowned diff --git a/src/documents/tests/search/test_schema.py b/src/documents/tests/search/test_schema.py new file mode 100644 index 000000000..1ff9bee32 --- /dev/null +++ b/src/documents/tests/search/test_schema.py @@ -0,0 +1,63 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +from documents.search._schema import SCHEMA_VERSION +from documents.search._schema import needs_rebuild + +if TYPE_CHECKING: + from pathlib import Path + + from pytest_django.fixtures import SettingsWrapper + +pytestmark = pytest.mark.search + + +class TestNeedsRebuild: + """needs_rebuild covers all sentinel-file states that require a full reindex.""" + + def test_returns_true_when_version_file_missing(self, index_dir: Path) -> None: + assert needs_rebuild(index_dir) is True + + def test_returns_false_when_version_and_language_match( + self, + index_dir: Path, + settings: SettingsWrapper, + ) -> None: + settings.SEARCH_LANGUAGE = "en" + (index_dir / ".schema_version").write_text(str(SCHEMA_VERSION)) + (index_dir / ".schema_language").write_text("en") + assert needs_rebuild(index_dir) is False + + def test_returns_true_on_schema_version_mismatch(self, index_dir: Path) -> None: + (index_dir / ".schema_version").write_text(str(SCHEMA_VERSION - 1)) + assert needs_rebuild(index_dir) is True + + def test_returns_true_when_version_file_not_an_integer( + self, + index_dir: Path, + ) -> None: + (index_dir / ".schema_version").write_text("not-a-number") + assert needs_rebuild(index_dir) is True + + def test_returns_true_when_language_sentinel_missing( + self, + index_dir: Path, + settings: SettingsWrapper, + ) -> None: + settings.SEARCH_LANGUAGE = "en" + (index_dir / ".schema_version").write_text(str(SCHEMA_VERSION)) + # .schema_language intentionally absent + assert needs_rebuild(index_dir) is True + + def test_returns_true_when_language_sentinel_content_differs( + self, + index_dir: Path, + settings: SettingsWrapper, + ) -> None: + settings.SEARCH_LANGUAGE = "de" + (index_dir / ".schema_version").write_text(str(SCHEMA_VERSION)) + (index_dir / ".schema_language").write_text("en") + assert needs_rebuild(index_dir) is True diff --git a/src/documents/tests/search/test_tokenizer.py b/src/documents/tests/search/test_tokenizer.py new file mode 100644 index 000000000..fc2c41231 --- /dev/null +++ b/src/documents/tests/search/test_tokenizer.py @@ -0,0 +1,111 @@ +from __future__ import annotations + +import logging +from typing import TYPE_CHECKING + +import pytest +import tantivy + +from documents.search._tokenizer import _bigram_analyzer +from documents.search._tokenizer import _paperless_text +from documents.search._tokenizer import _simple_search_analyzer +from documents.search._tokenizer import register_tokenizers + +if TYPE_CHECKING: + from _pytest.logging import LogCaptureFixture + +pytestmark = pytest.mark.search + + +class TestTokenizers: + @pytest.fixture + def content_index(self) -> tantivy.Index: + """Index with just a content field for ASCII folding tests.""" + sb = tantivy.SchemaBuilder() + sb.add_text_field("content", stored=True, tokenizer_name="paperless_text") + schema = sb.build() + idx = tantivy.Index(schema, path=None) + idx.register_tokenizer("paperless_text", _paperless_text("")) + return idx + + @pytest.fixture + def bigram_index(self) -> tantivy.Index: + """Index with bigram field for CJK tests.""" + sb = tantivy.SchemaBuilder() + sb.add_text_field( + "bigram_content", + stored=False, + tokenizer_name="bigram_analyzer", + ) + schema = sb.build() + idx = tantivy.Index(schema, path=None) + idx.register_tokenizer("bigram_analyzer", _bigram_analyzer()) + return idx + + @pytest.fixture + def simple_search_index(self) -> tantivy.Index: + """Index with simple-search field for Latin substring tests.""" + sb = tantivy.SchemaBuilder() + sb.add_text_field( + "simple_content", + stored=False, + tokenizer_name="simple_search_analyzer", + ) + schema = sb.build() + idx = tantivy.Index(schema, path=None) + idx.register_tokenizer("simple_search_analyzer", _simple_search_analyzer()) + return idx + + def test_ascii_fold_finds_accented_content( + self, + content_index: tantivy.Index, + ) -> None: + """ASCII folding allows searching accented text with plain ASCII queries.""" + writer = content_index.writer() + doc = tantivy.Document() + doc.add_text("content", "café résumé") + writer.add_document(doc) + writer.commit() + content_index.reload() + q = content_index.parse_query("cafe resume", ["content"]) + assert content_index.searcher().search(q, limit=5).count == 1 + + def test_bigram_finds_cjk_substring(self, bigram_index: tantivy.Index) -> None: + """Bigram tokenizer enables substring search in CJK languages without whitespace delimiters.""" + writer = bigram_index.writer() + doc = tantivy.Document() + doc.add_text("bigram_content", "東京都") + writer.add_document(doc) + writer.commit() + bigram_index.reload() + q = bigram_index.parse_query("東京", ["bigram_content"]) + assert bigram_index.searcher().search(q, limit=5).count == 1 + + def test_simple_search_analyzer_supports_regex_substrings( + self, + simple_search_index: tantivy.Index, + ) -> None: + """Whitespace-preserving simple search analyzer supports substring regex matching.""" + writer = simple_search_index.writer() + doc = tantivy.Document() + doc.add_text("simple_content", "tag:invoice password-reset") + writer.add_document(doc) + writer.commit() + simple_search_index.reload() + q = tantivy.Query.regex_query( + simple_search_index.schema, + "simple_content", + ".*sswo.*", + ) + assert simple_search_index.searcher().search(q, limit=5).count == 1 + + def test_unsupported_language_logs_warning(self, caplog: LogCaptureFixture) -> None: + """Unsupported language codes should log a warning and disable stemming gracefully.""" + sb = tantivy.SchemaBuilder() + sb.add_text_field("content", stored=True, tokenizer_name="paperless_text") + schema = sb.build() + idx = tantivy.Index(schema, path=None) + + with caplog.at_level(logging.WARNING, logger="paperless.search"): + register_tokenizers(idx, "klingon") + assert "klingon" in caplog.text diff --git a/src/documents/tests/test_admin.py b/src/documents/tests/test_admin.py index de2f07df5..533319c2f 100644 --- a/src/documents/tests/test_admin.py +++ b/src/documents/tests/test_admin.py @@ -1,6 +1,7 @@ import types from unittest.mock import patch +import tantivy from django.contrib.admin.sites import AdminSite from django.contrib.auth.models import Permission from django.contrib.auth.models import User @@ -8,36 +9,54 @@ from django.test import TestCase from django.utils import timezone from rest_framework import status -from documents import index from documents.admin import DocumentAdmin from documents.admin import TagAdmin from documents.models import Document from documents.models import Tag +from documents.search import get_backend +from documents.search import reset_backend from documents.tests.utils import DirectoriesMixin from paperless.admin import PaperlessUserAdmin class TestDocumentAdmin(DirectoriesMixin, TestCase): def get_document_from_index(self, doc): - ix = index.open_index() - with ix.searcher() as searcher: - return searcher.document(id=doc.id) + backend = get_backend() + searcher = backend._index.searcher() + results = searcher.search( + tantivy.Query.range_query( + backend._schema, + "id", + tantivy.FieldType.Unsigned, + doc.pk, + doc.pk, + ), + limit=1, + ) + if results.hits: + return searcher.doc(results.hits[0][1]).to_dict() + return None def setUp(self) -> None: super().setUp() + reset_backend() self.doc_admin = DocumentAdmin(model=Document, admin_site=AdminSite()) + def tearDown(self) -> None: + reset_backend() + super().tearDown() + def test_save_model(self) -> None: doc = Document.objects.create(title="test") doc.title = "new title" self.doc_admin.save_model(None, doc, None, None) self.assertEqual(Document.objects.get(id=doc.id).title, "new title") - self.assertEqual(self.get_document_from_index(doc)["id"], doc.id) + self.assertEqual(self.get_document_from_index(doc)["id"], [doc.id]) def test_delete_model(self) -> None: doc = Document.objects.create(title="test") - index.add_or_update_document(doc) + get_backend().add_or_update(doc) self.assertIsNotNone(self.get_document_from_index(doc)) self.doc_admin.delete_model(None, doc) @@ -53,7 +72,7 @@ class TestDocumentAdmin(DirectoriesMixin, TestCase): checksum=f"{i:02}", ) docs.append(doc) - index.add_or_update_document(doc) + get_backend().add_or_update(doc) self.assertEqual(Document.objects.count(), 42) diff --git a/src/documents/tests/test_api_app_config.py b/src/documents/tests/test_api_app_config.py index 7717c3488..b946bc1bf 100644 --- a/src/documents/tests/test_api_app_config.py +++ b/src/documents/tests/test_api_app_config.py @@ -5,6 +5,7 @@ from unittest.mock import patch from django.contrib.auth.models import User from django.core.files.uploadedfile import SimpleUploadedFile +from django.test import override_settings from rest_framework import status from rest_framework.test import APITestCase @@ -693,3 +694,17 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): content_type="application/json", ) mock_update.assert_called_once() + + @override_settings(LLM_ALLOW_INTERNAL_ENDPOINTS=False) + def test_update_llm_endpoint_blocks_internal_endpoint_when_disallowed(self) -> None: + response = self.client.patch( + f"{self.ENDPOINT}1/", + json.dumps( + { + "llm_endpoint": "http://127.0.0.1:11434", + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn("non-public address", str(response.data).lower()) diff --git a/src/documents/tests/test_api_bulk_edit.py b/src/documents/tests/test_api_bulk_edit.py index 04c3b5ff8..ff780dccd 100644 --- a/src/documents/tests/test_api_bulk_edit.py +++ b/src/documents/tests/test_api_bulk_edit.py @@ -262,6 +262,50 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.assertEqual(kwargs["add_custom_fields"], [self.cf1.id]) self.assertEqual(kwargs["remove_custom_fields"], [self.cf2.id]) + @mock.patch("documents.serialisers.bulk_edit.modify_custom_fields") + def test_api_modify_custom_fields_documentlink_forbidden_for_unpermitted_target( + self, + m, + ) -> None: + self.setup_mock(m, "modify_custom_fields") + user = User.objects.create_user(username="doc-owner") + user.user_permissions.add(Permission.objects.get(codename="change_document")) + other_user = User.objects.create_user(username="other-user") + source_doc = Document.objects.create( + checksum="source", + title="Source", + owner=user, + ) + target_doc = Document.objects.create( + checksum="target", + title="Target", + owner=other_user, + ) + doclink_field = CustomField.objects.create( + name="doclink", + data_type=CustomField.FieldDataType.DOCUMENTLINK, + ) + + self.client.force_authenticate(user=user) + + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "documents": [source_doc.id], + "method": "modify_custom_fields", + "parameters": { + "add_custom_fields": {doclink_field.id: [target_doc.id]}, + "remove_custom_fields": [], + }, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + m.assert_not_called() + @mock.patch("documents.serialisers.bulk_edit.modify_custom_fields") def test_api_modify_custom_fields_with_values(self, m) -> None: self.setup_mock(m, "modify_custom_fields") @@ -570,6 +614,63 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(Document.objects.count(), 5) + def test_api_requires_documents_unless_all_is_true(self) -> None: + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "method": "set_storage_path", + "parameters": {"storage_path": self.sp1.id}, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn(b"documents is required unless all is true", response.content) + + @mock.patch("documents.serialisers.bulk_edit.set_storage_path") + def test_api_bulk_edit_with_all_true_resolves_documents_from_filters( + self, + m, + ) -> None: + self.setup_mock(m, "set_storage_path") + + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "all": True, + "filters": {"title__icontains": "B"}, + "method": "set_storage_path", + "parameters": {"storage_path": self.sp1.id}, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + m.assert_called_once() + args, kwargs = m.call_args + self.assertEqual(args[0], [self.doc2.id]) + self.assertEqual(kwargs["storage_path"], self.sp1.id) + + def test_api_bulk_edit_with_all_true_rejects_unsupported_methods(self) -> None: + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "all": True, + "method": "merge", + "parameters": {"metadata_document_id": self.doc2.id}, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn(b"This method does not support all=true", response.content) + def test_api_invalid_method(self) -> None: self.assertEqual(Document.objects.count(), 5) response = self.client.post( diff --git a/src/documents/tests/test_api_custom_fields.py b/src/documents/tests/test_api_custom_fields.py index 945f9e4d7..c02a05e8f 100644 --- a/src/documents/tests/test_api_custom_fields.py +++ b/src/documents/tests/test_api_custom_fields.py @@ -6,6 +6,7 @@ from unittest.mock import ANY from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.test import override_settings +from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase @@ -1140,6 +1141,102 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual(doc5.custom_fields.first().value, [1]) + def test_documentlink_patch_requires_change_permission_on_target_documents( + self, + ) -> None: + source_owner = User.objects.create_user(username="source-owner") + source_owner.user_permissions.add( + Permission.objects.get(codename="change_document"), + ) + other_user = User.objects.create_user(username="other-user") + + source_doc = Document.objects.create( + title="Source", + checksum="source", + mime_type="application/pdf", + owner=source_owner, + ) + target_doc = Document.objects.create( + title="Target", + checksum="target", + mime_type="application/pdf", + owner=other_user, + ) + custom_field_doclink = CustomField.objects.create( + name="Test Custom Field Doc Link", + data_type=CustomField.FieldDataType.DOCUMENTLINK, + ) + + self.client.force_authenticate(user=source_owner) + + resp = self.client.patch( + f"/api/documents/{source_doc.id}/", + data={ + "custom_fields": [ + { + "field": custom_field_doclink.id, + "value": [target_doc.id], + }, + ], + }, + format="json", + ) + + self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual( + CustomFieldInstance.objects.filter(field=custom_field_doclink).count(), + 0, + ) + + def test_documentlink_patch_allowed_with_change_permission_on_target_documents( + self, + ) -> None: + source_owner = User.objects.create_user(username="source-owner") + source_owner.user_permissions.add( + Permission.objects.get(codename="change_document"), + ) + other_user = User.objects.create_user(username="other-user") + + source_doc = Document.objects.create( + title="Source", + checksum="source", + mime_type="application/pdf", + owner=source_owner, + ) + target_doc = Document.objects.create( + title="Target", + checksum="target", + mime_type="application/pdf", + owner=other_user, + ) + custom_field_doclink = CustomField.objects.create( + name="Test Custom Field Doc Link", + data_type=CustomField.FieldDataType.DOCUMENTLINK, + ) + + assign_perm("change_document", source_owner, target_doc) + self.client.force_authenticate(user=source_owner) + + resp = self.client.patch( + f"/api/documents/{source_doc.id}/", + data={ + "custom_fields": [ + { + "field": custom_field_doclink.id, + "value": [target_doc.id], + }, + ], + }, + format="json", + ) + + self.assertEqual(resp.status_code, status.HTTP_200_OK) + target_doc.refresh_from_db() + self.assertEqual( + target_doc.custom_fields.get(field=custom_field_doclink).value, + [source_doc.id], + ) + def test_custom_field_filters(self) -> None: custom_field_string = CustomField.objects.create( name="Test Custom Field String", diff --git a/src/documents/tests/test_api_document_versions.py b/src/documents/tests/test_api_document_versions.py index f5c1a7346..d95e78fe9 100644 --- a/src/documents/tests/test_api_document_versions.py +++ b/src/documents/tests/test_api_document_versions.py @@ -109,7 +109,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): mime_type="application/pdf", ) - with mock.patch("documents.index.remove_document_from_index"): + with mock.patch("documents.search.get_backend"): resp = self.client.delete(f"/api/documents/{root.id}/versions/{root.id}/") self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST) @@ -137,10 +137,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): content="v2-content", ) - with ( - mock.patch("documents.index.remove_document_from_index"), - mock.patch("documents.index.add_or_update_document"), - ): + with mock.patch("documents.search.get_backend"): resp = self.client.delete(f"/api/documents/{root.id}/versions/{v2.id}/") self.assertEqual(resp.status_code, status.HTTP_200_OK) @@ -149,10 +146,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): root.refresh_from_db() self.assertEqual(root.content, "root-content") - with ( - mock.patch("documents.index.remove_document_from_index"), - mock.patch("documents.index.add_or_update_document"), - ): + with mock.patch("documents.search.get_backend"): resp = self.client.delete(f"/api/documents/{root.id}/versions/{v1.id}/") self.assertEqual(resp.status_code, status.HTTP_200_OK) @@ -175,10 +169,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): ) version_id = version.id - with ( - mock.patch("documents.index.remove_document_from_index"), - mock.patch("documents.index.add_or_update_document"), - ): + with mock.patch("documents.search.get_backend"): resp = self.client.delete( f"/api/documents/{root.id}/versions/{version_id}/", ) @@ -225,7 +216,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): root_document=other_root, ) - with mock.patch("documents.index.remove_document_from_index"): + with mock.patch("documents.search.get_backend"): resp = self.client.delete( f"/api/documents/{root.id}/versions/{other_version.id}/", ) @@ -245,10 +236,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): root_document=root, ) - with ( - mock.patch("documents.index.remove_document_from_index"), - mock.patch("documents.index.add_or_update_document"), - ): + with mock.patch("documents.search.get_backend"): resp = self.client.delete( f"/api/documents/{version.id}/versions/{version.id}/", ) @@ -275,18 +263,17 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): root_document=root, ) - with ( - mock.patch("documents.index.remove_document_from_index") as remove_index, - mock.patch("documents.index.add_or_update_document") as add_or_update, - ): + with mock.patch("documents.search.get_backend") as mock_get_backend: + mock_backend = mock.MagicMock() + mock_get_backend.return_value = mock_backend resp = self.client.delete( f"/api/documents/{root.id}/versions/{version.id}/", ) self.assertEqual(resp.status_code, status.HTTP_200_OK) - remove_index.assert_called_once_with(version) - add_or_update.assert_called_once() - self.assertEqual(add_or_update.call_args[0][0].id, root.id) + mock_backend.remove.assert_called_once_with(version.pk) + mock_backend.add_or_update.assert_called_once() + self.assertEqual(mock_backend.add_or_update.call_args[0][0].id, root.id) def test_delete_version_returns_403_without_permission(self) -> None: owner = User.objects.create_user(username="owner") diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index 2dda91e98..5174e4da5 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -1119,21 +1119,19 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): [u1_doc1.id], ) - def test_pagination_all(self) -> None: + def test_pagination_results(self) -> None: """ GIVEN: - A set of 50 documents WHEN: - API request for document filtering THEN: - - Results are paginated (25 items) and response["all"] returns all ids (50 items) + - Results are paginated (25 items) and count reflects all results (50 items) """ t = Tag.objects.create(name="tag") - docs = [] for i in range(50): d = Document.objects.create(checksum=i, content=f"test{i}") d.tags.add(t) - docs.append(d) response = self.client.get( f"/api/documents/?tags__id__in={t.id}", @@ -1141,9 +1139,84 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 25) - self.assertEqual(len(response.data["all"]), 50) + self.assertEqual(response.data["count"], 50) + self.assertNotIn("all", response.data) + + def test_pagination_all_for_api_version_9(self) -> None: + """ + GIVEN: + - A set of documents matching a filter + WHEN: + - API request uses legacy version 9 + THEN: + - Response includes "all" for backward compatibility + """ + t = Tag.objects.create(name="tag") + docs = [] + for i in range(4): + d = Document.objects.create(checksum=i, content=f"test{i}") + d.tags.add(t) + docs.append(d) + + response = self.client.get( + f"/api/documents/?tags__id__in={t.id}", + headers={"Accept": "application/json; version=9"}, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("all", response.data) self.assertCountEqual(response.data["all"], [d.id for d in docs]) + def test_list_with_include_selection_data(self) -> None: + correspondent = Correspondent.objects.create(name="c1") + doc_type = DocumentType.objects.create(name="dt1") + storage_path = StoragePath.objects.create(name="sp1") + tag = Tag.objects.create(name="tag") + + matching_doc = Document.objects.create( + checksum="A", + correspondent=correspondent, + document_type=doc_type, + storage_path=storage_path, + ) + matching_doc.tags.add(tag) + + non_matching_doc = Document.objects.create(checksum="B") + non_matching_doc.tags.add(Tag.objects.create(name="other")) + + response = self.client.get( + f"/api/documents/?tags__id__in={tag.id}&include_selection_data=true", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("selection_data", response.data) + + selected_correspondent = next( + item + for item in response.data["selection_data"]["selected_correspondents"] + if item["id"] == correspondent.id + ) + selected_tag = next( + item + for item in response.data["selection_data"]["selected_tags"] + if item["id"] == tag.id + ) + selected_type = next( + item + for item in response.data["selection_data"]["selected_document_types"] + if item["id"] == doc_type.id + ) + selected_storage_path = next( + item + for item in response.data["selection_data"]["selected_storage_paths"] + if item["id"] == storage_path.id + ) + + self.assertEqual(selected_correspondent["document_count"], 1) + self.assertEqual(selected_tag["document_count"], 1) + self.assertEqual(selected_type["document_count"], 1) + self.assertEqual(selected_storage_path["document_count"], 1) + def test_statistics(self) -> None: doc1 = Document.objects.create( title="none1", diff --git a/src/documents/tests/test_api_objects.py b/src/documents/tests/test_api_objects.py index 008d2824d..bf1ac4d9c 100644 --- a/src/documents/tests/test_api_objects.py +++ b/src/documents/tests/test_api_objects.py @@ -145,6 +145,22 @@ class TestApiObjects(DirectoriesMixin, APITestCase): response.data["last_correspondence"], ) + def test_paginated_objects_include_all_only_for_legacy_version(self) -> None: + response_v10 = self.client.get("/api/correspondents/") + self.assertEqual(response_v10.status_code, status.HTTP_200_OK) + self.assertNotIn("all", response_v10.data) + + response_v9 = self.client.get( + "/api/correspondents/", + headers={"Accept": "application/json; version=9"}, + ) + self.assertEqual(response_v9.status_code, status.HTTP_200_OK) + self.assertIn("all", response_v9.data) + self.assertCountEqual( + response_v9.data["all"], + [self.c1.id, self.c2.id, self.c3.id], + ) + class TestApiStoragePaths(DirectoriesMixin, APITestCase): ENDPOINT = "/api/storage_paths/" @@ -360,7 +376,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "path/Something") + self.assertEqual(response.data, "path/Something.pdf") def test_test_storage_path_respects_none_placeholder_setting(self) -> None: """ @@ -390,7 +406,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "folder/none/Something") + self.assertEqual(response.data, "folder/none/Something.pdf") with override_settings(FILENAME_FORMAT_REMOVE_NONE=True): response = self.client.post( @@ -399,7 +415,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "folder/Something") + self.assertEqual(response.data, "folder/Something.pdf") def test_test_storage_path_requires_document_view_permission(self) -> None: owner = User.objects.create_user(username="owner") @@ -447,7 +463,27 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "path/Shared") + self.assertEqual(response.data, "path/Shared.pdf") + + def test_test_storage_path_prefers_existing_filename_extension(self) -> None: + document = Document.objects.create( + mime_type="image/jpeg", + filename="existing/Document.jpeg", + title="Something", + checksum="123", + ) + response = self.client.post( + f"{self.ENDPOINT}test/", + json.dumps( + { + "document": document.id, + "path": "path/{{ title }}", + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data, "path/Something.jpeg") def test_test_storage_path_exposes_basic_document_context_but_not_sensitive_owner_data( self, @@ -478,12 +514,12 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "owner") + self.assertEqual(response.data, "owner.pdf") for expression, expected in ( - ("{{ document.content }}", "Top secret content"), - ("{{ document.id }}", str(document.id)), - ("{{ document.page_count }}", "2"), + ("{{ document.content }}", "Top secret content.pdf"), + ("{{ document.id }}", f"{document.id}.pdf"), + ("{{ document.page_count }}", "2.pdf"), ): response = self.client.post( f"{self.ENDPOINT}test/", @@ -545,7 +581,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "Private Correspondent") + self.assertEqual(response.data, "Private Correspondent.pdf") response = self.client.post( f"{self.ENDPOINT}test/", @@ -560,7 +596,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "Private Correspondent") + self.assertEqual(response.data, "Private Correspondent.pdf") def test_test_storage_path_superuser_can_view_private_related_objects(self) -> None: owner = User.objects.create_user(username="owner") @@ -589,7 +625,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "Private Correspondent") + self.assertEqual(response.data, "Private Correspondent.pdf") def test_test_storage_path_includes_doc_type_storage_path_and_tags( self, @@ -636,7 +672,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "Private Type/private/path/Private Tag") + self.assertEqual(response.data, "Private Type/private/path/Private Tag.pdf") response = self.client.post( f"{self.ENDPOINT}test/", @@ -649,7 +685,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "Private Type/Private Tag") + self.assertEqual(response.data, "Private Type/Private Tag.pdf") def test_test_storage_path_includes_custom_fields_for_visible_document( self, @@ -685,7 +721,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): content_type="application/json", ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, "42") + self.assertEqual(response.data, "42.pdf") class TestBulkEditObjects(APITestCase): @@ -774,6 +810,62 @@ class TestBulkEditObjects(APITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(StoragePath.objects.count(), 0) + def test_bulk_objects_delete_all_filtered(self) -> None: + """ + GIVEN: + - Existing objects that can be filtered by name + WHEN: + - bulk_edit_objects API endpoint is called with all=true and filters + THEN: + - Matching objects are deleted without passing explicit IDs + """ + Correspondent.objects.create(name="c2") + + response = self.client.post( + "/api/bulk_edit_objects/", + json.dumps( + { + "all": True, + "filters": {"name__icontains": "c"}, + "object_type": "correspondents", + "operation": "delete", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(Correspondent.objects.count(), 0) + + def test_bulk_objects_delete_all_filtered_tags_includes_descendants(self) -> None: + """ + GIVEN: + - Root tag with descendants + WHEN: + - bulk_edit_objects API endpoint is called with all=true + THEN: + - Root tags and descendants are deleted + """ + parent = Tag.objects.create(name="parent") + child = Tag.objects.create(name="child", tn_parent=parent) + + response = self.client.post( + "/api/bulk_edit_objects/", + json.dumps( + { + "all": True, + "filters": {"is_root": True}, + "object_type": "tags", + "operation": "delete", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertFalse(Tag.objects.filter(id=parent.id).exists()) + self.assertFalse(Tag.objects.filter(id=child.id).exists()) + def test_bulk_edit_object_permissions_insufficient_global_perms(self) -> None: """ GIVEN: @@ -861,3 +953,40 @@ class TestBulkEditObjects(APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.content, b"Insufficient permissions") + + def test_bulk_edit_all_filtered_permissions_insufficient_object_perms( + self, + ) -> None: + """ + GIVEN: + - Filter-matching objects include one that the user cannot edit + WHEN: + - bulk_edit_objects API endpoint is called with all=true + THEN: + - Operation applies only to editable objects + """ + self.t2.owner = User.objects.get(username="temp_admin") + self.t2.save() + + self.user1.user_permissions.add( + *Permission.objects.filter(codename="delete_tag"), + ) + self.user1.save() + self.client.force_authenticate(user=self.user1) + + response = self.client.post( + "/api/bulk_edit_objects/", + json.dumps( + { + "all": True, + "filters": {"name__icontains": "t"}, + "object_type": "tags", + "operation": "delete", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertTrue(Tag.objects.filter(id=self.t2.id).exists()) + self.assertFalse(Tag.objects.filter(id=self.t1.id).exists()) diff --git a/src/documents/tests/test_api_permissions.py b/src/documents/tests/test_api_permissions.py index ada93033b..4f17c7781 100644 --- a/src/documents/tests/test_api_permissions.py +++ b/src/documents/tests/test_api_permissions.py @@ -888,6 +888,19 @@ class TestApiUser(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + response = self.client.post( + f"{self.ENDPOINT}", + json.dumps( + { + "username": "user4", + "is_superuser": "true", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.client.force_authenticate(user2) response = self.client.patch( @@ -920,6 +933,65 @@ class TestApiUser(DirectoriesMixin, APITestCase): returned_user1 = User.objects.get(pk=user1.pk) self.assertEqual(returned_user1.is_superuser, False) + def test_only_superusers_can_create_or_alter_staff_status(self): + """ + GIVEN: + - Existing user account + WHEN: + - API request is made to add a user account with staff status + - API request is made to change staff status + THEN: + - Only superusers can change staff status + """ + + user1 = User.objects.create_user(username="user1") + user1.user_permissions.add(*Permission.objects.all()) + user2 = User.objects.create_superuser(username="user2") + + self.client.force_authenticate(user1) + + response = self.client.patch( + f"{self.ENDPOINT}{user1.pk}/", + json.dumps( + { + "is_staff": "true", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + response = self.client.post( + f"{self.ENDPOINT}", + json.dumps( + { + "username": "user3", + "is_staff": 1, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + self.client.force_authenticate(user2) + + response = self.client.patch( + f"{self.ENDPOINT}{user1.pk}/", + json.dumps( + { + "is_staff": True, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + returned_user1 = User.objects.get(pk=user1.pk) + self.assertEqual(returned_user1.is_staff, True) + class TestApiGroup(DirectoriesMixin, APITestCase): ENDPOINT = "/api/groups/" diff --git a/src/documents/tests/test_api_schema.py b/src/documents/tests/test_api_schema.py index e14762f68..d8b023e6a 100644 --- a/src/documents/tests/test_api_schema.py +++ b/src/documents/tests/test_api_schema.py @@ -12,7 +12,12 @@ class TestApiSchema(APITestCase): Test that the schema is valid """ try: - call_command("spectacular", "--validate", "--fail-on-warn") + call_command( + "spectacular", + "--validate", + "--fail-on-warn", + skip_checks=True, + ) except CommandError as e: self.fail(f"Schema validation failed: {e}") diff --git a/src/documents/tests/test_api_search.py b/src/documents/tests/test_api_search.py index 779576461..9e0879e89 100644 --- a/src/documents/tests/test_api_search.py +++ b/src/documents/tests/test_api_search.py @@ -2,6 +2,7 @@ import datetime from datetime import timedelta from unittest import mock +import pytest from dateutil.relativedelta import relativedelta from django.contrib.auth.models import Group from django.contrib.auth.models import Permission @@ -11,9 +12,7 @@ from django.utils import timezone from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase -from whoosh.writing import AsyncWriter -from documents import index from documents.bulk_edit import set_permissions from documents.models import Correspondent from documents.models import CustomField @@ -25,18 +24,27 @@ from documents.models import SavedView from documents.models import StoragePath from documents.models import Tag from documents.models import Workflow +from documents.search import get_backend +from documents.search import reset_backend from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +pytestmark = pytest.mark.search + class TestDocumentSearchApi(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() + reset_backend() self.user = User.objects.create_superuser(username="temp_admin") self.client.force_authenticate(user=self.user) + def tearDown(self) -> None: + reset_backend() + super().tearDown() + def test_search(self) -> None: d1 = Document.objects.create( title="invoice", @@ -57,37 +65,225 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): checksum="C", original_filename="someepdf.pdf", ) - with AsyncWriter(index.open_index()) as writer: - # Note to future self: there is a reason we dont use a model signal handler to update the index: some operations edit many documents at once - # (retagger, renamer) and we don't want to open a writer for each of these, but rather perform the entire operation with one writer. - # That's why we can't open the writer in a model on_save handler or something. - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) + response = self.client.get("/api/documents/?query=bank") results = response.data["results"] self.assertEqual(response.data["count"], 3) self.assertEqual(len(results), 3) - self.assertCountEqual(response.data["all"], [d1.id, d2.id, d3.id]) response = self.client.get("/api/documents/?query=september") results = response.data["results"] self.assertEqual(response.data["count"], 1) self.assertEqual(len(results), 1) - self.assertCountEqual(response.data["all"], [d3.id]) self.assertEqual(results[0]["original_file_name"], "someepdf.pdf") response = self.client.get("/api/documents/?query=statement") results = response.data["results"] self.assertEqual(response.data["count"], 2) self.assertEqual(len(results), 2) - self.assertCountEqual(response.data["all"], [d2.id, d3.id]) response = self.client.get("/api/documents/?query=sfegdfg") results = response.data["results"] self.assertEqual(response.data["count"], 0) self.assertEqual(len(results), 0) - self.assertCountEqual(response.data["all"], []) + + def test_simple_text_search(self) -> None: + tagged = Tag.objects.create(name="invoice") + matching_doc = Document.objects.create( + title="Quarterly summary", + content="Monthly bank report", + checksum="T1", + pk=11, + ) + matching_doc.tags.add(tagged) + + metadata_only_doc = Document.objects.create( + title="Completely unrelated", + content="No matching terms here", + checksum="T2", + pk=12, + ) + metadata_only_doc.tags.add(tagged) + + backend = get_backend() + backend.add_or_update(matching_doc) + backend.add_or_update(metadata_only_doc) + + response = self.client.get("/api/documents/?text=monthly") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], matching_doc.id) + + response = self.client.get("/api/documents/?text=tag:invoice") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 0) + + def test_simple_text_search_matches_substrings(self) -> None: + matching_doc = Document.objects.create( + title="Quarterly summary", + content="Password reset instructions", + checksum="T5", + pk=15, + ) + + backend = get_backend() + backend.add_or_update(matching_doc) + + response = self.client.get("/api/documents/?text=pass") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], matching_doc.id) + + response = self.client.get("/api/documents/?text=sswo") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], matching_doc.id) + + response = self.client.get("/api/documents/?text=sswo re") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], matching_doc.id) + + def test_simple_text_search_does_not_match_on_partial_term_overlap(self) -> None: + non_matching_doc = Document.objects.create( + title="Adobe Acrobat PDF Files", + content="Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + checksum="T7", + pk=17, + ) + + backend = get_backend() + backend.add_or_update(non_matching_doc) + + response = self.client.get("/api/documents/?text=raptor") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 0) + + def test_simple_title_search(self) -> None: + title_match = Document.objects.create( + title="Quarterly summary", + content="No matching content here", + checksum="T3", + pk=13, + ) + content_only = Document.objects.create( + title="Completely unrelated", + content="Quarterly summary appears only in content", + checksum="T4", + pk=14, + ) + + backend = get_backend() + backend.add_or_update(title_match) + backend.add_or_update(content_only) + + response = self.client.get("/api/documents/?title_search=quarterly") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], title_match.id) + + def test_simple_title_search_matches_substrings(self) -> None: + title_match = Document.objects.create( + title="Password handbook", + content="No matching content here", + checksum="T6", + pk=16, + ) + + backend = get_backend() + backend.add_or_update(title_match) + + response = self.client.get("/api/documents/?title_search=pass") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], title_match.id) + + response = self.client.get("/api/documents/?title_search=sswo") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], title_match.id) + + response = self.client.get("/api/documents/?title_search=sswo hand") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + self.assertEqual(response.data["results"][0]["id"], title_match.id) + + def test_search_rejects_multiple_search_modes(self) -> None: + response = self.client.get("/api/documents/?text=bank&query=bank") + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + response.data["detail"], + "Specify only one of text, title_search, query, or more_like_id.", + ) + + def test_search_returns_all_for_api_version_9(self) -> None: + d1 = Document.objects.create( + title="invoice", + content="bank payment", + checksum="A", + pk=1, + ) + d2 = Document.objects.create( + title="bank statement", + content="bank transfer", + checksum="B", + pk=2, + ) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + + response = self.client.get( + "/api/documents/?query=bank", + headers={"Accept": "application/json; version=9"}, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("all", response.data) + self.assertCountEqual(response.data["all"], [d1.id, d2.id]) + + def test_search_with_include_selection_data(self) -> None: + correspondent = Correspondent.objects.create(name="c1") + doc_type = DocumentType.objects.create(name="dt1") + storage_path = StoragePath.objects.create(name="sp1") + tag = Tag.objects.create(name="tag") + + matching_doc = Document.objects.create( + title="bank statement", + content="bank content", + checksum="A", + correspondent=correspondent, + document_type=doc_type, + storage_path=storage_path, + ) + matching_doc.tags.add(tag) + + get_backend().add_or_update(matching_doc) + + response = self.client.get( + "/api/documents/?query=bank&include_selection_data=true", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertIn("selection_data", response.data) + + selected_correspondent = next( + item + for item in response.data["selection_data"]["selected_correspondents"] + if item["id"] == correspondent.id + ) + selected_tag = next( + item + for item in response.data["selection_data"]["selected_tags"] + if item["id"] == tag.id + ) + + self.assertEqual(selected_correspondent["document_count"], 1) + self.assertEqual(selected_tag["document_count"], 1) def test_search_custom_field_ordering(self) -> None: custom_field = CustomField.objects.create( @@ -125,10 +321,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): value_int=20, ) - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get( f"/api/documents/?query=match&ordering=custom_field_{custom_field.pk}", @@ -149,15 +345,15 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): ) def test_search_multi_page(self) -> None: - with AsyncWriter(index.open_index()) as writer: - for i in range(55): - doc = Document.objects.create( - checksum=str(i), - pk=i + 1, - title=f"Document {i + 1}", - content="content", - ) - index.update_document(writer, doc) + backend = get_backend() + for i in range(55): + doc = Document.objects.create( + checksum=str(i), + pk=i + 1, + title=f"Document {i + 1}", + content="content", + ) + backend.add_or_update(doc) # This is here so that we test that no document gets returned twice (might happen if the paging is not working) seen_ids = [] @@ -184,15 +380,15 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): seen_ids.append(result["id"]) def test_search_invalid_page(self) -> None: - with AsyncWriter(index.open_index()) as writer: - for i in range(15): - doc = Document.objects.create( - checksum=str(i), - pk=i + 1, - title=f"Document {i + 1}", - content="content", - ) - index.update_document(writer, doc) + backend = get_backend() + for i in range(15): + doc = Document.objects.create( + checksum=str(i), + pk=i + 1, + title=f"Document {i + 1}", + content="content", + ) + backend.add_or_update(doc) response = self.client.get("/api/documents/?query=content&page=0&page_size=10") self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) @@ -230,26 +426,25 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): pk=3, checksum="C", ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:[-1 week to now]") results = response.data["results"] # Expect 3 documents returned self.assertEqual(len(results), 3) - for idx, subset in enumerate( - [ - {"id": 1, "title": "invoice"}, - {"id": 2, "title": "bank statement 1"}, - {"id": 3, "title": "bank statement 3"}, - ], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + result_map = {r["id"]: r for r in results} + self.assertEqual(set(result_map.keys()), {1, 2, 3}) + for subset in [ + {"id": 1, "title": "invoice"}, + {"id": 2, "title": "bank statement 1"}, + {"id": 3, "title": "bank statement 3"}, + ]: + r = result_map[subset["id"]] + self.assertDictEqual(r, {**r, **subset}) @override_settings( TIME_ZONE="America/Chicago", @@ -285,10 +480,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # 7 days, 1 hour and 1 minute ago added=timezone.now() - timedelta(days=7, hours=1, minutes=1), ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:[-1 week to now]") results = response.data["results"] @@ -296,12 +491,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Expect 2 documents returned self.assertEqual(len(results), 2) - for idx, subset in enumerate( - [{"id": 1, "title": "invoice"}, {"id": 2, "title": "bank statement 1"}], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + result_map = {r["id"]: r for r in results} + self.assertEqual(set(result_map.keys()), {1, 2}) + for subset in [ + {"id": 1, "title": "invoice"}, + {"id": 2, "title": "bank statement 1"}, + ]: + r = result_map[subset["id"]] + self.assertDictEqual(r, {**r, **subset}) @override_settings( TIME_ZONE="Europe/Sofia", @@ -337,10 +534,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # 7 days, 1 hour and 1 minute ago added=timezone.now() - timedelta(days=7, hours=1, minutes=1), ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:[-1 week to now]") results = response.data["results"] @@ -348,12 +545,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Expect 2 documents returned self.assertEqual(len(results), 2) - for idx, subset in enumerate( - [{"id": 1, "title": "invoice"}, {"id": 2, "title": "bank statement 1"}], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + result_map = {r["id"]: r for r in results} + self.assertEqual(set(result_map.keys()), {1, 2}) + for subset in [ + {"id": 1, "title": "invoice"}, + {"id": 2, "title": "bank statement 1"}, + ]: + r = result_map[subset["id"]] + self.assertDictEqual(r, {**r, **subset}) def test_search_added_in_last_month(self) -> None: """ @@ -389,10 +588,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): added=timezone.now() - timedelta(days=7, hours=1, minutes=1), ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:[-1 month to now]") results = response.data["results"] @@ -400,12 +599,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Expect 2 documents returned self.assertEqual(len(results), 2) - for idx, subset in enumerate( - [{"id": 1, "title": "invoice"}, {"id": 3, "title": "bank statement 3"}], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + result_map = {r["id"]: r for r in results} + self.assertEqual(set(result_map.keys()), {1, 3}) + for subset in [ + {"id": 1, "title": "invoice"}, + {"id": 3, "title": "bank statement 3"}, + ]: + r = result_map[subset["id"]] + self.assertDictEqual(r, {**r, **subset}) @override_settings( TIME_ZONE="America/Denver", @@ -445,10 +646,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): added=timezone.now() - timedelta(days=7, hours=1, minutes=1), ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:[-1 month to now]") results = response.data["results"] @@ -456,12 +657,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Expect 2 documents returned self.assertEqual(len(results), 2) - for idx, subset in enumerate( - [{"id": 1, "title": "invoice"}, {"id": 3, "title": "bank statement 3"}], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + result_map = {r["id"]: r for r in results} + self.assertEqual(set(result_map.keys()), {1, 3}) + for subset in [ + {"id": 1, "title": "invoice"}, + {"id": 3, "title": "bank statement 3"}, + ]: + r = result_map[subset["id"]] + self.assertDictEqual(r, {**r, **subset}) @override_settings( TIME_ZONE="Europe/Sofia", @@ -501,10 +704,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Django converts dates to UTC d3.refresh_from_db() - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/documents/?query=added:20231201") results = response.data["results"] @@ -512,12 +715,8 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): # Expect 1 document returned self.assertEqual(len(results), 1) - for idx, subset in enumerate( - [{"id": 3, "title": "bank statement 3"}], - ): - result = results[idx] - # Assert subset in results - self.assertDictEqual(result, {**result, **subset}) + self.assertEqual(results[0]["id"], 3) + self.assertEqual(results[0]["title"], "bank statement 3") def test_search_added_invalid_date(self) -> None: """ @@ -526,7 +725,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): WHEN: - Query with invalid added date THEN: - - No documents returned + - 400 Bad Request returned (Tantivy rejects invalid date field syntax) """ d1 = Document.objects.create( title="invoice", @@ -535,16 +734,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): pk=1, ) - with index.open_index_writer() as writer: - index.update_document(writer, d1) + get_backend().add_or_update(d1) response = self.client.get("/api/documents/?query=added:invalid-date") - results = response.data["results"] - # Expect 0 document returned - self.assertEqual(len(results), 0) + # Tantivy rejects unparsable field queries with a 400 + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - @mock.patch("documents.index.autocomplete") + @mock.patch("documents.search._backend.TantivyBackend.autocomplete") def test_search_autocomplete_limits(self, m) -> None: """ GIVEN: @@ -556,7 +753,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): - Limit requests are obeyed """ - m.side_effect = lambda ix, term, limit, user: [term for _ in range(limit)] + m.side_effect = lambda term, limit, user=None: [term for _ in range(limit)] response = self.client.get("/api/search/autocomplete/?term=test") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -609,32 +806,29 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): owner=u1, ) - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) response = self.client.get("/api/search/autocomplete/?term=app") self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, [b"apples", b"applebaum", b"appletini"]) + self.assertEqual(response.data, ["applebaum", "apples", "appletini"]) d3.owner = u2 - - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d3) + d3.save() + backend.add_or_update(d3) response = self.client.get("/api/search/autocomplete/?term=app") self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, [b"apples", b"applebaum"]) + self.assertEqual(response.data, ["applebaum", "apples"]) assign_perm("view_document", u1, d3) - - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d3) + backend.add_or_update(d3) response = self.client.get("/api/search/autocomplete/?term=app") self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data, [b"apples", b"applebaum", b"appletini"]) + self.assertEqual(response.data, ["applebaum", "apples", "appletini"]) def test_search_autocomplete_field_name_match(self) -> None: """ @@ -652,8 +846,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): checksum="1", ) - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d1) + get_backend().add_or_update(d1) response = self.client.get("/api/search/autocomplete/?term=created:2023") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -674,53 +867,70 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): checksum="1", ) - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d1) + get_backend().add_or_update(d1) response = self.client.get("/api/search/autocomplete/?term=auto") self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data[0], b"auto") + self.assertEqual(response.data[0], "auto") - def test_search_spelling_suggestion(self) -> None: - with AsyncWriter(index.open_index()) as writer: - for i in range(55): - doc = Document.objects.create( - checksum=str(i), - pk=i + 1, - title=f"Document {i + 1}", - content=f"Things document {i + 1}", - ) - index.update_document(writer, doc) - - response = self.client.get("/api/documents/?query=thing") - correction = response.data["corrected_query"] - - self.assertEqual(correction, "things") - - response = self.client.get("/api/documents/?query=things") - correction = response.data["corrected_query"] - - self.assertEqual(correction, None) - - @mock.patch( - "whoosh.searching.Searcher.correct_query", - side_effect=Exception("Test error"), - ) - def test_corrected_query_error(self, mock_correct_query) -> None: + def test_search_no_spelling_suggestion(self) -> None: """ GIVEN: - - A query that raises an error on correction + - Documents exist with various terms WHEN: - - API request for search with that query + - Query for documents with any term THEN: - - The error is logged and the search proceeds + - corrected_query is always None (Tantivy has no spell correction) """ - with self.assertLogs("paperless.index", level="INFO") as cm: - response = self.client.get("/api/documents/?query=2025-06-04") - self.assertEqual(response.status_code, status.HTTP_200_OK) - error_str = cm.output[0] - expected_str = "Error while correcting query '2025-06-04': Test error" - self.assertIn(expected_str, error_str) + backend = get_backend() + for i in range(5): + doc = Document.objects.create( + checksum=str(i), + pk=i + 1, + title=f"Document {i + 1}", + content=f"Things document {i + 1}", + ) + backend.add_or_update(doc) + + response = self.client.get("/api/documents/?query=thing") + self.assertIsNone(response.data["corrected_query"]) + + response = self.client.get("/api/documents/?query=things") + self.assertIsNone(response.data["corrected_query"]) + + def test_search_spelling_suggestion_suppressed_for_private_terms(self): + owner = User.objects.create_user("owner") + attacker = User.objects.create_user("attacker") + attacker.user_permissions.add( + Permission.objects.get(codename="view_document"), + ) + + backend = get_backend() + for i in range(5): + private_doc = Document.objects.create( + checksum=f"p{i}", + pk=100 + i, + title=f"Private Document {i + 1}", + content=f"treasury document {i + 1}", + owner=owner, + ) + visible_doc = Document.objects.create( + checksum=f"v{i}", + pk=200 + i, + title=f"Visible Document {i + 1}", + content=f"public ledger {i + 1}", + owner=attacker, + ) + backend.add_or_update(private_doc) + backend.add_or_update(visible_doc) + + self.client.force_authenticate(user=attacker) + + response = self.client.get("/api/documents/?query=treasurx") + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 0) + self.assertIsNone(response.data["corrected_query"]) def test_search_more_like(self) -> None: """ @@ -751,16 +961,16 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): checksum="C", ) d4 = Document.objects.create( - title="Monty Python & the Holy Grail", - content="And now for something completely different", + title="Quarterly Report", + content="quarterly revenue profit margin earnings growth", pk=4, checksum="ABC", ) - with AsyncWriter(index.open_index()) as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) - index.update_document(writer, d4) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) + backend.add_or_update(d4) response = self.client.get(f"/api/documents/?more_like_id={d2.id}") @@ -768,9 +978,64 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): results = response.data["results"] - self.assertEqual(len(results), 2) - self.assertEqual(results[0]["id"], d3.id) - self.assertEqual(results[1]["id"], d1.id) + self.assertGreaterEqual(len(results), 1) + result_ids = [r["id"] for r in results] + self.assertIn(d3.id, result_ids) + self.assertNotIn(d4.id, result_ids) + + def test_search_more_like_requires_view_permission_on_seed_document( + self, + ) -> None: + """ + GIVEN: + - A user can search documents they own + - Another user's private document exists with similar content + WHEN: + - The user requests more-like-this for the private seed document + THEN: + - The request is rejected + """ + owner = User.objects.create_user("owner") + attacker = User.objects.create_user("attacker") + attacker.user_permissions.add( + Permission.objects.get(codename="view_document"), + ) + + private_seed = Document.objects.create( + title="private bank statement", + content="quarterly treasury bank statement wire transfer", + checksum="seed", + owner=owner, + pk=10, + ) + visible_doc = Document.objects.create( + title="attacker-visible match", + content="quarterly treasury bank statement wire transfer summary", + checksum="visible", + owner=attacker, + pk=11, + ) + other_doc = Document.objects.create( + title="unrelated", + content="completely different topic", + checksum="other", + owner=attacker, + pk=12, + ) + + backend = get_backend() + backend.add_or_update(private_seed) + backend.add_or_update(visible_doc) + backend.add_or_update(other_doc) + + self.client.force_authenticate(user=attacker) + + response = self.client.get( + f"/api/documents/?more_like_id={private_seed.id}", + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(response.content, b"Insufficient permissions.") def test_search_filtering(self) -> None: t = Tag.objects.create(name="tag") @@ -835,9 +1100,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): value_text="foobard4", ) - with AsyncWriter(index.open_index()) as writer: - for doc in Document.objects.all(): - index.update_document(writer, doc) + backend = get_backend() + for doc in Document.objects.all(): + backend.add_or_update(doc) def search_query(q): r = self.client.get("/api/documents/?query=test" + q) @@ -1053,9 +1318,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): Document.objects.create(checksum="3", content="test 3", owner=u2) Document.objects.create(checksum="4", content="test 4") - with AsyncWriter(index.open_index()) as writer: - for doc in Document.objects.all(): - index.update_document(writer, doc) + backend = get_backend() + for doc in Document.objects.all(): + backend.add_or_update(doc) self.client.force_authenticate(user=u1) r = self.client.get("/api/documents/?query=test") @@ -1106,9 +1371,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): d3 = Document.objects.create(checksum="3", content="test 3", owner=u2) Document.objects.create(checksum="4", content="test 4") - with AsyncWriter(index.open_index()) as writer: - for doc in Document.objects.all(): - index.update_document(writer, doc) + backend = get_backend() + for doc in Document.objects.all(): + backend.add_or_update(doc) self.client.force_authenticate(user=u1) r = self.client.get("/api/documents/?query=test") @@ -1128,9 +1393,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): assign_perm("view_document", u1, d3) assign_perm("view_document", u2, d1) - with AsyncWriter(index.open_index()) as writer: - for doc in [d1, d2, d3]: - index.update_document(writer, doc) + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) self.client.force_authenticate(user=u1) r = self.client.get("/api/documents/?query=test") @@ -1193,9 +1458,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): user=u1, ) - with AsyncWriter(index.open_index()) as writer: - for doc in Document.objects.all(): - index.update_document(writer, doc) + backend = get_backend() + for doc in Document.objects.all(): + backend.add_or_update(doc) def search_query(q): r = self.client.get("/api/documents/?query=test" + q) @@ -1228,13 +1493,14 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): search_query("&ordering=-num_notes"), [d1.id, d3.id, d2.id], ) + # owner sort: ORM orders by owner_id (integer); NULLs first in SQLite ASC self.assertListEqual( search_query("&ordering=owner"), - [d1.id, d2.id, d3.id], + [d3.id, d1.id, d2.id], ) self.assertListEqual( search_query("&ordering=-owner"), - [d3.id, d2.id, d1.id], + [d2.id, d1.id, d3.id], ) @mock.patch("documents.bulk_edit.bulk_update_documents") @@ -1291,12 +1557,12 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): ) set_permissions([4, 5], set_permissions={}, owner=user2, merge=False) - with index.open_index_writer() as writer: - index.update_document(writer, d1) - index.update_document(writer, d2) - index.update_document(writer, d3) - index.update_document(writer, d4) - index.update_document(writer, d5) + backend = get_backend() + backend.add_or_update(d1) + backend.add_or_update(d2) + backend.add_or_update(d3) + backend.add_or_update(d4) + backend.add_or_update(d5) correspondent1 = Correspondent.objects.create(name="bank correspondent 1") Correspondent.objects.create(name="correspondent 2") @@ -1356,6 +1622,108 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(results["custom_fields"][0]["id"], custom_field1.id) self.assertEqual(results["workflows"][0]["id"], workflow1.id) + def test_global_search_db_only_limits_documents_to_title_matches(self) -> None: + title_match = Document.objects.create( + title="bank statement", + content="no additional terms", + checksum="GS1", + pk=21, + ) + content_only = Document.objects.create( + title="not a title match", + content="bank appears only in content", + checksum="GS2", + pk=22, + ) + + backend = get_backend() + backend.add_or_update(title_match) + backend.add_or_update(content_only) + + self.client.force_authenticate(self.user) + + response = self.client.get("/api/search/?query=bank&db_only=true") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(len(response.data["documents"]), 1) + self.assertEqual(response.data["documents"][0]["id"], title_match.id) + + def test_global_search_filters_owned_mail_objects(self) -> None: + user1 = User.objects.create_user("mail-search-user") + user2 = User.objects.create_user("other-mail-search-user") + user1.user_permissions.add( + Permission.objects.get(codename="view_mailaccount"), + Permission.objects.get(codename="view_mailrule"), + ) + + own_account = MailAccount.objects.create( + name="bank owned account", + username="owner@example.com", + password="secret", + imap_server="imap.owner.example.com", + imap_port=993, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + owner=user1, + ) + other_account = MailAccount.objects.create( + name="bank other account", + username="other@example.com", + password="secret", + imap_server="imap.other.example.com", + imap_port=993, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + owner=user2, + ) + unowned_account = MailAccount.objects.create( + name="bank shared account", + username="shared@example.com", + password="secret", + imap_server="imap.shared.example.com", + imap_port=993, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + ) + own_rule = MailRule.objects.create( + name="bank owned rule", + account=own_account, + action=MailRule.MailAction.MOVE, + owner=user1, + ) + other_rule = MailRule.objects.create( + name="bank other rule", + account=other_account, + action=MailRule.MailAction.MOVE, + owner=user2, + ) + unowned_rule = MailRule.objects.create( + name="bank shared rule", + account=unowned_account, + action=MailRule.MailAction.MOVE, + ) + + self.client.force_authenticate(user1) + + response = self.client.get("/api/search/?query=bank") + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertCountEqual( + [account["id"] for account in response.data["mail_accounts"]], + [own_account.id, unowned_account.id], + ) + self.assertCountEqual( + [rule["id"] for rule in response.data["mail_rules"]], + [own_rule.id, unowned_rule.id], + ) + self.assertNotIn( + other_account.id, + [account["id"] for account in response.data["mail_accounts"]], + ) + self.assertNotIn( + other_rule.id, + [rule["id"] for rule in response.data["mail_rules"]], + ) + def test_global_search_bad_request(self) -> None: """ WHEN: diff --git a/src/documents/tests/test_api_status.py b/src/documents/tests/test_api_status.py index d2a092726..32717af63 100644 --- a/src/documents/tests/test_api_status.py +++ b/src/documents/tests/test_api_status.py @@ -26,6 +26,23 @@ class TestSystemStatus(APITestCase): self.override = override_settings(MEDIA_ROOT=self.tmp_dir) self.override.enable() + # Mock slow network calls so tests don't block on real Redis/Celery timeouts. + # Individual tests that care about specific behaviour override these with + # their own @mock.patch decorators (which take precedence). + redis_patcher = mock.patch( + "redis.Redis.execute_command", + side_effect=Exception("Redis not available"), + ) + self.mock_redis = redis_patcher.start() + self.addCleanup(redis_patcher.stop) + + celery_patcher = mock.patch( + "celery.app.control.Inspect.ping", + side_effect=Exception("Celery not available"), + ) + self.mock_celery_ping = celery_patcher.start() + self.addCleanup(celery_patcher.stop) + def tearDown(self) -> None: super().tearDown() @@ -69,11 +86,18 @@ class TestSystemStatus(APITestCase): """ response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + self.assertEqual(response["WWW-Authenticate"], "Token") normal_user = User.objects.create_user(username="normal_user") self.client.force_login(normal_user) response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + def test_system_status_with_bad_basic_auth_challenges(self) -> None: + self.client.credentials(HTTP_AUTHORIZATION="Basic invalid") + response = self.client.get(self.ENDPOINT) + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + self.assertEqual(response["WWW-Authenticate"], 'Basic realm="api"') + def test_system_status_container_detection(self) -> None: """ GIVEN: @@ -84,13 +108,17 @@ class TestSystemStatus(APITestCase): - The response contains the correct install type """ self.client.force_login(self.user) - os.environ["PNGX_CONTAINERIZED"] = "1" - response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(response.data["install_type"], "docker") - os.environ["KUBERNETES_SERVICE_HOST"] = "http://localhost" - response = self.client.get(self.ENDPOINT) - self.assertEqual(response.data["install_type"], "kubernetes") + with mock.patch.dict(os.environ, {"PNGX_CONTAINERIZED": "1"}, clear=False): + response = self.client.get(self.ENDPOINT) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["install_type"], "docker") + with mock.patch.dict( + os.environ, + {"PNGX_CONTAINERIZED": "1", "KUBERNETES_SERVICE_HOST": "http://localhost"}, + clear=False, + ): + response = self.client.get(self.ENDPOINT) + self.assertEqual(response.data["install_type"], "kubernetes") @mock.patch("redis.Redis.execute_command") def test_system_status_redis_ping(self, mock_ping) -> None: @@ -163,40 +191,42 @@ class TestSystemStatus(APITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["tasks"]["celery_status"], "OK") - @override_settings(INDEX_DIR=Path("/tmp/index")) - @mock.patch("whoosh.index.FileIndex.last_modified") - def test_system_status_index_ok(self, mock_last_modified) -> None: + @mock.patch("documents.search.get_backend") + def test_system_status_index_ok(self, mock_get_backend) -> None: """ GIVEN: - - The index last modified time is set + - The index is accessible WHEN: - The user requests the system status THEN: - The response contains the correct index status """ - mock_last_modified.return_value = 1707839087 - self.client.force_login(self.user) - response = self.client.get(self.ENDPOINT) + mock_get_backend.return_value = mock.MagicMock() + # Use the temp dir created in setUp (self.tmp_dir) as a real INDEX_DIR + # with a real file so the mtime lookup works + sentinel = self.tmp_dir / "sentinel.txt" + sentinel.write_text("ok") + with self.settings(INDEX_DIR=self.tmp_dir): + self.client.force_login(self.user) + response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["tasks"]["index_status"], "OK") self.assertIsNotNone(response.data["tasks"]["index_last_modified"]) - @override_settings(INDEX_DIR=Path("/tmp/index/")) - @mock.patch("documents.index.open_index", autospec=True) - def test_system_status_index_error(self, mock_open_index) -> None: + @mock.patch("documents.search.get_backend") + def test_system_status_index_error(self, mock_get_backend) -> None: """ GIVEN: - - The index is not found + - The index cannot be opened WHEN: - The user requests the system status THEN: - The response contains the correct index status """ - mock_open_index.return_value = None - mock_open_index.side_effect = Exception("Index error") + mock_get_backend.side_effect = Exception("Index error") self.client.force_login(self.user) response = self.client.get(self.ENDPOINT) - mock_open_index.assert_called_once() + mock_get_backend.assert_called_once() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["tasks"]["index_status"], "ERROR") self.assertIsNotNone(response.data["tasks"]["index_error"]) diff --git a/src/documents/tests/test_checks.py b/src/documents/tests/test_checks.py index b78946ba9..51d9cdddc 100644 --- a/src/documents/tests/test_checks.py +++ b/src/documents/tests/test_checks.py @@ -13,8 +13,10 @@ class TestDocumentChecks(TestCase): def test_parser_check(self) -> None: self.assertEqual(parser_check(None), []) - with mock.patch("documents.checks.document_consumer_declaration.send") as m: - m.return_value = [] + with mock.patch("documents.checks.get_parser_registry") as mock_registry_fn: + mock_registry = mock.MagicMock() + mock_registry.all_parsers.return_value = [] + mock_registry_fn.return_value = mock_registry self.assertEqual( parser_check(None), diff --git a/src/documents/tests/test_classifier.py b/src/documents/tests/test_classifier.py index f04152ae0..133dc88fe 100644 --- a/src/documents/tests/test_classifier.py +++ b/src/documents/tests/test_classifier.py @@ -1,5 +1,5 @@ import re -import shutil +import warnings from pathlib import Path from unittest import mock @@ -366,8 +366,7 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertCountEqual(new_classifier.predict_tags(self.doc2.content), [45, 12]) - @mock.patch("documents.classifier.pickle.load") - def test_load_corrupt_file(self, patched_pickle_load: mock.MagicMock) -> None: + def test_load_corrupt_file(self) -> None: """ GIVEN: - Corrupted classifier pickle file @@ -378,36 +377,116 @@ class TestClassifier(DirectoriesMixin, TestCase): """ self.generate_train_and_save() - # First load is the schema version,allow it - patched_pickle_load.side_effect = [DocumentClassifier.FORMAT_VERSION, OSError()] + # Write garbage data (valid HMAC length but invalid content) + Path(settings.MODEL_FILE).write_bytes(b"\x00" * 64) with self.assertRaises(ClassifierModelCorruptError): self.classifier.load() - patched_pickle_load.assert_called() - - patched_pickle_load.reset_mock() - patched_pickle_load.side_effect = [ - DocumentClassifier.FORMAT_VERSION, - ClassifierModelCorruptError(), - ] self.assertIsNone(load_classifier()) - patched_pickle_load.assert_called() + + def test_load_corrupt_pickle_valid_hmac(self) -> None: + """ + GIVEN: + - A classifier file with valid HMAC but unparsable pickle data + WHEN: + - An attempt is made to load the classifier + THEN: + - The ClassifierModelCorruptError is raised + """ + garbage_data = b"this is not valid pickle data" + signature = DocumentClassifier._compute_hmac(garbage_data) + Path(settings.MODEL_FILE).write_bytes(signature + garbage_data) + + with self.assertRaises(ClassifierModelCorruptError): + self.classifier.load() + + def test_load_tampered_file(self) -> None: + """ + GIVEN: + - A classifier model file whose data has been modified + WHEN: + - An attempt is made to load the classifier + THEN: + - The ClassifierModelCorruptError is raised due to HMAC mismatch + """ + self.generate_train_and_save() + + raw = Path(settings.MODEL_FILE).read_bytes() + # Flip a byte in the data portion (after the 32-byte HMAC) + tampered = raw[:32] + bytes([raw[32] ^ 0xFF]) + raw[33:] + Path(settings.MODEL_FILE).write_bytes(tampered) + + with self.assertRaises(ClassifierModelCorruptError): + self.classifier.load() + + def test_load_wrong_secret_key(self) -> None: + """ + GIVEN: + - A classifier model file signed with a different SECRET_KEY + WHEN: + - An attempt is made to load the classifier + THEN: + - The ClassifierModelCorruptError is raised due to HMAC mismatch + """ + self.generate_train_and_save() + + with override_settings(SECRET_KEY="different-secret-key"): + with self.assertRaises(ClassifierModelCorruptError): + self.classifier.load() + + def test_load_truncated_file(self) -> None: + """ + GIVEN: + - A classifier model file that is too short to contain an HMAC + WHEN: + - An attempt is made to load the classifier + THEN: + - The ClassifierModelCorruptError is raised + """ + Path(settings.MODEL_FILE).write_bytes(b"\x00" * 16) + + with self.assertRaises(ClassifierModelCorruptError): + self.classifier.load() def test_load_new_scikit_learn_version(self) -> None: """ GIVEN: - - classifier pickle file created with a different scikit-learn version + - classifier pickle file triggers an InconsistentVersionWarning WHEN: - An attempt is made to load the classifier THEN: - - The classifier reports the warning was captured and processed + - IncompatibleClassifierVersionError is raised """ - # TODO: This wasn't testing the warning anymore, as the schema changed - # but as it was implemented, it would require installing an old version - # rebuilding the file and committing that. Not developer friendly - # Need to rethink how to pass the load through to a file with a single - # old model? + from sklearn.exceptions import InconsistentVersionWarning + + self.generate_train_and_save() + + fake_warning = warnings.WarningMessage( + message=InconsistentVersionWarning( + estimator_name="MLPClassifier", + current_sklearn_version="1.0", + original_sklearn_version="0.9", + ), + category=InconsistentVersionWarning, + filename="", + lineno=0, + ) + + real_catch_warnings = warnings.catch_warnings + + class PatchedCatchWarnings(real_catch_warnings): + def __enter__(self): + w = super().__enter__() + w.append(fake_warning) + return w + + with mock.patch( + "documents.classifier.warnings.catch_warnings", + PatchedCatchWarnings, + ): + with self.assertRaises(IncompatibleClassifierVersionError): + self.classifier.load() def test_one_correspondent_predict(self) -> None: c1 = Correspondent.objects.create( @@ -685,17 +764,6 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertIsNone(load_classifier()) self.assertTrue(Path(settings.MODEL_FILE).exists()) - def test_load_old_classifier_version(self) -> None: - shutil.copy( - Path(__file__).parent / "data" / "v1.17.4.model.pickle", - self.dirs.scratch_dir, - ) - with override_settings( - MODEL_FILE=self.dirs.scratch_dir / "v1.17.4.model.pickle", - ): - classifier = load_classifier() - self.assertIsNone(classifier) - @mock.patch("documents.classifier.DocumentClassifier.load") def test_load_classifier_raise_exception(self, mock_load) -> None: Path(settings.MODEL_FILE).touch() diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index 130ba5ad4..569072a70 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -27,7 +27,6 @@ from documents.models import Document from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag -from documents.parsers import DocumentParser from documents.parsers import ParseError from documents.plugins.helpers import ProgressStatusOptions from documents.tasks import sanity_check @@ -36,65 +35,108 @@ from documents.tests.utils import DummyProgressManager from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import GetConsumerMixin from paperless_mail.models import MailRule -from paperless_mail.parsers import MailDocumentParser -class _BaseTestParser(DocumentParser): - def get_settings(self) -> None: +class _BaseNewStyleParser: + """Minimal ParserProtocol implementation for use in consumer tests.""" + + name: str = "test-parser" + version: str = "0.1" + author: str = "test" + url: str = "test" + + @classmethod + def supported_mime_types(cls) -> dict: + return { + "application/pdf": ".pdf", + "image/png": ".png", + "message/rfc822": ".eml", + } + + @classmethod + def score(cls, mime_type: str, filename: str, path=None): + return 0 if mime_type in cls.supported_mime_types() else None + + @property + def can_produce_archive(self) -> bool: + return True + + @property + def requires_pdf_rendition(self) -> bool: + return False + + def __init__(self) -> None: + self._tmpdir: Path | None = None + self._text: str | None = None + self._archive: Path | None = None + self._thumb: Path | None = None + + def __enter__(self): + self._tmpdir = Path( + tempfile.mkdtemp(prefix="paperless-test-", dir=settings.SCRATCH_DIR), + ) + _, thumb = tempfile.mkstemp(suffix=".webp", dir=self._tmpdir) + self._thumb = Path(thumb) + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + if self._tmpdir and self._tmpdir.exists(): + shutil.rmtree(self._tmpdir, ignore_errors=True) + + def configure(self, context) -> None: """ - This parser does not implement additional settings yet + Test parser doesn't do anything with context """ + + def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None: + raise NotImplementedError + + def get_text(self) -> str | None: + return self._text + + def get_date(self): return None + def get_archive_path(self): + return self._archive -class DummyParser(_BaseTestParser): - def __init__(self, logging_group, scratch_dir, archive_path) -> None: - super().__init__(logging_group, None) - _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir) - self.archive_path = archive_path + def get_thumbnail(self, document_path, mime_type) -> Path: + return self._thumb - def get_thumbnail(self, document_path, mime_type, file_name=None): - return self.fake_thumb + def get_page_count(self, document_path, mime_type): + return None - def parse(self, document_path, mime_type, file_name=None) -> None: - self.text = "The Text" + def extract_metadata(self, document_path, mime_type) -> list: + return [] -class CopyParser(_BaseTestParser): - def get_thumbnail(self, document_path, mime_type, file_name=None): - return self.fake_thumb +class DummyParser(_BaseNewStyleParser): + _ARCHIVE_SRC = ( + Path(__file__).parent / "samples" / "documents" / "archive" / "0000001.pdf" + ) - def __init__(self, logging_group, progress_callback=None) -> None: - super().__init__(logging_group, progress_callback) - _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=self.tempdir) - - def parse(self, document_path, mime_type, file_name=None) -> None: - self.text = "The text" - self.archive_path = Path(self.tempdir / "archive.pdf") - shutil.copy(document_path, self.archive_path) + def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None: + self._text = "The Text" + if produce_archive and self._tmpdir: + self._archive = self._tmpdir / "archive.pdf" + shutil.copy(self._ARCHIVE_SRC, self._archive) -class FaultyParser(_BaseTestParser): - def __init__(self, logging_group, scratch_dir) -> None: - super().__init__(logging_group) - _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir) +class CopyParser(_BaseNewStyleParser): + def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None: + self._text = "The text" + if produce_archive and self._tmpdir: + self._archive = self._tmpdir / "archive.pdf" + shutil.copy(document_path, self._archive) - def get_thumbnail(self, document_path, mime_type, file_name=None): - return self.fake_thumb - def parse(self, document_path, mime_type, file_name=None): +class FaultyParser(_BaseNewStyleParser): + def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None: raise ParseError("Does not compute.") -class FaultyGenericExceptionParser(_BaseTestParser): - def __init__(self, logging_group, scratch_dir) -> None: - super().__init__(logging_group) - _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir) - - def get_thumbnail(self, document_path, mime_type, file_name=None): - return self.fake_thumb - - def parse(self, document_path, mime_type, file_name=None): +class FaultyGenericExceptionParser(_BaseNewStyleParser): + def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None: raise Exception("Generic exception.") @@ -148,38 +190,12 @@ class TestConsumer( self.assertEqual(payload["data"]["max_progress"], last_progress_max) self.assertEqual(payload["data"]["status"], last_status) - def make_dummy_parser(self, logging_group, progress_callback=None): - return DummyParser( - logging_group, - self.dirs.scratch_dir, - self.get_test_archive_file(), - ) - - def make_faulty_parser(self, logging_group, progress_callback=None): - return FaultyParser(logging_group, self.dirs.scratch_dir) - - def make_faulty_generic_exception_parser( - self, - logging_group, - progress_callback=None, - ): - return FaultyGenericExceptionParser(logging_group, self.dirs.scratch_dir) - def setUp(self) -> None: super().setUp() - patcher = mock.patch("documents.parsers.document_consumer_declaration.send") - m = patcher.start() - m.return_value = [ - ( - None, - { - "parser": self.make_dummy_parser, - "mime_types": {"application/pdf": ".pdf"}, - "weight": 0, - }, - ), - ] + patcher = mock.patch("documents.consumer.get_parser_registry") + mock_registry = patcher.start() + mock_registry.return_value.get_parser_for_file.return_value = DummyParser self.addCleanup(patcher.stop) def get_test_file(self): @@ -245,8 +261,14 @@ class TestConsumer( self.assertIsFile(document.archive_path) - self.assertEqual(document.checksum, "42995833e01aea9b3edee44bbfdd7ce1") - self.assertEqual(document.archive_checksum, "62acb0bcbfbcaa62ca6ad3668e4e404b") + self.assertEqual( + document.checksum, + "1093cf6e32adbd16b06969df09215d42c4a3a8938cc18b39455953f08d1ff2ab", + ) + self.assertEqual( + document.archive_checksum, + "706124ecde3c31616992fa979caed17a726b1c9ccdba70e82a4ff796cea97ccf", + ) self.assertIsNotFile(filename) @@ -548,9 +570,9 @@ class TestConsumer( ) as consumer: consumer.run() - @mock.patch("documents.parsers.document_consumer_declaration.send") + @mock.patch("documents.consumer.get_parser_registry") def testNoParsers(self, m) -> None: - m.return_value = [] + m.return_value.get_parser_for_file.return_value = None with self.assertRaisesMessage( ConsumerError, @@ -561,18 +583,9 @@ class TestConsumer( self._assert_first_last_send_progress(last_status="FAILED") - @mock.patch("documents.parsers.document_consumer_declaration.send") + @mock.patch("documents.consumer.get_parser_registry") def testFaultyParser(self, m) -> None: - m.return_value = [ - ( - None, - { - "parser": self.make_faulty_parser, - "mime_types": {"application/pdf": ".pdf"}, - "weight": 0, - }, - ), - ] + m.return_value.get_parser_for_file.return_value = FaultyParser with self.get_consumer(self.get_test_file()) as consumer: with self.assertRaisesMessage( @@ -583,18 +596,9 @@ class TestConsumer( self._assert_first_last_send_progress(last_status="FAILED") - @mock.patch("documents.parsers.document_consumer_declaration.send") + @mock.patch("documents.consumer.get_parser_registry") def testGenericParserException(self, m) -> None: - m.return_value = [ - ( - None, - { - "parser": self.make_faulty_generic_exception_parser, - "mime_types": {"application/pdf": ".pdf"}, - "weight": 0, - }, - ), - ] + m.return_value.get_parser_for_file.return_value = FaultyGenericExceptionParser with self.get_consumer(self.get_test_file()) as consumer: with self.assertRaisesMessage( @@ -642,6 +646,7 @@ class TestConsumer( self._assert_first_last_send_progress() @mock.patch("documents.consumer.generate_unique_filename") + @override_settings(FILENAME_FORMAT="{pk}") def testFilenameHandlingFallsBackWhenGeneratedPathExceedsDbLimit(self, m): m.side_effect = lambda doc, archive_filename=False: Path( ("a" * 1100 + ".pdf") if not archive_filename else ("b" * 1100 + ".pdf"), @@ -1034,7 +1039,7 @@ class TestConsumer( self._assert_first_last_send_progress() @override_settings(FILENAME_FORMAT="{title}") - @mock.patch("documents.parsers.document_consumer_declaration.send") + @mock.patch("documents.consumer.get_parser_registry") def test_similar_filenames(self, m) -> None: shutil.copy( Path(__file__).parent / "samples" / "simple.pdf", @@ -1048,16 +1053,7 @@ class TestConsumer( Path(__file__).parent / "samples" / "simple-noalpha.png", settings.CONSUMPTION_DIR / "simple.png.pdf", ) - m.return_value = [ - ( - None, - { - "parser": CopyParser, - "mime_types": {"application/pdf": ".pdf", "image/png": ".png"}, - "weight": 0, - }, - ), - ] + m.return_value.get_parser_for_file.return_value = CopyParser with self.get_consumer(settings.CONSUMPTION_DIR / "simple.png") as consumer: consumer.run() @@ -1085,8 +1081,10 @@ class TestConsumer( sanity_check() + @mock.patch("documents.consumer.get_parser_registry") @mock.patch("documents.consumer.run_subprocess") - def test_try_to_clean_invalid_pdf(self, m) -> None: + def test_try_to_clean_invalid_pdf(self, m, mock_registry) -> None: + mock_registry.return_value.get_parser_for_file.return_value = None shutil.copy( Path(__file__).parent / "samples" / "invalid_pdf.pdf", settings.CONSUMPTION_DIR / "invalid_pdf.pdf", @@ -1107,11 +1105,11 @@ class TestConsumer( self.assertEqual(command[1], "--replace-input") @mock.patch("paperless_mail.models.MailRule.objects.get") - @mock.patch("paperless_mail.parsers.MailDocumentParser.parse") - @mock.patch("documents.parsers.document_consumer_declaration.send") + @mock.patch("paperless.parsers.mail.MailDocumentParser.parse") + @mock.patch("documents.consumer.get_parser_registry") def test_mail_parser_receives_mailrule( self, - mock_consumer_declaration_send: mock.Mock, + mock_get_parser_registry: mock.Mock, mock_mail_parser_parse: mock.Mock, mock_mailrule_get: mock.Mock, ) -> None: @@ -1123,25 +1121,21 @@ class TestConsumer( THEN: - The mail parser should receive the mail rule """ - mock_consumer_declaration_send.return_value = [ - ( - None, - { - "parser": MailDocumentParser, - "mime_types": {"message/rfc822": ".eml"}, - "weight": 0, - }, - ), - ] + from paperless.parsers.mail import MailDocumentParser + + mock_get_parser_registry.return_value.get_parser_for_file.return_value = ( + MailDocumentParser + ) mock_mailrule_get.return_value = mock.Mock( pdf_layout=MailRule.PdfLayout.HTML_ONLY, ) with self.get_consumer( filepath=( Path(__file__).parent.parent.parent - / Path("paperless_mail") + / Path("paperless") / Path("tests") / Path("samples") + / Path("mail") ).resolve() / "html.eml", source=DocumentSource.MailFetch, @@ -1152,12 +1146,10 @@ class TestConsumer( ConsumerError, ): consumer.run() - mock_mail_parser_parse.assert_called_once_with( - consumer.working_copy, - "message/rfc822", - file_name="sample.pdf", - mailrule=mock_mailrule_get.return_value, - ) + mock_mail_parser_parse.assert_called_once_with( + consumer.working_copy, + "message/rfc822", + ) @mock.patch("documents.consumer.magic.from_file", fake_magic_from_file) diff --git a/src/documents/tests/test_delayedquery.py b/src/documents/tests/test_delayedquery.py deleted file mode 100644 index 6357d9030..000000000 --- a/src/documents/tests/test_delayedquery.py +++ /dev/null @@ -1,58 +0,0 @@ -from django.test import TestCase -from whoosh import query - -from documents.index import get_permissions_criterias -from documents.models import User - - -class TestDelayedQuery(TestCase): - def setUp(self) -> None: - super().setUp() - # all tests run without permission criteria, so has_no_owner query will always - # be appended. - self.has_no_owner = query.Or([query.Term("has_owner", text=False)]) - - def _get_testset__id__in(self, param, field): - return ( - {f"{param}__id__in": "42,43"}, - query.And( - [ - query.Or( - [ - query.Term(f"{field}_id", "42"), - query.Term(f"{field}_id", "43"), - ], - ), - self.has_no_owner, - ], - ), - ) - - def _get_testset__id__none(self, param, field): - return ( - {f"{param}__id__none": "42,43"}, - query.And( - [ - query.Not(query.Term(f"{field}_id", "42")), - query.Not(query.Term(f"{field}_id", "43")), - self.has_no_owner, - ], - ), - ) - - def test_get_permission_criteria(self) -> None: - # tests contains tuples of user instances and the expected filter - tests = ( - (None, [query.Term("has_owner", text=False)]), - (User(42, username="foo", is_superuser=True), []), - ( - User(42, username="foo", is_superuser=False), - [ - query.Term("has_owner", text=False), - query.Term("owner_id", 42), - query.Term("viewer_id", "42"), - ], - ), - ) - for user, expected in tests: - self.assertEqual(get_permissions_criterias(user), expected) diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py index 0cd34e939..ba23e04c3 100644 --- a/src/documents/tests/test_file_handling.py +++ b/src/documents/tests/test_file_handling.py @@ -1,4 +1,5 @@ import datetime +import hashlib import logging import tempfile from pathlib import Path @@ -204,6 +205,52 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase): ) self.assertEqual(document.filename, "none/none.pdf") + @override_settings(FILENAME_FORMAT=None) + def test_stale_save_recovers_already_moved_files(self) -> None: + old_storage_path = StoragePath.objects.create( + name="old-path", + path="old/{{title}}", + ) + new_storage_path = StoragePath.objects.create( + name="new-path", + path="new/{{title}}", + ) + original_bytes = b"original" + archive_bytes = b"archive" + + doc = Document.objects.create( + title="document", + mime_type="application/pdf", + checksum=hashlib.md5(original_bytes).hexdigest(), + archive_checksum=hashlib.md5(archive_bytes).hexdigest(), + filename="old/document.pdf", + archive_filename="old/document.pdf", + storage_path=old_storage_path, + ) + create_source_path_directory(doc.source_path) + doc.source_path.write_bytes(original_bytes) + create_source_path_directory(doc.archive_path) + doc.archive_path.write_bytes(archive_bytes) + + stale_doc = Document.objects.get(pk=doc.pk) + fresh_doc = Document.objects.get(pk=doc.pk) + fresh_doc.storage_path = new_storage_path + fresh_doc.save() + doc.refresh_from_db() + self.assertEqual(doc.filename, "new/document.pdf") + self.assertEqual(doc.archive_filename, "new/document.pdf") + + stale_doc.storage_path = new_storage_path + stale_doc.save() + + doc.refresh_from_db() + self.assertEqual(doc.filename, "new/document.pdf") + self.assertEqual(doc.archive_filename, "new/document.pdf") + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) + self.assertIsNotFile(settings.ORIGINALS_DIR / "old" / "document.pdf") + self.assertIsNotFile(settings.ARCHIVE_DIR / "old" / "document.pdf") + @override_settings(FILENAME_FORMAT="{correspondent}/{correspondent}") def test_document_delete(self) -> None: document = Document() diff --git a/src/documents/tests/test_index.py b/src/documents/tests/test_index.py deleted file mode 100644 index 5f1c7487d..000000000 --- a/src/documents/tests/test_index.py +++ /dev/null @@ -1,371 +0,0 @@ -from datetime import datetime -from unittest import mock - -from django.conf import settings -from django.contrib.auth.models import User -from django.test import SimpleTestCase -from django.test import TestCase -from django.test import override_settings -from django.utils.timezone import get_current_timezone -from django.utils.timezone import timezone - -from documents import index -from documents.models import Document -from documents.tests.utils import DirectoriesMixin - - -class TestAutoComplete(DirectoriesMixin, TestCase): - def test_auto_complete(self) -> None: - doc1 = Document.objects.create( - title="doc1", - checksum="A", - content="test test2 test3", - ) - doc2 = Document.objects.create(title="doc2", checksum="B", content="test test2") - doc3 = Document.objects.create(title="doc3", checksum="C", content="test2") - - index.add_or_update_document(doc1) - index.add_or_update_document(doc2) - index.add_or_update_document(doc3) - - ix = index.open_index() - - self.assertListEqual( - index.autocomplete(ix, "tes"), - [b"test2", b"test", b"test3"], - ) - self.assertListEqual( - index.autocomplete(ix, "tes", limit=3), - [b"test2", b"test", b"test3"], - ) - self.assertListEqual(index.autocomplete(ix, "tes", limit=1), [b"test2"]) - self.assertListEqual(index.autocomplete(ix, "tes", limit=0), []) - - def test_archive_serial_number_ranging(self) -> None: - """ - GIVEN: - - Document with an archive serial number above schema allowed size - WHEN: - - Document is provided to the index - THEN: - - Error is logged - - Document ASN is reset to 0 for the index - """ - doc1 = Document.objects.create( - title="doc1", - checksum="A", - content="test test2 test3", - # yes, this is allowed, unless full_clean is run - # DRF does call the validators, this test won't - archive_serial_number=Document.ARCHIVE_SERIAL_NUMBER_MAX + 1, - ) - with self.assertLogs("paperless.index", level="ERROR") as cm: - with mock.patch( - "documents.index.AsyncWriter.update_document", - ) as mocked_update_doc: - index.add_or_update_document(doc1) - - mocked_update_doc.assert_called_once() - _, kwargs = mocked_update_doc.call_args - - self.assertEqual(kwargs["asn"], 0) - - error_str = cm.output[0] - expected_str = "ERROR:paperless.index:Not indexing Archive Serial Number 4294967296 of document 1" - self.assertIn(expected_str, error_str) - - def test_archive_serial_number_is_none(self) -> None: - """ - GIVEN: - - Document with no archive serial number - WHEN: - - Document is provided to the index - THEN: - - ASN isn't touched - """ - doc1 = Document.objects.create( - title="doc1", - checksum="A", - content="test test2 test3", - ) - with mock.patch( - "documents.index.AsyncWriter.update_document", - ) as mocked_update_doc: - index.add_or_update_document(doc1) - - mocked_update_doc.assert_called_once() - _, kwargs = mocked_update_doc.call_args - - self.assertIsNone(kwargs["asn"]) - - @override_settings(TIME_ZONE="Pacific/Auckland") - def test_added_today_respects_local_timezone_boundary(self) -> None: - tz = get_current_timezone() - fixed_now = datetime(2025, 7, 20, 15, 0, 0, tzinfo=tz) - - # Fake a time near the local boundary (1 AM NZT = 13:00 UTC on previous UTC day) - local_dt = datetime(2025, 7, 20, 1, 0, 0).replace(tzinfo=tz) - utc_dt = local_dt.astimezone(timezone.utc) - - doc = Document.objects.create( - title="Time zone", - content="Testing added:today", - checksum="edgecase123", - added=utc_dt, - ) - - with index.open_index_writer() as writer: - index.update_document(writer, doc) - - superuser = User.objects.create_superuser(username="testuser") - self.client.force_login(superuser) - - with mock.patch("documents.index.now", return_value=fixed_now): - response = self.client.get("/api/documents/?query=added:today") - results = response.json()["results"] - self.assertEqual(len(results), 1) - self.assertEqual(results[0]["id"], doc.id) - - response = self.client.get("/api/documents/?query=added:yesterday") - results = response.json()["results"] - self.assertEqual(len(results), 0) - - -@override_settings(TIME_ZONE="UTC") -class TestRewriteNaturalDateKeywords(SimpleTestCase): - """ - Unit tests for rewrite_natural_date_keywords function. - """ - - def _rewrite_with_now(self, query: str, now_dt: datetime) -> str: - with mock.patch("documents.index.now", return_value=now_dt): - return index.rewrite_natural_date_keywords(query) - - def _assert_rewrite_contains( - self, - query: str, - now_dt: datetime, - *expected_fragments: str, - ) -> str: - result = self._rewrite_with_now(query, now_dt) - for fragment in expected_fragments: - self.assertIn(fragment, result) - return result - - def test_range_keywords(self) -> None: - """ - Test various different range keywords - """ - cases = [ - ( - "added:today", - datetime(2025, 7, 20, 15, 30, 45, tzinfo=timezone.utc), - ("added:[20250720", "TO 20250720"), - ), - ( - "added:yesterday", - datetime(2025, 7, 20, 15, 30, 45, tzinfo=timezone.utc), - ("added:[20250719", "TO 20250719"), - ), - ( - "added:this month", - datetime(2025, 7, 15, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20250701", "TO 20250731"), - ), - ( - "added:previous month", - datetime(2025, 7, 15, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20250601", "TO 20250630"), - ), - ( - "added:this year", - datetime(2025, 7, 15, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20250101", "TO 20251231"), - ), - ( - "added:previous year", - datetime(2025, 7, 15, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20240101", "TO 20241231"), - ), - # Previous quarter from July 15, 2025 is April-June. - ( - "added:previous quarter", - datetime(2025, 7, 15, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20250401", "TO 20250630"), - ), - # July 20, 2025 is a Sunday (weekday 6) so previous week is July 7-13. - ( - "added:previous week", - datetime(2025, 7, 20, 12, 0, 0, tzinfo=timezone.utc), - ("added:[20250707", "TO 20250713"), - ), - ] - - for query, now_dt, fragments in cases: - with self.subTest(query=query): - self._assert_rewrite_contains(query, now_dt, *fragments) - - def test_additional_fields(self) -> None: - fixed_now = datetime(2025, 7, 20, 15, 30, 45, tzinfo=timezone.utc) - # created - self._assert_rewrite_contains("created:today", fixed_now, "created:[20250720") - # modified - self._assert_rewrite_contains("modified:today", fixed_now, "modified:[20250720") - - def test_basic_syntax_variants(self) -> None: - """ - Test that quoting, casing, and multi-clause queries are parsed. - """ - fixed_now = datetime(2025, 7, 20, 15, 30, 45, tzinfo=timezone.utc) - - # quoted keywords - result1 = self._rewrite_with_now('added:"today"', fixed_now) - result2 = self._rewrite_with_now("added:'today'", fixed_now) - self.assertIn("added:[20250720", result1) - self.assertIn("added:[20250720", result2) - - # case insensitivity - for query in ("added:TODAY", "added:Today", "added:ToDaY"): - with self.subTest(case_variant=query): - self._assert_rewrite_contains(query, fixed_now, "added:[20250720") - - # multiple clauses - result = self._rewrite_with_now("added:today created:yesterday", fixed_now) - self.assertIn("added:[20250720", result) - self.assertIn("created:[20250719", result) - - def test_no_match(self) -> None: - """ - Test that queries without keywords are unchanged. - """ - query = "title:test content:example" - result = index.rewrite_natural_date_keywords(query) - self.assertEqual(query, result) - - @override_settings(TIME_ZONE="Pacific/Auckland") - def test_timezone_awareness(self) -> None: - """ - Test timezone conversion. - """ - # July 20, 2025 1:00 AM NZST = July 19, 2025 13:00 UTC - fixed_now = datetime(2025, 7, 20, 1, 0, 0, tzinfo=get_current_timezone()) - result = self._rewrite_with_now("added:today", fixed_now) - # Should convert to UTC properly - self.assertIn("added:[20250719", result) - - -class TestIndexResilience(DirectoriesMixin, SimpleTestCase): - def _assert_recreate_called(self, mock_create_in) -> None: - mock_create_in.assert_called_once() - path_arg, schema_arg = mock_create_in.call_args.args - self.assertEqual(path_arg, settings.INDEX_DIR) - self.assertEqual(schema_arg.__class__.__name__, "Schema") - - def test_transient_missing_segment_does_not_force_recreate(self) -> None: - """ - GIVEN: - - Index directory exists - WHEN: - - open_index is called - - Opening the index raises FileNotFoundError once due to a - transient missing segment - THEN: - - Index is opened successfully on retry - - Index is not recreated - """ - file_marker = settings.INDEX_DIR / "file_marker.txt" - file_marker.write_text("keep") - expected_index = object() - - with ( - mock.patch("documents.index.exists_in", return_value=True), - mock.patch( - "documents.index.open_dir", - side_effect=[FileNotFoundError("missing"), expected_index], - ) as mock_open_dir, - mock.patch( - "documents.index.create_in", - ) as mock_create_in, - mock.patch( - "documents.index.rmtree", - ) as mock_rmtree, - ): - ix = index.open_index() - - self.assertIs(ix, expected_index) - self.assertGreaterEqual(mock_open_dir.call_count, 2) - mock_rmtree.assert_not_called() - mock_create_in.assert_not_called() - self.assertEqual(file_marker.read_text(), "keep") - - def test_transient_errors_exhaust_retries_and_recreate(self) -> None: - """ - GIVEN: - - Index directory exists - WHEN: - - open_index is called - - Opening the index raises FileNotFoundError multiple times due to - transient missing segments - THEN: - - Index is recreated after retries are exhausted - """ - recreated_index = object() - - with ( - self.assertLogs("paperless.index", level="ERROR") as cm, - mock.patch("documents.index.exists_in", return_value=True), - mock.patch( - "documents.index.open_dir", - side_effect=FileNotFoundError("missing"), - ) as mock_open_dir, - mock.patch("documents.index.rmtree") as mock_rmtree, - mock.patch( - "documents.index.create_in", - return_value=recreated_index, - ) as mock_create_in, - ): - ix = index.open_index() - - self.assertIs(ix, recreated_index) - self.assertEqual(mock_open_dir.call_count, 4) - mock_rmtree.assert_called_once_with(settings.INDEX_DIR) - self._assert_recreate_called(mock_create_in) - self.assertIn( - "Error while opening the index after retries, recreating.", - cm.output[0], - ) - - def test_non_transient_error_recreates_index(self) -> None: - """ - GIVEN: - - Index directory exists - WHEN: - - open_index is called - - Opening the index raises a "non-transient" error - THEN: - - Index is recreated - """ - recreated_index = object() - - with ( - self.assertLogs("paperless.index", level="ERROR") as cm, - mock.patch("documents.index.exists_in", return_value=True), - mock.patch( - "documents.index.open_dir", - side_effect=RuntimeError("boom"), - ), - mock.patch("documents.index.rmtree") as mock_rmtree, - mock.patch( - "documents.index.create_in", - return_value=recreated_index, - ) as mock_create_in, - ): - ix = index.open_index() - - self.assertIs(ix, recreated_index) - mock_rmtree.assert_called_once_with(settings.INDEX_DIR) - self._assert_recreate_called(mock_create_in) - self.assertIn( - "Error while opening the index, recreating.", - cm.output[0], - ) diff --git a/src/documents/tests/test_management.py b/src/documents/tests/test_management.py index 03959a85b..6ea4431fd 100644 --- a/src/documents/tests/test_management.py +++ b/src/documents/tests/test_management.py @@ -1,7 +1,10 @@ +from __future__ import annotations + import filecmp import shutil from io import StringIO from pathlib import Path +from typing import TYPE_CHECKING from unittest import mock import pytest @@ -11,6 +14,9 @@ from django.core.management import call_command from django.test import TestCase from django.test import override_settings +if TYPE_CHECKING: + from pytest_mock import MockerFixture + from documents.file_handling import generate_filename from documents.models import Document from documents.tasks import update_document_content_maybe_archive_file @@ -35,7 +41,7 @@ class TestArchiver(DirectoriesMixin, FileSystemAssertsMixin, TestCase): doc = self.make_models() shutil.copy(sample_file, Path(self.dirs.originals_dir) / f"{doc.id:07}.pdf") - call_command("document_archiver", "--processes", "1") + call_command("document_archiver", "--processes", "1", skip_checks=True) def test_handle_document(self) -> None: doc = self.make_models() @@ -97,16 +103,75 @@ class TestArchiver(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @pytest.mark.management -class TestMakeIndex(TestCase): - @mock.patch("documents.management.commands.document_index.index_reindex") - def test_reindex(self, m) -> None: - call_command("document_index", "reindex") - m.assert_called_once() +@pytest.mark.django_db +class TestMakeIndex: + def test_reindex(self, mocker: MockerFixture) -> None: + """Reindex command must call the backend rebuild method to recreate the index.""" + mock_get_backend = mocker.patch( + "documents.management.commands.document_index.get_backend", + ) + call_command("document_index", "reindex", skip_checks=True) + mock_get_backend.return_value.rebuild.assert_called_once() - @mock.patch("documents.management.commands.document_index.index_optimize") - def test_optimize(self, m) -> None: - call_command("document_index", "optimize") - m.assert_called_once() + def test_optimize(self) -> None: + """Optimize command must execute without error (Tantivy handles optimization automatically).""" + call_command("document_index", "optimize", skip_checks=True) + + def test_reindex_recreate_wipes_index(self, mocker: MockerFixture) -> None: + """Reindex with --recreate must wipe the index before rebuilding.""" + mock_wipe = mocker.patch( + "documents.management.commands.document_index.wipe_index", + ) + mock_get_backend = mocker.patch( + "documents.management.commands.document_index.get_backend", + ) + call_command("document_index", "reindex", recreate=True, skip_checks=True) + mock_wipe.assert_called_once() + mock_get_backend.return_value.rebuild.assert_called_once() + + def test_reindex_without_recreate_does_not_wipe_index( + self, + mocker: MockerFixture, + ) -> None: + """Reindex without --recreate must not wipe the index.""" + mock_wipe = mocker.patch( + "documents.management.commands.document_index.wipe_index", + ) + mocker.patch( + "documents.management.commands.document_index.get_backend", + ) + call_command("document_index", "reindex", skip_checks=True) + mock_wipe.assert_not_called() + + def test_reindex_if_needed_skips_when_up_to_date( + self, + mocker: MockerFixture, + ) -> None: + """Conditional reindex must skip rebuild when schema version and language match.""" + mocker.patch( + "documents.management.commands.document_index.needs_rebuild", + return_value=False, + ) + mock_get_backend = mocker.patch( + "documents.management.commands.document_index.get_backend", + ) + call_command("document_index", "reindex", if_needed=True, skip_checks=True) + mock_get_backend.return_value.rebuild.assert_not_called() + + def test_reindex_if_needed_runs_when_rebuild_needed( + self, + mocker: MockerFixture, + ) -> None: + """Conditional reindex must proceed with rebuild when schema version or language changed.""" + mocker.patch( + "documents.management.commands.document_index.needs_rebuild", + return_value=True, + ) + mock_get_backend = mocker.patch( + "documents.management.commands.document_index.get_backend", + ) + call_command("document_index", "reindex", if_needed=True, skip_checks=True) + mock_get_backend.return_value.rebuild.assert_called_once() @pytest.mark.management @@ -122,7 +187,7 @@ class TestRenamer(DirectoriesMixin, FileSystemAssertsMixin, TestCase): Path(doc.archive_path).touch() with override_settings(FILENAME_FORMAT="{correspondent}/{title}"): - call_command("document_renamer") + call_command("document_renamer", skip_checks=True) doc2 = Document.objects.get(id=doc.id) @@ -135,14 +200,32 @@ class TestRenamer(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @pytest.mark.management -class TestCreateClassifier(TestCase): - @mock.patch( - "documents.management.commands.document_create_classifier.train_classifier", - ) - def test_create_classifier(self, m) -> None: - call_command("document_create_classifier") +class TestCreateClassifier: + def test_create_classifier(self, mocker: MockerFixture) -> None: + m = mocker.patch( + "documents.management.commands.document_create_classifier.train_classifier", + ) - m.assert_called_once() + call_command("document_create_classifier", skip_checks=True) + + m.assert_called_once_with(scheduled=False, status_callback=mocker.ANY) + assert callable(m.call_args.kwargs["status_callback"]) + + def test_create_classifier_callback_output(self, mocker: MockerFixture) -> None: + """Callback passed to train_classifier writes each phase message to the console.""" + m = mocker.patch( + "documents.management.commands.document_create_classifier.train_classifier", + ) + + def invoke_callback(**kwargs): + kwargs["status_callback"]("Vectorizing document content...") + + m.side_effect = invoke_callback + + stdout = StringIO() + call_command("document_create_classifier", skip_checks=True, stdout=stdout) + + assert "Vectorizing document content..." in stdout.getvalue() @pytest.mark.management @@ -152,7 +235,7 @@ class TestConvertMariaDBUUID(TestCase): m.alter_field.return_value = None stdout = StringIO() - call_command("convert_mariadb_uuid", stdout=stdout) + call_command("convert_mariadb_uuid", stdout=stdout, skip_checks=True) m.assert_called_once() @@ -167,6 +250,6 @@ class TestPruneAuditLogs(TestCase): object_id=1, action=LogEntry.Action.CREATE, ) - call_command("prune_audit_logs") + call_command("prune_audit_logs", skip_checks=True) self.assertEqual(LogEntry.objects.count(), 0) diff --git a/src/documents/tests/test_management_exporter.py b/src/documents/tests/test_management_exporter.py index 6cd8cd729..4ee7677ca 100644 --- a/src/documents/tests/test_management_exporter.py +++ b/src/documents/tests/test_management_exporter.py @@ -2,6 +2,7 @@ import hashlib import json import shutil import tempfile +from datetime import timedelta from io import StringIO from pathlib import Path from unittest import mock @@ -11,6 +12,7 @@ import pytest from allauth.socialaccount.models import SocialAccount from allauth.socialaccount.models import SocialApp from allauth.socialaccount.models import SocialToken +from django.conf import settings from django.contrib.auth.models import Group from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType @@ -31,6 +33,8 @@ from documents.models import CustomFieldInstance from documents.models import Document from documents.models import DocumentType from documents.models import Note +from documents.models import ShareLink +from documents.models import ShareLinkBundle from documents.models import StoragePath from documents.models import Tag from documents.models import User @@ -39,6 +43,7 @@ from documents.models import WorkflowAction from documents.models import WorkflowTrigger from documents.sanity_checker import check_sanity from documents.settings import EXPORTER_FILE_NAME +from documents.settings import EXPORTER_SHARE_LINK_BUNDLE_NAME from documents.tests.utils import DirectoriesMixin from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import SampleDirMixin @@ -63,8 +68,8 @@ class TestExportImport( self.d1 = Document.objects.create( content="Content", - checksum="42995833e01aea9b3edee44bbfdd7ce1", - archive_checksum="62acb0bcbfbcaa62ca6ad3668e4e404b", + checksum="1093cf6e32adbd16b06969df09215d42c4a3a8938cc18b39455953f08d1ff2ab", + archive_checksum="706124ecde3c31616992fa979caed17a726b1c9ccdba70e82a4ff796cea97ccf", title="wow1", filename="0000001.pdf", mime_type="application/pdf", @@ -72,21 +77,21 @@ class TestExportImport( ) self.d2 = Document.objects.create( content="Content", - checksum="9c9691e51741c1f4f41a20896af31770", + checksum="550d1bae0f746d4f7c6be07054eb20cc2f11988a58ef64ceae45e98f85e92a5b", title="wow2", filename="0000002.pdf", mime_type="application/pdf", ) self.d3 = Document.objects.create( content="Content", - checksum="d38d7ed02e988e072caf924e0f3fcb76", + checksum="f1ba6b7ff8548214a75adec228f5468a14fe187f445bc0b9485cbf1c35b15915", title="wow2", filename="0000003.pdf", mime_type="application/pdf", ) self.d4 = Document.objects.create( content="Content", - checksum="82186aaa94f0b98697d704b90fd1c072", + checksum="a81b16b6b313cfd7e60eb7b12598d1343b58622b4030cfa19a2724a02e98db1b", title="wow_dec", filename="0000004.pdf", mime_type="application/pdf", @@ -180,7 +185,7 @@ class TestExportImport( if data_only: args += ["--data-only"] - call_command(*args) + call_command(*args, skip_checks=True) with (self.target / "manifest.json").open() as f: manifest = json.load(f) @@ -239,7 +244,7 @@ class TestExportImport( ) with Path(fname).open("rb") as f: - checksum = hashlib.md5(f.read()).hexdigest() + checksum = hashlib.sha256(f.read()).hexdigest() self.assertEqual(checksum, element["fields"]["checksum"]) # Generated field "content_length" should not be exported, @@ -253,7 +258,7 @@ class TestExportImport( self.assertIsFile(fname) with Path(fname).open("rb") as f: - checksum = hashlib.md5(f.read()).hexdigest() + checksum = hashlib.sha256(f.read()).hexdigest() self.assertEqual(checksum, element["fields"]["archive_checksum"]) elif element["model"] == "documents.note": @@ -272,7 +277,12 @@ class TestExportImport( GroupObjectPermission.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) self.assertEqual(Tag.objects.count(), 1) self.assertEqual(Correspondent.objects.count(), 1) @@ -301,6 +311,108 @@ class TestExportImport( ): self.test_exporter(use_filename_format=True) + def test_exporter_includes_share_links_and_bundles(self) -> None: + shutil.rmtree(Path(self.dirs.media_dir) / "documents") + shutil.copytree( + Path(__file__).parent / "samples" / "documents", + Path(self.dirs.media_dir) / "documents", + ) + + share_link = ShareLink.objects.create( + slug="share-link-slug", + document=self.d1, + owner=self.user, + file_version=ShareLink.FileVersion.ORIGINAL, + expiration=timezone.now() + timedelta(days=7), + ) + + bundle_relative_path = Path("nested") / "share-bundle.zip" + bundle_source_path = settings.SHARE_LINK_BUNDLE_DIR / bundle_relative_path + bundle_source_path.parent.mkdir(parents=True, exist_ok=True) + bundle_source_path.write_bytes(b"share-bundle-contents") + bundle = ShareLinkBundle.objects.create( + slug="share-bundle-slug", + owner=self.user, + file_version=ShareLink.FileVersion.ARCHIVE, + expiration=timezone.now() + timedelta(days=7), + status=ShareLinkBundle.Status.READY, + size_bytes=bundle_source_path.stat().st_size, + file_path=str(bundle_relative_path), + built_at=timezone.now(), + ) + bundle.documents.set([self.d1, self.d2]) + + manifest = self._do_export() + + share_link_records = [ + record for record in manifest if record["model"] == "documents.sharelink" + ] + self.assertEqual(len(share_link_records), 1) + self.assertEqual(share_link_records[0]["pk"], share_link.pk) + self.assertEqual(share_link_records[0]["fields"]["document"], self.d1.pk) + self.assertEqual(share_link_records[0]["fields"]["owner"], self.user.pk) + + share_link_bundle_records = [ + record + for record in manifest + if record["model"] == "documents.sharelinkbundle" + ] + self.assertEqual(len(share_link_bundle_records), 1) + bundle_record = share_link_bundle_records[0] + self.assertEqual(bundle_record["pk"], bundle.pk) + self.assertEqual( + bundle_record["fields"]["documents"], + [self.d1.pk, self.d2.pk], + ) + self.assertEqual( + bundle_record[EXPORTER_SHARE_LINK_BUNDLE_NAME], + "share_link_bundles/nested/share-bundle.zip", + ) + self.assertEqual( + bundle_record["fields"]["file_path"], + "nested/share-bundle.zip", + ) + self.assertIsFile(self.target / bundle_record[EXPORTER_SHARE_LINK_BUNDLE_NAME]) + + with paperless_environment(): + ShareLink.objects.all().delete() + ShareLinkBundle.objects.all().delete() + shutil.rmtree(settings.SHARE_LINK_BUNDLE_DIR, ignore_errors=True) + + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) + + imported_share_link = ShareLink.objects.get(pk=share_link.pk) + self.assertEqual(imported_share_link.document_id, self.d1.pk) + self.assertEqual(imported_share_link.owner_id, self.user.pk) + self.assertEqual( + imported_share_link.file_version, + ShareLink.FileVersion.ORIGINAL, + ) + + imported_bundle = ShareLinkBundle.objects.get(pk=bundle.pk) + imported_bundle_path = imported_bundle.absolute_file_path + self.assertEqual(imported_bundle.owner_id, self.user.pk) + self.assertEqual( + list( + imported_bundle.documents.order_by("pk").values_list( + "pk", + flat=True, + ), + ), + [self.d1.pk, self.d2.pk], + ) + self.assertEqual(imported_bundle.file_path, "nested/share-bundle.zip") + self.assertIsNotNone(imported_bundle_path) + self.assertEqual( + imported_bundle_path.read_bytes(), + b"share-bundle-contents", + ) + def test_update_export_changed_time(self) -> None: shutil.rmtree(Path(self.dirs.media_dir) / "documents") shutil.copytree( @@ -384,7 +496,7 @@ class TestExportImport( self.assertIsFile( str(self.target / doc_from_manifest[EXPORTER_FILE_NAME]), ) - self.d3.delete() + self.d3.hard_delete() manifest = self._do_export() self.assertRaises( @@ -438,7 +550,8 @@ class TestExportImport( filename="0000010.pdf", mime_type="application/pdf", ) - self.assertRaises(FileNotFoundError, call_command, "document_exporter", target) + with self.assertRaises(FileNotFoundError): + call_command("document_exporter", target, skip_checks=True) def test_export_zipped(self) -> None: """ @@ -458,7 +571,7 @@ class TestExportImport( args = ["document_exporter", self.target, "--zip"] - call_command(*args) + call_command(*args, skip_checks=True) expected_file = str( self.target / f"export-{timezone.localdate().isoformat()}.zip", @@ -493,7 +606,7 @@ class TestExportImport( with override_settings( FILENAME_FORMAT="{created_year}/{correspondent}/{title}", ): - call_command(*args) + call_command(*args, skip_checks=True) expected_file = str( self.target / f"export-{timezone.localdate().isoformat()}.zip", @@ -538,7 +651,7 @@ class TestExportImport( args = ["document_exporter", self.target, "--zip", "--delete"] - call_command(*args) + call_command(*args, skip_checks=True) expected_file = str( self.target / f"export-{timezone.localdate().isoformat()}.zip", @@ -565,7 +678,7 @@ class TestExportImport( args = ["document_exporter", "/tmp/foo/bar"] with self.assertRaises(CommandError) as e: - call_command(*args) + call_command(*args, skip_checks=True) self.assertEqual("That path doesn't exist", str(e.exception)) @@ -583,7 +696,7 @@ class TestExportImport( args = ["document_exporter", tmp_file.name] with self.assertRaises(CommandError) as e: - call_command(*args) + call_command(*args, skip_checks=True) self.assertEqual("That path isn't a directory", str(e.exception)) @@ -602,7 +715,7 @@ class TestExportImport( args = ["document_exporter", tmp_dir] with self.assertRaises(CommandError) as e: - call_command(*args) + call_command(*args, skip_checks=True) self.assertEqual( "That path doesn't appear to be writable", @@ -647,7 +760,12 @@ class TestExportImport( self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) def test_no_thumbnail(self) -> None: @@ -690,7 +808,12 @@ class TestExportImport( self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) def test_split_manifest(self) -> None: @@ -721,7 +844,12 @@ class TestExportImport( Document.objects.all().delete() CustomFieldInstance.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) self.assertEqual(CustomFieldInstance.objects.count(), 1) @@ -746,7 +874,12 @@ class TestExportImport( self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) def test_folder_prefix_with_split(self) -> None: @@ -771,7 +904,12 @@ class TestExportImport( self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(Document.objects.count(), 4) def test_import_db_transaction_failed(self) -> None: @@ -813,7 +951,12 @@ class TestExportImport( self.user = User.objects.create(username="temp_admin") with self.assertRaises(IntegrityError): - call_command("document_importer", "--no-progress-bar", self.target) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) self.assertEqual(ContentType.objects.count(), num_content_type_objects) self.assertEqual(Permission.objects.count(), num_permission_objects + 1) @@ -832,6 +975,52 @@ class TestExportImport( for obj in manifest: self.assertNotEqual(obj["model"], "auditlog.logentry") + def test_export_import_soft_deleted_document(self) -> None: + """ + GIVEN: + - A document with a note and custom field instance has been soft-deleted + WHEN: + - Export and re-import are performed + THEN: + - The soft-deleted document, note, and custom field instance + survive the round-trip with deleted_at preserved + """ + shutil.rmtree(Path(self.dirs.media_dir) / "documents") + shutil.copytree( + Path(__file__).parent / "samples" / "documents", + Path(self.dirs.media_dir) / "documents", + ) + + # d1 has self.note and self.cfi1 attached via setUp + self.d1.delete() + + self._do_export() + + with paperless_environment(): + Document.global_objects.all().hard_delete() + Correspondent.objects.all().delete() + DocumentType.objects.all().delete() + Tag.objects.all().delete() + + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) + + self.assertEqual(Document.global_objects.count(), 4) + reimported_doc = Document.global_objects.get(pk=self.d1.pk) + self.assertIsNotNone(reimported_doc.deleted_at) + + self.assertEqual(Note.global_objects.count(), 1) + reimported_note = Note.global_objects.get(pk=self.note.pk) + self.assertIsNotNone(reimported_note.deleted_at) + + self.assertEqual(CustomFieldInstance.global_objects.count(), 1) + reimported_cfi = CustomFieldInstance.global_objects.get(pk=self.cfi1.pk) + self.assertIsNotNone(reimported_cfi.deleted_at) + def test_export_data_only(self) -> None: """ GIVEN: @@ -864,6 +1053,7 @@ class TestExportImport( "--no-progress-bar", "--data-only", self.target, + skip_checks=True, ) self.assertEqual(Document.objects.all().count(), 4) @@ -923,6 +1113,7 @@ class TestCryptExportImport( "--passphrase", "securepassword", self.target, + skip_checks=True, ) self.assertIsFile(self.target / "metadata.json") @@ -948,6 +1139,7 @@ class TestCryptExportImport( "--passphrase", "securepassword", self.target, + skip_checks=True, ) account = MailAccount.objects.first() @@ -976,6 +1168,7 @@ class TestCryptExportImport( "--passphrase", "securepassword", self.target, + skip_checks=True, ) with self.assertRaises(CommandError) as err: @@ -983,6 +1176,7 @@ class TestCryptExportImport( "document_importer", "--no-progress-bar", self.target, + skip_checks=True, ) self.assertEqual( err.msg, @@ -1014,6 +1208,7 @@ class TestCryptExportImport( "--no-progress-bar", str(self.target), stdout=stdout, + skip_checks=True, ) stdout.seek(0) self.assertIn( diff --git a/src/documents/tests/test_management_fuzzy.py b/src/documents/tests/test_management_fuzzy.py index 195a3450d..7c4acabec 100644 --- a/src/documents/tests/test_management_fuzzy.py +++ b/src/documents/tests/test_management_fuzzy.py @@ -21,6 +21,7 @@ class TestFuzzyMatchCommand(TestCase): *args, stdout=stdout, stderr=stderr, + skip_checks=True, **kwargs, ) return stdout.getvalue(), stderr.getvalue() diff --git a/src/documents/tests/test_management_importer.py b/src/documents/tests/test_management_importer.py index 137b4004b..a890718a1 100644 --- a/src/documents/tests/test_management_importer.py +++ b/src/documents/tests/test_management_importer.py @@ -41,6 +41,7 @@ class TestCommandImport( "document_importer", "--no-progress-bar", str(self.dirs.scratch_dir), + skip_checks=True, ) self.assertIn( "That directory doesn't appear to contain a manifest.json file.", @@ -67,6 +68,7 @@ class TestCommandImport( "document_importer", "--no-progress-bar", str(self.dirs.scratch_dir), + skip_checks=True, ) self.assertIn( "The manifest file contains a record which does not refer to an actual document file.", @@ -96,6 +98,7 @@ class TestCommandImport( "document_importer", "--no-progress-bar", str(self.dirs.scratch_dir), + skip_checks=True, ) self.assertIn('The manifest file refers to "noexist.pdf"', str(e.exception)) @@ -157,7 +160,7 @@ class TestCommandImport( - CommandError is raised indicating the issue """ with self.assertRaises(CommandError) as cm: - call_command("document_importer", Path("/tmp/notapath")) + call_command("document_importer", Path("/tmp/notapath"), skip_checks=True) self.assertIn("That path doesn't exist", str(cm.exception)) def test_import_source_not_readable(self) -> None: @@ -173,7 +176,7 @@ class TestCommandImport( path = Path(temp_dir) path.chmod(0o222) with self.assertRaises(CommandError) as cm: - call_command("document_importer", path) + call_command("document_importer", path, skip_checks=True) self.assertIn( "That path doesn't appear to be readable", str(cm.exception), @@ -193,7 +196,12 @@ class TestCommandImport( self.assertIsNotFile(path) with self.assertRaises(CommandError) as e: - call_command("document_importer", "--no-progress-bar", str(path)) + call_command( + "document_importer", + "--no-progress-bar", + str(path), + skip_checks=True, + ) self.assertIn("That path doesn't exist", str(e.exception)) def test_import_files_exist(self) -> None: @@ -218,6 +226,7 @@ class TestCommandImport( "--no-progress-bar", str(self.dirs.scratch_dir), stdout=stdout, + skip_checks=True, ) stdout.seek(0) self.assertIn( @@ -246,6 +255,7 @@ class TestCommandImport( "--no-progress-bar", str(self.dirs.scratch_dir), stdout=stdout, + skip_checks=True, ) stdout.seek(0) self.assertIn( @@ -267,8 +277,8 @@ class TestCommandImport( Document.objects.create( content="Content", - checksum="42995833e01aea9b3edee44bbfdd7ce1", - archive_checksum="62acb0bcbfbcaa62ca6ad3668e4e404b", + checksum="1093cf6e32adbd16b06969df09215d42c4a3a8938cc18b39455953f08d1ff2ab", + archive_checksum="706124ecde3c31616992fa979caed17a726b1c9ccdba70e82a4ff796cea97ccf", title="wow1", filename="0000001.pdf", mime_type="application/pdf", @@ -282,6 +292,7 @@ class TestCommandImport( "--no-progress-bar", str(self.dirs.scratch_dir), stdout=stdout, + skip_checks=True, ) stdout.seek(0) self.assertIn( @@ -309,6 +320,7 @@ class TestCommandImport( "--no-progress-bar", str(self.dirs.scratch_dir), stdout=stdout, + skip_checks=True, ) stdout.seek(0) stdout_str = str(stdout.read()) @@ -338,6 +350,7 @@ class TestCommandImport( "--no-progress-bar", str(self.dirs.scratch_dir), stdout=stdout, + skip_checks=True, ) stdout.seek(0) stdout_str = str(stdout.read()) @@ -377,6 +390,7 @@ class TestCommandImport( "--no-progress-bar", str(zip_path), stdout=stdout, + skip_checks=True, ) stdout.seek(0) stdout_str = str(stdout.read()) diff --git a/src/documents/tests/test_management_retagger.py b/src/documents/tests/test_management_retagger.py index 3f669c00e..605068038 100644 --- a/src/documents/tests/test_management_retagger.py +++ b/src/documents/tests/test_management_retagger.py @@ -139,7 +139,7 @@ class TestRetaggerTags(DirectoriesMixin): @pytest.mark.usefixtures("documents") def test_add_tags(self, tags: TagTuple) -> None: tag_first, tag_second, *_ = tags - call_command("document_retagger", "--tags") + call_command("document_retagger", "--tags", skip_checks=True) d_first, d_second, d_unrelated, d_auto = _get_docs() assert d_first.tags.count() == 1 @@ -158,7 +158,7 @@ class TestRetaggerTags(DirectoriesMixin): tag_first, tag_second, tag_inbox, tag_no_match, _ = tags d1.tags.add(tag_second) - call_command("document_retagger", "--tags", "--overwrite") + call_command("document_retagger", "--tags", "--overwrite", skip_checks=True) d_first, d_second, d_unrelated, d_auto = _get_docs() @@ -180,7 +180,13 @@ class TestRetaggerTags(DirectoriesMixin): ], ) def test_suggest_does_not_apply_tags(self, extra_args: list[str]) -> None: - call_command("document_retagger", "--tags", "--suggest", *extra_args) + call_command( + "document_retagger", + "--tags", + "--suggest", + *extra_args, + skip_checks=True, + ) d_first, d_second, _, d_auto = _get_docs() assert d_first.tags.count() == 0 @@ -199,7 +205,7 @@ class TestRetaggerDocumentType(DirectoriesMixin): @pytest.mark.usefixtures("documents") def test_add_type(self, document_types: DocumentTypeTuple) -> None: dt_first, dt_second = document_types - call_command("document_retagger", "--document_type") + call_command("document_retagger", "--document_type", skip_checks=True) d_first, d_second, _, _ = _get_docs() assert d_first.document_type == dt_first @@ -214,7 +220,13 @@ class TestRetaggerDocumentType(DirectoriesMixin): ], ) def test_suggest_does_not_apply_document_type(self, extra_args: list[str]) -> None: - call_command("document_retagger", "--document_type", "--suggest", *extra_args) + call_command( + "document_retagger", + "--document_type", + "--suggest", + *extra_args, + skip_checks=True, + ) d_first, d_second, _, _ = _get_docs() assert d_first.document_type is None @@ -243,7 +255,12 @@ class TestRetaggerDocumentType(DirectoriesMixin): ) doc = DocumentFactory(content="ambiguous content") - call_command("document_retagger", "--document_type", *use_first_flag) + call_command( + "document_retagger", + "--document_type", + *use_first_flag, + skip_checks=True, + ) doc.refresh_from_db() assert (doc.document_type is not None) is expects_assignment @@ -260,7 +277,7 @@ class TestRetaggerCorrespondent(DirectoriesMixin): @pytest.mark.usefixtures("documents") def test_add_correspondent(self, correspondents: CorrespondentTuple) -> None: c_first, c_second = correspondents - call_command("document_retagger", "--correspondent") + call_command("document_retagger", "--correspondent", skip_checks=True) d_first, d_second, _, _ = _get_docs() assert d_first.correspondent == c_first @@ -275,7 +292,13 @@ class TestRetaggerCorrespondent(DirectoriesMixin): ], ) def test_suggest_does_not_apply_correspondent(self, extra_args: list[str]) -> None: - call_command("document_retagger", "--correspondent", "--suggest", *extra_args) + call_command( + "document_retagger", + "--correspondent", + "--suggest", + *extra_args, + skip_checks=True, + ) d_first, d_second, _, _ = _get_docs() assert d_first.correspondent is None @@ -304,7 +327,12 @@ class TestRetaggerCorrespondent(DirectoriesMixin): ) doc = DocumentFactory(content="ambiguous content") - call_command("document_retagger", "--correspondent", *use_first_flag) + call_command( + "document_retagger", + "--correspondent", + *use_first_flag, + skip_checks=True, + ) doc.refresh_from_db() assert (doc.correspondent is not None) is expects_assignment @@ -326,7 +354,7 @@ class TestRetaggerStoragePath(DirectoriesMixin): THEN matching documents get the correct path; existing path is unchanged """ sp1, sp2, sp3 = storage_paths - call_command("document_retagger", "--storage_path") + call_command("document_retagger", "--storage_path", skip_checks=True) d_first, d_second, d_unrelated, d_auto = _get_docs() assert d_first.storage_path == sp2 @@ -342,7 +370,12 @@ class TestRetaggerStoragePath(DirectoriesMixin): THEN the existing path is replaced by the newly matched path """ sp1, sp2, _ = storage_paths - call_command("document_retagger", "--storage_path", "--overwrite") + call_command( + "document_retagger", + "--storage_path", + "--overwrite", + skip_checks=True, + ) d_first, d_second, d_unrelated, d_auto = _get_docs() assert d_first.storage_path == sp2 @@ -373,7 +406,12 @@ class TestRetaggerStoragePath(DirectoriesMixin): ) doc = DocumentFactory(content="ambiguous content") - call_command("document_retagger", "--storage_path", *use_first_flag) + call_command( + "document_retagger", + "--storage_path", + *use_first_flag, + skip_checks=True, + ) doc.refresh_from_db() assert (doc.storage_path is not None) is expects_assignment @@ -402,7 +440,13 @@ class TestRetaggerIdRange(DirectoriesMixin): expected_count: int, ) -> None: DocumentFactory(content="NOT the first document") - call_command("document_retagger", "--tags", "--id-range", *id_range_args) + call_command( + "document_retagger", + "--tags", + "--id-range", + *id_range_args, + skip_checks=True, + ) tag_first, *_ = tags assert Document.objects.filter(tags__id=tag_first.id).count() == expected_count @@ -416,7 +460,7 @@ class TestRetaggerIdRange(DirectoriesMixin): ) def test_id_range_invalid_arguments_raise(self, args: list[str]) -> None: with pytest.raises((CommandError, SystemExit)): - call_command("document_retagger", *args) + call_command("document_retagger", *args, skip_checks=True) # --------------------------------------------------------------------------- @@ -430,12 +474,12 @@ class TestRetaggerEdgeCases(DirectoriesMixin): @pytest.mark.usefixtures("documents") def test_no_targets_exits_cleanly(self) -> None: """Calling the retagger with no classifier targets should not raise.""" - call_command("document_retagger") + call_command("document_retagger", skip_checks=True) @pytest.mark.usefixtures("documents") def test_inbox_only_skips_non_inbox_documents(self) -> None: """--inbox-only must restrict processing to documents with an inbox tag.""" - call_command("document_retagger", "--tags", "--inbox-only") + call_command("document_retagger", "--tags", "--inbox-only", skip_checks=True) d_first, _, d_unrelated, _ = _get_docs() assert d_first.tags.count() == 0 diff --git a/src/documents/tests/test_management_superuser.py b/src/documents/tests/test_management_superuser.py index 0a6bcb8cd..f2741ba53 100644 --- a/src/documents/tests/test_management_superuser.py +++ b/src/documents/tests/test_management_superuser.py @@ -20,6 +20,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): "--no-color", stdout=out, stderr=StringIO(), + skip_checks=True, ) return out.getvalue() diff --git a/src/documents/tests/test_management_thumbnails.py b/src/documents/tests/test_management_thumbnails.py index 160cb4419..0b016f0cd 100644 --- a/src/documents/tests/test_management_thumbnails.py +++ b/src/documents/tests/test_management_thumbnails.py @@ -85,13 +85,20 @@ class TestMakeThumbnails(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def test_command(self) -> None: self.assertIsNotFile(self.d1.thumbnail_path) self.assertIsNotFile(self.d2.thumbnail_path) - call_command("document_thumbnails", "--processes", "1") + call_command("document_thumbnails", "--processes", "1", skip_checks=True) self.assertIsFile(self.d1.thumbnail_path) self.assertIsFile(self.d2.thumbnail_path) def test_command_documentid(self) -> None: self.assertIsNotFile(self.d1.thumbnail_path) self.assertIsNotFile(self.d2.thumbnail_path) - call_command("document_thumbnails", "--processes", "1", "-d", f"{self.d1.id}") + call_command( + "document_thumbnails", + "--processes", + "1", + "-d", + f"{self.d1.id}", + skip_checks=True, + ) self.assertIsFile(self.d1.thumbnail_path) self.assertIsNotFile(self.d2.thumbnail_path) diff --git a/src/documents/tests/test_matchables.py b/src/documents/tests/test_matchables.py index e038bf786..e13d3827a 100644 --- a/src/documents/tests/test_matchables.py +++ b/src/documents/tests/test_matchables.py @@ -452,7 +452,10 @@ class TestDocumentConsumptionFinishedSignal(TestCase): """ def setUp(self) -> None: + from documents.search import reset_backend + TestCase.setUp(self) + reset_backend() User.objects.create_user(username="test_consumer", password="12345") self.doc_contains = Document.objects.create( content="I contain the keyword.", @@ -464,6 +467,9 @@ class TestDocumentConsumptionFinishedSignal(TestCase): override_settings(INDEX_DIR=self.index_dir).enable() def tearDown(self) -> None: + from documents.search import reset_backend + + reset_backend() shutil.rmtree(self.index_dir, ignore_errors=True) def test_tag_applied_any(self) -> None: diff --git a/src/documents/tests/test_migration_sha256_checksums.py b/src/documents/tests/test_migration_sha256_checksums.py new file mode 100644 index 000000000..4a53b724c --- /dev/null +++ b/src/documents/tests/test_migration_sha256_checksums.py @@ -0,0 +1,132 @@ +import hashlib +import shutil +import tempfile +from pathlib import Path + +from django.conf import settings +from django.db import connection +from django.test import override_settings + +from documents.tests.utils import TestMigrations + + +def _sha256(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +class TestSha256ChecksumDataMigration(TestMigrations): + """recompute_checksums correctly updates document checksums from MD5 to SHA256.""" + + migrate_from = "0015_document_version_index_and_more" + migrate_to = "0016_sha256_checksums" + reset_sequences = True + + ORIGINAL_CONTENT = b"original file content for sha256 migration test" + ARCHIVE_CONTENT = b"archive file content for sha256 migration test" + + def setUpBeforeMigration(self, apps) -> None: + self._originals_dir = Path(tempfile.mkdtemp()) + self._archive_dir = Path(tempfile.mkdtemp()) + self._settings_override = override_settings( + ORIGINALS_DIR=self._originals_dir, + ARCHIVE_DIR=self._archive_dir, + ) + self._settings_override.enable() + Document = apps.get_model("documents", "Document") + + # doc1: original file present, no archive + (settings.ORIGINALS_DIR / "doc1.txt").write_bytes(self.ORIGINAL_CONTENT) + self.doc1_id = Document.objects.create( + title="Doc 1", + mime_type="text/plain", + filename="doc1.txt", + checksum="a" * 32, + ).pk + + # doc2: original and archive both present + (settings.ORIGINALS_DIR / "doc2.txt").write_bytes(self.ORIGINAL_CONTENT) + (settings.ARCHIVE_DIR / "doc2.pdf").write_bytes(self.ARCHIVE_CONTENT) + self.doc2_id = Document.objects.create( + title="Doc 2", + mime_type="text/plain", + filename="doc2.txt", + checksum="b" * 32, + archive_filename="doc2.pdf", + archive_checksum="c" * 32, + ).pk + + # doc3: original file missing — checksum must stay unchanged + self.doc3_id = Document.objects.create( + title="Doc 3", + mime_type="text/plain", + filename="missing_original.txt", + checksum="d" * 32, + ).pk + + # doc4: original present, archive_filename set but archive file missing + (settings.ORIGINALS_DIR / "doc4.txt").write_bytes(self.ORIGINAL_CONTENT) + self.doc4_id = Document.objects.create( + title="Doc 4", + mime_type="text/plain", + filename="doc4.txt", + checksum="e" * 32, + archive_filename="missing_archive.pdf", + archive_checksum="f" * 32, + ).pk + + # doc5: original present, archive_filename is None — archive_checksum must stay null + (settings.ORIGINALS_DIR / "doc5.txt").write_bytes(self.ORIGINAL_CONTENT) + self.doc5_id = Document.objects.create( + title="Doc 5", + mime_type="text/plain", + filename="doc5.txt", + checksum="0" * 32, + archive_filename=None, + archive_checksum=None, + ).pk + + def _fixture_teardown(self) -> None: + super()._fixture_teardown() + # Django's SQLite backend returns [] from sequence_reset_sql(), so + # reset_sequences=True flushes rows but never clears sqlite_sequence. + # Explicitly delete the entry so subsequent tests start from pk=1. + if connection.vendor == "sqlite": + with connection.cursor() as cursor: + cursor.execute( + "DELETE FROM sqlite_sequence WHERE name='documents_document'", + ) + + def tearDown(self) -> None: + super().tearDown() + self._settings_override.disable() + shutil.rmtree(self._originals_dir, ignore_errors=True) + shutil.rmtree(self._archive_dir, ignore_errors=True) + + def test_original_checksum_updated_to_sha256_when_file_exists(self) -> None: + Document = self.apps.get_model("documents", "Document") + doc = Document.objects.get(pk=self.doc1_id) + self.assertEqual(doc.checksum, _sha256(self.ORIGINAL_CONTENT)) + + def test_both_checksums_updated_when_original_and_archive_exist(self) -> None: + Document = self.apps.get_model("documents", "Document") + doc = Document.objects.get(pk=self.doc2_id) + self.assertEqual(doc.checksum, _sha256(self.ORIGINAL_CONTENT)) + self.assertEqual(doc.archive_checksum, _sha256(self.ARCHIVE_CONTENT)) + + def test_checksum_unchanged_when_original_file_missing(self) -> None: + Document = self.apps.get_model("documents", "Document") + doc = Document.objects.get(pk=self.doc3_id) + self.assertEqual(doc.checksum, "d" * 32) + + def test_archive_checksum_unchanged_when_archive_file_missing(self) -> None: + Document = self.apps.get_model("documents", "Document") + doc = Document.objects.get(pk=self.doc4_id) + # Original was updated (file exists) + self.assertEqual(doc.checksum, _sha256(self.ORIGINAL_CONTENT)) + # Archive was not updated (file missing) + self.assertEqual(doc.archive_checksum, "f" * 32) + + def test_archive_checksum_stays_null_when_no_archive_filename(self) -> None: + Document = self.apps.get_model("documents", "Document") + doc = Document.objects.get(pk=self.doc5_id) + self.assertIsNone(doc.archive_checksum) diff --git a/src/documents/tests/test_parsers.py b/src/documents/tests/test_parsers.py index 5383975d1..30963df70 100644 --- a/src/documents/tests/test_parsers.py +++ b/src/documents/tests/test_parsers.py @@ -1,130 +1,14 @@ -from tempfile import TemporaryDirectory -from unittest import mock - -from django.apps import apps from django.test import TestCase from django.test import override_settings from documents.parsers import get_default_file_extension -from documents.parsers import get_parser_class_for_mime_type from documents.parsers import get_supported_file_extensions from documents.parsers import is_file_ext_supported +from paperless.parsers.registry import get_parser_registry +from paperless.parsers.registry import reset_parser_registry +from paperless.parsers.tesseract import RasterisedDocumentParser from paperless.parsers.text import TextDocumentParser -from paperless_tesseract.parsers import RasterisedDocumentParser -from paperless_tika.parsers import TikaDocumentParser - - -class TestParserDiscovery(TestCase): - @mock.patch("documents.parsers.document_consumer_declaration.send") - def test_get_parser_class_1_parser(self, m, *args) -> None: - """ - GIVEN: - - Parser declared for a given mimetype - WHEN: - - Attempt to get parser for the mimetype - THEN: - - Declared parser class is returned - """ - - class DummyParser: - pass - - m.return_value = ( - ( - None, - { - "weight": 0, - "parser": DummyParser, - "mime_types": {"application/pdf": ".pdf"}, - }, - ), - ) - - self.assertEqual(get_parser_class_for_mime_type("application/pdf"), DummyParser) - - @mock.patch("documents.parsers.document_consumer_declaration.send") - def test_get_parser_class_n_parsers(self, m, *args) -> None: - """ - GIVEN: - - Two parsers declared for a given mimetype - - Second parser has a higher weight - WHEN: - - Attempt to get parser for the mimetype - THEN: - - Second parser class is returned - """ - - class DummyParser1: - pass - - class DummyParser2: - pass - - m.return_value = ( - ( - None, - { - "weight": 0, - "parser": DummyParser1, - "mime_types": {"application/pdf": ".pdf"}, - }, - ), - ( - None, - { - "weight": 1, - "parser": DummyParser2, - "mime_types": {"application/pdf": ".pdf"}, - }, - ), - ) - - self.assertEqual( - get_parser_class_for_mime_type("application/pdf"), - DummyParser2, - ) - - @mock.patch("documents.parsers.document_consumer_declaration.send") - def test_get_parser_class_0_parsers(self, m, *args) -> None: - """ - GIVEN: - - No parsers are declared - WHEN: - - Attempt to get parser for the mimetype - THEN: - - No parser class is returned - """ - m.return_value = [] - with TemporaryDirectory(): - self.assertIsNone(get_parser_class_for_mime_type("application/pdf")) - - @mock.patch("documents.parsers.document_consumer_declaration.send") - def test_get_parser_class_no_valid_parser(self, m, *args) -> None: - """ - GIVEN: - - No parser declared for a given mimetype - - Parser declared for a different mimetype - WHEN: - - Attempt to get parser for the given mimetype - THEN: - - No parser class is returned - """ - - class DummyParser: - pass - - m.return_value = ( - ( - None, - { - "weight": 0, - "parser": DummyParser, - "mime_types": {"application/pdf": ".pdf"}, - }, - ), - ) - - self.assertIsNone(get_parser_class_for_mime_type("image/tiff")) +from paperless.parsers.tika import TikaDocumentParser class TestParserAvailability(TestCase): @@ -151,7 +35,7 @@ class TestParserAvailability(TestCase): self.assertIn(ext, supported_exts) self.assertEqual(get_default_file_extension(mime_type), ext) self.assertIsInstance( - get_parser_class_for_mime_type(mime_type)(logging_group=None), + get_parser_registry().get_parser_for_file(mime_type, "")(), RasterisedDocumentParser, ) @@ -175,7 +59,7 @@ class TestParserAvailability(TestCase): self.assertIn(ext, supported_exts) self.assertEqual(get_default_file_extension(mime_type), ext) self.assertIsInstance( - get_parser_class_for_mime_type(mime_type)(logging_group=None), + get_parser_registry().get_parser_for_file(mime_type, "")(), TextDocumentParser, ) @@ -198,22 +82,23 @@ class TestParserAvailability(TestCase): ), ] - # Force the app ready to notice the settings override - with override_settings(TIKA_ENABLED=True, INSTALLED_APPS=["paperless_tika"]): - app = apps.get_app_config("paperless_tika") - app.ready() + self.addCleanup(reset_parser_registry) + + # Reset and rebuild the registry with Tika enabled. + with override_settings(TIKA_ENABLED=True): + reset_parser_registry() supported_exts = get_supported_file_extensions() - for mime_type, ext in supported_mimes_and_exts: - self.assertIn(ext, supported_exts) - self.assertEqual(get_default_file_extension(mime_type), ext) - self.assertIsInstance( - get_parser_class_for_mime_type(mime_type)(logging_group=None), - TikaDocumentParser, - ) + for mime_type, ext in supported_mimes_and_exts: + self.assertIn(ext, supported_exts) + self.assertEqual(get_default_file_extension(mime_type), ext) + self.assertIsInstance( + get_parser_registry().get_parser_for_file(mime_type, "")(), + TikaDocumentParser, + ) def test_no_parser_for_mime(self) -> None: - self.assertIsNone(get_parser_class_for_mime_type("text/sdgsdf")) + self.assertIsNone(get_parser_registry().get_parser_for_file("text/sdgsdf", "")) def test_default_extension(self) -> None: # Test no parser declared still returns a an extension diff --git a/src/documents/tests/test_regex.py b/src/documents/tests/test_regex.py new file mode 100644 index 000000000..a55f29c3c --- /dev/null +++ b/src/documents/tests/test_regex.py @@ -0,0 +1,128 @@ +import pytest +import regex +from pytest_mock import MockerFixture + +from documents.regex import safe_regex_finditer +from documents.regex import safe_regex_match +from documents.regex import safe_regex_search +from documents.regex import safe_regex_sub +from documents.regex import validate_regex_pattern + + +class TestValidateRegexPattern: + def test_valid_pattern(self): + validate_regex_pattern(r"\d+") + + def test_invalid_pattern_raises(self): + with pytest.raises(ValueError): + validate_regex_pattern(r"[invalid") + + +class TestSafeRegexSearchAndMatch: + """Tests for safe_regex_search and safe_regex_match (same contract).""" + + @pytest.mark.parametrize( + ("func", "pattern", "text", "expected_group"), + [ + pytest.param( + safe_regex_search, + r"\d+", + "abc123def", + "123", + id="search-match-found", + ), + pytest.param( + safe_regex_match, + r"\d+", + "123abc", + "123", + id="match-match-found", + ), + ], + ) + def test_match_found(self, func, pattern, text, expected_group): + result = func(pattern, text) + assert result is not None + assert result.group() == expected_group + + @pytest.mark.parametrize( + ("func", "pattern", "text"), + [ + pytest.param(safe_regex_search, r"\d+", "abcdef", id="search-no-match"), + pytest.param(safe_regex_match, r"\d+", "abc123", id="match-no-match"), + ], + ) + def test_no_match(self, func, pattern, text): + assert func(pattern, text) is None + + @pytest.mark.parametrize( + "func", + [ + pytest.param(safe_regex_search, id="search"), + pytest.param(safe_regex_match, id="match"), + ], + ) + def test_invalid_pattern_returns_none(self, func): + assert func(r"[invalid", "test") is None + + @pytest.mark.parametrize( + "func", + [ + pytest.param(safe_regex_search, id="search"), + pytest.param(safe_regex_match, id="match"), + ], + ) + def test_flags_respected(self, func): + assert func(r"abc", "ABC", flags=regex.IGNORECASE) is not None + + @pytest.mark.parametrize( + ("func", "method_name"), + [ + pytest.param(safe_regex_search, "search", id="search"), + pytest.param(safe_regex_match, "match", id="match"), + ], + ) + def test_timeout_returns_none(self, func, method_name, mocker: MockerFixture): + mock_compile = mocker.patch("documents.regex.regex.compile") + getattr(mock_compile.return_value, method_name).side_effect = TimeoutError + assert func(r"\d+", "test") is None + + +class TestSafeRegexSub: + @pytest.mark.parametrize( + ("pattern", "repl", "text", "expected"), + [ + pytest.param(r"\d+", "NUM", "abc123def456", "abcNUMdefNUM", id="basic-sub"), + pytest.param(r"\d+", "NUM", "abcdef", "abcdef", id="no-match"), + pytest.param(r"abc", "X", "ABC", "X", id="flags"), + ], + ) + def test_substitution(self, pattern, repl, text, expected): + flags = regex.IGNORECASE if pattern == r"abc" else 0 + result = safe_regex_sub(pattern, repl, text, flags=flags) + assert result == expected + + def test_invalid_pattern_returns_none(self): + assert safe_regex_sub(r"[invalid", "x", "test") is None + + def test_timeout_returns_none(self, mocker: MockerFixture): + mock_compile = mocker.patch("documents.regex.regex.compile") + mock_compile.return_value.sub.side_effect = TimeoutError + assert safe_regex_sub(r"\d+", "X", "test") is None + + +class TestSafeRegexFinditer: + def test_yields_matches(self): + pattern = regex.compile(r"\d+") + matches = list(safe_regex_finditer(pattern, "a1b22c333")) + assert [m.group() for m in matches] == ["1", "22", "333"] + + def test_no_matches(self): + pattern = regex.compile(r"\d+") + assert list(safe_regex_finditer(pattern, "abcdef")) == [] + + def test_timeout_stops_iteration(self, mocker: MockerFixture): + mock_pattern = mocker.MagicMock() + mock_pattern.finditer.side_effect = TimeoutError + mock_pattern.pattern = r"\d+" + assert list(safe_regex_finditer(mock_pattern, "test")) == [] diff --git a/src/documents/tests/test_tag_hierarchy.py b/src/documents/tests/test_tag_hierarchy.py index 12e5475f3..57aa27e3a 100644 --- a/src/documents/tests/test_tag_hierarchy.py +++ b/src/documents/tests/test_tag_hierarchy.py @@ -11,10 +11,12 @@ from documents.models import WorkflowAction from documents.models import WorkflowTrigger from documents.serialisers import TagSerializer from documents.signals.handlers import run_workflows +from documents.tests.utils import DirectoriesMixin -class TestTagHierarchy(APITestCase): +class TestTagHierarchy(DirectoriesMixin, APITestCase): def setUp(self) -> None: + super().setUp() self.user = User.objects.create_superuser(username="admin") self.client.force_authenticate(user=self.user) diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index 4f17a8fd2..3dcbbeaff 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -2,6 +2,7 @@ import uuid from unittest import mock import celery +from django.contrib.auth import get_user_model from django.test import TestCase from documents.data_models import ConsumableDocument @@ -20,6 +21,11 @@ from documents.tests.utils import DirectoriesMixin @mock.patch("documents.consumer.magic.from_file", fake_magic_from_file) class TestTaskSignalHandler(DirectoriesMixin, TestCase): + @classmethod + def setUpTestData(cls) -> None: + super().setUpTestData() + cls.user = get_user_model().objects.create_user(username="testuser") + def util_call_before_task_publish_handler( self, headers_to_use, @@ -57,7 +63,7 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): ), DocumentMetadataOverrides( title="Hello world", - owner_id=1, + owner_id=self.user.id, ), ), # kwargs @@ -75,7 +81,7 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): self.assertEqual(headers["id"], task.task_id) self.assertEqual("hello-999.pdf", task.task_file_name) self.assertEqual(PaperlessTask.TaskName.CONSUME_FILE, task.task_name) - self.assertEqual(1, task.owner_id) + self.assertEqual(self.user.id, task.owner_id) self.assertEqual(celery.states.PENDING, task.status) def test_task_prerun_handler(self) -> None: @@ -208,10 +214,12 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): mime_type="application/pdf", ) - with mock.patch("documents.index.add_or_update_document") as add: + with mock.patch("documents.search.get_backend") as mock_get_backend: + mock_backend = mock.MagicMock() + mock_get_backend.return_value = mock_backend add_to_index(sender=None, document=root) - add.assert_called_once_with(root) + mock_backend.add_or_update.assert_called_once_with(root, effective_content="") def test_add_to_index_reindexes_root_for_version_documents(self) -> None: root = Document.objects.create( @@ -226,13 +234,17 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): root_document=root, ) - with mock.patch("documents.index.add_or_update_document") as add: + with mock.patch("documents.search.get_backend") as mock_get_backend: + mock_backend = mock.MagicMock() + mock_get_backend.return_value = mock_backend add_to_index(sender=None, document=version) - self.assertEqual(add.call_count, 2) - self.assertEqual(add.call_args_list[0].args[0].id, version.id) - self.assertEqual(add.call_args_list[1].args[0].id, root.id) + self.assertEqual(mock_backend.add_or_update.call_count, 1) self.assertEqual( - add.call_args_list[1].kwargs, + mock_backend.add_or_update.call_args_list[0].args[0].id, + version.id, + ) + self.assertEqual( + mock_backend.add_or_update.call_args_list[0].kwargs, {"effective_content": version.content}, ) diff --git a/src/documents/tests/test_tasks.py b/src/documents/tests/test_tasks.py index 37f1e6fed..9fb9ddbc6 100644 --- a/src/documents/tests/test_tasks.py +++ b/src/documents/tests/test_tasks.py @@ -23,29 +23,10 @@ from documents.tests.utils import DirectoriesMixin from documents.tests.utils import FileSystemAssertsMixin -class TestIndexReindex(DirectoriesMixin, TestCase): - def test_index_reindex(self) -> None: - Document.objects.create( - title="test", - content="my document", - checksum="wow", - added=timezone.now(), - created=timezone.now(), - modified=timezone.now(), - ) - - tasks.index_reindex() - +@pytest.mark.django_db +class TestIndexOptimize: def test_index_optimize(self) -> None: - Document.objects.create( - title="test", - content="my document", - checksum="wow", - added=timezone.now(), - created=timezone.now(), - modified=timezone.now(), - ) - + """Index optimization task must execute without error (Tantivy handles optimization automatically).""" tasks.index_optimize() diff --git a/src/documents/tests/test_views.py b/src/documents/tests/test_views.py index 14f0425b9..314636045 100644 --- a/src/documents/tests/test_views.py +++ b/src/documents/tests/test_views.py @@ -31,6 +31,11 @@ from paperless.models import ApplicationConfiguration class TestViews(DirectoriesMixin, TestCase): + @classmethod + def setUpTestData(cls) -> None: + super().setUpTestData() + ApplicationConfiguration.objects.get_or_create() + def setUp(self) -> None: self.user = User.objects.create_user("testuser") super().setUp() diff --git a/src/documents/tests/test_workflows.py b/src/documents/tests/test_workflows.py index 7bc8d1020..0d342da67 100644 --- a/src/documents/tests/test_workflows.py +++ b/src/documents/tests/test_workflows.py @@ -28,6 +28,7 @@ from rest_framework.test import APIClient from rest_framework.test import APITestCase from documents.file_handling import create_source_path_directory +from documents.file_handling import generate_filename from documents.file_handling import generate_unique_filename from documents.signals.handlers import run_workflows from documents.workflows.webhooks import send_webhook @@ -906,6 +907,121 @@ class TestWorkflows( expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, cm.output[0]) + def test_workflow_assign_custom_field_keeps_storage_filename_in_sync(self) -> None: + """ + GIVEN: + - Existing document with a storage path template that depends on a custom field + - Existing workflow triggered on document update assigning that custom field + WHEN: + - Workflow runs for the document + THEN: + - The database filename remains aligned with the moved file on disk + """ + storage_path = StoragePath.objects.create( + name="workflow-custom-field-path", + path="{{ custom_fields|get_cf_value('Custom Field 1', 'none') }}/{{ title }}", + ) + doc = Document.objects.create( + title="workflow custom field sync", + mime_type="application/pdf", + checksum="workflow-custom-field-sync", + storage_path=storage_path, + original_filename="workflow-custom-field-sync.pdf", + ) + CustomFieldInstance.objects.create( + document=doc, + field=self.cf1, + value_text="initial", + ) + + generated = generate_unique_filename(doc) + destination = (settings.ORIGINALS_DIR / generated).resolve() + create_source_path_directory(destination) + shutil.copy(self.SAMPLE_DIR / "simple.pdf", destination) + Document.objects.filter(pk=doc.pk).update(filename=generated.as_posix()) + doc.refresh_from_db() + + trigger = WorkflowTrigger.objects.create( + type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, + ) + action = WorkflowAction.objects.create( + type=WorkflowAction.WorkflowActionType.ASSIGNMENT, + assign_custom_fields_values={self.cf1.pk: "cars"}, + ) + action.assign_custom_fields.add(self.cf1.pk) + workflow = Workflow.objects.create( + name="Workflow custom field filename sync", + order=0, + ) + workflow.triggers.add(trigger) + workflow.actions.add(action) + workflow.save() + + run_workflows(WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, doc) + + doc.refresh_from_db() + expected_filename = generate_filename(doc) + self.assertEqual(Path(doc.filename), expected_filename) + self.assertTrue(doc.source_path.is_file()) + + def test_workflow_document_updated_does_not_overwrite_filename(self) -> None: + """ + GIVEN: + - A document whose filename has been updated in the DB by a concurrent + bulk_update_documents task (simulating update_filename_and_move_files + completing and writing the new filename to the DB) + - A stale in-memory document instance still holding the old filename + - An active DOCUMENT_UPDATED workflow + WHEN: + - run_workflows is called with the stale in-memory instance + (as would happen in the second concurrent bulk_update_documents task) + THEN: + - The DB filename is NOT overwritten with the stale in-memory value + (regression test for GH #12386 — the race window between + refresh_from_db and document.save in run_workflows) + """ + trigger = WorkflowTrigger.objects.create( + type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, + ) + action = WorkflowAction.objects.create( + type=WorkflowAction.WorkflowActionType.ASSIGNMENT, + assign_title="Updated by workflow", + ) + workflow = Workflow.objects.create(name="Race condition test workflow", order=0) + workflow.triggers.add(trigger) + workflow.actions.add(action) + workflow.save() + + doc = Document.objects.create( + title="race condition test", + mime_type="application/pdf", + checksum="racecondition123", + original_filename="old.pdf", + filename="old/path/old.pdf", + ) + + # Simulate BUD-1 completing update_filename_and_move_files: + # the DB now holds the new filename while BUD-2's in-memory instance is stale. + new_filename = "new/path/new.pdf" + Document.global_objects.filter(pk=doc.pk).update(filename=new_filename) + + # The stale instance still has filename="old/path/old.pdf" in memory. + # Mock refresh_from_db so the stale value persists through run_workflows, + # replicating the race window between refresh and save. + # Mock update_filename_and_move_files to prevent file-not-found errors + # since we are only testing DB state here. + with ( + mock.patch( + "documents.signals.handlers.update_filename_and_move_files", + ), + mock.patch.object(Document, "refresh_from_db"), + ): + run_workflows(WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, doc) + + # The DB filename must not have been reverted to the stale old value. + doc.refresh_from_db() + self.assertEqual(doc.filename, new_filename) + def test_document_added_workflow(self) -> None: trigger = WorkflowTrigger.objects.create( type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_ADDED, @@ -4734,6 +4850,7 @@ class TestWebhookSecurity: @pytest.mark.django_db +@pytest.mark.usefixtures("_search_index") class TestDateWorkflowLocalization( SampleDirMixin, ): diff --git a/src/documents/tests/utils.py b/src/documents/tests/utils.py index 346d895aa..98c8258b8 100644 --- a/src/documents/tests/utils.py +++ b/src/documents/tests/utils.py @@ -157,11 +157,17 @@ class DirectoriesMixin: """ def setUp(self) -> None: + from documents.search import reset_backend + + reset_backend() self.dirs = setup_directories() super().setUp() def tearDown(self) -> None: + from documents.search import reset_backend + super().tearDown() + reset_backend() remove_dirs(self.dirs) @@ -429,7 +435,11 @@ class DummyProgressManager: message: str, current_progress: int, max_progress: int, - extra_args: dict[str, str | int] | None = None, + *, + document_id: int | None = None, + owner_id: int | None = None, + users_can_view: list[int] | None = None, + groups_can_view: list[int] | None = None, ) -> None: # Ensure the layer is open self.open() @@ -443,9 +453,10 @@ class DummyProgressManager: "max_progress": max_progress, "status": status, "message": message, + "document_id": document_id, + "owner_id": owner_id, + "users_can_view": users_can_view or [], + "groups_can_view": groups_can_view or [], }, } - if extra_args is not None: - payload["data"].update(extra_args) - self.payloads.append(payload) diff --git a/src/documents/utils.py b/src/documents/utils.py index 2b6a60749..2ed6758dd 100644 --- a/src/documents/utils.py +++ b/src/documents/utils.py @@ -1,13 +1,27 @@ +import hashlib import logging import shutil +from collections.abc import Callable +from collections.abc import Iterable from os import utime from pathlib import Path from subprocess import CompletedProcess from subprocess import run +from typing import TypeVar from django.conf import settings from PIL import Image +_T = TypeVar("_T") + +# A function that wraps an iterable — typically used to inject a progress bar. +IterWrapper = Callable[[Iterable[_T]], Iterable[_T]] + + +def identity(iterable: Iterable[_T]) -> Iterable[_T]: + """Return the iterable unchanged; the no-op default for IterWrapper.""" + return iterable + def _coerce_to_path( source: Path | str, @@ -128,3 +142,28 @@ def get_boolean(boolstr: str) -> bool: Return a boolean value from a string representation. """ return bool(boolstr.lower() in ("yes", "y", "1", "t", "true")) + + +def compute_checksum(path: Path, chunk_size: int = 65536) -> str: + """ + Compute the SHA-256 checksum of a file. + + Reads the file in chunks to avoid loading the entire file into memory. + + Args: + path (Path): Path to the file to hash. + chunk_size (int, optional): Number of bytes to read per chunk. + Defaults to 65536. + + Returns: + str: Hexadecimal SHA-256 digest of the file contents. + + Raises: + FileNotFoundError: If the file does not exist. + OSError: If the file cannot be read. + """ + h = hashlib.sha256() + with path.open("rb") as f: + while chunk := f.read(chunk_size): + h.update(chunk) + return h.hexdigest() diff --git a/src/documents/views.py b/src/documents/views.py index a69293ee9..68d2b7961 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -82,6 +82,7 @@ from rest_framework import serializers from rest_framework import status from rest_framework.decorators import action from rest_framework.exceptions import NotFound +from rest_framework.exceptions import PermissionDenied from rest_framework.exceptions import ValidationError from rest_framework.filters import OrderingFilter from rest_framework.filters import SearchFilter @@ -99,7 +100,6 @@ from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.viewsets import ViewSet from documents import bulk_edit -from documents import index from documents.bulk_download import ArchiveOnlyStrategy from documents.bulk_download import OriginalAndArchiveStrategy from documents.bulk_download import OriginalsOnlyStrategy @@ -157,7 +157,6 @@ from documents.models import UiSettings from documents.models import Workflow from documents.models import WorkflowAction from documents.models import WorkflowTrigger -from documents.parsers import get_parser_class_for_mime_type from documents.permissions import AcknowledgeTasksPermissions from documents.permissions import PaperlessAdminPermissions from documents.permissions import PaperlessNotePermissions @@ -225,6 +224,7 @@ from paperless.celery import app as celery_app from paperless.config import AIConfig from paperless.config import GeneralConfig from paperless.models import ApplicationConfiguration +from paperless.parsers.registry import get_parser_registry from paperless.serialisers import GroupSerializer from paperless.serialisers import UserSerializer from paperless.views import StandardPagination @@ -555,7 +555,9 @@ class TagViewSet(PermissionsAwareDocumentCountMixin, ModelViewSet): page = self.paginate_queryset(queryset) serializer = self.get_serializer(page, many=True) response = self.get_paginated_response(serializer.data) - if descendant_pks: + response.data["display_count"] = len(children_source) + api_version = int(request.version or settings.REST_FRAMEWORK["DEFAULT_VERSION"]) + if descendant_pks and api_version < 10: # Include children in the "all" field, if needed response.data["all"] = [tag.pk for tag in children_source] return response @@ -835,6 +837,61 @@ class DocumentViewSet( "custom_field_", ) + def _get_selection_data_for_queryset(self, queryset): + correspondents = Correspondent.objects.annotate( + document_count=Count( + "documents", + filter=Q(documents__in=queryset), + distinct=True, + ), + ) + tags = Tag.objects.annotate( + document_count=Count( + "documents", + filter=Q(documents__in=queryset), + distinct=True, + ), + ) + document_types = DocumentType.objects.annotate( + document_count=Count( + "documents", + filter=Q(documents__in=queryset), + distinct=True, + ), + ) + storage_paths = StoragePath.objects.annotate( + document_count=Count( + "documents", + filter=Q(documents__in=queryset), + distinct=True, + ), + ) + custom_fields = CustomField.objects.annotate( + document_count=Count( + "fields__document", + filter=Q(fields__document__in=queryset), + distinct=True, + ), + ) + + return { + "selected_correspondents": [ + {"id": t.id, "document_count": t.document_count} for t in correspondents + ], + "selected_tags": [ + {"id": t.id, "document_count": t.document_count} for t in tags + ], + "selected_document_types": [ + {"id": t.id, "document_count": t.document_count} for t in document_types + ], + "selected_storage_paths": [ + {"id": t.id, "document_count": t.document_count} for t in storage_paths + ], + "selected_custom_fields": [ + {"id": t.id, "document_count": t.document_count} for t in custom_fields + ], + } + def get_queryset(self): latest_version_content = Subquery( Document.objects.filter(root_document=OuterRef("pk")) @@ -971,9 +1028,9 @@ class DocumentViewSet( response_data["content"] = content_doc.content response = Response(response_data) - from documents import index + from documents.search import get_backend - index.add_or_update_document(refreshed_doc) + get_backend().add_or_update(refreshed_doc) document_updated.send( sender=self.__class__, @@ -982,10 +1039,29 @@ class DocumentViewSet( return response - def destroy(self, request, *args, **kwargs): - from documents import index + def list(self, request, *args, **kwargs): + if not get_boolean( + str(request.query_params.get("include_selection_data", "false")), + ): + return super().list(request, *args, **kwargs) - index.remove_document_from_index(self.get_object()) + queryset = self.filter_queryset(self.get_queryset()) + selection_data = self._get_selection_data_for_queryset(queryset) + + page = self.paginate_queryset(queryset) + if page is not None: + serializer = self.get_serializer(page, many=True) + response = self.get_paginated_response(serializer.data) + response.data["selection_data"] = selection_data + return response + + serializer = self.get_serializer(queryset, many=True) + return Response({"results": serializer.data, "selection_data": selection_data}) + + def destroy(self, request, *args, **kwargs): + from documents.search import get_backend + + get_backend().remove(self.get_object().pk) try: return super().destroy(request, *args, **kwargs) except Exception as e: @@ -1081,15 +1157,17 @@ class DocumentViewSet( if not Path(file).is_file(): return None - parser_class = get_parser_class_for_mime_type(mime_type) + parser_class = get_parser_registry().get_parser_for_file( + mime_type, + Path(file).name, + Path(file), + ) if parser_class: - parser = parser_class(progress_callback=None, logging_group=None) - try: - return parser.extract_metadata(file, mime_type) + with parser_class() as parser: + return parser.extract_metadata(file, mime_type) except Exception: # pragma: no cover logger.exception(f"Issue getting metadata for {file}") - # TODO: cover GPG errors, remove later. return [] else: # pragma: no cover logger.warning(f"No parser for {mime_type}") @@ -1328,6 +1406,7 @@ class DocumentViewSet( methods=["get", "post", "delete"], detail=True, permission_classes=[PaperlessNotePermissions], + pagination_class=None, filter_backends=[], ) def notes(self, request, pk=None): @@ -1389,9 +1468,9 @@ class DocumentViewSet( doc.modified = timezone.now() doc.save() - from documents import index + from documents.search import get_backend - index.add_or_update_document(doc) + get_backend().add_or_update(doc) notes = serializer.to_representation(doc).get("notes") @@ -1426,9 +1505,9 @@ class DocumentViewSet( doc.modified = timezone.now() doc.save() - from documents import index + from documents.search import get_backend - index.add_or_update_document(doc) + get_backend().add_or_update(doc) notes = serializer.to_representation(doc).get("notes") @@ -1740,12 +1819,13 @@ class DocumentViewSet( "Cannot delete the root/original version. Delete the document instead.", ) - from documents import index + from documents.search import get_backend - index.remove_document_from_index(version_doc) + _backend = get_backend() + _backend.remove(version_doc.pk) version_doc_id = version_doc.id version_doc.delete() - index.add_or_update_document(root_doc) + _backend.add_or_update(root_doc) if settings.AUDIT_LOG_ENABLED: actor = ( request.user if request.user and request.user.is_authenticated else None @@ -1915,11 +1995,23 @@ class ChatStreamingView(GenericAPIView): list=extend_schema( description="Document views including search", parameters=[ + OpenApiParameter( + name="text", + type=OpenApiTypes.STR, + location=OpenApiParameter.QUERY, + description="Simple Tantivy-backed text search query string", + ), + OpenApiParameter( + name="title_search", + type=OpenApiTypes.STR, + location=OpenApiParameter.QUERY, + description="Simple Tantivy-backed title-only search query string", + ), OpenApiParameter( name="query", type=OpenApiTypes.STR, location=OpenApiParameter.QUERY, - description="Advanced search query string", + description="Advanced Tantivy search query string", ), OpenApiParameter( name="full_perms", @@ -1945,9 +2037,7 @@ class ChatStreamingView(GenericAPIView): ), ) class UnifiedSearchViewSet(DocumentViewSet): - def __init__(self, *args: Any, **kwargs: Any) -> None: - super().__init__(*args, **kwargs) - self.searcher = None + SEARCH_PARAM_NAMES = ("text", "title_search", "query", "more_like_id") def get_serializer_class(self): if self._is_search_request(): @@ -1955,64 +2045,142 @@ class UnifiedSearchViewSet(DocumentViewSet): else: return DocumentSerializer + def _get_active_search_params(self, request: Request | None = None) -> list[str]: + request = request or self.request + return [ + param for param in self.SEARCH_PARAM_NAMES if param in request.query_params + ] + def _is_search_request(self): - return ( - "query" in self.request.query_params - or "more_like_id" in self.request.query_params - ) - - def filter_queryset(self, queryset): - filtered_queryset = super().filter_queryset(queryset) - - if self._is_search_request(): - from documents import index - - if "query" in self.request.query_params: - query_class = index.DelayedFullTextQuery - elif "more_like_id" in self.request.query_params: - query_class = index.DelayedMoreLikeThisQuery - else: - raise ValueError - - return query_class( - self.searcher, - self.request.query_params, - self.paginator.get_page_size(self.request), - filter_queryset=filtered_queryset, - ) - else: - return filtered_queryset + return bool(self._get_active_search_params()) def list(self, request, *args, **kwargs): - if self._is_search_request(): - from documents import index - - try: - with index.open_index_searcher() as s: - self.searcher = s - queryset = self.filter_queryset(self.get_queryset()) - page = self.paginate_queryset(queryset) - - serializer = self.get_serializer(page, many=True) - response = self.get_paginated_response(serializer.data) - - response.data["corrected_query"] = ( - queryset.suggested_correction - if hasattr(queryset, "suggested_correction") - else None - ) - - return response - except NotFound: - raise - except Exception as e: - logger.warning(f"An error occurred listing search results: {e!s}") - return HttpResponseBadRequest( - "Error listing search results, check logs for more detail.", - ) - else: + if not self._is_search_request(): return super().list(request) + from documents.search import SearchMode + from documents.search import TantivyRelevanceList + from documents.search import get_backend + + try: + backend = get_backend() + # ORM-filtered queryset: permissions + field filters + ordering (DRF backends applied) + filtered_qs = self.filter_queryset(self.get_queryset()) + + user = None if request.user.is_superuser else request.user + active_search_params = self._get_active_search_params(request) + + if len(active_search_params) > 1: + raise ValidationError( + { + "detail": _( + "Specify only one of text, title_search, query, or more_like_id.", + ), + }, + ) + + if ( + "text" in request.query_params + or "title_search" in request.query_params + or "query" in request.query_params + ): + if "text" in request.query_params: + search_mode = SearchMode.TEXT + query_str = request.query_params["text"] + elif "title_search" in request.query_params: + search_mode = SearchMode.TITLE + query_str = request.query_params["title_search"] + else: + search_mode = SearchMode.QUERY + query_str = request.query_params["query"] + results = backend.search( + query_str, + user=user, + page=1, + page_size=10000, + sort_field=None, + sort_reverse=False, + search_mode=search_mode, + ) + else: + # more_like_id — validate permission on the seed document first + try: + more_like_doc_id = int(request.query_params["more_like_id"]) + more_like_doc = Document.objects.select_related("owner").get( + pk=more_like_doc_id, + ) + except (TypeError, ValueError, Document.DoesNotExist): + raise PermissionDenied(_("Invalid more_like_id")) + + if not has_perms_owner_aware( + request.user, + "view_document", + more_like_doc, + ): + raise PermissionDenied(_("Insufficient permissions.")) + + results = backend.more_like_this( + more_like_doc_id, + user=user, + page=1, + page_size=10000, + ) + + hits_by_id = {h["id"]: h for h in results.hits} + + # Determine sort order: no ordering param -> Tantivy relevance; otherwise -> ORM order + ordering_param = request.query_params.get("ordering", "").lstrip("-") + if not ordering_param: + # Preserve Tantivy relevance order; intersect with ORM-visible IDs + orm_ids = set(filtered_qs.values_list("pk", flat=True)) + ordered_hits = [h for h in results.hits if h["id"] in orm_ids] + else: + # Use ORM ordering (already applied by DocumentsOrderingFilter) + hit_ids = set(hits_by_id.keys()) + orm_ordered_ids = filtered_qs.filter(id__in=hit_ids).values_list( + "pk", + flat=True, + ) + ordered_hits = [ + hits_by_id[pk] for pk in orm_ordered_ids if pk in hits_by_id + ] + + rl = TantivyRelevanceList(ordered_hits) + page = self.paginate_queryset(rl) + + if page is not None: + serializer = self.get_serializer(page, many=True) + response = self.get_paginated_response(serializer.data) + response.data["corrected_query"] = None + if get_boolean( + str(request.query_params.get("include_selection_data", "false")), + ): + all_ids = [h["id"] for h in ordered_hits] + response.data["selection_data"] = ( + self._get_selection_data_for_queryset( + filtered_qs.filter(pk__in=all_ids), + ) + ) + return response + + serializer = self.get_serializer(ordered_hits, many=True) + return Response(serializer.data) + + except NotFound: + raise + except PermissionDenied as e: + invalid_more_like_id_message = _("Invalid more_like_id") + if str(e.detail) == str(invalid_more_like_id_message): + return HttpResponseForbidden(invalid_more_like_id_message) + return HttpResponseForbidden(_("Insufficient permissions.")) + except ValidationError: + raise + except Exception as e: + logger.warning(f"An error occurred listing search results: {e!s}") + return HttpResponseBadRequest( + "Error listing search results, check logs for more detail.", + ) + @action(detail=False, methods=["GET"], name="Get Next ASN") def next_asn(self, request, *args, **kwargs): max_asn = Document.objects.aggregate( @@ -2124,7 +2292,36 @@ class SavedViewViewSet(BulkPermissionMixin, PassUserMixin, ModelViewSet): ordering_fields = ("name",) -class DocumentOperationPermissionMixin(PassUserMixin): +class DocumentSelectionMixin: + def _resolve_document_ids( + self, + *, + user: User, + validated_data: dict[str, Any], + permission_codename: str = "view_document", + ) -> list[int]: + if not validated_data.get("all", False): + # if all is not true, just pass through the provided document ids + return validated_data["documents"] + + # otherwise, reconstruct the document list based on the provided filters + filters = validated_data.get("filters") or {} + permitted_documents = get_objects_for_user_owner_aware( + user, + permission_codename, + Document, + ) + return list( + DocumentFilterSet( + data=filters, + queryset=permitted_documents, + ) + .qs.distinct() + .values_list("pk", flat=True), + ) + + +class DocumentOperationPermissionMixin(PassUserMixin, DocumentSelectionMixin): permission_classes = (IsAuthenticated,) parser_classes = (parsers.JSONParser,) METHOD_NAMES_REQUIRING_USER = { @@ -2218,8 +2415,15 @@ class DocumentOperationPermissionMixin(PassUserMixin): validated_data: dict[str, Any], operation_label: str, ): - documents = validated_data["documents"] - parameters = {k: v for k, v in validated_data.items() if k != "documents"} + documents = self._resolve_document_ids( + user=self.request.user, + validated_data=validated_data, + ) + parameters = { + k: v + for k, v in validated_data.items() + if k not in {"documents", "all", "filters"} + } user = self.request.user if method.__name__ in self.METHOD_NAMES_REQUIRING_USER: @@ -2307,7 +2511,10 @@ class BulkEditView(DocumentOperationPermissionMixin): user = self.request.user method = serializer.validated_data.get("method") parameters = serializer.validated_data.get("parameters") - documents = serializer.validated_data.get("documents") + documents = self._resolve_document_ids( + user=user, + validated_data=serializer.validated_data, + ) if method.__name__ in self.METHOD_NAMES_REQUIRING_USER: parameters["user"] = user if not self._has_document_permissions( @@ -2790,18 +2997,9 @@ class SearchAutoCompleteView(GenericAPIView): else: limit = 10 - from documents import index + from documents.search import get_backend - ix = index.open_index() - - return Response( - index.autocomplete( - ix, - term, - limit, - user, - ), - ) + return Response(get_backend().autocomplete(term, limit, user)) @extend_schema_view( @@ -2848,6 +3046,9 @@ class GlobalSearchView(PassUserMixin): serializer_class = SearchResultSerializer def get(self, request, *args, **kwargs): + from documents.search import SearchMode + from documents.search import get_backend + query = request.query_params.get("query", None) if query is None: return HttpResponseBadRequest("Query required") @@ -2864,24 +3065,25 @@ class GlobalSearchView(PassUserMixin): "view_document", Document, ) - # First search by title - docs = all_docs.filter(title__icontains=query) - if not db_only and len(docs) < OBJECT_LIMIT: - # If we don't have enough results, search by content - from documents import index - - with index.open_index_searcher() as s: - fts_query = index.DelayedFullTextQuery( - s, - request.query_params, - OBJECT_LIMIT, - filter_queryset=all_docs, - ) - results = fts_query[0:1] - docs = docs | Document.objects.filter( - id__in=[r["id"] for r in results], - ) - docs = docs[:OBJECT_LIMIT] + if db_only: + docs = all_docs.filter(title__icontains=query)[:OBJECT_LIMIT] + else: + user = None if request.user.is_superuser else request.user + fts_results = get_backend().search( + query, + user=user, + page=1, + page_size=1000, + sort_field=None, + sort_reverse=False, + search_mode=SearchMode.TEXT, + ) + docs_by_id = all_docs.in_bulk([hit["id"] for hit in fts_results.hits]) + docs = [ + docs_by_id[hit["id"]] + for hit in fts_results.hits + if hit["id"] in docs_by_id + ][:OBJECT_LIMIT] saved_views = ( get_objects_for_user_owner_aware( request.user, @@ -2943,13 +3145,21 @@ class GlobalSearchView(PassUserMixin): ) groups = groups[:OBJECT_LIMIT] mail_rules = ( - MailRule.objects.filter(name__icontains=query) + get_objects_for_user_owner_aware( + request.user, + "view_mailrule", + MailRule, + ).filter(name__icontains=query) if request.user.has_perm("paperless_mail.view_mailrule") else [] ) mail_rules = mail_rules[:OBJECT_LIMIT] mail_accounts = ( - MailAccount.objects.filter(name__icontains=query) + get_objects_for_user_owner_aware( + request.user, + "view_mailaccount", + MailAccount, + ).filter(name__icontains=query) if request.user.has_perm("paperless_mail.view_mailaccount") else [] ) @@ -3151,7 +3361,7 @@ class StatisticsView(GenericAPIView): ) -class BulkDownloadView(GenericAPIView): +class BulkDownloadView(DocumentSelectionMixin, GenericAPIView): permission_classes = (IsAuthenticated,) serializer_class = BulkDownloadSerializer parser_classes = (parsers.JSONParser,) @@ -3160,7 +3370,10 @@ class BulkDownloadView(GenericAPIView): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) - ids = serializer.validated_data.get("documents") + ids = self._resolve_document_ids( + user=request.user, + validated_data=serializer.validated_data, + ) documents = Document.objects.filter(pk__in=ids) compression = serializer.validated_data.get("compression") content = serializer.validated_data.get("content") @@ -3256,6 +3469,12 @@ class StoragePathViewSet(PermissionsAwareDocumentCountMixin, ModelViewSet): path = serializer.validated_data.get("path") result = format_filename(document, path) + if result: + extension = ( + Path(str(document.filename)).suffix if document.filename else "" + ) or document.file_type + result_path = Path(result) + result = str(result_path.with_name(f"{result_path.name}{extension}")) return Response(result) @@ -3790,20 +4009,55 @@ class BulkEditObjectsView(PassUserMixin): user = self.request.user object_type = serializer.validated_data.get("object_type") object_ids = serializer.validated_data.get("objects") + apply_to_all = serializer.validated_data.get("all") object_class = serializer.get_object_class(object_type) operation = serializer.validated_data.get("operation") + model_name = object_class._meta.model_name + perm_codename = ( + f"change_{model_name}" + if operation == "set_permissions" + else f"delete_{model_name}" + ) - objs = object_class.objects.select_related("owner").filter(pk__in=object_ids) + if apply_to_all: + # Support all to avoid sending large lists of ids for bulk operations, with optional filters + filters = serializer.validated_data.get("filters") or {} + filterset_class = { + "tags": TagFilterSet, + "correspondents": CorrespondentFilterSet, + "document_types": DocumentTypeFilterSet, + "storage_paths": StoragePathFilterSet, + }[object_type] + user_permitted_objects = get_objects_for_user_owner_aware( + user, + perm_codename, + object_class, + ) + objs = filterset_class( + data=filters, + queryset=user_permitted_objects, + ).qs + if object_type == "tags": + editable_ids = set(user_permitted_objects.values_list("pk", flat=True)) + all_ids = set(objs.values_list("pk", flat=True)) + for tag in objs: + all_ids.update( + descendant.pk + for descendant in tag.get_descendants() + if descendant.pk in editable_ids + ) + objs = object_class.objects.filter(pk__in=all_ids) + objs = objs.select_related("owner") + object_ids = list(objs.values_list("pk", flat=True)) + else: + objs = object_class.objects.select_related("owner").filter( + pk__in=object_ids, + ) if not user.is_superuser: - model_name = object_class._meta.model_name - perm = ( - f"documents.change_{model_name}" - if operation == "set_permissions" - else f"documents.delete_{model_name}" - ) + perm = f"documents.{perm_codename}" has_perms = user.has_perm(perm) and all( - (obj.owner == user or obj.owner is None) for obj in objs + has_perms_owner_aware(user, perm_codename, obj) for obj in objs ) if not has_perms: @@ -3923,7 +4177,7 @@ class CustomFieldViewSet(PermissionsAwareDocumentCountMixin, ModelViewSet): document_count_through = CustomFieldInstance document_count_source_field = "field_id" - queryset = CustomField.objects.all().order_by("-created") + queryset = CustomField.objects.all().order_by("name") @extend_schema_view( @@ -4071,10 +4325,16 @@ class SystemStatusView(PassUserMixin): index_error = None try: - ix = index.open_index() + from documents.search import get_backend + + get_backend() # triggers open/rebuild; raises on error index_status = "OK" - index_last_modified = make_aware( - datetime.fromtimestamp(ix.last_modified()), + # Use the most-recently modified file in the index directory as a proxy + # for last index write time (Tantivy has no single last_modified() call). + index_dir = settings.INDEX_DIR + mtimes = [p.stat().st_mtime for p in index_dir.iterdir() if p.is_file()] + index_last_modified = ( + make_aware(datetime.fromtimestamp(max(mtimes))) if mtimes else None ) except Exception as e: index_status = "ERROR" diff --git a/src/documents/workflows/actions.py b/src/documents/workflows/actions.py index 46d9f5c4a..9744048e5 100644 --- a/src/documents/workflows/actions.py +++ b/src/documents/workflows/actions.py @@ -282,7 +282,7 @@ def execute_password_removal_action( passwords = action.passwords if not passwords: logger.warning( - "Password removal action %s has no passwords configured", + "Workflow action %s has no configured unlock values", action.pk, extra={"group": logging_group}, ) @@ -321,22 +321,23 @@ def execute_password_removal_action( user=document.owner, ) logger.info( - "Removed password from document %s using workflow action %s", + "Unlocked document %s using workflow action %s", document.pk, action.pk, extra={"group": logging_group}, ) return - except ValueError as e: + except ValueError: logger.warning( - "Password removal failed for document %s with supplied password: %s", + "Workflow action %s could not unlock document %s with one configured value", + action.pk, document.pk, - e, extra={"group": logging_group}, ) logger.error( - "Password removal failed for document %s after trying all provided passwords", + "Workflow action %s could not unlock document %s with any configured value", + action.pk, document.pk, extra={"group": logging_group}, ) diff --git a/src/documents/workflows/webhooks.py b/src/documents/workflows/webhooks.py index a0256873a..0c510a35d 100644 --- a/src/documents/workflows/webhooks.py +++ b/src/documents/workflows/webhooks.py @@ -1,12 +1,14 @@ -import ipaddress import logging -import socket -from urllib.parse import urlparse import httpx from celery import shared_task from django.conf import settings +from paperless.network import format_host_for_url +from paperless.network import is_public_ip +from paperless.network import resolve_hostname_ips +from paperless.network import validate_outbound_http_url + logger = logging.getLogger("paperless.workflows.webhooks") @@ -34,23 +36,19 @@ class WebhookTransport(httpx.HTTPTransport): raise httpx.ConnectError("No hostname in request URL") try: - addr_info = socket.getaddrinfo(hostname, None) - except socket.gaierror as e: - raise httpx.ConnectError(f"Could not resolve hostname: {hostname}") from e - - ips = [info[4][0] for info in addr_info if info and info[4]] - if not ips: - raise httpx.ConnectError(f"Could not resolve hostname: {hostname}") + ips = resolve_hostname_ips(hostname) + except ValueError as e: + raise httpx.ConnectError(str(e)) from e if not self.allow_internal: for ip_str in ips: - if not WebhookTransport.is_public_ip(ip_str): + if not is_public_ip(ip_str): raise httpx.ConnectError( f"Connection blocked: {hostname} resolves to a non-public address", ) ip_str = ips[0] - formatted_ip = self._format_ip_for_url(ip_str) + formatted_ip = format_host_for_url(ip_str) new_headers = httpx.Headers(request.headers) if "host" in new_headers: @@ -69,40 +67,6 @@ class WebhookTransport(httpx.HTTPTransport): return super().handle_request(request) - def _format_ip_for_url(self, ip: str) -> str: - """ - Format IP address for use in URL (wrap IPv6 in brackets) - """ - try: - ip_obj = ipaddress.ip_address(ip) - if ip_obj.version == 6: - return f"[{ip}]" - return ip - except ValueError: - return ip - - @staticmethod - def is_public_ip(ip: str | int) -> bool: - try: - obj = ipaddress.ip_address(ip) - return not ( - obj.is_private - or obj.is_loopback - or obj.is_link_local - or obj.is_multicast - or obj.is_unspecified - ) - except ValueError: # pragma: no cover - return False - - @staticmethod - def resolve_first_ip(host: str) -> str | None: - try: - info = socket.getaddrinfo(host, None) - return info[0][4][0] if info else None - except Exception: # pragma: no cover - return None - @shared_task( retry_backoff=True, @@ -118,21 +82,24 @@ def send_webhook( *, as_json: bool = False, ): - p = urlparse(url) - if p.scheme.lower() not in settings.WEBHOOKS_ALLOWED_SCHEMES or not p.hostname: - logger.warning("Webhook blocked: invalid scheme/hostname") + try: + parsed = validate_outbound_http_url( + url, + allowed_schemes=settings.WEBHOOKS_ALLOWED_SCHEMES, + allowed_ports=settings.WEBHOOKS_ALLOWED_PORTS, + # Internal-address checks happen in transport to preserve ConnectError behavior. + allow_internal=True, + ) + except ValueError as e: + logger.warning("Webhook blocked: %s", e) + raise + + hostname = parsed.hostname + if hostname is None: # pragma: no cover raise ValueError("Invalid URL scheme or hostname.") - port = p.port or (443 if p.scheme == "https" else 80) - if ( - len(settings.WEBHOOKS_ALLOWED_PORTS) > 0 - and port not in settings.WEBHOOKS_ALLOWED_PORTS - ): - logger.warning("Webhook blocked: port not permitted") - raise ValueError("Destination port not permitted.") - transport = WebhookTransport( - hostname=p.hostname, + hostname=hostname, allow_internal=settings.WEBHOOKS_ALLOW_INTERNAL_REQUESTS, ) diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po index 053dd786a..03fdcc6e1 100644 --- a/src/locale/en_US/LC_MESSAGES/django.po +++ b/src/locale/en_US/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-12 15:43+0000\n" +"POT-Creation-Date: 2026-04-03 20:54+0000\n" "PO-Revision-Date: 2022-02-17 04:17\n" "Last-Translator: \n" "Language-Team: English\n" @@ -21,67 +21,67 @@ msgstr "" msgid "Documents" msgstr "" -#: documents/filters.py:421 +#: documents/filters.py:431 msgid "Value must be valid JSON." msgstr "" -#: documents/filters.py:440 +#: documents/filters.py:450 msgid "Invalid custom field query expression" msgstr "" -#: documents/filters.py:450 +#: documents/filters.py:460 msgid "Invalid expression list. Must be nonempty." msgstr "" -#: documents/filters.py:471 +#: documents/filters.py:481 msgid "Invalid logical operator {op!r}" msgstr "" -#: documents/filters.py:485 +#: documents/filters.py:495 msgid "Maximum number of query conditions exceeded." msgstr "" -#: documents/filters.py:550 +#: documents/filters.py:560 msgid "{name!r} is not a valid custom field." msgstr "" -#: documents/filters.py:587 +#: documents/filters.py:597 msgid "{data_type} does not support query expr {expr!r}." msgstr "" -#: documents/filters.py:695 documents/models.py:137 +#: documents/filters.py:705 documents/models.py:137 msgid "Maximum nesting depth exceeded." msgstr "" -#: documents/filters.py:907 +#: documents/filters.py:919 msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:842 documents/models.py:890 +#: documents/models.py:40 documents/models.py:844 documents/models.py:892 msgid "owner" msgstr "" -#: documents/models.py:57 documents/models.py:1165 +#: documents/models.py:57 documents/models.py:1174 msgid "None" msgstr "" -#: documents/models.py:58 documents/models.py:1166 +#: documents/models.py:58 documents/models.py:1175 msgid "Any word" msgstr "" -#: documents/models.py:59 documents/models.py:1167 +#: documents/models.py:59 documents/models.py:1176 msgid "All words" msgstr "" -#: documents/models.py:60 documents/models.py:1168 +#: documents/models.py:60 documents/models.py:1177 msgid "Exact match" msgstr "" -#: documents/models.py:61 documents/models.py:1169 +#: documents/models.py:61 documents/models.py:1178 msgid "Regular expression" msgstr "" -#: documents/models.py:62 documents/models.py:1170 +#: documents/models.py:62 documents/models.py:1179 msgid "Fuzzy word" msgstr "" @@ -89,20 +89,20 @@ msgstr "" msgid "Automatic" msgstr "" -#: documents/models.py:66 documents/models.py:536 documents/models.py:1748 +#: documents/models.py:66 documents/models.py:536 documents/models.py:1757 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "" -#: documents/models.py:68 documents/models.py:1234 +#: documents/models.py:68 documents/models.py:1243 msgid "match" msgstr "" -#: documents/models.py:71 documents/models.py:1237 +#: documents/models.py:71 documents/models.py:1246 msgid "matching algorithm" msgstr "" -#: documents/models.py:76 documents/models.py:1242 +#: documents/models.py:76 documents/models.py:1251 msgid "is insensitive" msgstr "" @@ -168,7 +168,7 @@ msgstr "" msgid "title" msgstr "" -#: documents/models.py:191 documents/models.py:756 +#: documents/models.py:191 documents/models.py:758 msgid "content" msgstr "" @@ -206,8 +206,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:246 documents/models.py:762 documents/models.py:800 -#: documents/models.py:862 documents/models.py:980 documents/models.py:1039 +#: documents/models.py:246 documents/models.py:764 documents/models.py:802 +#: documents/models.py:864 documents/models.py:982 documents/models.py:1041 msgid "created" msgstr "" @@ -271,12 +271,12 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:340 documents/models.py:773 documents/models.py:827 -#: documents/models.py:1791 +#: documents/models.py:340 documents/models.py:775 documents/models.py:829 +#: documents/models.py:1800 msgid "document" msgstr "" -#: documents/models.py:341 documents/models.py:933 +#: documents/models.py:341 documents/models.py:935 msgid "documents" msgstr "" @@ -296,11 +296,11 @@ msgstr "" msgid "Title" msgstr "" -#: documents/models.py:523 documents/models.py:1186 +#: documents/models.py:523 documents/models.py:1195 msgid "Created" msgstr "" -#: documents/models.py:524 documents/models.py:1185 +#: documents/models.py:524 documents/models.py:1194 msgid "Added" msgstr "" @@ -360,7 +360,7 @@ msgstr "" msgid "Document display fields" msgstr "" -#: documents/models.py:569 documents/models.py:632 +#: documents/models.py:569 documents/models.py:634 msgid "saved view" msgstr "" @@ -560,746 +560,756 @@ msgstr "" msgid "mime type is" msgstr "" -#: documents/models.py:635 -msgid "rule type" +#: documents/models.py:626 +msgid "simple title search" +msgstr "" + +#: documents/models.py:627 +msgid "simple text search" msgstr "" #: documents/models.py:637 +msgid "rule type" +msgstr "" + +#: documents/models.py:639 msgid "value" msgstr "" -#: documents/models.py:640 +#: documents/models.py:642 msgid "filter rule" msgstr "" -#: documents/models.py:641 +#: documents/models.py:643 msgid "filter rules" msgstr "" -#: documents/models.py:665 +#: documents/models.py:667 msgid "Auto Task" msgstr "" -#: documents/models.py:666 +#: documents/models.py:668 msgid "Scheduled Task" msgstr "" -#: documents/models.py:667 +#: documents/models.py:669 msgid "Manual Task" msgstr "" -#: documents/models.py:670 +#: documents/models.py:672 msgid "Consume File" msgstr "" -#: documents/models.py:671 +#: documents/models.py:673 msgid "Train Classifier" msgstr "" -#: documents/models.py:672 +#: documents/models.py:674 msgid "Check Sanity" msgstr "" -#: documents/models.py:673 +#: documents/models.py:675 msgid "Index Optimize" msgstr "" -#: documents/models.py:674 +#: documents/models.py:676 msgid "LLM Index Update" msgstr "" -#: documents/models.py:679 +#: documents/models.py:681 msgid "Task ID" msgstr "" -#: documents/models.py:680 +#: documents/models.py:682 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:685 +#: documents/models.py:687 msgid "Acknowledged" msgstr "" -#: documents/models.py:686 +#: documents/models.py:688 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:692 +#: documents/models.py:694 msgid "Task Filename" msgstr "" -#: documents/models.py:693 +#: documents/models.py:695 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:700 +#: documents/models.py:702 msgid "Task Name" msgstr "" -#: documents/models.py:701 +#: documents/models.py:703 msgid "Name of the task that was run" msgstr "" -#: documents/models.py:708 +#: documents/models.py:710 msgid "Task State" msgstr "" -#: documents/models.py:709 +#: documents/models.py:711 msgid "Current state of the task being run" msgstr "" -#: documents/models.py:715 +#: documents/models.py:717 msgid "Created DateTime" msgstr "" -#: documents/models.py:716 +#: documents/models.py:718 msgid "Datetime field when the task result was created in UTC" msgstr "" -#: documents/models.py:722 +#: documents/models.py:724 msgid "Started DateTime" msgstr "" -#: documents/models.py:723 +#: documents/models.py:725 msgid "Datetime field when the task was started in UTC" msgstr "" -#: documents/models.py:729 +#: documents/models.py:731 msgid "Completed DateTime" msgstr "" -#: documents/models.py:730 +#: documents/models.py:732 msgid "Datetime field when the task was completed in UTC" msgstr "" -#: documents/models.py:736 +#: documents/models.py:738 msgid "Result Data" msgstr "" -#: documents/models.py:738 +#: documents/models.py:740 msgid "The data returned by the task" msgstr "" -#: documents/models.py:746 +#: documents/models.py:748 msgid "Task Type" msgstr "" -#: documents/models.py:747 +#: documents/models.py:749 msgid "The type of task that was run" msgstr "" -#: documents/models.py:758 +#: documents/models.py:760 msgid "Note for the document" msgstr "" -#: documents/models.py:782 +#: documents/models.py:784 msgid "user" msgstr "" -#: documents/models.py:787 +#: documents/models.py:789 msgid "note" msgstr "" -#: documents/models.py:788 +#: documents/models.py:790 msgid "notes" msgstr "" -#: documents/models.py:796 +#: documents/models.py:798 msgid "Archive" msgstr "" -#: documents/models.py:797 +#: documents/models.py:799 msgid "Original" msgstr "" -#: documents/models.py:808 documents/models.py:870 paperless_mail/models.py:75 +#: documents/models.py:810 documents/models.py:872 paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:815 documents/models.py:877 +#: documents/models.py:817 documents/models.py:879 msgid "slug" msgstr "" -#: documents/models.py:847 +#: documents/models.py:849 msgid "share link" msgstr "" -#: documents/models.py:848 +#: documents/models.py:850 msgid "share links" msgstr "" -#: documents/models.py:856 +#: documents/models.py:858 msgid "Pending" msgstr "" -#: documents/models.py:857 +#: documents/models.py:859 msgid "Processing" msgstr "" -#: documents/models.py:858 +#: documents/models.py:860 msgid "Ready" msgstr "" -#: documents/models.py:859 +#: documents/models.py:861 msgid "Failed" msgstr "" -#: documents/models.py:906 +#: documents/models.py:908 msgid "size (bytes)" msgstr "" -#: documents/models.py:912 +#: documents/models.py:914 msgid "last error" msgstr "" -#: documents/models.py:919 +#: documents/models.py:921 msgid "file path" msgstr "" -#: documents/models.py:925 +#: documents/models.py:927 msgid "built at" msgstr "" -#: documents/models.py:938 +#: documents/models.py:940 msgid "share link bundle" msgstr "" -#: documents/models.py:939 +#: documents/models.py:941 msgid "share link bundles" msgstr "" -#: documents/models.py:942 +#: documents/models.py:944 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:968 +#: documents/models.py:970 msgid "String" msgstr "" -#: documents/models.py:969 +#: documents/models.py:971 msgid "URL" msgstr "" -#: documents/models.py:970 +#: documents/models.py:972 msgid "Date" msgstr "" -#: documents/models.py:971 +#: documents/models.py:973 msgid "Boolean" msgstr "" -#: documents/models.py:972 +#: documents/models.py:974 msgid "Integer" msgstr "" -#: documents/models.py:973 +#: documents/models.py:975 msgid "Float" msgstr "" -#: documents/models.py:974 +#: documents/models.py:976 msgid "Monetary" msgstr "" -#: documents/models.py:975 +#: documents/models.py:977 msgid "Document Link" msgstr "" -#: documents/models.py:976 +#: documents/models.py:978 msgid "Select" msgstr "" -#: documents/models.py:977 +#: documents/models.py:979 msgid "Long Text" msgstr "" -#: documents/models.py:989 +#: documents/models.py:991 msgid "data type" msgstr "" -#: documents/models.py:996 +#: documents/models.py:998 msgid "extra data" msgstr "" -#: documents/models.py:1000 +#: documents/models.py:1002 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1006 +#: documents/models.py:1008 msgid "custom field" msgstr "" -#: documents/models.py:1007 +#: documents/models.py:1009 msgid "custom fields" msgstr "" -#: documents/models.py:1107 +#: documents/models.py:1109 msgid "custom field instance" msgstr "" -#: documents/models.py:1108 +#: documents/models.py:1110 msgid "custom field instances" msgstr "" -#: documents/models.py:1173 +#: documents/models.py:1182 msgid "Consumption Started" msgstr "" -#: documents/models.py:1174 +#: documents/models.py:1183 msgid "Document Added" msgstr "" -#: documents/models.py:1175 +#: documents/models.py:1184 msgid "Document Updated" msgstr "" -#: documents/models.py:1176 +#: documents/models.py:1185 msgid "Scheduled" msgstr "" -#: documents/models.py:1179 +#: documents/models.py:1188 msgid "Consume Folder" msgstr "" -#: documents/models.py:1180 +#: documents/models.py:1189 msgid "Api Upload" msgstr "" -#: documents/models.py:1181 +#: documents/models.py:1190 msgid "Mail Fetch" msgstr "" -#: documents/models.py:1182 +#: documents/models.py:1191 msgid "Web UI" msgstr "" -#: documents/models.py:1187 +#: documents/models.py:1196 msgid "Modified" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1197 msgid "Custom Field" msgstr "" -#: documents/models.py:1191 +#: documents/models.py:1200 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1203 +#: documents/models.py:1212 msgid "filter path" msgstr "" -#: documents/models.py:1208 +#: documents/models.py:1217 msgid "" "Only consume documents with a path that matches this if specified. Wildcards " "specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1215 +#: documents/models.py:1224 msgid "filter filename" msgstr "" -#: documents/models.py:1220 paperless_mail/models.py:200 +#: documents/models.py:1229 paperless_mail/models.py:200 msgid "" "Only consume documents which entirely match this filename if specified. " "Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1231 +#: documents/models.py:1240 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1247 +#: documents/models.py:1256 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1254 +#: documents/models.py:1263 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1261 +#: documents/models.py:1270 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1269 +#: documents/models.py:1278 msgid "has this document type" msgstr "" -#: documents/models.py:1276 +#: documents/models.py:1285 msgid "has one of these document types" msgstr "" -#: documents/models.py:1283 +#: documents/models.py:1292 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1291 +#: documents/models.py:1300 msgid "has this correspondent" msgstr "" -#: documents/models.py:1298 +#: documents/models.py:1307 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1305 +#: documents/models.py:1314 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1313 +#: documents/models.py:1322 msgid "has this storage path" msgstr "" -#: documents/models.py:1320 +#: documents/models.py:1329 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1327 +#: documents/models.py:1336 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1331 +#: documents/models.py:1340 msgid "filter custom field query" msgstr "" -#: documents/models.py:1334 +#: documents/models.py:1343 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1338 +#: documents/models.py:1347 msgid "schedule offset days" msgstr "" -#: documents/models.py:1341 +#: documents/models.py:1350 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1346 +#: documents/models.py:1355 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1349 +#: documents/models.py:1358 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1354 +#: documents/models.py:1363 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1358 +#: documents/models.py:1367 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1363 +#: documents/models.py:1372 msgid "schedule date field" msgstr "" -#: documents/models.py:1368 +#: documents/models.py:1377 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1377 +#: documents/models.py:1386 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1390 msgid "workflow trigger" msgstr "" -#: documents/models.py:1382 +#: documents/models.py:1391 msgid "workflow triggers" msgstr "" -#: documents/models.py:1390 +#: documents/models.py:1399 msgid "email subject" msgstr "" -#: documents/models.py:1394 +#: documents/models.py:1403 msgid "" "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1400 +#: documents/models.py:1409 msgid "email body" msgstr "" -#: documents/models.py:1403 +#: documents/models.py:1412 msgid "" "The body (message) of the email, can include some placeholders, see " "documentation." msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1418 msgid "emails to" msgstr "" -#: documents/models.py:1412 +#: documents/models.py:1421 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1418 +#: documents/models.py:1427 msgid "include document in email" msgstr "" -#: documents/models.py:1429 +#: documents/models.py:1438 msgid "webhook url" msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1441 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1437 +#: documents/models.py:1446 msgid "use parameters" msgstr "" -#: documents/models.py:1442 +#: documents/models.py:1451 msgid "send as JSON" msgstr "" -#: documents/models.py:1446 +#: documents/models.py:1455 msgid "webhook parameters" msgstr "" -#: documents/models.py:1449 +#: documents/models.py:1458 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1453 +#: documents/models.py:1462 msgid "webhook body" msgstr "" -#: documents/models.py:1456 +#: documents/models.py:1465 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1460 +#: documents/models.py:1469 msgid "webhook headers" msgstr "" -#: documents/models.py:1463 +#: documents/models.py:1472 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1468 +#: documents/models.py:1477 msgid "include document in webhook" msgstr "" -#: documents/models.py:1479 +#: documents/models.py:1488 msgid "Assignment" msgstr "" -#: documents/models.py:1483 +#: documents/models.py:1492 msgid "Removal" msgstr "" -#: documents/models.py:1487 documents/templates/account/password_reset.html:15 +#: documents/models.py:1496 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1491 +#: documents/models.py:1500 msgid "Webhook" msgstr "" -#: documents/models.py:1495 +#: documents/models.py:1504 msgid "Password removal" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1508 msgid "Move to trash" msgstr "" -#: documents/models.py:1503 +#: documents/models.py:1512 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1508 documents/models.py:1750 +#: documents/models.py:1517 documents/models.py:1759 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1511 +#: documents/models.py:1520 msgid "assign title" msgstr "" -#: documents/models.py:1515 +#: documents/models.py:1524 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1523 paperless_mail/models.py:274 +#: documents/models.py:1532 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1532 paperless_mail/models.py:282 +#: documents/models.py:1541 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1541 paperless_mail/models.py:296 +#: documents/models.py:1550 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1559 msgid "assign this storage path" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1568 msgid "assign this owner" msgstr "" -#: documents/models.py:1566 +#: documents/models.py:1575 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1573 +#: documents/models.py:1582 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1580 +#: documents/models.py:1589 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1587 +#: documents/models.py:1596 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1594 +#: documents/models.py:1603 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1598 +#: documents/models.py:1607 msgid "custom field values" msgstr "" -#: documents/models.py:1602 +#: documents/models.py:1611 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1611 +#: documents/models.py:1620 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1616 +#: documents/models.py:1625 msgid "remove all tags" msgstr "" -#: documents/models.py:1623 +#: documents/models.py:1632 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1628 +#: documents/models.py:1637 msgid "remove all document types" msgstr "" -#: documents/models.py:1635 +#: documents/models.py:1644 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1640 +#: documents/models.py:1649 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1656 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1652 +#: documents/models.py:1661 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1659 +#: documents/models.py:1668 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1673 msgid "remove all owners" msgstr "" -#: documents/models.py:1671 +#: documents/models.py:1680 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1678 +#: documents/models.py:1687 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1685 +#: documents/models.py:1694 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1701 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1697 +#: documents/models.py:1706 msgid "remove all permissions" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1713 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1709 +#: documents/models.py:1718 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1718 +#: documents/models.py:1727 msgid "email" msgstr "" -#: documents/models.py:1727 +#: documents/models.py:1736 msgid "webhook" msgstr "" -#: documents/models.py:1731 +#: documents/models.py:1740 msgid "passwords" msgstr "" -#: documents/models.py:1735 +#: documents/models.py:1744 msgid "" "Passwords to try when removing PDF protection. Separate with commas or new " "lines." msgstr "" -#: documents/models.py:1740 +#: documents/models.py:1749 msgid "workflow action" msgstr "" -#: documents/models.py:1741 +#: documents/models.py:1750 msgid "workflow actions" msgstr "" -#: documents/models.py:1756 +#: documents/models.py:1765 msgid "triggers" msgstr "" -#: documents/models.py:1763 +#: documents/models.py:1772 msgid "actions" msgstr "" -#: documents/models.py:1766 paperless_mail/models.py:154 +#: documents/models.py:1775 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:1777 +#: documents/models.py:1786 msgid "workflow" msgstr "" -#: documents/models.py:1781 +#: documents/models.py:1790 msgid "workflow trigger type" msgstr "" -#: documents/models.py:1795 +#: documents/models.py:1804 msgid "date run" msgstr "" -#: documents/models.py:1801 +#: documents/models.py:1810 msgid "workflow run" msgstr "" -#: documents/models.py:1802 +#: documents/models.py:1811 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:463 documents/serialisers.py:2470 +#: documents/serialisers.py:463 documents/serialisers.py:815 +#: documents/serialisers.py:2545 documents/views.py:2120 +#: documents/views.py:2175 paperless_mail/serialisers.py:143 msgid "Insufficient permissions." msgstr "" @@ -1307,39 +1317,39 @@ msgstr "" msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2093 +#: documents/serialisers.py:2168 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2137 +#: documents/serialisers.py:2212 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2144 +#: documents/serialisers.py:2219 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2161 documents/serialisers.py:2171 +#: documents/serialisers.py:2236 documents/serialisers.py:2246 msgid "" "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2166 +#: documents/serialisers.py:2241 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2313 +#: documents/serialisers.py:2388 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2526 +#: documents/serialisers.py:2601 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2556 documents/views.py:3565 +#: documents/serialisers.py:2631 documents/views.py:3784 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1381,13 +1391,18 @@ msgid "Please sign in." msgstr "" #: documents/templates/account/login.html:12 -#, python-format -msgid "Don't have an account yet? Sign up" +msgid "Don't have an account yet?" +msgstr "" + +#: documents/templates/account/login.html:12 +#: documents/templates/account/signup.html:43 +#: documents/templates/socialaccount/signup.html:29 +msgid "Sign up" msgstr "" #: documents/templates/account/login.html:25 #: documents/templates/account/signup.html:22 -#: documents/templates/socialaccount/signup.html:13 +#: documents/templates/socialaccount/signup.html:15 msgid "Username" msgstr "" @@ -1397,6 +1412,7 @@ msgid "Password" msgstr "" #: documents/templates/account/login.html:36 +#: documents/templates/account/signup.html:11 #: documents/templates/mfa/authenticate.html:23 msgid "Sign in" msgstr "" @@ -1475,10 +1491,11 @@ msgid "Password reset complete." msgstr "" #: documents/templates/account/password_reset_from_key_done.html:14 -#, python-format -msgid "" -"Your new password has been set. You can now log " -"in" +msgid "Your new password has been set. You can now" +msgstr "" + +#: documents/templates/account/password_reset_from_key_done.html:14 +msgid "log in" msgstr "" #: documents/templates/account/signup.html:5 @@ -1486,8 +1503,7 @@ msgid "Paperless-ngx sign up" msgstr "" #: documents/templates/account/signup.html:11 -#, python-format -msgid "Already have an account? Sign in" +msgid "Already have an account?" msgstr "" #: documents/templates/account/signup.html:19 @@ -1497,7 +1513,7 @@ msgid "" msgstr "" #: documents/templates/account/signup.html:23 -#: documents/templates/socialaccount/signup.html:14 +#: documents/templates/socialaccount/signup.html:16 msgid "Email (optional)" msgstr "" @@ -1505,11 +1521,6 @@ msgstr "" msgid "Password (again)" msgstr "" -#: documents/templates/account/signup.html:43 -#: documents/templates/socialaccount/signup.html:27 -msgid "Sign up" -msgstr "" - #: documents/templates/index.html:61 msgid "Paperless-ngx is loading..." msgstr "" @@ -1554,18 +1565,21 @@ msgid "Paperless-ngx social account sign in" msgstr "" #: documents/templates/socialaccount/authentication_error.html:10 -#, python-format msgid "" "An error occurred while attempting to login via your social network account. " -"Back to the login page" +"Back to the" msgstr "" -#: documents/templates/socialaccount/login.html:10 +#: documents/templates/socialaccount/authentication_error.html:10 +msgid "login page" +msgstr "" + +#: documents/templates/socialaccount/login.html:11 #, python-format msgid "You are about to connect a new third-party account from %(provider)s." msgstr "" -#: documents/templates/socialaccount/login.html:13 +#: documents/templates/socialaccount/login.html:15 msgid "Continue" msgstr "" @@ -1573,12 +1587,12 @@ msgstr "" msgid "Paperless-ngx social account sign up" msgstr "" -#: documents/templates/socialaccount/signup.html:10 +#: documents/templates/socialaccount/signup.html:11 #, python-format msgid "You are about to use your %(provider_name)s account to login." msgstr "" -#: documents/templates/socialaccount/signup.html:11 +#: documents/templates/socialaccount/signup.html:13 msgid "As a final step, please complete the following form:" msgstr "" @@ -1603,20 +1617,28 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:3577 +#: documents/views.py:2077 +msgid "Specify only one of text, title_search, query, or more_like_id." +msgstr "" + +#: documents/views.py:2113 documents/views.py:2172 +msgid "Invalid more_like_id" +msgstr "" + +#: documents/views.py:3796 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:3620 +#: documents/views.py:3839 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:3677 +#: documents/views.py:3896 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:3687 +#: documents/views.py:3906 msgid "The share link bundle is unavailable." msgstr "" @@ -1856,151 +1878,151 @@ msgstr "" msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:521 +#: paperless/settings/__init__.py:532 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:522 +#: paperless/settings/__init__.py:533 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:523 +#: paperless/settings/__init__.py:534 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:524 +#: paperless/settings/__init__.py:535 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:525 +#: paperless/settings/__init__.py:536 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:526 +#: paperless/settings/__init__.py:537 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:527 +#: paperless/settings/__init__.py:538 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:528 +#: paperless/settings/__init__.py:539 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:529 +#: paperless/settings/__init__.py:540 msgid "German" msgstr "" -#: paperless/settings/__init__.py:530 +#: paperless/settings/__init__.py:541 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:531 +#: paperless/settings/__init__.py:542 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:532 +#: paperless/settings/__init__.py:543 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:533 +#: paperless/settings/__init__.py:544 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:534 +#: paperless/settings/__init__.py:545 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:535 +#: paperless/settings/__init__.py:546 msgid "French" msgstr "" -#: paperless/settings/__init__.py:536 +#: paperless/settings/__init__.py:547 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:537 +#: paperless/settings/__init__.py:548 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:538 +#: paperless/settings/__init__.py:549 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:539 +#: paperless/settings/__init__.py:550 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:540 +#: paperless/settings/__init__.py:551 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:541 +#: paperless/settings/__init__.py:552 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:542 +#: paperless/settings/__init__.py:553 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:543 +#: paperless/settings/__init__.py:554 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:544 +#: paperless/settings/__init__.py:555 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:545 +#: paperless/settings/__init__.py:556 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:546 +#: paperless/settings/__init__.py:557 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:547 +#: paperless/settings/__init__.py:558 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:548 +#: paperless/settings/__init__.py:559 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:549 +#: paperless/settings/__init__.py:560 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:550 +#: paperless/settings/__init__.py:561 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:551 +#: paperless/settings/__init__.py:562 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:552 +#: paperless/settings/__init__.py:563 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:553 +#: paperless/settings/__init__.py:564 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:554 +#: paperless/settings/__init__.py:565 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:555 +#: paperless/settings/__init__.py:566 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:556 +#: paperless/settings/__init__.py:567 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:557 +#: paperless/settings/__init__.py:568 msgid "Chinese Traditional" msgstr "" @@ -2046,7 +2068,7 @@ msgid "" "process all matching rules that you have defined." msgstr "" -#: paperless_mail/apps.py:11 +#: paperless_mail/apps.py:8 msgid "Paperless mail" msgstr "" diff --git a/src/paperless/auth.py b/src/paperless/auth.py index 2503fb8cb..2e7f00bf2 100644 --- a/src/paperless/auth.py +++ b/src/paperless/auth.py @@ -83,3 +83,11 @@ class PaperlessBasicAuthentication(authentication.BasicAuthentication): raise exceptions.AuthenticationFailed("MFA required") return user_tuple + + def authenticate_header(self, request): + auth_header = request.META.get("HTTP_AUTHORIZATION", "") + if auth_header.lower().startswith("basic "): + return super().authenticate_header(request) + + # Still 401 for anonymous API access + return authentication.TokenAuthentication.keyword diff --git a/src/paperless/celery.py b/src/paperless/celery.py index d937b3ada..3797c840c 100644 --- a/src/paperless/celery.py +++ b/src/paperless/celery.py @@ -1,11 +1,59 @@ +import hmac import os +import pickle +from hashlib import sha256 from celery import Celery from celery.signals import worker_process_init +from kombu.serialization import register # Set the default Django settings module for the 'celery' program. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "paperless.settings") +# --------------------------------------------------------------------------- +# Signed-pickle serializer: pickle with HMAC-SHA256 integrity verification. +# +# Protects against malicious pickle injection via an exposed Redis broker. +# Messages are signed on the producer side and verified before deserialization +# on the worker side using Django's SECRET_KEY. +# --------------------------------------------------------------------------- + +HMAC_SIZE = 32 # SHA-256 digest length + + +def _get_signing_key() -> bytes: + from django.conf import settings + + return settings.SECRET_KEY.encode() + + +def signed_pickle_dumps(obj: object) -> bytes: + data = pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL) + signature = hmac.new(_get_signing_key(), data, sha256).digest() + return signature + data + + +def signed_pickle_loads(payload: bytes) -> object: + if len(payload) < HMAC_SIZE: + msg = "Signed-pickle payload too short" + raise ValueError(msg) + signature = payload[:HMAC_SIZE] + data = payload[HMAC_SIZE:] + expected = hmac.new(_get_signing_key(), data, sha256).digest() + if not hmac.compare_digest(signature, expected): + msg = "Signed-pickle HMAC verification failed — message may have been tampered with" + raise ValueError(msg) + return pickle.loads(data) + + +register( + "signed-pickle", + signed_pickle_dumps, + signed_pickle_loads, + content_type="application/x-signed-pickle", + content_encoding="binary", +) + app = Celery("paperless") # Using a string here means the worker doesn't have to serialize diff --git a/src/paperless/checks.py b/src/paperless/checks.py index bcea6ef24..5f069b547 100644 --- a/src/paperless/checks.py +++ b/src/paperless/checks.py @@ -3,6 +3,7 @@ import os import pwd import shutil import stat +import subprocess from pathlib import Path from django.conf import settings @@ -299,3 +300,62 @@ def check_deprecated_db_settings( ) return warnings + + +@register() +def check_remote_parser_configured(app_configs, **kwargs) -> list[Error]: + if settings.REMOTE_OCR_ENGINE == "azureai" and not ( + settings.REMOTE_OCR_ENDPOINT and settings.REMOTE_OCR_API_KEY + ): + return [ + Error( + "Azure AI remote parser requires endpoint and API key to be configured.", + ), + ] + + return [] + + +def get_tesseract_langs(): + proc = subprocess.run( + [shutil.which("tesseract"), "--list-langs"], + capture_output=True, + ) + + # Decode bytes to string, split on newlines, trim out the header + proc_lines = proc.stdout.decode("utf8", errors="ignore").strip().split("\n")[1:] + + return [x.strip() for x in proc_lines] + + +@register() +def check_default_language_available(app_configs, **kwargs): + errs = [] + + if not settings.OCR_LANGUAGE: + errs.append( + Warning( + "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE. " + "This means that tesseract will fallback to english.", + ), + ) + return errs + + # binaries_check in paperless will check and report if this doesn't exist + # So skip trying to do anything here and let that handle missing binaries + if shutil.which("tesseract") is not None: + installed_langs = get_tesseract_langs() + + specified_langs = [x.strip() for x in settings.OCR_LANGUAGE.split("+")] + + for lang in specified_langs: + if lang not in installed_langs: + errs.append( + Error( + f"The selected ocr language {lang} is " + f"not installed. Paperless cannot OCR your documents " + f"without it. Please fix PAPERLESS_OCR_LANGUAGE.", + ), + ) + + return errs diff --git a/src/paperless/config.py b/src/paperless/config.py index 65d790ff4..fd2c1620d 100644 --- a/src/paperless/config.py +++ b/src/paperless/config.py @@ -188,6 +188,7 @@ class AIConfig(BaseConfig): llm_model: str = dataclasses.field(init=False) llm_api_key: str = dataclasses.field(init=False) llm_endpoint: str = dataclasses.field(init=False) + llm_allow_internal_endpoints: bool = dataclasses.field(init=False) def __post_init__(self) -> None: app_config = self._get_config_instance() @@ -203,6 +204,7 @@ class AIConfig(BaseConfig): self.llm_model = app_config.llm_model or settings.LLM_MODEL self.llm_api_key = app_config.llm_api_key or settings.LLM_API_KEY self.llm_endpoint = app_config.llm_endpoint or settings.LLM_ENDPOINT + self.llm_allow_internal_endpoints = settings.LLM_ALLOW_INTERNAL_ENDPOINTS @property def llm_index_enabled(self) -> bool: diff --git a/src/paperless/consumers.py b/src/paperless/consumers.py index 9d59a1a5a..4a3cda8fe 100644 --- a/src/paperless/consumers.py +++ b/src/paperless/consumers.py @@ -1,16 +1,27 @@ +from __future__ import annotations + import json -from typing import Any +from typing import TYPE_CHECKING from channels.generic.websocket import AsyncWebsocketConsumer +if TYPE_CHECKING: + from django.contrib.auth.base_user import AbstractBaseUser + from django.contrib.auth.models import AnonymousUser + + from documents.plugins.helpers import DocumentsDeletedPayload + from documents.plugins.helpers import DocumentUpdatedPayload + from documents.plugins.helpers import PermissionsData + from documents.plugins.helpers import StatusUpdatePayload + class StatusConsumer(AsyncWebsocketConsumer): def _authenticated(self) -> bool: - user: Any = self.scope.get("user") + user: AbstractBaseUser | AnonymousUser | None = self.scope.get("user") return user is not None and user.is_authenticated - async def _can_view(self, data: dict[str, Any]) -> bool: - user: Any = self.scope.get("user") + async def _can_view(self, data: PermissionsData) -> bool: + user: AbstractBaseUser | AnonymousUser | None = self.scope.get("user") if user is None: return False owner_id = data.get("owner_id") @@ -32,19 +43,19 @@ class StatusConsumer(AsyncWebsocketConsumer): async def disconnect(self, code: int) -> None: await self.channel_layer.group_discard("status_updates", self.channel_name) - async def status_update(self, event: dict[str, Any]) -> None: + async def status_update(self, event: StatusUpdatePayload) -> None: if not self._authenticated(): await self.close() elif await self._can_view(event["data"]): await self.send(json.dumps(event)) - async def documents_deleted(self, event: dict[str, Any]) -> None: + async def documents_deleted(self, event: DocumentsDeletedPayload) -> None: if not self._authenticated(): await self.close() else: await self.send(json.dumps(event)) - async def document_updated(self, event: dict[str, Any]) -> None: + async def document_updated(self, event: DocumentUpdatedPayload) -> None: if not self._authenticated(): await self.close() elif await self._can_view(event["data"]): diff --git a/src/paperless/logging.py b/src/paperless/logging.py new file mode 100644 index 000000000..ce2eff4fc --- /dev/null +++ b/src/paperless/logging.py @@ -0,0 +1,33 @@ +from __future__ import annotations + +import logging +from contextvars import ContextVar + +consume_task_id: ContextVar[str] = ContextVar("consume_task_id", default="") + + +class ConsumeTaskFormatter(logging.Formatter): + """ + Logging formatter that prepends a short task correlation ID to messages + emitted during document consumption. + + The ID is the first 8 characters of the Celery task UUID, set via the + ``consume_task_id`` ContextVar at the entry of ``consume_file``. When + the ContextVar is empty (any log outside a consume task) no prefix is + added and the output is identical to the standard verbose format. + """ + + def __init__(self) -> None: + super().__init__( + fmt="[{asctime}] [{levelname}] [{name}] {task_prefix}{message}", + style="{", + validate=False, # {task_prefix} is not a standard LogRecord attribute, so Python's + # init-time format-string validation would raise ValueError without + # this. Runtime safety comes from format() always setting + # record.task_prefix before calling super().format(). + ) + + def format(self, record: logging.LogRecord) -> str: + task_id = consume_task_id.get() + record.task_prefix = f"[{task_id}] " if task_id else "" + return super().format(record) diff --git a/src/paperless/network.py b/src/paperless/network.py new file mode 100644 index 000000000..4af00052f --- /dev/null +++ b/src/paperless/network.py @@ -0,0 +1,76 @@ +import ipaddress +import socket +from collections.abc import Collection +from urllib.parse import ParseResult +from urllib.parse import urlparse + + +def is_public_ip(ip: str | int) -> bool: + try: + obj = ipaddress.ip_address(ip) + return not ( + obj.is_private + or obj.is_loopback + or obj.is_link_local + or obj.is_multicast + or obj.is_unspecified + ) + except ValueError: # pragma: no cover + return False + + +def resolve_hostname_ips(hostname: str) -> list[str]: + try: + addr_info = socket.getaddrinfo(hostname, None) + except socket.gaierror as e: + raise ValueError(f"Could not resolve hostname: {hostname}") from e + + ips = [info[4][0] for info in addr_info if info and info[4]] + if not ips: + raise ValueError(f"Could not resolve hostname: {hostname}") + return ips + + +def format_host_for_url(host: str) -> str: + """ + Format IP address for URL use (wrap IPv6 in brackets). + """ + try: + ip_obj = ipaddress.ip_address(host) + if ip_obj.version == 6: + return f"[{host}]" + return host + except ValueError: + return host + + +def validate_outbound_http_url( + url: str, + *, + allowed_schemes: Collection[str] = ("http", "https"), + allowed_ports: Collection[int] | None = None, + allow_internal: bool = False, +) -> ParseResult: + parsed = urlparse(url) + scheme = parsed.scheme.lower() + + if scheme not in allowed_schemes or not parsed.hostname: + raise ValueError("Invalid URL scheme or hostname.") + + default_port = 443 if scheme == "https" else 80 + try: + port = parsed.port or default_port + except ValueError as e: + raise ValueError("Invalid URL scheme or hostname.") from e + + if allowed_ports and port not in allowed_ports: + raise ValueError("Destination port not permitted.") + + if not allow_internal: + for ip_str in resolve_hostname_ips(parsed.hostname): + if not is_public_ip(ip_str): + raise ValueError( + f"Connection blocked: {parsed.hostname} resolves to a non-public address", + ) + + return parsed diff --git a/src/paperless/parsers/__init__.py b/src/paperless/parsers/__init__.py index ea67ade00..c9c1530a5 100644 --- a/src/paperless/parsers/__init__.py +++ b/src/paperless/parsers/__init__.py @@ -35,6 +35,7 @@ Usage example (third-party parser):: from __future__ import annotations +from dataclasses import dataclass from typing import TYPE_CHECKING from typing import Protocol from typing import Self @@ -48,6 +49,7 @@ if TYPE_CHECKING: __all__ = [ "MetadataEntry", + "ParserContext", "ParserProtocol", ] @@ -73,6 +75,44 @@ class MetadataEntry(TypedDict): """String representation of the field value.""" +@dataclass(frozen=True, slots=True) +class ParserContext: + """Immutable context passed to a parser before parse(). + + The consumer assembles this from the ingestion event and Django + settings, then calls ``parser.configure(context)`` before + ``parser.parse()``. Parsers read only the fields relevant to them; + unneeded fields are ignored. + + ``frozen=True`` prevents accidental mutation after the consumer + hands the context off. ``slots=True`` keeps instances lightweight. + + Fields + ------ + mailrule_id : int | None + Primary key of the ``MailRule`` that triggered this ingestion, + or ``None`` when the document did not arrive via a mail rule. + Used by ``MailDocumentParser`` to select the PDF layout. + + Notes + ----- + Future fields (not yet implemented): + + * ``output_type`` — PDF/A variant for archive generation + (replaces ``settings.OCR_OUTPUT_TYPE`` reads inside parsers). + * ``ocr_mode`` — skip-text, redo, force, etc. + (replaces ``settings.OCR_MODE`` reads inside parsers). + * ``ocr_language`` — Tesseract language string. + (replaces ``settings.OCR_LANGUAGE`` reads inside parsers). + + When those fields are added the consumer will read from Django + settings once and populate them here, decoupling parsers from + ``settings.*`` entirely. + """ + + mailrule_id: int | None = None + + @runtime_checkable class ParserProtocol(Protocol): """Structural contract for all Paperless-ngx document parsers. @@ -191,6 +231,21 @@ class ParserProtocol(Protocol): # Core parsing interface # ------------------------------------------------------------------ + def configure(self, context: ParserContext) -> None: + """Apply source context before parse(). + + Called by the consumer after instantiation and before parse(). + The default implementation is a no-op; parsers override only the + fields they need. + + Parameters + ---------- + context: + Immutable context assembled by the consumer for this + specific ingestion event. + """ + ... + def parse( self, document_path: Path, diff --git a/src/paperless/parsers/mail.py b/src/paperless/parsers/mail.py new file mode 100644 index 000000000..9914b2ec6 --- /dev/null +++ b/src/paperless/parsers/mail.py @@ -0,0 +1,834 @@ +""" +Built-in mail document parser. + +Handles message/rfc822 (EML) MIME type by: +- Parsing the email using imap_tools +- Generating a PDF via Gotenberg (for display and archive) +- Extracting text via Tika for HTML content +- Extracting metadata from email headers + +The parser always produces a PDF because EML files cannot be rendered +natively in a browser (requires_pdf_rendition=True). +""" + +from __future__ import annotations + +import logging +import re +import shutil +import tempfile +from html import escape +from pathlib import Path +from typing import TYPE_CHECKING +from typing import Self + +from bleach import clean +from bleach import linkify +from django.conf import settings +from django.utils import timezone +from django.utils.timezone import is_naive +from django.utils.timezone import make_aware +from gotenberg_client import GotenbergClient +from gotenberg_client.constants import A4 +from gotenberg_client.options import Measurement +from gotenberg_client.options import MeasurementUnitType +from gotenberg_client.options import PageMarginsType +from gotenberg_client.options import PdfAFormat +from humanize import naturalsize +from imap_tools import MailAttachment +from imap_tools import MailMessage +from tika_client import TikaClient + +from documents.parsers import ParseError +from documents.parsers import make_thumbnail_from_pdf +from paperless.models import OutputTypeChoices +from paperless.version import __full_version_str__ +from paperless_mail.models import MailRule + +if TYPE_CHECKING: + import datetime + from types import TracebackType + + from paperless.parsers import MetadataEntry + from paperless.parsers import ParserContext + +logger = logging.getLogger("paperless.parsing.mail") + +_SUPPORTED_MIME_TYPES: dict[str, str] = { + "message/rfc822": ".eml", +} + + +class MailDocumentParser: + """Parse .eml email files for Paperless-ngx. + + Uses imap_tools to parse .eml files, generates a PDF using Gotenberg, + and sends the HTML part to a Tika server for text extraction. Because + EML files cannot be rendered natively in a browser, the parser always + produces a PDF rendition (requires_pdf_rendition=True). + + Pass a ``ParserContext`` to ``configure()`` before ``parse()`` to + apply mail-rule-specific PDF layout options: + + parser.configure(ParserContext(mailrule_id=rule.pk)) + parser.parse(path, mime_type) + + Class attributes + ---------------- + name : str + Human-readable parser name. + version : str + Semantic version string, kept in sync with Paperless-ngx releases. + author : str + Maintainer name. + url : str + Issue tracker / source URL. + """ + + name: str = "Paperless-ngx Mail Parser" + version: str = __full_version_str__ + author: str = "Paperless-ngx Contributors" + url: str = "https://github.com/paperless-ngx/paperless-ngx" + + # ------------------------------------------------------------------ + # Class methods + # ------------------------------------------------------------------ + + @classmethod + def supported_mime_types(cls) -> dict[str, str]: + """Return the MIME types this parser handles. + + Returns + ------- + dict[str, str] + Mapping of MIME type to preferred file extension. + """ + return _SUPPORTED_MIME_TYPES + + @classmethod + def score( + cls, + mime_type: str, + filename: str, + path: Path | None = None, + ) -> int | None: + """Return the priority score for handling this file. + + Parameters + ---------- + mime_type: + Detected MIME type of the file. + filename: + Original filename including extension. + path: + Optional filesystem path. Not inspected by this parser. + + Returns + ------- + int | None + 10 if the MIME type is supported, otherwise None. + """ + if mime_type in _SUPPORTED_MIME_TYPES: + return 10 + return None + + # ------------------------------------------------------------------ + # Properties + # ------------------------------------------------------------------ + + @property + def can_produce_archive(self) -> bool: + """Whether this parser can produce a searchable PDF archive copy. + + Returns + ------- + bool + Always False — the mail parser produces a display PDF + (requires_pdf_rendition=True), not an optional OCR archive. + """ + return False + + @property + def requires_pdf_rendition(self) -> bool: + """Whether the parser must produce a PDF for the frontend to display. + + Returns + ------- + bool + Always True — EML files cannot be rendered natively in a browser, + so a PDF conversion is always required for display. + """ + return True + + # ------------------------------------------------------------------ + # Lifecycle + # ------------------------------------------------------------------ + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self._tempdir = Path( + tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR), + ) + self._text: str | None = None + self._date: datetime.datetime | None = None + self._archive_path: Path | None = None + self._mailrule_id: int | None = None + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> None: + logger.debug("Cleaning up temporary directory %s", self._tempdir) + shutil.rmtree(self._tempdir, ignore_errors=True) + + # ------------------------------------------------------------------ + # Core parsing interface + # ------------------------------------------------------------------ + + def configure(self, context: ParserContext) -> None: + self._mailrule_id = context.mailrule_id + + def parse( + self, + document_path: Path, + mime_type: str, + *, + produce_archive: bool = True, + ) -> None: + """Parse the given .eml into formatted text and a PDF archive. + + Call ``configure(ParserContext(mailrule_id=...))`` before this method + to apply mail-rule-specific PDF layout options. The ``produce_archive`` + flag is accepted for protocol compatibility but is always honoured — + the mail parser always produces a PDF since EML files cannot be + displayed natively. + + Parameters + ---------- + document_path: + Absolute path to the .eml file. + mime_type: + Detected MIME type of the document (should be "message/rfc822"). + produce_archive: + Accepted for protocol compatibility. The PDF rendition is always + produced since EML files cannot be displayed natively in a browser. + + Raises + ------ + documents.parsers.ParseError + If the file cannot be parsed or PDF generation fails. + """ + + def strip_text(text: str) -> str: + """Reduces the spacing of the given text string.""" + text = re.sub(r"\s+", " ", text) + text = re.sub(r"(\n *)+", "\n", text) + return text.strip() + + def build_formatted_text(mail_message: MailMessage) -> str: + """Constructs a formatted string based on the given email.""" + fmt_text = f"Subject: {mail_message.subject}\n\n" + fmt_text += f"From: {mail_message.from_values.full if mail_message.from_values else ''}\n\n" + to_list = [address.full for address in mail_message.to_values] + fmt_text += f"To: {', '.join(to_list)}\n\n" + if mail_message.cc_values: + fmt_text += ( + f"CC: {', '.join(address.full for address in mail.cc_values)}\n\n" + ) + if mail_message.bcc_values: + fmt_text += ( + f"BCC: {', '.join(address.full for address in mail.bcc_values)}\n\n" + ) + if mail_message.attachments: + att = [] + for a in mail.attachments: + attachment_size = naturalsize(a.size, binary=True, format="%.2f") + att.append( + f"{a.filename} ({attachment_size})", + ) + fmt_text += f"Attachments: {', '.join(att)}\n\n" + + if mail.html: + fmt_text += "HTML content: " + strip_text(self.tika_parse(mail.html)) + + fmt_text += f"\n\n{strip_text(mail.text)}" + + return fmt_text + + logger.debug("Parsing file %s into an email", document_path.name) + mail = self.parse_file_to_message(document_path) + + logger.debug("Building formatted text from email") + self._text = build_formatted_text(mail) + + if is_naive(mail.date): + self._date = make_aware(mail.date) + else: + self._date = mail.date + + logger.debug("Creating a PDF from the email") + if self._mailrule_id: + rule = MailRule.objects.get(pk=self._mailrule_id) + self._archive_path = self.generate_pdf( + mail, + MailRule.PdfLayout(rule.pdf_layout), + ) + else: + self._archive_path = self.generate_pdf(mail) + + # ------------------------------------------------------------------ + # Result accessors + # ------------------------------------------------------------------ + + def get_text(self) -> str | None: + """Return the plain-text content extracted during parse. + + Returns + ------- + str | None + Extracted text, or None if parse has not been called yet. + """ + return self._text + + def get_date(self) -> datetime.datetime | None: + """Return the document date detected during parse. + + Returns + ------- + datetime.datetime | None + Date from the email headers, or None if not detected. + """ + return self._date + + def get_archive_path(self) -> Path | None: + """Return the path to the generated archive PDF, or None. + + Returns + ------- + Path | None + Path to the PDF produced by Gotenberg, or None if parse has not + been called yet. + """ + return self._archive_path + + # ------------------------------------------------------------------ + # Thumbnail and metadata + # ------------------------------------------------------------------ + + def get_thumbnail( + self, + document_path: Path, + mime_type: str, + file_name: str | None = None, + ) -> Path: + """Generate a thumbnail from the PDF rendition of the email. + + Converts the document to PDF first if not already done. + + Parameters + ---------- + document_path: + Absolute path to the source document. + mime_type: + Detected MIME type of the document. + file_name: + Kept for backward compatibility; not used. + + Returns + ------- + Path + Path to the generated WebP thumbnail inside the temporary directory. + """ + if not self._archive_path: + self._archive_path = self.generate_pdf( + self.parse_file_to_message(document_path), + ) + + return make_thumbnail_from_pdf( + self._archive_path, + self._tempdir, + ) + + def get_page_count( + self, + document_path: Path, + mime_type: str, + ) -> int | None: + """Return the number of pages in the document. + + Counts pages in the archive PDF produced by a preceding parse() + call. Returns ``None`` if parse() has not been called yet or if + no archive was produced. + + Returns + ------- + int | None + Page count of the archive PDF, or ``None``. + """ + if self._archive_path is not None: + from paperless.parsers.utils import get_page_count_for_pdf + + return get_page_count_for_pdf(self._archive_path, log=logger) + return None + + def extract_metadata( + self, + document_path: Path, + mime_type: str, + ) -> list[MetadataEntry]: + """Extract metadata from the email headers. + + Returns email headers as metadata entries with prefix "header", + plus summary entries for attachments and date. + + Returns + ------- + list[MetadataEntry] + Sorted list of metadata entries, or ``[]`` on parse failure. + """ + result: list[MetadataEntry] = [] + + try: + mail = self.parse_file_to_message(document_path) + except ParseError as e: + logger.warning( + "Error while fetching document metadata for %s: %s", + document_path, + e, + ) + return result + + for key, header_values in mail.headers.items(): + value = ", ".join(header_values) + try: + value.encode("utf-8") + except UnicodeEncodeError as e: # pragma: no cover + logger.debug("Skipping header %s: %s", key, e) + continue + + result.append( + { + "namespace": "", + "prefix": "header", + "key": key, + "value": value, + }, + ) + + result.append( + { + "namespace": "", + "prefix": "", + "key": "attachments", + "value": ", ".join( + f"{attachment.filename}" + f"({naturalsize(attachment.size, binary=True, format='%.2f')})" + for attachment in mail.attachments + ), + }, + ) + + result.append( + { + "namespace": "", + "prefix": "", + "key": "date", + "value": mail.date.strftime("%Y-%m-%d %H:%M:%S %Z"), + }, + ) + + result.sort(key=lambda item: (item["prefix"], item["key"])) + return result + + # ------------------------------------------------------------------ + # Email-specific methods + # ------------------------------------------------------------------ + + def _settings_to_gotenberg_pdfa(self) -> PdfAFormat | None: + """Convert the OCR output type setting to a Gotenberg PdfAFormat.""" + if settings.OCR_OUTPUT_TYPE in { + OutputTypeChoices.PDF_A, + OutputTypeChoices.PDF_A2, + }: + return PdfAFormat.A2b + elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A1: # pragma: no cover + logger.warning( + "Gotenberg does not support PDF/A-1a, choosing PDF/A-2b instead", + ) + return PdfAFormat.A2b + elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A3: # pragma: no cover + return PdfAFormat.A3b + return None + + @staticmethod + def parse_file_to_message(filepath: Path) -> MailMessage: + """Parse the given .eml file into a MailMessage object. + + Parameters + ---------- + filepath: + Path to the .eml file. + + Returns + ------- + MailMessage + Parsed mail message. + + Raises + ------ + documents.parsers.ParseError + If the file cannot be parsed or is missing required fields. + """ + try: + with filepath.open("rb") as eml: + parsed = MailMessage.from_bytes(eml.read()) + if parsed.from_values is None: + raise ParseError( + f"Could not parse {filepath}: Missing 'from'", + ) + except Exception as err: + raise ParseError( + f"Could not parse {filepath}: {err}", + ) from err + + return parsed + + def tika_parse(self, html: str) -> str: + """Send HTML content to the Tika server for text extraction. + + Parameters + ---------- + html: + HTML string to parse. + + Returns + ------- + str + Extracted plain text. + + Raises + ------ + documents.parsers.ParseError + If the Tika server cannot be reached or returns an error. + """ + logger.info("Sending content to Tika server") + + try: + with TikaClient(tika_url=settings.TIKA_ENDPOINT) as client: + parsed = client.tika.as_text.from_buffer(html, "text/html") + + if parsed.content is not None: + return parsed.content.strip() + return "" + except Exception as err: + raise ParseError( + f"Could not parse content with tika server at " + f"{settings.TIKA_ENDPOINT}: {err}", + ) from err + + def generate_pdf( + self, + mail_message: MailMessage, + pdf_layout: MailRule.PdfLayout | None = None, + ) -> Path: + """Generate a PDF from the email message. + + Creates separate PDFs for the email body and HTML content, then + merges them according to the requested layout. + + Parameters + ---------- + mail_message: + Parsed email message. + pdf_layout: + Layout option for the PDF. Falls back to the + EMAIL_PARSE_DEFAULT_LAYOUT setting if not provided. + + Returns + ------- + Path + Path to the generated PDF inside the temporary directory. + """ + archive_path = Path(self._tempdir) / "merged.pdf" + + mail_pdf_file = self.generate_pdf_from_mail(mail_message) + + if pdf_layout is None: + pdf_layout = MailRule.PdfLayout(settings.EMAIL_PARSE_DEFAULT_LAYOUT) + + # If no HTML content, create the PDF from the message. + # Otherwise, create 2 PDFs and merge them with Gotenberg. + if not mail_message.html: + archive_path.write_bytes(mail_pdf_file.read_bytes()) + else: + pdf_of_html_content = self.generate_pdf_from_html( + mail_message.html, + mail_message.attachments, + ) + + logger.debug("Merging email text and HTML content into single PDF") + + with ( + GotenbergClient( + host=settings.TIKA_GOTENBERG_ENDPOINT, + timeout=settings.CELERY_TASK_TIME_LIMIT, + ) as client, + client.merge.merge() as route, + ): + # Configure requested PDF/A formatting, if any + pdf_a_format = self._settings_to_gotenberg_pdfa() + if pdf_a_format is not None: + route.pdf_format(pdf_a_format) + + match pdf_layout: + case MailRule.PdfLayout.HTML_TEXT: + route.merge([pdf_of_html_content, mail_pdf_file]) + case MailRule.PdfLayout.HTML_ONLY: + route.merge([pdf_of_html_content]) + case MailRule.PdfLayout.TEXT_ONLY: + route.merge([mail_pdf_file]) + case MailRule.PdfLayout.TEXT_HTML | _: + route.merge([mail_pdf_file, pdf_of_html_content]) + + try: + response = route.run() + archive_path.write_bytes(response.content) + except Exception as err: + raise ParseError( + f"Error while merging email HTML into PDF: {err}", + ) from err + + return archive_path + + def mail_to_html(self, mail: MailMessage) -> Path: + """Convert the given email into an HTML file using a template. + + Parameters + ---------- + mail: + Parsed mail message. + + Returns + ------- + Path + Path to the rendered HTML file inside the temporary directory. + """ + + def clean_html(text: str) -> str: + """Attempt to clean, escape, and linkify the given HTML string.""" + if isinstance(text, list): + text = "\n".join([str(e) for e in text]) + if not isinstance(text, str): + text = str(text) + text = escape(text) + text = clean(text) + text = linkify(text, parse_email=True) + text = text.replace("\n", "
") + return text + + data = {} + + data["subject"] = clean_html(mail.subject) + if data["subject"]: + data["subject_label"] = "Subject" + data["from"] = clean_html(mail.from_values.full if mail.from_values else "") + if data["from"]: + data["from_label"] = "From" + data["to"] = clean_html(", ".join(address.full for address in mail.to_values)) + if data["to"]: + data["to_label"] = "To" + data["cc"] = clean_html(", ".join(address.full for address in mail.cc_values)) + if data["cc"]: + data["cc_label"] = "CC" + data["bcc"] = clean_html(", ".join(address.full for address in mail.bcc_values)) + if data["bcc"]: + data["bcc_label"] = "BCC" + + att = [] + for a in mail.attachments: + att.append( + f"{a.filename} ({naturalsize(a.size, binary=True, format='%.2f')})", + ) + data["attachments"] = clean_html(", ".join(att)) + if data["attachments"]: + data["attachments_label"] = "Attachments" + + data["date"] = clean_html( + timezone.localtime(mail.date).strftime("%Y-%m-%d %H:%M"), + ) + data["content"] = clean_html(mail.text.strip()) + + from django.template.loader import render_to_string + + html_file = Path(self._tempdir) / "email_as_html.html" + html_file.write_text(render_to_string("email_msg_template.html", context=data)) + + return html_file + + def generate_pdf_from_mail(self, mail: MailMessage) -> Path: + """Create a PDF from the email body using an HTML template and Gotenberg. + + Parameters + ---------- + mail: + Parsed mail message. + + Returns + ------- + Path + Path to the generated PDF inside the temporary directory. + + Raises + ------ + documents.parsers.ParseError + If Gotenberg returns an error. + """ + logger.info("Converting mail to PDF") + + css_file = ( + Path(__file__).parent.parent.parent + / "paperless_mail" + / "templates" + / "output.css" + ) + email_html_file = self.mail_to_html(mail) + + with ( + GotenbergClient( + host=settings.TIKA_GOTENBERG_ENDPOINT, + timeout=settings.CELERY_TASK_TIME_LIMIT, + ) as client, + client.chromium.html_to_pdf() as route, + ): + # Configure requested PDF/A formatting, if any + pdf_a_format = self._settings_to_gotenberg_pdfa() + if pdf_a_format is not None: + route.pdf_format(pdf_a_format) + + try: + response = ( + route.index(email_html_file) + .resource(css_file) + .margins( + PageMarginsType( + top=Measurement(0.1, MeasurementUnitType.Inches), + bottom=Measurement(0.1, MeasurementUnitType.Inches), + left=Measurement(0.1, MeasurementUnitType.Inches), + right=Measurement(0.1, MeasurementUnitType.Inches), + ), + ) + .size(A4) + .scale(1.0) + .run() + ) + except Exception as err: + raise ParseError( + f"Error while converting email to PDF: {err}", + ) from err + + email_as_pdf_file = Path(self._tempdir) / "email_as_pdf.pdf" + email_as_pdf_file.write_bytes(response.content) + + return email_as_pdf_file + + def generate_pdf_from_html( + self, + orig_html: str, + attachments: list[MailAttachment], + ) -> Path: + """Generate a PDF from the HTML content of the email. + + Parameters + ---------- + orig_html: + Raw HTML string from the email body. + attachments: + List of email attachments (used as inline resources). + + Returns + ------- + Path + Path to the generated PDF inside the temporary directory. + + Raises + ------ + documents.parsers.ParseError + If Gotenberg returns an error. + """ + + def clean_html_script(text: str) -> str: + compiled_open = re.compile(re.escape(" ParserRegistry: 1. Creates a new ParserRegistry. 2. Calls register_defaults to install built-in parsers. 3. Calls discover to load third-party plugins via importlib.metadata entrypoints. - 4. Calls log_summary to emit a startup summary. Subsequent calls return the same instance immediately. @@ -85,14 +86,15 @@ def get_parser_registry() -> ParserRegistry: """ global _registry, _discovery_complete - if _registry is None: - _registry = ParserRegistry() - _registry.register_defaults() + with _lock: + if _registry is None: + r = ParserRegistry() + r.register_defaults() + _registry = r - if not _discovery_complete: - _registry.discover() - _registry.log_summary() - _discovery_complete = True + if not _discovery_complete: + _registry.discover() + _discovery_complete = True return _registry @@ -113,9 +115,11 @@ def init_builtin_parsers() -> None: """ global _registry - if _registry is None: - _registry = ParserRegistry() - _registry.register_defaults() + with _lock: + if _registry is None: + r = ParserRegistry() + r.register_defaults() + _registry = r def reset_parser_registry() -> None: @@ -193,9 +197,17 @@ class ParserRegistry: that log output is predictable; scoring determines which parser wins at runtime regardless of registration order. """ + from paperless.parsers.mail import MailDocumentParser + from paperless.parsers.remote import RemoteDocumentParser + from paperless.parsers.tesseract import RasterisedDocumentParser from paperless.parsers.text import TextDocumentParser + from paperless.parsers.tika import TikaDocumentParser self.register_builtin(TextDocumentParser) + self.register_builtin(RemoteDocumentParser) + self.register_builtin(TikaDocumentParser) + self.register_builtin(MailDocumentParser) + self.register_builtin(RasterisedDocumentParser) # ------------------------------------------------------------------ # Discovery @@ -296,6 +308,23 @@ class ParserRegistry: getattr(cls, "url", "unknown"), ) + # ------------------------------------------------------------------ + # Inspection helpers + # ------------------------------------------------------------------ + + def all_parsers(self) -> list[type[ParserProtocol]]: + """Return all registered parser classes (external first, then builtins). + + Used by compatibility wrappers that need to iterate every parser to + compute the full set of supported MIME types and file extensions. + + Returns + ------- + list[type[ParserProtocol]] + External parsers followed by built-in parsers. + """ + return [*self._external, *self._builtins] + # ------------------------------------------------------------------ # Parser resolution # ------------------------------------------------------------------ @@ -326,7 +355,7 @@ class ParserRegistry: mime_type: The detected MIME type of the file. filename: - The original filename, including extension. + The original filename, including extension. May be empty in some cases path: Optional filesystem path to the file. Forwarded to each parser's score method. diff --git a/src/paperless/parsers/remote.py b/src/paperless/parsers/remote.py new file mode 100644 index 000000000..10e89649e --- /dev/null +++ b/src/paperless/parsers/remote.py @@ -0,0 +1,433 @@ +""" +Built-in remote-OCR document parser. + +Handles documents by sending them to a configured remote OCR engine +(currently Azure AI Vision / Document Intelligence) and retrieving both +the extracted text and a searchable PDF with an embedded text layer. + +When no engine is configured, ``score()`` returns ``None`` so the parser +is effectively invisible to the registry — the tesseract parser handles +these MIME types instead. +""" + +from __future__ import annotations + +import logging +import shutil +import tempfile +from pathlib import Path +from typing import TYPE_CHECKING +from typing import Self + +from django.conf import settings + +from paperless.version import __full_version_str__ + +if TYPE_CHECKING: + import datetime + from types import TracebackType + + from paperless.parsers import MetadataEntry + from paperless.parsers import ParserContext + +logger = logging.getLogger("paperless.parsing.remote") + +_SUPPORTED_MIME_TYPES: dict[str, str] = { + "application/pdf": ".pdf", + "image/png": ".png", + "image/jpeg": ".jpg", + "image/tiff": ".tiff", + "image/bmp": ".bmp", + "image/gif": ".gif", + "image/webp": ".webp", +} + + +class RemoteEngineConfig: + """Holds and validates the remote OCR engine configuration.""" + + def __init__( + self, + engine: str | None, + api_key: str | None = None, + endpoint: str | None = None, + ) -> None: + self.engine = engine + self.api_key = api_key + self.endpoint = endpoint + + def engine_is_valid(self) -> bool: + """Return True when the engine is known and fully configured.""" + return ( + self.engine in ("azureai",) + and self.api_key is not None + and not (self.engine == "azureai" and self.endpoint is None) + ) + + +class RemoteDocumentParser: + """Parse documents via a remote OCR API (currently Azure AI Vision). + + This parser sends documents to a remote engine that returns both + extracted text and a searchable PDF with an embedded text layer. + It does not depend on Tesseract or ocrmypdf. + + Class attributes + ---------------- + name : str + Human-readable parser name. + version : str + Semantic version string, kept in sync with Paperless-ngx releases. + author : str + Maintainer name. + url : str + Issue tracker / source URL. + """ + + name: str = "Paperless-ngx Remote OCR Parser" + version: str = __full_version_str__ + author: str = "Paperless-ngx Contributors" + url: str = "https://github.com/paperless-ngx/paperless-ngx" + + # ------------------------------------------------------------------ + # Class methods + # ------------------------------------------------------------------ + + @classmethod + def supported_mime_types(cls) -> dict[str, str]: + """Return the MIME types this parser can handle. + + The full set is always returned regardless of whether a remote + engine is configured. The ``score()`` method handles the + "am I active?" logic by returning ``None`` when not configured. + + Returns + ------- + dict[str, str] + Mapping of MIME type to preferred file extension. + """ + return _SUPPORTED_MIME_TYPES + + @classmethod + def score( + cls, + mime_type: str, + filename: str, + path: Path | None = None, + ) -> int | None: + """Return the priority score for handling this file, or None. + + Returns ``None`` when no valid remote engine is configured, + making the parser invisible to the registry for this file. + When configured, returns 20 — higher than the Tesseract parser's + default of 10 — so the remote engine takes priority. + + Parameters + ---------- + mime_type: + Detected MIME type of the file. + filename: + Original filename including extension. + path: + Optional filesystem path. Not inspected by this parser. + + Returns + ------- + int | None + 20 when the remote engine is configured and the MIME type is + supported, otherwise None. + """ + config = RemoteEngineConfig( + engine=settings.REMOTE_OCR_ENGINE, + api_key=settings.REMOTE_OCR_API_KEY, + endpoint=settings.REMOTE_OCR_ENDPOINT, + ) + if not config.engine_is_valid(): + return None + if mime_type not in _SUPPORTED_MIME_TYPES: + return None + return 20 + + # ------------------------------------------------------------------ + # Properties + # ------------------------------------------------------------------ + + @property + def can_produce_archive(self) -> bool: + """Whether this parser can produce a searchable PDF archive copy. + + Returns + ------- + bool + Always True — the remote engine always returns a PDF with an + embedded text layer that serves as the archive copy. + """ + return True + + @property + def requires_pdf_rendition(self) -> bool: + """Whether the parser must produce a PDF for the frontend to display. + + Returns + ------- + bool + Always False — all supported originals are displayable by + the browser (PDF) or handled via the archive copy (images). + """ + return False + + # ------------------------------------------------------------------ + # Lifecycle + # ------------------------------------------------------------------ + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self._tempdir = Path( + tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR), + ) + self._logging_group = logging_group + self._text: str | None = None + self._archive_path: Path | None = None + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> None: + logger.debug("Cleaning up temporary directory %s", self._tempdir) + shutil.rmtree(self._tempdir, ignore_errors=True) + + # ------------------------------------------------------------------ + # Core parsing interface + # ------------------------------------------------------------------ + + def configure(self, context: ParserContext) -> None: + pass + + def parse( + self, + document_path: Path, + mime_type: str, + *, + produce_archive: bool = True, + ) -> None: + """Send the document to the remote engine and store results. + + Parameters + ---------- + document_path: + Absolute path to the document file to parse. + mime_type: + Detected MIME type of the document. + produce_archive: + Ignored — the remote engine always returns a searchable PDF, + which is stored as the archive copy regardless of this flag. + """ + config = RemoteEngineConfig( + engine=settings.REMOTE_OCR_ENGINE, + api_key=settings.REMOTE_OCR_API_KEY, + endpoint=settings.REMOTE_OCR_ENDPOINT, + ) + + if not config.engine_is_valid(): + logger.warning( + "No valid remote parser engine is configured, content will be empty.", + ) + self._text = "" + return + + if config.engine == "azureai": + self._text = self._azure_ai_vision_parse(document_path, config) + + # ------------------------------------------------------------------ + # Result accessors + # ------------------------------------------------------------------ + + def get_text(self) -> str | None: + """Return the plain-text content extracted during parse.""" + return self._text + + def get_date(self) -> datetime.datetime | None: + """Return the document date detected during parse. + + Returns + ------- + datetime.datetime | None + Always None — the remote parser does not detect dates. + """ + return None + + def get_archive_path(self) -> Path | None: + """Return the path to the generated archive PDF, or None.""" + return self._archive_path + + # ------------------------------------------------------------------ + # Thumbnail and metadata + # ------------------------------------------------------------------ + + def get_thumbnail(self, document_path: Path, mime_type: str) -> Path: + """Generate a thumbnail image for the document. + + Uses the archive PDF produced by the remote engine when available, + otherwise falls back to the original document path (PDF inputs). + + Parameters + ---------- + document_path: + Absolute path to the source document. + mime_type: + Detected MIME type of the document. + + Returns + ------- + Path + Path to the generated WebP thumbnail inside the temp directory. + """ + # make_thumbnail_from_pdf lives in documents.parsers for now; + # it will move to paperless.parsers.utils when the tesseract + # parser is migrated in a later phase. + from documents.parsers import make_thumbnail_from_pdf + + return make_thumbnail_from_pdf( + self._archive_path or document_path, + self._tempdir, + self._logging_group, + ) + + def get_page_count( + self, + document_path: Path, + mime_type: str, + ) -> int | None: + """Return the number of pages in a PDF document. + + Parameters + ---------- + document_path: + Absolute path to the source document. + mime_type: + Detected MIME type of the document. + + Returns + ------- + int | None + Page count for PDF inputs, or ``None`` for other MIME types. + """ + if mime_type != "application/pdf": + return None + + from paperless.parsers.utils import get_page_count_for_pdf + + return get_page_count_for_pdf(document_path, log=logger) + + def extract_metadata( + self, + document_path: Path, + mime_type: str, + ) -> list[MetadataEntry]: + """Extract format-specific metadata from the document. + + Delegates to the shared pikepdf-based extractor for PDF files. + Returns ``[]`` for all other MIME types. + + Parameters + ---------- + document_path: + Absolute path to the file to extract metadata from. + mime_type: + MIME type of the file. May be ``"application/pdf"`` when + called for the archive version of an image original. + + Returns + ------- + list[MetadataEntry] + Zero or more metadata entries. + """ + if mime_type != "application/pdf": + return [] + + from paperless.parsers.utils import extract_pdf_metadata + + return extract_pdf_metadata(document_path, log=logger) + + # ------------------------------------------------------------------ + # Private helpers + # ------------------------------------------------------------------ + + def _azure_ai_vision_parse( + self, + file: Path, + config: RemoteEngineConfig, + ) -> str | None: + """Send ``file`` to Azure AI Document Intelligence and return text. + + Downloads the searchable PDF output from Azure and stores it at + ``self._archive_path``. Returns the extracted text content, or + ``None`` on failure (the error is logged). + + Parameters + ---------- + file: + Absolute path to the document to analyse. + config: + Validated remote engine configuration. + + Returns + ------- + str | None + Extracted text, or None if the Azure call failed. + """ + if TYPE_CHECKING: + # Callers must have already validated config via engine_is_valid(): + # engine_is_valid() asserts api_key is not None and (for azureai) + # endpoint is not None, so these casts are provably safe. + assert config.endpoint is not None + assert config.api_key is not None + + from azure.ai.documentintelligence import DocumentIntelligenceClient + from azure.ai.documentintelligence.models import AnalyzeDocumentRequest + from azure.ai.documentintelligence.models import AnalyzeOutputOption + from azure.ai.documentintelligence.models import DocumentContentFormat + from azure.core.credentials import AzureKeyCredential + + client = DocumentIntelligenceClient( + endpoint=config.endpoint, + credential=AzureKeyCredential(config.api_key), + ) + + try: + with file.open("rb") as f: + analyze_request = AnalyzeDocumentRequest(bytes_source=f.read()) + poller = client.begin_analyze_document( + model_id="prebuilt-read", + body=analyze_request, + output_content_format=DocumentContentFormat.TEXT, + output=[AnalyzeOutputOption.PDF], + content_type="application/json", + ) + + poller.wait() + result_id = poller.details["operation_id"] + result = poller.result() + + self._archive_path = self._tempdir / "archive.pdf" + with self._archive_path.open("wb") as f: + for chunk in client.get_analyze_result_pdf( + model_id="prebuilt-read", + result_id=result_id, + ): + f.write(chunk) + + return result.content + + except Exception as e: + logger.error("Azure AI Vision parsing failed: %s", e) + + finally: + client.close() + + return None diff --git a/src/paperless_tesseract/parsers.py b/src/paperless/parsers/tesseract.py similarity index 71% rename from src/paperless_tesseract/parsers.py rename to src/paperless/parsers/tesseract.py index 0e0146421..99cff36aa 100644 --- a/src/paperless_tesseract/parsers.py +++ b/src/paperless/parsers/tesseract.py @@ -1,13 +1,18 @@ +from __future__ import annotations + +import logging import os import re +import shutil import tempfile from pathlib import Path from typing import TYPE_CHECKING +from typing import Any +from typing import Self from django.conf import settings from PIL import Image -from documents.parsers import DocumentParser from documents.parsers import ParseError from documents.parsers import make_thumbnail_from_pdf from documents.utils import maybe_override_pixel_limit @@ -16,6 +21,28 @@ from paperless.config import OcrConfig from paperless.models import ArchiveFileChoices from paperless.models import CleanChoices from paperless.models import ModeChoices +from paperless.parsers.utils import read_file_handle_unicode_errors +from paperless.version import __full_version_str__ + +if TYPE_CHECKING: + import datetime + from types import TracebackType + + from paperless.parsers import MetadataEntry + from paperless.parsers import ParserContext + +logger = logging.getLogger("paperless.parsing.tesseract") + +_SUPPORTED_MIME_TYPES: dict[str, str] = { + "application/pdf": ".pdf", + "image/jpeg": ".jpg", + "image/png": ".png", + "image/tiff": ".tif", + "image/gif": ".gif", + "image/bmp": ".bmp", + "image/webp": ".webp", + "image/heic": ".heic", +} class NoTextFoundException(Exception): @@ -26,81 +53,125 @@ class RtlLanguageException(Exception): pass -class RasterisedDocumentParser(DocumentParser): +class RasterisedDocumentParser: """ This parser uses Tesseract to try and get some text out of a rasterised image, whether it's a PDF, or other graphical format (JPEG, TIFF, etc.) """ - logging_name = "paperless.parsing.tesseract" + name: str = "Paperless-ngx Tesseract OCR Parser" + version: str = __full_version_str__ + author: str = "Paperless-ngx Contributors" + url: str = "https://github.com/paperless-ngx/paperless-ngx" - def get_settings(self) -> OcrConfig: - """ - This parser uses the OCR configuration settings to parse documents - """ - return OcrConfig() + # ------------------------------------------------------------------ + # Class methods + # ------------------------------------------------------------------ - def get_page_count(self, document_path, mime_type): - page_count = None - if mime_type == "application/pdf": - try: - import pikepdf + @classmethod + def supported_mime_types(cls) -> dict[str, str]: + return _SUPPORTED_MIME_TYPES - with pikepdf.Pdf.open(document_path) as pdf: - page_count = len(pdf.pages) - except Exception as e: - self.log.warning( - f"Unable to determine PDF page count {document_path}: {e}", - ) - return page_count + @classmethod + def score( + cls, + mime_type: str, + filename: str, + path: Path | None = None, + ) -> int | None: + if mime_type in _SUPPORTED_MIME_TYPES: + return 10 + return None - def extract_metadata(self, document_path, mime_type): - result = [] - if mime_type == "application/pdf": - import pikepdf + # ------------------------------------------------------------------ + # Properties + # ------------------------------------------------------------------ - namespace_pattern = re.compile(r"\{(.*)\}(.*)") + @property + def can_produce_archive(self) -> bool: + return True - pdf = pikepdf.open(document_path) - meta = pdf.open_metadata() - for key, value in meta.items(): - if isinstance(value, list): - value = " ".join([str(e) for e in value]) - value = str(value) - try: - m = namespace_pattern.match(key) - if m is None: # pragma: no cover - continue - namespace = m.group(1) - key_value = m.group(2) - try: - namespace.encode("utf-8") - key_value.encode("utf-8") - except UnicodeEncodeError as e: # pragma: no cover - self.log.debug(f"Skipping metadata key {key}: {e}") - continue - result.append( - { - "namespace": namespace, - "prefix": meta.REVERSE_NS[namespace], - "key": key_value, - "value": value, - }, - ) - except Exception as e: - self.log.warning( - f"Error while reading metadata {key}: {value}. Error: {e}", - ) - return result + @property + def requires_pdf_rendition(self) -> bool: + return False - def get_thumbnail(self, document_path, mime_type, file_name=None): + # ------------------------------------------------------------------ + # Lifecycle + # ------------------------------------------------------------------ + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self.tempdir = Path( + tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR), + ) + self.settings = OcrConfig() + self.archive_path: Path | None = None + self.text: str | None = None + self.date: datetime.datetime | None = None + self.log = logger + + def __enter__(self) -> Self: + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> None: + logger.debug("Cleaning up temporary directory %s", self.tempdir) + shutil.rmtree(self.tempdir, ignore_errors=True) + + # ------------------------------------------------------------------ + # Core parsing interface + # ------------------------------------------------------------------ + + def configure(self, context: ParserContext) -> None: + pass + + # ------------------------------------------------------------------ + # Result accessors + # ------------------------------------------------------------------ + + def get_text(self) -> str | None: + return self.text + + def get_date(self) -> datetime.datetime | None: + return self.date + + def get_archive_path(self) -> Path | None: + return self.archive_path + + # ------------------------------------------------------------------ + # Thumbnail, page count, and metadata + # ------------------------------------------------------------------ + + def get_thumbnail(self, document_path: Path, mime_type: str) -> Path: return make_thumbnail_from_pdf( - self.archive_path or document_path, + self.archive_path or Path(document_path), self.tempdir, - self.logging_group, ) - def is_image(self, mime_type) -> bool: + def get_page_count(self, document_path: Path, mime_type: str) -> int | None: + if mime_type == "application/pdf": + from paperless.parsers.utils import get_page_count_for_pdf + + return get_page_count_for_pdf(Path(document_path), log=self.log) + return None + + def extract_metadata( + self, + document_path: Path, + mime_type: str, + ) -> list[MetadataEntry]: + if mime_type != "application/pdf": + return [] + + from paperless.parsers.utils import extract_pdf_metadata + + return extract_pdf_metadata(Path(document_path), log=self.log) + + def is_image(self, mime_type: str) -> bool: return mime_type in [ "image/png", "image/jpeg", @@ -111,25 +182,25 @@ class RasterisedDocumentParser(DocumentParser): "image/heic", ] - def has_alpha(self, image) -> bool: + def has_alpha(self, image: Path) -> bool: with Image.open(image) as im: return im.mode in ("RGBA", "LA") - def remove_alpha(self, image_path: str) -> Path: + def remove_alpha(self, image_path: Path) -> Path: no_alpha_image = Path(self.tempdir) / "image-no-alpha" run_subprocess( [ settings.CONVERT_BINARY, "-alpha", "off", - image_path, - no_alpha_image, + str(image_path), + str(no_alpha_image), ], logger=self.log, ) return no_alpha_image - def get_dpi(self, image) -> int | None: + def get_dpi(self, image: Path) -> int | None: try: with Image.open(image) as im: x, _ = im.info["dpi"] @@ -138,7 +209,7 @@ class RasterisedDocumentParser(DocumentParser): self.log.warning(f"Error while getting DPI from image {image}: {e}") return None - def calculate_a4_dpi(self, image) -> int | None: + def calculate_a4_dpi(self, image: Path) -> int | None: try: with Image.open(image) as im: width, _ = im.size @@ -156,6 +227,7 @@ class RasterisedDocumentParser(DocumentParser): sidecar_file: Path | None, pdf_file: Path, ) -> str | None: + text: str | None = None # When re-doing OCR, the sidecar contains ONLY the new text, not # the whole text, so do not utilize it in that case if ( @@ -163,7 +235,7 @@ class RasterisedDocumentParser(DocumentParser): and sidecar_file.is_file() and self.settings.mode != "redo" ): - text = self.read_file_handle_unicode_errors(sidecar_file) + text = read_file_handle_unicode_errors(sidecar_file) if "[OCR skipped on page" not in text: # This happens when there's already text in the input file. @@ -191,12 +263,12 @@ class RasterisedDocumentParser(DocumentParser): "-layout", "-enc", "UTF-8", - pdf_file, + str(pdf_file), tmp.name, ], logger=self.log, ) - text = self.read_file_handle_unicode_errors(Path(tmp.name)) + text = read_file_handle_unicode_errors(Path(tmp.name)) return post_process_text(text) @@ -211,17 +283,15 @@ class RasterisedDocumentParser(DocumentParser): def construct_ocrmypdf_parameters( self, - input_file, - mime_type, - output_file, - sidecar_file, + input_file: Path, + mime_type: str, + output_file: Path, + sidecar_file: Path, *, - safe_fallback=False, - ): - if TYPE_CHECKING: - assert isinstance(self.settings, OcrConfig) - ocrmypdf_args = { - "input_file": input_file, + safe_fallback: bool = False, + ) -> dict[str, Any]: + ocrmypdf_args: dict[str, Any] = { + "input_file_or_options": input_file, "output_file": output_file, # need to use threads, since this will be run in daemonized # processes via the task library. @@ -285,7 +355,7 @@ class RasterisedDocumentParser(DocumentParser): "for compatibility with img2pdf", ) # Replace the input file with the non-alpha - ocrmypdf_args["input_file"] = self.remove_alpha(input_file) + ocrmypdf_args["input_file_or_options"] = self.remove_alpha(input_file) if dpi: self.log.debug(f"Detected DPI for image {input_file}: {dpi}") @@ -330,7 +400,13 @@ class RasterisedDocumentParser(DocumentParser): return ocrmypdf_args - def parse(self, document_path: Path, mime_type, file_name=None) -> None: + def parse( + self, + document_path: Path, + mime_type: str, + *, + produce_archive: bool = True, + ) -> None: # This forces tesseract to use one core per page. os.environ["OMP_THREAD_LIMIT"] = "1" VALID_TEXT_LENGTH = 50 @@ -458,7 +534,7 @@ class RasterisedDocumentParser(DocumentParser): self.text = "" -def post_process_text(text): +def post_process_text(text: str | None) -> str | None: if not text: return None diff --git a/src/paperless/parsers/text.py b/src/paperless/parsers/text.py index 99d9dab08..00d738995 100644 --- a/src/paperless/parsers/text.py +++ b/src/paperless/parsers/text.py @@ -27,6 +27,7 @@ if TYPE_CHECKING: from types import TracebackType from paperless.parsers import MetadataEntry + from paperless.parsers import ParserContext logger = logging.getLogger("paperless.parsing.text") @@ -156,6 +157,9 @@ class TextDocumentParser: # Core parsing interface # ------------------------------------------------------------------ + def configure(self, context: ParserContext) -> None: + pass + def parse( self, document_path: Path, diff --git a/src/paperless/parsers/tika.py b/src/paperless/parsers/tika.py new file mode 100644 index 000000000..674d74fe2 --- /dev/null +++ b/src/paperless/parsers/tika.py @@ -0,0 +1,452 @@ +""" +Built-in Tika document parser. + +Handles Office documents (DOCX, ODT, XLS, XLSX, PPT, PPTX, RTF, etc.) by +sending them to an Apache Tika server for text extraction and a Gotenberg +server for PDF conversion. Because the source formats cannot be rendered by +a browser natively, the parser always produces a PDF rendition for display. +""" + +from __future__ import annotations + +import logging +import shutil +import tempfile +from contextlib import ExitStack +from pathlib import Path +from typing import TYPE_CHECKING +from typing import Self + +import httpx +from django.conf import settings +from django.utils import timezone +from gotenberg_client import GotenbergClient +from gotenberg_client.options import PdfAFormat +from tika_client import TikaClient + +from documents.parsers import ParseError +from documents.parsers import make_thumbnail_from_pdf +from paperless.config import OutputTypeConfig +from paperless.models import OutputTypeChoices +from paperless.version import __full_version_str__ + +if TYPE_CHECKING: + import datetime + from types import TracebackType + + from paperless.parsers import MetadataEntry + from paperless.parsers import ParserContext + +logger = logging.getLogger("paperless.parsing.tika") + +_SUPPORTED_MIME_TYPES: dict[str, str] = { + "application/msword": ".doc", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx", + "application/vnd.ms-excel": ".xls", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx", + "application/vnd.ms-powerpoint": ".ppt", + "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx", + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": ".ppsx", + "application/vnd.oasis.opendocument.presentation": ".odp", + "application/vnd.oasis.opendocument.spreadsheet": ".ods", + "application/vnd.oasis.opendocument.text": ".odt", + "application/vnd.oasis.opendocument.graphics": ".odg", + "text/rtf": ".rtf", +} + + +class TikaDocumentParser: + """Parse Office documents via Apache Tika and Gotenberg for Paperless-ngx. + + Text extraction is handled by the Tika server. PDF conversion for display + is handled by Gotenberg (LibreOffice route). Because the source formats + cannot be rendered by a browser natively, ``requires_pdf_rendition`` is + True and the PDF is always produced regardless of the ``produce_archive`` + flag passed to ``parse``. + + Both ``TikaClient`` and ``GotenbergClient`` are opened once in + ``__enter__`` via an ``ExitStack`` and shared across ``parse``, + ``extract_metadata``, and ``_convert_to_pdf`` calls, then closed via + ``ExitStack.close()`` in ``__exit__``. The parser must always be used + as a context manager. + + Class attributes + ---------------- + name : str + Human-readable parser name. + version : str + Semantic version string, kept in sync with Paperless-ngx releases. + author : str + Maintainer name. + url : str + Issue tracker / source URL. + """ + + name: str = "Paperless-ngx Tika Parser" + version: str = __full_version_str__ + author: str = "Paperless-ngx Contributors" + url: str = "https://github.com/paperless-ngx/paperless-ngx" + + # ------------------------------------------------------------------ + # Class methods + # ------------------------------------------------------------------ + + @classmethod + def supported_mime_types(cls) -> dict[str, str]: + """Return the MIME types this parser handles. + + Returns + ------- + dict[str, str] + Mapping of MIME type to preferred file extension. + """ + return _SUPPORTED_MIME_TYPES + + @classmethod + def score( + cls, + mime_type: str, + filename: str, + path: Path | None = None, + ) -> int | None: + """Return the priority score for handling this file. + + Returns ``None`` when Tika integration is disabled so the registry + skips this parser entirely. + + Parameters + ---------- + mime_type: + Detected MIME type of the file. + filename: + Original filename including extension. + path: + Optional filesystem path. Not inspected by this parser. + + Returns + ------- + int | None + 10 if TIKA_ENABLED and the MIME type is supported, otherwise None. + """ + if not settings.TIKA_ENABLED: + return None + if mime_type in _SUPPORTED_MIME_TYPES: + return 10 + return None + + # ------------------------------------------------------------------ + # Properties + # ------------------------------------------------------------------ + + @property + def can_produce_archive(self) -> bool: + """Whether this parser can produce a searchable PDF archive copy. + + Returns + ------- + bool + Always False — Tika produces a display PDF, not an OCR archive. + """ + return False + + @property + def requires_pdf_rendition(self) -> bool: + """Whether the parser must produce a PDF for the frontend to display. + + Returns + ------- + bool + Always True — Office formats cannot be rendered natively in a + browser, so a PDF conversion is always required for display. + """ + return True + + # ------------------------------------------------------------------ + # Lifecycle + # ------------------------------------------------------------------ + + def __init__(self, logging_group: object = None) -> None: + settings.SCRATCH_DIR.mkdir(parents=True, exist_ok=True) + self._tempdir = Path( + tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR), + ) + self._text: str | None = None + self._date: datetime.datetime | None = None + self._archive_path: Path | None = None + self._exit_stack = ExitStack() + self._tika_client: TikaClient | None = None + self._gotenberg_client: GotenbergClient | None = None + + def __enter__(self) -> Self: + self._tika_client = self._exit_stack.enter_context( + TikaClient( + tika_url=settings.TIKA_ENDPOINT, + timeout=settings.CELERY_TASK_TIME_LIMIT, + ), + ) + self._gotenberg_client = self._exit_stack.enter_context( + GotenbergClient( + host=settings.TIKA_GOTENBERG_ENDPOINT, + timeout=settings.CELERY_TASK_TIME_LIMIT, + ), + ) + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_val: BaseException | None, + exc_tb: TracebackType | None, + ) -> None: + self._exit_stack.close() + logger.debug("Cleaning up temporary directory %s", self._tempdir) + shutil.rmtree(self._tempdir, ignore_errors=True) + + # ------------------------------------------------------------------ + # Core parsing interface + # ------------------------------------------------------------------ + + def configure(self, context: ParserContext) -> None: + pass + + def parse( + self, + document_path: Path, + mime_type: str, + *, + produce_archive: bool = True, + ) -> None: + """Send the document to Tika for text extraction and Gotenberg for PDF. + + Because ``requires_pdf_rendition`` is True the PDF conversion is + always performed — the ``produce_archive`` flag is intentionally + ignored. + + Parameters + ---------- + document_path: + Absolute path to the document file to parse. + mime_type: + Detected MIME type of the document. + produce_archive: + Accepted for protocol compatibility but ignored; the PDF rendition + is always produced since the source format cannot be displayed + natively in the browser. + + Raises + ------ + documents.parsers.ParseError + If Tika or Gotenberg returns an error. + """ + if TYPE_CHECKING: + assert self._tika_client is not None + + logger.info("Sending %s to Tika server", document_path) + + try: + try: + parsed = self._tika_client.tika.as_text.from_file( + document_path, + mime_type, + ) + except httpx.HTTPStatusError as err: + # Workaround https://issues.apache.org/jira/browse/TIKA-4110 + # Tika fails with some files as multi-part form data + if err.response.status_code == httpx.codes.INTERNAL_SERVER_ERROR: + parsed = self._tika_client.tika.as_text.from_buffer( + document_path.read_bytes(), + mime_type, + ) + else: # pragma: no cover + raise + except Exception as err: + raise ParseError( + f"Could not parse {document_path} with tika server at " + f"{settings.TIKA_ENDPOINT}: {err}", + ) from err + + self._text = parsed.content + if self._text is not None: + self._text = self._text.strip() + + self._date = parsed.created + if self._date is not None and timezone.is_naive(self._date): + self._date = timezone.make_aware(self._date) + + # Always convert — requires_pdf_rendition=True means the browser + # cannot display the source format natively. + self._archive_path = self._convert_to_pdf(document_path) + + # ------------------------------------------------------------------ + # Result accessors + # ------------------------------------------------------------------ + + def get_text(self) -> str | None: + """Return the plain-text content extracted during parse. + + Returns + ------- + str | None + Extracted text, or None if parse has not been called yet. + """ + return self._text + + def get_date(self) -> datetime.datetime | None: + """Return the document date detected during parse. + + Returns + ------- + datetime.datetime | None + Creation date from Tika metadata, or None if not detected. + """ + return self._date + + def get_archive_path(self) -> Path | None: + """Return the path to the generated PDF rendition, or None. + + Returns + ------- + Path | None + Path to the PDF produced by Gotenberg, or None if parse has not + been called yet. + """ + return self._archive_path + + # ------------------------------------------------------------------ + # Thumbnail and metadata + # ------------------------------------------------------------------ + + def get_thumbnail(self, document_path: Path, mime_type: str) -> Path: + """Generate a thumbnail from the PDF rendition of the document. + + Converts the document to PDF first if not already done. + + Parameters + ---------- + document_path: + Absolute path to the source document. + mime_type: + Detected MIME type of the document. + + Returns + ------- + Path + Path to the generated WebP thumbnail inside the temporary directory. + """ + if self._archive_path is None: + self._archive_path = self._convert_to_pdf(document_path) + return make_thumbnail_from_pdf(self._archive_path, self._tempdir) + + def get_page_count( + self, + document_path: Path, + mime_type: str, + ) -> int | None: + """Return the number of pages in the document. + + Counts pages in the archive PDF produced by a preceding parse() + call. Returns ``None`` if parse() has not been called yet or if + no archive was produced. + + Returns + ------- + int | None + Page count of the archive PDF, or ``None``. + """ + if self._archive_path is not None: + from paperless.parsers.utils import get_page_count_for_pdf + + return get_page_count_for_pdf(self._archive_path, log=logger) + return None + + def extract_metadata( + self, + document_path: Path, + mime_type: str, + ) -> list[MetadataEntry]: + """Extract format-specific metadata via the Tika metadata endpoint. + + Returns + ------- + list[MetadataEntry] + All key/value pairs returned by Tika, or ``[]`` on error. + """ + if TYPE_CHECKING: + assert self._tika_client is not None + + try: + parsed = self._tika_client.metadata.from_file(document_path, mime_type) + return [ + { + "namespace": "", + "prefix": "", + "key": key, + "value": parsed.data[key], + } + for key in parsed.data + ] + except Exception as e: + logger.warning( + "Error while fetching document metadata for %s: %s", + document_path, + e, + ) + return [] + + # ------------------------------------------------------------------ + # Private helpers + # ------------------------------------------------------------------ + + def _convert_to_pdf(self, document_path: Path) -> Path: + """Convert the document to PDF using Gotenberg's LibreOffice route. + + Parameters + ---------- + document_path: + Absolute path to the source document. + + Returns + ------- + Path + Path to the generated PDF inside the temporary directory. + + Raises + ------ + documents.parsers.ParseError + If Gotenberg returns an error. + """ + if TYPE_CHECKING: + assert self._gotenberg_client is not None + + pdf_path = self._tempdir / "convert.pdf" + + logger.info("Converting %s to PDF as %s", document_path, pdf_path) + + with self._gotenberg_client.libre_office.to_pdf() as route: + # Set the output format of the resulting PDF. + # OutputTypeConfig reads the database-stored ApplicationConfiguration + # first, then falls back to the PAPERLESS_OCR_OUTPUT_TYPE env var. + output_type = OutputTypeConfig().output_type + if output_type in { + OutputTypeChoices.PDF_A, + OutputTypeChoices.PDF_A2, + }: + route.pdf_format(PdfAFormat.A2b) + elif output_type == OutputTypeChoices.PDF_A1: + logger.warning( + "Gotenberg does not support PDF/A-1a, choosing PDF/A-2b instead", + ) + route.pdf_format(PdfAFormat.A2b) + elif output_type == OutputTypeChoices.PDF_A3: + route.pdf_format(PdfAFormat.A3b) + + route.convert(document_path) + + try: + response = route.run() + pdf_path.write_bytes(response.content) + return pdf_path + except Exception as err: + raise ParseError( + f"Error while converting document to PDF: {err}", + ) from err diff --git a/src/paperless/parsers/utils.py b/src/paperless/parsers/utils.py new file mode 100644 index 000000000..2e6ce7061 --- /dev/null +++ b/src/paperless/parsers/utils.py @@ -0,0 +1,158 @@ +""" +Shared utilities for Paperless-ngx document parsers. + +Functions here are format-neutral helpers that multiple parsers need. +Keeping them here avoids parsers inheriting from each other just to +share implementation. +""" + +from __future__ import annotations + +import logging +import re +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from pathlib import Path + + from paperless.parsers import MetadataEntry + +logger = logging.getLogger("paperless.parsers.utils") + + +def read_file_handle_unicode_errors( + filepath: Path, + log: logging.Logger | None = None, +) -> str: + """Read a file as UTF-8 text, replacing invalid bytes rather than raising. + + Parameters + ---------- + filepath: + Absolute path to the file to read. + log: + Logger to use for warnings. Falls back to the module-level logger + when omitted. + + Returns + ------- + str + File content as a string, with any invalid UTF-8 sequences replaced + by the Unicode replacement character. + """ + _log = log or logger + try: + return filepath.read_text(encoding="utf-8") + except UnicodeDecodeError as e: + _log.warning("Unicode error during text reading, continuing: %s", e) + return filepath.read_bytes().decode("utf-8", errors="replace") + + +def get_page_count_for_pdf( + document_path: Path, + log: logging.Logger | None = None, +) -> int | None: + """Return the number of pages in a PDF file using pikepdf. + + Parameters + ---------- + document_path: + Absolute path to the PDF file. + log: + Logger to use for warnings. Falls back to the module-level logger + when omitted. + + Returns + ------- + int | None + Page count, or ``None`` if the file cannot be opened or is not a + valid PDF. + """ + import pikepdf + + _log = log or logger + + try: + with pikepdf.Pdf.open(document_path) as pdf: + return len(pdf.pages) + except Exception as e: + _log.warning("Unable to determine PDF page count for %s: %s", document_path, e) + return None + + +def extract_pdf_metadata( + document_path: Path, + log: logging.Logger | None = None, +) -> list[MetadataEntry]: + """Extract XMP/PDF metadata from a PDF file using pikepdf. + + Reads all XMP metadata entries from the document and returns them as a + list of ``MetadataEntry`` dicts. The method never raises — any failure + to open the file or read a specific key is logged and skipped. + + Parameters + ---------- + document_path: + Absolute path to the PDF file. + log: + Logger to use for warnings and debug messages. Falls back to the + module-level logger when omitted. + + Returns + ------- + list[MetadataEntry] + Zero or more metadata entries. Returns ``[]`` if the file cannot + be opened or contains no readable XMP metadata. + """ + import pikepdf + + from paperless.parsers import MetadataEntry + + _log = log or logger + result: list[MetadataEntry] = [] + namespace_pattern = re.compile(r"\{(.*)\}(.*)") + + try: + pdf = pikepdf.open(document_path) + meta = pdf.open_metadata() + except Exception as e: + _log.warning("Could not open PDF metadata for %s: %s", document_path, e) + return [] + + for key, value in meta.items(): + if isinstance(value, list): + value = " ".join(str(e) for e in value) + value = str(value) + + try: + m = namespace_pattern.match(key) + if m is None: + continue + + namespace = m.group(1) + key_value = m.group(2) + + try: + namespace.encode("utf-8") + key_value.encode("utf-8") + except UnicodeEncodeError as enc_err: # pragma: no cover + _log.debug("Skipping metadata key %s: %s", key, enc_err) + continue + + result.append( + MetadataEntry( + namespace=namespace, + prefix=meta.REVERSE_NS[namespace], + key=key_value, + value=value, + ), + ) + except Exception as e: + _log.warning( + "Error reading metadata key %s value %s: %s", + key, + value, + e, + ) + + return result diff --git a/src/paperless/serialisers.py b/src/paperless/serialisers.py index 97a2bee7e..4939bc1ba 100644 --- a/src/paperless/serialisers.py +++ b/src/paperless/serialisers.py @@ -6,6 +6,7 @@ from allauth.mfa.models import Authenticator from allauth.mfa.totp.internal.auth import TOTP from allauth.socialaccount.models import SocialAccount from allauth.socialaccount.models import SocialApp +from django.conf import settings from django.contrib.auth.models import Group from django.contrib.auth.models import Permission from django.contrib.auth.models import User @@ -15,6 +16,7 @@ from rest_framework import serializers from rest_framework.authtoken.serializers import AuthTokenSerializer from paperless.models import ApplicationConfiguration +from paperless.network import validate_outbound_http_url from paperless.validators import reject_dangerous_svg from paperless_mail.serialisers import ObfuscatedPasswordField @@ -236,6 +238,22 @@ class ApplicationConfigurationSerializer(serializers.ModelSerializer): reject_dangerous_svg(file) return file + def validate_llm_endpoint(self, value: str | None) -> str | None: + if not value: + return value + + try: + validate_outbound_http_url( + value, + allow_internal=settings.LLM_ALLOW_INTERNAL_ENDPOINTS, + ) + except ValueError as e: + raise serializers.ValidationError( + f"Invalid LLM endpoint: {e.args[0]}, see logs for details", + ) from e + + return value + class Meta: model = ApplicationConfiguration fields = "__all__" diff --git a/src/paperless/settings/__init__.py b/src/paperless/settings/__init__.py index 34d163dd7..fac1391b3 100644 --- a/src/paperless/settings/__init__.py +++ b/src/paperless/settings/__init__.py @@ -11,6 +11,7 @@ from typing import Final from urllib.parse import urlparse from compression_middleware.middleware import CompressionMiddleware +from django.core.exceptions import ImproperlyConfigured from django.utils.translation import gettext_lazy as _ from dotenv import load_dotenv @@ -21,6 +22,7 @@ from paperless.settings.custom import parse_hosting_settings from paperless.settings.custom import parse_ignore_dates from paperless.settings.custom import parse_redis_url from paperless.settings.parsers import get_bool_from_env +from paperless.settings.parsers import get_choice_from_env from paperless.settings.parsers import get_float_from_env from paperless.settings.parsers import get_int_from_env from paperless.settings.parsers import get_list_from_env @@ -85,6 +87,11 @@ EMPTY_TRASH_DIR = ( # threads. MEDIA_LOCK = MEDIA_ROOT / "media.lock" INDEX_DIR = DATA_DIR / "index" + +ADVANCED_FUZZY_SEARCH_THRESHOLD: float | None = get_float_from_env( + "PAPERLESS_ADVANCED_FUZZY_SEARCH_THRESHOLD", +) + MODEL_FILE = get_path_from_env( "PAPERLESS_MODEL_FILE", DATA_DIR / "classification_model.pickle", @@ -121,10 +128,7 @@ INSTALLED_APPS = [ "django_extensions", "paperless", "documents.apps.DocumentsConfig", - "paperless_tesseract.apps.PaperlessTesseractConfig", - "paperless_text.apps.PaperlessTextConfig", "paperless_mail.apps.PaperlessMailConfig", - "paperless_remote.apps.PaperlessRemoteParserConfig", "django.contrib.admin", "rest_framework", "rest_framework.authtoken", @@ -158,6 +162,9 @@ REST_FRAMEWORK = { "ALLOWED_VERSIONS": ["9", "10"], # DRF Spectacular default schema "DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema", + "DEFAULT_THROTTLE_RATES": { + "login": os.getenv("PAPERLESS_TOKEN_THROTTLE_RATE", "5/min"), + }, } if DEBUG: @@ -457,13 +464,13 @@ SECURE_PROXY_SSL_HEADER = ( else None ) -# The secret key has a default that should be fine so long as you're hosting -# Paperless on a closed network. However, if you're putting this anywhere -# public, you should change the key to something unique and verbose. -SECRET_KEY = os.getenv( - "PAPERLESS_SECRET_KEY", - "e11fl1oa-*ytql8p)(06fbj4ukrlo+n7k&q5+$1md7i+mge=ee", -) +SECRET_KEY = os.getenv("PAPERLESS_SECRET_KEY", "") +if not SECRET_KEY: # pragma: no cover + raise ImproperlyConfigured( + "PAPERLESS_SECRET_KEY is not set. " + "A unique, secret key is required for secure operation. " + 'Generate one with: python3 -c "import secrets; print(secrets.token_urlsafe(64))"', + ) AUTH_PASSWORD_VALIDATORS = [ { @@ -494,6 +501,10 @@ SESSION_COOKIE_NAME = f"{COOKIE_PREFIX}sessionid" LANGUAGE_COOKIE_NAME = f"{COOKIE_PREFIX}django_language" EMAIL_CERTIFICATE_FILE = get_path_from_env("PAPERLESS_EMAIL_CERTIFICATE_LOCATION") +EMAIL_ALLOW_INTERNAL_HOSTS = get_bool_from_env( + "PAPERLESS_EMAIL_ALLOW_INTERNAL_HOSTS", + "true", +) ############################################################################### @@ -581,8 +592,7 @@ LOGGING = { "disable_existing_loggers": False, "formatters": { "verbose": { - "format": "[{asctime}] [{levelname}] [{name}] {message}", - "style": "{", + "()": "paperless.logging.ConsumeTaskFormatter", }, "simple": { "format": "{levelname} {message}", @@ -664,9 +674,11 @@ CELERY_RESULT_BACKEND = "django-db" CELERY_CACHE_BACKEND = "default" # https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-serializer -CELERY_TASK_SERIALIZER = "pickle" +# Uses HMAC-signed pickle to prevent RCE via malicious messages on an exposed Redis broker. +# The signed-pickle serializer is registered in paperless/celery.py. +CELERY_TASK_SERIALIZER = "signed-pickle" # https://docs.celeryq.dev/en/stable/userguide/configuration.html#std-setting-accept_content -CELERY_ACCEPT_CONTENT = ["application/json", "application/x-python-serialize"] +CELERY_ACCEPT_CONTENT = ["application/json", "application/x-signed-pickle"] # https://docs.celeryq.dev/en/stable/userguide/configuration.html#beat-schedule CELERY_BEAT_SCHEDULE = parse_beat_schedule() @@ -974,8 +986,8 @@ TIKA_GOTENBERG_ENDPOINT = os.getenv( "http://localhost:3000", ) -if TIKA_ENABLED: - INSTALLED_APPS.append("paperless_tika.apps.PaperlessTikaConfig") +# Tika parser is now integrated into the main parser registry +# No separate Django app needed AUDIT_LOG_ENABLED = get_bool_from_env("PAPERLESS_AUDIT_LOG_ENABLED", "true") if AUDIT_LOG_ENABLED: @@ -1036,10 +1048,55 @@ def _get_nltk_language_setting(ocr_lang: str) -> str | None: return iso_code_to_nltk.get(ocr_lang) +def _get_search_language_setting(ocr_lang: str) -> str | None: + """ + Determine the Tantivy stemmer language. + + If PAPERLESS_SEARCH_LANGUAGE is explicitly set, it is validated against + the languages supported by Tantivy's built-in stemmer and returned as-is. + Otherwise the primary Tesseract language code from PAPERLESS_OCR_LANGUAGE + is mapped to the corresponding ISO 639-1 code understood by Tantivy. + Returns None when unset and the OCR language has no Tantivy stemmer. + """ + explicit = os.environ.get("PAPERLESS_SEARCH_LANGUAGE") + if explicit is not None: + # Lazy import avoids any app-loading order concerns; _tokenizer has no + # Django dependencies so this is safe. + from documents.search._tokenizer import SUPPORTED_LANGUAGES + + return get_choice_from_env("PAPERLESS_SEARCH_LANGUAGE", SUPPORTED_LANGUAGES) + + # Infer from the primary Tesseract language code (ISO 639-2/T → ISO 639-1) + primary = ocr_lang.split("+", maxsplit=1)[0].lower() + _ocr_to_search: dict[str, str] = { + "ara": "ar", + "dan": "da", + "nld": "nl", + "eng": "en", + "fin": "fi", + "fra": "fr", + "deu": "de", + "ell": "el", + "hun": "hu", + "ita": "it", + "nor": "no", + "por": "pt", + "ron": "ro", + "rus": "ru", + "spa": "es", + "swe": "sv", + "tam": "ta", + "tur": "tr", + } + return _ocr_to_search.get(primary) + + NLTK_ENABLED: Final[bool] = get_bool_from_env("PAPERLESS_ENABLE_NLTK", "yes") NLTK_LANGUAGE: str | None = _get_nltk_language_setting(OCR_LANGUAGE) +SEARCH_LANGUAGE: str | None = _get_search_language_setting(OCR_LANGUAGE) + ############################################################################### # Email Preprocessors # ############################################################################### @@ -1112,3 +1169,7 @@ LLM_BACKEND = os.getenv("PAPERLESS_AI_LLM_BACKEND") # "ollama" or "openai" LLM_MODEL = os.getenv("PAPERLESS_AI_LLM_MODEL") LLM_API_KEY = os.getenv("PAPERLESS_AI_LLM_API_KEY") LLM_ENDPOINT = os.getenv("PAPERLESS_AI_LLM_ENDPOINT") +LLM_ALLOW_INTERNAL_ENDPOINTS = get_bool_from_env( + "PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS", + "true", +) diff --git a/src/paperless/settings/parsers.py b/src/paperless/settings/parsers.py index 09e474bd5..163633d84 100644 --- a/src/paperless/settings/parsers.py +++ b/src/paperless/settings/parsers.py @@ -260,7 +260,7 @@ def get_list_from_env( def get_choice_from_env( env_key: str, - choices: set[str], + choices: set[str] | frozenset[str], default: str | None = None, ) -> str: """ diff --git a/src/paperless/tests/parsers/conftest.py b/src/paperless/tests/parsers/conftest.py index 2d5deb684..8747ac9bd 100644 --- a/src/paperless/tests/parsers/conftest.py +++ b/src/paperless/tests/parsers/conftest.py @@ -6,15 +6,29 @@ so it is easy to see which files belong to which test module. from __future__ import annotations +from contextlib import contextmanager from typing import TYPE_CHECKING import pytest +from django.test import override_settings +from paperless.parsers.mail import MailDocumentParser +from paperless.parsers.remote import RemoteDocumentParser +from paperless.parsers.tesseract import RasterisedDocumentParser from paperless.parsers.text import TextDocumentParser +from paperless.parsers.tika import TikaDocumentParser if TYPE_CHECKING: + from collections.abc import Callable from collections.abc import Generator from pathlib import Path + from unittest.mock import MagicMock + + from pytest_django.fixtures import SettingsWrapper + from pytest_mock import MockerFixture + + #: Type for the ``make_tesseract_parser`` fixture factory. + MakeTesseractParser = Callable[..., Generator[RasterisedDocumentParser, None, None]] # ------------------------------------------------------------------ @@ -74,3 +88,684 @@ def text_parser() -> Generator[TextDocumentParser, None, None]: """ with TextDocumentParser() as parser: yield parser + + +# ------------------------------------------------------------------ +# Remote parser instance +# ------------------------------------------------------------------ + + +@pytest.fixture() +def remote_parser() -> Generator[RemoteDocumentParser, None, None]: + """Yield a RemoteDocumentParser and clean up its temporary directory afterwards. + + Yields + ------ + RemoteDocumentParser + A ready-to-use parser instance. + """ + with RemoteDocumentParser() as parser: + yield parser + + +# ------------------------------------------------------------------ +# Remote parser settings helpers +# ------------------------------------------------------------------ + + +@pytest.fixture() +def azure_settings(settings: SettingsWrapper) -> SettingsWrapper: + """Configure Django settings for a valid Azure AI OCR engine. + + Sets ``REMOTE_OCR_ENGINE``, ``REMOTE_OCR_API_KEY``, and + ``REMOTE_OCR_ENDPOINT`` to test values. Settings are restored + automatically after the test by pytest-django. + + Returns + ------- + SettingsWrapper + The modified settings object (for chaining further overrides). + """ + settings.REMOTE_OCR_ENGINE = "azureai" + settings.REMOTE_OCR_API_KEY = "test-api-key" + settings.REMOTE_OCR_ENDPOINT = "https://test.cognitiveservices.azure.com" + return settings + + +@pytest.fixture() +def no_engine_settings(settings: SettingsWrapper) -> SettingsWrapper: + """Configure Django settings with no remote engine configured. + + Returns + ------- + SettingsWrapper + The modified settings object. + """ + settings.REMOTE_OCR_ENGINE = None + settings.REMOTE_OCR_API_KEY = None + settings.REMOTE_OCR_ENDPOINT = None + return settings + + +# ------------------------------------------------------------------ +# Tika parser sample files +# ------------------------------------------------------------------ + + +@pytest.fixture(scope="session") +def tika_samples_dir(samples_dir: Path) -> Path: + """Absolute path to the Tika parser sample files directory. + + Returns + ------- + Path + ``/tika/`` + """ + return samples_dir / "tika" + + +@pytest.fixture(scope="session") +def sample_odt_file(tika_samples_dir: Path) -> Path: + """Path to a sample ODT file. + + Returns + ------- + Path + Absolute path to ``tika/sample.odt``. + """ + return tika_samples_dir / "sample.odt" + + +@pytest.fixture(scope="session") +def sample_docx_file(tika_samples_dir: Path) -> Path: + """Path to a sample DOCX file. + + Returns + ------- + Path + Absolute path to ``tika/sample.docx``. + """ + return tika_samples_dir / "sample.docx" + + +@pytest.fixture(scope="session") +def sample_doc_file(tika_samples_dir: Path) -> Path: + """Path to a sample DOC file. + + Returns + ------- + Path + Absolute path to ``tika/sample.doc``. + """ + return tika_samples_dir / "sample.doc" + + +@pytest.fixture(scope="session") +def sample_broken_odt(tika_samples_dir: Path) -> Path: + """Path to a broken ODT file that triggers the multi-part fallback. + + Returns + ------- + Path + Absolute path to ``tika/multi-part-broken.odt``. + """ + return tika_samples_dir / "multi-part-broken.odt" + + +# ------------------------------------------------------------------ +# Tika parser instance +# ------------------------------------------------------------------ + + +@pytest.fixture() +def tika_parser() -> Generator[TikaDocumentParser, None, None]: + """Yield a TikaDocumentParser and clean up its temporary directory afterwards. + + Yields + ------ + TikaDocumentParser + A ready-to-use parser instance. + """ + with TikaDocumentParser() as parser: + yield parser + + +# ------------------------------------------------------------------ +# Mail parser sample files +# ------------------------------------------------------------------ + + +@pytest.fixture(scope="session") +def mail_samples_dir(samples_dir: Path) -> Path: + """Absolute path to the mail parser sample files directory. + + Returns + ------- + Path + ``/mail/`` + """ + return samples_dir / "mail" + + +@pytest.fixture(scope="session") +def broken_email_file(mail_samples_dir: Path) -> Path: + """Path to a broken/malformed EML sample file. + + Returns + ------- + Path + Absolute path to ``mail/broken.eml``. + """ + return mail_samples_dir / "broken.eml" + + +@pytest.fixture(scope="session") +def simple_txt_email_file(mail_samples_dir: Path) -> Path: + """Path to a plain-text email sample file. + + Returns + ------- + Path + Absolute path to ``mail/simple_text.eml``. + """ + return mail_samples_dir / "simple_text.eml" + + +@pytest.fixture(scope="session") +def simple_txt_email_pdf_file(mail_samples_dir: Path) -> Path: + """Path to the expected PDF rendition of the plain-text email. + + Returns + ------- + Path + Absolute path to ``mail/simple_text.eml.pdf``. + """ + return mail_samples_dir / "simple_text.eml.pdf" + + +@pytest.fixture(scope="session") +def simple_txt_email_thumbnail_file(mail_samples_dir: Path) -> Path: + """Path to the expected thumbnail for the plain-text email. + + Returns + ------- + Path + Absolute path to ``mail/simple_text.eml.pdf.webp``. + """ + return mail_samples_dir / "simple_text.eml.pdf.webp" + + +@pytest.fixture(scope="session") +def html_email_file(mail_samples_dir: Path) -> Path: + """Path to an HTML email sample file. + + Returns + ------- + Path + Absolute path to ``mail/html.eml``. + """ + return mail_samples_dir / "html.eml" + + +@pytest.fixture(scope="session") +def html_email_pdf_file(mail_samples_dir: Path) -> Path: + """Path to the expected PDF rendition of the HTML email. + + Returns + ------- + Path + Absolute path to ``mail/html.eml.pdf``. + """ + return mail_samples_dir / "html.eml.pdf" + + +@pytest.fixture(scope="session") +def html_email_thumbnail_file(mail_samples_dir: Path) -> Path: + """Path to the expected thumbnail for the HTML email. + + Returns + ------- + Path + Absolute path to ``mail/html.eml.pdf.webp``. + """ + return mail_samples_dir / "html.eml.pdf.webp" + + +@pytest.fixture(scope="session") +def html_email_html_file(mail_samples_dir: Path) -> Path: + """Path to the HTML body of the HTML email sample. + + Returns + ------- + Path + Absolute path to ``mail/html.eml.html``. + """ + return mail_samples_dir / "html.eml.html" + + +@pytest.fixture(scope="session") +def merged_pdf_first(mail_samples_dir: Path) -> Path: + """Path to the first PDF used in PDF-merge tests. + + Returns + ------- + Path + Absolute path to ``mail/first.pdf``. + """ + return mail_samples_dir / "first.pdf" + + +@pytest.fixture(scope="session") +def merged_pdf_second(mail_samples_dir: Path) -> Path: + """Path to the second PDF used in PDF-merge tests. + + Returns + ------- + Path + Absolute path to ``mail/second.pdf``. + """ + return mail_samples_dir / "second.pdf" + + +# ------------------------------------------------------------------ +# Mail parser instance +# ------------------------------------------------------------------ + + +@pytest.fixture() +def mail_parser() -> Generator[MailDocumentParser, None, None]: + """Yield a MailDocumentParser and clean up its temporary directory afterwards. + + Yields + ------ + MailDocumentParser + A ready-to-use parser instance. + """ + with MailDocumentParser() as parser: + yield parser + + +@pytest.fixture(scope="session") +def nginx_base_url() -> Generator[str, None, None]: + """ + The base URL for the nginx HTTP server we expect to be alive + """ + yield "http://localhost:8080" + + +# ------------------------------------------------------------------ +# Tesseract parser sample files +# ------------------------------------------------------------------ + + +@pytest.fixture(scope="session") +def tesseract_samples_dir(samples_dir: Path) -> Path: + """Absolute path to the tesseract parser sample files directory. + + Returns + ------- + Path + ``/tesseract/`` + """ + return samples_dir / "tesseract" + + +@pytest.fixture(scope="session") +def document_webp_file(tesseract_samples_dir: Path) -> Path: + """Path to a WebP document sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/document.webp``. + """ + return tesseract_samples_dir / "document.webp" + + +@pytest.fixture(scope="session") +def encrypted_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to an encrypted PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/encrypted.pdf``. + """ + return tesseract_samples_dir / "encrypted.pdf" + + +@pytest.fixture(scope="session") +def multi_page_digital_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page digital PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-digital.pdf``. + """ + return tesseract_samples_dir / "multi-page-digital.pdf" + + +@pytest.fixture(scope="session") +def multi_page_images_alpha_rgb_tiff_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page TIFF with alpha channel in RGB. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-images-alpha-rgb.tiff``. + """ + return tesseract_samples_dir / "multi-page-images-alpha-rgb.tiff" + + +@pytest.fixture(scope="session") +def multi_page_images_alpha_tiff_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page TIFF with alpha channel. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-images-alpha.tiff``. + """ + return tesseract_samples_dir / "multi-page-images-alpha.tiff" + + +@pytest.fixture(scope="session") +def multi_page_images_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page PDF with images. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-images.pdf``. + """ + return tesseract_samples_dir / "multi-page-images.pdf" + + +@pytest.fixture(scope="session") +def multi_page_images_tiff_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page TIFF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-images.tiff``. + """ + return tesseract_samples_dir / "multi-page-images.tiff" + + +@pytest.fixture(scope="session") +def multi_page_mixed_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a multi-page mixed PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/multi-page-mixed.pdf``. + """ + return tesseract_samples_dir / "multi-page-mixed.pdf" + + +@pytest.fixture(scope="session") +def no_text_alpha_png_file(tesseract_samples_dir: Path) -> Path: + """Path to a PNG with alpha channel and no text. + + Returns + ------- + Path + Absolute path to ``tesseract/no-text-alpha.png``. + """ + return tesseract_samples_dir / "no-text-alpha.png" + + +@pytest.fixture(scope="session") +def rotated_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a rotated PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/rotated.pdf``. + """ + return tesseract_samples_dir / "rotated.pdf" + + +@pytest.fixture(scope="session") +def rtl_test_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to an RTL test PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/rtl-test.pdf``. + """ + return tesseract_samples_dir / "rtl-test.pdf" + + +@pytest.fixture(scope="session") +def signed_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a signed PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/signed.pdf``. + """ + return tesseract_samples_dir / "signed.pdf" + + +@pytest.fixture(scope="session") +def simple_alpha_png_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple PNG with alpha channel. + + Returns + ------- + Path + Absolute path to ``tesseract/simple-alpha.png``. + """ + return tesseract_samples_dir / "simple-alpha.png" + + +@pytest.fixture(scope="session") +def simple_digital_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple digital PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple-digital.pdf``. + """ + return tesseract_samples_dir / "simple-digital.pdf" + + +@pytest.fixture(scope="session") +def simple_no_dpi_png_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple PNG without DPI information. + + Returns + ------- + Path + Absolute path to ``tesseract/simple-no-dpi.png``. + """ + return tesseract_samples_dir / "simple-no-dpi.png" + + +@pytest.fixture(scope="session") +def simple_bmp_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple BMP sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.bmp``. + """ + return tesseract_samples_dir / "simple.bmp" + + +@pytest.fixture(scope="session") +def simple_gif_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple GIF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.gif``. + """ + return tesseract_samples_dir / "simple.gif" + + +@pytest.fixture(scope="session") +def simple_heic_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple HEIC sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.heic``. + """ + return tesseract_samples_dir / "simple.heic" + + +@pytest.fixture(scope="session") +def simple_jpg_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple JPG sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.jpg``. + """ + return tesseract_samples_dir / "simple.jpg" + + +@pytest.fixture(scope="session") +def simple_png_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple PNG sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.png``. + """ + return tesseract_samples_dir / "simple.png" + + +@pytest.fixture(scope="session") +def simple_tif_file(tesseract_samples_dir: Path) -> Path: + """Path to a simple TIF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/simple.tif``. + """ + return tesseract_samples_dir / "simple.tif" + + +@pytest.fixture(scope="session") +def single_page_mixed_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a single-page mixed PDF sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/single-page-mixed.pdf``. + """ + return tesseract_samples_dir / "single-page-mixed.pdf" + + +@pytest.fixture(scope="session") +def with_form_pdf_file(tesseract_samples_dir: Path) -> Path: + """Path to a PDF with form sample file. + + Returns + ------- + Path + Absolute path to ``tesseract/with-form.pdf``. + """ + return tesseract_samples_dir / "with-form.pdf" + + +# ------------------------------------------------------------------ +# Tesseract parser instance and settings helpers +# ------------------------------------------------------------------ + + +@pytest.fixture() +def null_app_config(mocker: MockerFixture) -> MagicMock: + """Return a MagicMock with all OcrConfig fields set to None. + + This allows the parser to fall back to Django settings instead of + hitting the database. + + Returns + ------- + MagicMock + Mock config with all fields as None + """ + return mocker.MagicMock( + output_type=None, + pages=None, + language=None, + mode=None, + skip_archive_file=None, + image_dpi=None, + unpaper_clean=None, + deskew=None, + rotate_pages=None, + rotate_pages_threshold=None, + max_image_pixels=None, + color_conversion_strategy=None, + user_args=None, + ) + + +@pytest.fixture() +def tesseract_parser( + mocker: MockerFixture, + null_app_config: MagicMock, +) -> Generator[RasterisedDocumentParser, None, None]: + """Yield a RasterisedDocumentParser and clean up its temporary directory afterwards. + + Patches the config system to avoid database access. + + Yields + ------ + RasterisedDocumentParser + A ready-to-use parser instance. + """ + mocker.patch( + "paperless.config.BaseConfig._get_config_instance", + return_value=null_app_config, + ) + with RasterisedDocumentParser() as parser: + yield parser + + +@pytest.fixture() +def make_tesseract_parser( + mocker: MockerFixture, + null_app_config: MagicMock, +) -> MakeTesseractParser: + """Return a factory for creating RasterisedDocumentParser with Django settings overrides. + + This fixture is useful for tests that need to create parsers with different + settings configurations. + + Returns + ------- + Callable[..., contextmanager[RasterisedDocumentParser]] + A context manager factory that accepts Django settings overrides + """ + mocker.patch( + "paperless.config.BaseConfig._get_config_instance", + return_value=null_app_config, + ) + + @contextmanager + def _make_parser(**django_settings_overrides): + with override_settings(**django_settings_overrides): + with RasterisedDocumentParser() as parser: + yield parser + + return _make_parser diff --git a/src/paperless_mail/tests/test_parsers.py b/src/paperless/tests/parsers/test_mail_parser.py similarity index 89% rename from src/paperless_mail/tests/test_parsers.py rename to src/paperless/tests/parsers/test_mail_parser.py index 9746731f8..83d81409c 100644 --- a/src/paperless_mail/tests/test_parsers.py +++ b/src/paperless/tests/parsers/test_mail_parser.py @@ -12,7 +12,64 @@ from pytest_httpx import HTTPXMock from pytest_mock import MockerFixture from documents.parsers import ParseError -from paperless_mail.parsers import MailDocumentParser +from paperless.parsers import ParserContext +from paperless.parsers import ParserProtocol +from paperless.parsers.mail import MailDocumentParser + + +class TestMailParserProtocol: + """Verify that MailDocumentParser satisfies the ParserProtocol contract.""" + + def test_isinstance_satisfies_protocol( + self, + mail_parser: MailDocumentParser, + ) -> None: + assert isinstance(mail_parser, ParserProtocol) + + def test_supported_mime_types(self) -> None: + mime_types = MailDocumentParser.supported_mime_types() + assert isinstance(mime_types, dict) + assert "message/rfc822" in mime_types + + @pytest.mark.parametrize( + ("mime_type", "expected"), + [ + ("message/rfc822", 10), + ("application/pdf", None), + ("text/plain", None), + ], + ) + def test_score(self, mime_type: str, expected: int | None) -> None: + assert MailDocumentParser.score(mime_type, "email.eml") == expected + + def test_can_produce_archive_is_false( + self, + mail_parser: MailDocumentParser, + ) -> None: + assert mail_parser.can_produce_archive is False + + def test_requires_pdf_rendition_is_true( + self, + mail_parser: MailDocumentParser, + ) -> None: + assert mail_parser.requires_pdf_rendition is True + + def test_get_page_count_returns_none_without_archive( + self, + mail_parser: MailDocumentParser, + html_email_file: Path, + ) -> None: + assert mail_parser.get_page_count(html_email_file, "message/rfc822") is None + + def test_get_page_count_returns_int_with_pdf_archive( + self, + mail_parser: MailDocumentParser, + simple_txt_email_pdf_file: Path, + ) -> None: + mail_parser._archive_path = simple_txt_email_pdf_file + count = mail_parser.get_page_count(simple_txt_email_pdf_file, "message/rfc822") + assert isinstance(count, int) + assert count > 0 class TestEmailFileParsing: @@ -24,7 +81,7 @@ class TestEmailFileParsing: def test_parse_error_missing_file( self, mail_parser: MailDocumentParser, - sample_dir: Path, + mail_samples_dir: Path, ) -> None: """ GIVEN: @@ -35,7 +92,7 @@ class TestEmailFileParsing: - An Exception is thrown """ # Check if exception is raised when parsing fails. - test_file = sample_dir / "doesntexist.eml" + test_file = mail_samples_dir / "doesntexist.eml" assert not test_file.exists() @@ -246,12 +303,12 @@ class TestEmailThumbnailGenerate: """ mocked_return = "Passing the return value through.." mock_make_thumbnail_from_pdf = mocker.patch( - "paperless_mail.parsers.make_thumbnail_from_pdf", + "paperless.parsers.mail.make_thumbnail_from_pdf", ) mock_make_thumbnail_from_pdf.return_value = mocked_return mock_generate_pdf = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf", + "paperless.parsers.mail.MailDocumentParser.generate_pdf", ) mock_generate_pdf.return_value = "Mocked return value.." @@ -260,8 +317,7 @@ class TestEmailThumbnailGenerate: mock_generate_pdf.assert_called_once() mock_make_thumbnail_from_pdf.assert_called_once_with( "Mocked return value..", - mail_parser.tempdir, - None, + mail_parser._tempdir, ) assert mocked_return == thumb @@ -373,7 +429,7 @@ class TestParser: """ # Validate parsing returns the expected results mock_generate_pdf = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf", + "paperless.parsers.mail.MailDocumentParser.generate_pdf", ) mail_parser.parse(simple_txt_email_file, "message/rfc822") @@ -385,7 +441,7 @@ class TestParser: "BCC: fdf@fvf.de\n\n" "\n\nThis is just a simple Text Mail." ) - assert text_expected == mail_parser.text + assert text_expected == mail_parser.get_text() assert ( datetime.datetime( 2022, @@ -396,7 +452,7 @@ class TestParser: 43, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200)), ) - == mail_parser.date + == mail_parser.get_date() ) # Just check if tried to generate archive, the unittest for generate_pdf() goes deeper. @@ -419,7 +475,7 @@ class TestParser: """ mock_generate_pdf = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf", + "paperless.parsers.mail.MailDocumentParser.generate_pdf", ) # Validate parsing returns the expected results @@ -443,7 +499,7 @@ class TestParser: mail_parser.parse(html_email_file, "message/rfc822") mock_generate_pdf.assert_called_once() - assert text_expected == mail_parser.text + assert text_expected == mail_parser.get_text() assert ( datetime.datetime( 2022, @@ -454,7 +510,7 @@ class TestParser: 19, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200)), ) - == mail_parser.date + == mail_parser.get_date() ) def test_generate_pdf_parse_error( @@ -501,7 +557,7 @@ class TestParser: mail_parser.parse(simple_txt_email_file, "message/rfc822") - assert mail_parser.archive_path is not None + assert mail_parser.get_archive_path() is not None @pytest.mark.httpx_mock(can_send_already_matched_responses=True) def test_generate_pdf_html_email( @@ -542,7 +598,7 @@ class TestParser: ) mail_parser.parse(html_email_file, "message/rfc822") - assert mail_parser.archive_path is not None + assert mail_parser.get_archive_path() is not None def test_generate_pdf_html_email_html_to_pdf_failure( self, @@ -712,10 +768,10 @@ class TestParser: def test_layout_option(layout_option, expected_calls, expected_pdf_names): mock_mailrule_get.return_value = mock.Mock(pdf_layout=layout_option) + mail_parser.configure(ParserContext(mailrule_id=1)) mail_parser.parse( document_path=html_email_file, mime_type="message/rfc822", - mailrule_id=1, ) args, _ = mock_merge_route.call_args assert len(args[0]) == expected_calls diff --git a/src/paperless_mail/tests/test_parsers_live.py b/src/paperless/tests/parsers/test_mail_parser_live.py similarity index 97% rename from src/paperless_mail/tests/test_parsers_live.py rename to src/paperless/tests/parsers/test_mail_parser_live.py index 8a9487c16..dd17af314 100644 --- a/src/paperless_mail/tests/test_parsers_live.py +++ b/src/paperless/tests/parsers/test_mail_parser_live.py @@ -11,7 +11,7 @@ from PIL import Image from pytest_mock import MockerFixture from documents.tests.utils import util_call_with_backoff -from paperless_mail.parsers import MailDocumentParser +from paperless.parsers.mail import MailDocumentParser def extract_text(pdf_path: Path) -> str: @@ -159,7 +159,7 @@ class TestParserLive: - The returned thumbnail image file shall match the expected hash """ mock_generate_pdf = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf", + "paperless.parsers.mail.MailDocumentParser.generate_pdf", ) mock_generate_pdf.return_value = simple_txt_email_pdf_file @@ -216,10 +216,10 @@ class TestParserLive: - The merged PDF shall contain text from both source PDFs """ mock_generate_pdf_from_html = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf_from_html", + "paperless.parsers.mail.MailDocumentParser.generate_pdf_from_html", ) mock_generate_pdf_from_mail = mocker.patch( - "paperless_mail.parsers.MailDocumentParser.generate_pdf_from_mail", + "paperless.parsers.mail.MailDocumentParser.generate_pdf_from_mail", ) mock_generate_pdf_from_mail.return_value = merged_pdf_first mock_generate_pdf_from_html.return_value = merged_pdf_second diff --git a/src/paperless/tests/parsers/test_remote_parser.py b/src/paperless/tests/parsers/test_remote_parser.py new file mode 100644 index 000000000..892915bb5 --- /dev/null +++ b/src/paperless/tests/parsers/test_remote_parser.py @@ -0,0 +1,503 @@ +""" +Tests for paperless.parsers.remote.RemoteDocumentParser. + +All tests use the context-manager protocol for parser lifecycle. + +Fixture layout +-------------- +make_azure_mock — factory (defined here; specific to this module) +azure_client — composes azure_settings + make_azure_mock + patch; + use when a test needs the client to succeed +failing_azure_client + — composes azure_settings + patch with RuntimeError; + use when a test needs the client to fail +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING +from unittest.mock import Mock + +import pytest + +from paperless.parsers import ParserContext +from paperless.parsers import ParserProtocol +from paperless.parsers.remote import RemoteDocumentParser + +if TYPE_CHECKING: + from collections.abc import Callable + from pathlib import Path + + from pytest_django.fixtures import SettingsWrapper + from pytest_mock import MockerFixture + + +# --------------------------------------------------------------------------- +# Module-local fixtures +# --------------------------------------------------------------------------- + +_AZURE_CLIENT_TARGET = "azure.ai.documentintelligence.DocumentIntelligenceClient" +_DEFAULT_TEXT = "Extracted text." + + +@pytest.fixture() +def make_azure_mock() -> Callable[[str], Mock]: + """Return a factory that builds a mock Azure DocumentIntelligenceClient. + + Usage:: + + mock_client = make_azure_mock() # default extracted text + mock_client = make_azure_mock("My text.") # custom extracted text + """ + + def _factory(text: str = _DEFAULT_TEXT) -> Mock: + mock_client = Mock() + mock_poller = Mock() + mock_poller.wait.return_value = None + mock_poller.details = {"operation_id": "fake-op-id"} + mock_poller.result.return_value.content = text + mock_client.begin_analyze_document.return_value = mock_poller + mock_client.get_analyze_result_pdf.return_value = [b"%PDF-1.4 FAKE"] + return mock_client + + return _factory + + +@pytest.fixture() +def azure_client( + azure_settings: SettingsWrapper, + make_azure_mock: Callable[[str], Mock], + mocker: MockerFixture, +) -> Mock: + """Patch the Azure DI client with a succeeding mock and return the instance. + + Implicitly applies ``azure_settings`` so tests using this fixture do not + also need ``@pytest.mark.usefixtures("azure_settings")``. + """ + mock_client = make_azure_mock() + mocker.patch(_AZURE_CLIENT_TARGET, return_value=mock_client) + return mock_client + + +@pytest.fixture() +def failing_azure_client( + azure_settings: SettingsWrapper, + mocker: MockerFixture, +) -> Mock: + """Patch the Azure DI client to raise RuntimeError on every call. + + Implicitly applies ``azure_settings``. Returns the mock instance so + tests can assert on calls such as ``close()``. + """ + mock_client = Mock() + mock_client.begin_analyze_document.side_effect = RuntimeError("network failure") + mocker.patch(_AZURE_CLIENT_TARGET, return_value=mock_client) + return mock_client + + +# --------------------------------------------------------------------------- +# Protocol contract +# --------------------------------------------------------------------------- + + +class TestRemoteParserProtocol: + """Verify that RemoteDocumentParser satisfies the ParserProtocol contract.""" + + def test_isinstance_satisfies_protocol( + self, + remote_parser: RemoteDocumentParser, + ) -> None: + assert isinstance(remote_parser, ParserProtocol) + + def test_class_attributes_present(self) -> None: + assert isinstance(RemoteDocumentParser.name, str) and RemoteDocumentParser.name + assert ( + isinstance(RemoteDocumentParser.version, str) + and RemoteDocumentParser.version + ) + assert ( + isinstance(RemoteDocumentParser.author, str) and RemoteDocumentParser.author + ) + assert isinstance(RemoteDocumentParser.url, str) and RemoteDocumentParser.url + + +# --------------------------------------------------------------------------- +# supported_mime_types +# --------------------------------------------------------------------------- + + +class TestRemoteParserSupportedMimeTypes: + """supported_mime_types() always returns the full set regardless of config.""" + + def test_returns_dict(self) -> None: + mime_types = RemoteDocumentParser.supported_mime_types() + assert isinstance(mime_types, dict) + + def test_includes_all_expected_types(self) -> None: + mime_types = RemoteDocumentParser.supported_mime_types() + expected = { + "application/pdf", + "image/png", + "image/jpeg", + "image/tiff", + "image/bmp", + "image/gif", + "image/webp", + } + assert expected == set(mime_types.keys()) + + @pytest.mark.usefixtures("no_engine_settings") + def test_returns_full_set_when_not_configured(self) -> None: + """ + GIVEN: No remote engine is configured + WHEN: supported_mime_types() is called + THEN: The full MIME type dict is still returned (score() handles activation) + """ + mime_types = RemoteDocumentParser.supported_mime_types() + assert len(mime_types) == 7 + + +# --------------------------------------------------------------------------- +# score() +# --------------------------------------------------------------------------- + + +class TestRemoteParserScore: + """score() encodes the activation logic: None when unconfigured, 20 when active.""" + + @pytest.mark.usefixtures("azure_settings") + @pytest.mark.parametrize( + "mime_type", + [ + pytest.param("application/pdf", id="pdf"), + pytest.param("image/png", id="png"), + pytest.param("image/jpeg", id="jpeg"), + pytest.param("image/tiff", id="tiff"), + pytest.param("image/bmp", id="bmp"), + pytest.param("image/gif", id="gif"), + pytest.param("image/webp", id="webp"), + ], + ) + def test_score_returns_20_when_configured(self, mime_type: str) -> None: + result = RemoteDocumentParser.score(mime_type, "doc.pdf") + assert result == 20 + + @pytest.mark.usefixtures("no_engine_settings") + @pytest.mark.parametrize( + "mime_type", + [ + pytest.param("application/pdf", id="pdf"), + pytest.param("image/png", id="png"), + pytest.param("image/jpeg", id="jpeg"), + ], + ) + def test_score_returns_none_when_no_engine(self, mime_type: str) -> None: + result = RemoteDocumentParser.score(mime_type, "doc.pdf") + assert result is None + + def test_score_returns_none_when_api_key_missing( + self, + settings: SettingsWrapper, + ) -> None: + settings.REMOTE_OCR_ENGINE = "azureai" + settings.REMOTE_OCR_API_KEY = None + settings.REMOTE_OCR_ENDPOINT = "https://test.cognitiveservices.azure.com" + result = RemoteDocumentParser.score("application/pdf", "doc.pdf") + assert result is None + + def test_score_returns_none_when_endpoint_missing( + self, + settings: SettingsWrapper, + ) -> None: + settings.REMOTE_OCR_ENGINE = "azureai" + settings.REMOTE_OCR_API_KEY = "key" + settings.REMOTE_OCR_ENDPOINT = None + result = RemoteDocumentParser.score("application/pdf", "doc.pdf") + assert result is None + + @pytest.mark.usefixtures("azure_settings") + def test_score_returns_none_for_unsupported_mime_type(self) -> None: + result = RemoteDocumentParser.score("text/plain", "doc.txt") + assert result is None + + @pytest.mark.usefixtures("azure_settings") + def test_score_higher_than_tesseract_default(self) -> None: + """Remote parser (20) outranks the tesseract default (10) when configured.""" + score = RemoteDocumentParser.score("application/pdf", "doc.pdf") + assert score is not None and score > 10 + + +# --------------------------------------------------------------------------- +# Properties +# --------------------------------------------------------------------------- + + +class TestRemoteParserProperties: + def test_can_produce_archive_is_true( + self, + remote_parser: RemoteDocumentParser, + ) -> None: + assert remote_parser.can_produce_archive is True + + def test_requires_pdf_rendition_is_false( + self, + remote_parser: RemoteDocumentParser, + ) -> None: + assert remote_parser.requires_pdf_rendition is False + + +# --------------------------------------------------------------------------- +# Lifecycle +# --------------------------------------------------------------------------- + + +class TestRemoteParserLifecycle: + def test_context_manager_cleans_up_tempdir(self) -> None: + with RemoteDocumentParser() as parser: + tempdir = parser._tempdir + assert tempdir.exists() + assert not tempdir.exists() + + def test_context_manager_cleans_up_after_exception(self) -> None: + tempdir: Path | None = None + with pytest.raises(RuntimeError): + with RemoteDocumentParser() as parser: + tempdir = parser._tempdir + raise RuntimeError("boom") + assert tempdir is not None + assert not tempdir.exists() + + +# --------------------------------------------------------------------------- +# parse() — happy path +# --------------------------------------------------------------------------- + + +class TestRemoteParserParse: + def test_parse_returns_text_from_azure( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + azure_client: Mock, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + assert remote_parser.get_text() == _DEFAULT_TEXT + + def test_parse_sets_archive_path( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + azure_client: Mock, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + archive = remote_parser.get_archive_path() + assert archive is not None + assert archive.exists() + assert archive.suffix == ".pdf" + + def test_parse_closes_client_on_success( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + azure_client: Mock, + ) -> None: + remote_parser.configure(ParserContext()) + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + azure_client.close.assert_called_once() + + @pytest.mark.usefixtures("no_engine_settings") + def test_parse_sets_empty_text_when_not_configured( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + assert remote_parser.get_text() == "" + assert remote_parser.get_archive_path() is None + + def test_get_text_none_before_parse( + self, + remote_parser: RemoteDocumentParser, + ) -> None: + assert remote_parser.get_text() is None + + def test_get_date_always_none( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + azure_client: Mock, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + assert remote_parser.get_date() is None + + +# --------------------------------------------------------------------------- +# parse() — Azure failure path +# --------------------------------------------------------------------------- + + +class TestRemoteParserParseError: + def test_parse_returns_none_on_azure_error( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + failing_azure_client: Mock, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + assert remote_parser.get_text() is None + + def test_parse_closes_client_on_error( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + failing_azure_client: Mock, + ) -> None: + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + failing_azure_client.close.assert_called_once() + + def test_parse_logs_error_on_azure_failure( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + failing_azure_client: Mock, + mocker: MockerFixture, + ) -> None: + mock_log = mocker.patch("paperless.parsers.remote.logger") + + remote_parser.parse(simple_digital_pdf_file, "application/pdf") + + mock_log.error.assert_called_once() + assert "Azure AI Vision parsing failed" in mock_log.error.call_args[0][0] + + +# --------------------------------------------------------------------------- +# get_page_count() +# --------------------------------------------------------------------------- + + +class TestRemoteParserPageCount: + def test_page_count_for_pdf( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + count = remote_parser.get_page_count(simple_digital_pdf_file, "application/pdf") + assert isinstance(count, int) + assert count >= 1 + + def test_page_count_returns_none_for_image_mime( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + count = remote_parser.get_page_count(simple_digital_pdf_file, "image/png") + assert count is None + + def test_page_count_returns_none_for_invalid_pdf( + self, + remote_parser: RemoteDocumentParser, + tmp_path: Path, + ) -> None: + bad_pdf = tmp_path / "bad.pdf" + bad_pdf.write_bytes(b"not a pdf at all") + count = remote_parser.get_page_count(bad_pdf, "application/pdf") + assert count is None + + +# --------------------------------------------------------------------------- +# extract_metadata() +# --------------------------------------------------------------------------- + + +class TestRemoteParserMetadata: + def test_extract_metadata_non_pdf_returns_empty( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + result = remote_parser.extract_metadata(simple_digital_pdf_file, "image/png") + assert result == [] + + def test_extract_metadata_pdf_returns_list( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + result = remote_parser.extract_metadata( + simple_digital_pdf_file, + "application/pdf", + ) + assert isinstance(result, list) + + def test_extract_metadata_pdf_entries_have_required_keys( + self, + remote_parser: RemoteDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + result = remote_parser.extract_metadata( + simple_digital_pdf_file, + "application/pdf", + ) + for entry in result: + assert "namespace" in entry + assert "prefix" in entry + assert "key" in entry + assert "value" in entry + assert isinstance(entry["value"], str) + + def test_extract_metadata_does_not_raise_on_invalid_pdf( + self, + remote_parser: RemoteDocumentParser, + tmp_path: Path, + ) -> None: + bad_pdf = tmp_path / "bad.pdf" + bad_pdf.write_bytes(b"not a pdf at all") + result = remote_parser.extract_metadata(bad_pdf, "application/pdf") + assert result == [] + + +# --------------------------------------------------------------------------- +# Registry integration +# --------------------------------------------------------------------------- + + +class TestRemoteParserRegistry: + def test_registered_in_defaults(self) -> None: + from paperless.parsers.registry import ParserRegistry + + registry = ParserRegistry() + registry.register_defaults() + + assert RemoteDocumentParser in registry._builtins + + @pytest.mark.usefixtures("azure_settings") + def test_get_parser_returns_remote_when_configured(self) -> None: + from paperless.parsers.registry import get_parser_registry + + registry = get_parser_registry() + parser_cls = registry.get_parser_for_file("application/pdf", "doc.pdf") + + assert parser_cls is RemoteDocumentParser + + @pytest.mark.usefixtures("no_engine_settings") + def test_get_parser_returns_none_for_unsupported_type_when_not_configured( + self, + ) -> None: + """With remote off and a truly unsupported MIME type, registry returns None.""" + from paperless.parsers.registry import ParserRegistry + + registry = ParserRegistry() + registry.register_defaults() + parser_cls = registry.get_parser_for_file( + "application/x-unknown-format", + "doc.xyz", + ) + + assert parser_cls is None diff --git a/src/paperless_tesseract/tests/test_parser_custom_settings.py b/src/paperless/tests/parsers/test_tesseract_custom_settings.py similarity index 97% rename from src/paperless_tesseract/tests/test_parser_custom_settings.py rename to src/paperless/tests/parsers/test_tesseract_custom_settings.py index a4db8a2aa..9f3afacb6 100644 --- a/src/paperless_tesseract/tests/test_parser_custom_settings.py +++ b/src/paperless/tests/parsers/test_tesseract_custom_settings.py @@ -10,10 +10,15 @@ from paperless.models import CleanChoices from paperless.models import ColorConvertChoices from paperless.models import ModeChoices from paperless.models import OutputTypeChoices -from paperless_tesseract.parsers import RasterisedDocumentParser +from paperless.parsers.tesseract import RasterisedDocumentParser class TestParserSettingsFromDb(DirectoriesMixin, FileSystemAssertsMixin, TestCase): + @classmethod + def setUpTestData(cls) -> None: + super().setUpTestData() + ApplicationConfiguration.objects.get_or_create() + @staticmethod def get_params(): """ diff --git a/src/paperless/tests/parsers/test_tesseract_parser.py b/src/paperless/tests/parsers/test_tesseract_parser.py new file mode 100644 index 000000000..daa7020c7 --- /dev/null +++ b/src/paperless/tests/parsers/test_tesseract_parser.py @@ -0,0 +1,1174 @@ +""" +Tests for paperless.parsers.tesseract.RasterisedDocumentParser. + +All tests use fixtures defined in conftest.py for parser lifecycle and +sample-file access. Settings-dependent tests mutate parser.settings +directly rather than going through the database. +""" + +from __future__ import annotations + +import re +import shutil +import unicodedata +from typing import TYPE_CHECKING + +import pytest +from ocrmypdf import SubprocessOutputError + +from documents.parsers import ParseError +from documents.parsers import run_convert +from paperless.parsers import ParserProtocol +from paperless.parsers.tesseract import RasterisedDocumentParser +from paperless.parsers.tesseract import post_process_text + +if TYPE_CHECKING: + from pathlib import Path + from unittest.mock import MagicMock + + from pytest_mock import MockerFixture + + from paperless.tests.parsers.conftest import MakeTesseractParser + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + + +def assert_ordered_substrings(content: str, strings: list[str]) -> None: + """Assert all *strings* appear in *content* in the given order.""" + indices: list[int] = [] + for s in strings: + assert s in content, f"{s!r} not found in content" + indices.append(content.index(s)) + assert indices == sorted(indices), f"Strings out of order in content: {strings}" + + +# --------------------------------------------------------------------------- +# Protocol compliance +# --------------------------------------------------------------------------- + + +class TestRasterisedDocumentParserProtocol: + """Verify class-level protocol attributes and classmethods — no DB, no parser.""" + + def test_class_attributes_present(self) -> None: + assert RasterisedDocumentParser.name + assert RasterisedDocumentParser.version + assert RasterisedDocumentParser.author + assert RasterisedDocumentParser.url + + def test_supported_mime_types_returns_dict(self) -> None: + mime_types = RasterisedDocumentParser.supported_mime_types() + assert isinstance(mime_types, dict) + for mime in ( + "application/pdf", + "image/jpeg", + "image/png", + "image/tiff", + "image/gif", + "image/bmp", + "image/webp", + "image/heic", + ): + assert mime in mime_types + + @pytest.mark.parametrize( + ("mime_type", "expected"), + [ + pytest.param("application/pdf", 10, id="pdf"), + pytest.param("image/jpeg", 10, id="jpeg"), + pytest.param("image/png", 10, id="png"), + pytest.param("image/tiff", 10, id="tiff"), + pytest.param("image/gif", 10, id="gif"), + pytest.param("image/bmp", 10, id="bmp"), + pytest.param("image/webp", 10, id="webp"), + pytest.param("image/heic", 10, id="heic"), + pytest.param("text/plain", None, id="text-unsupported"), + pytest.param("application/msword", None, id="word-unsupported"), + ], + ) + def test_score(self, mime_type: str, expected: int | None) -> None: + assert RasterisedDocumentParser.score(mime_type, "file.pdf") == expected + + def test_isinstance_satisfies_protocol( + self, + tesseract_parser: RasterisedDocumentParser, + ) -> None: + assert isinstance(tesseract_parser, ParserProtocol) + + def test_can_produce_archive_is_true( + self, + tesseract_parser: RasterisedDocumentParser, + ) -> None: + assert tesseract_parser.can_produce_archive is True + + def test_requires_pdf_rendition_is_false( + self, + tesseract_parser: RasterisedDocumentParser, + ) -> None: + assert tesseract_parser.requires_pdf_rendition is False + + +# --------------------------------------------------------------------------- +# Lifecycle +# --------------------------------------------------------------------------- + + +class TestRasterisedDocumentParserLifecycle: + """Context-manager cleanup — no DB.""" + + def test_tempdir_cleaned_up_on_exit( + self, + mocker: MockerFixture, + null_app_config: MagicMock, + ) -> None: + mocker.patch( + "paperless.config.BaseConfig._get_config_instance", + return_value=null_app_config, + ) + with RasterisedDocumentParser() as parser: + tempdir = parser.tempdir + assert tempdir.exists() + assert not tempdir.exists() + + def test_tempdir_cleaned_up_after_exception( + self, + mocker: MockerFixture, + null_app_config: MagicMock, + ) -> None: + mocker.patch( + "paperless.config.BaseConfig._get_config_instance", + return_value=null_app_config, + ) + tempdir: Path | None = None + with pytest.raises(RuntimeError): + with RasterisedDocumentParser() as parser: + tempdir = parser.tempdir + raise RuntimeError("boom") + assert tempdir is not None and not tempdir.exists() + + +# --------------------------------------------------------------------------- +# post_process_text +# --------------------------------------------------------------------------- + + +class TestPostProcessText: + @pytest.mark.parametrize( + ("source", "expected"), + [ + pytest.param( + "simple string", + "simple string", + id="collapse-spaces", + ), + pytest.param( + "simple newline\n testing string", + "simple newline\ntesting string", + id="preserve-newline", + ), + pytest.param( + "utf-8 строка с пробелами в конце ", # noqa: RUF001 + "utf-8 строка с пробелами в конце", # noqa: RUF001 + id="utf8-trailing-spaces", + ), + ], + ) + def test_post_process_text(self, source: str, expected: str) -> None: + assert post_process_text(source) == expected + + +# --------------------------------------------------------------------------- +# Page count +# --------------------------------------------------------------------------- + + +class TestGetPageCount: + def test_single_page_pdf( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + assert ( + tesseract_parser.get_page_count( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + == 1 + ) + + def test_multi_page_pdf( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + assert ( + tesseract_parser.get_page_count( + tesseract_samples_dir / "multi-page-mixed.pdf", + "application/pdf", + ) + == 6 + ) + + def test_password_protected_returns_none( + self, + mocker: MockerFixture, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + caplog, + ) -> None: + """ + GIVEN: + - pikepdf raises when opening a protected PDF + WHEN: + - Page count is requested + THEN: + - Returns None and logs a warning + """ + mocker.patch("pikepdf.Pdf.open", side_effect=Exception("password required")) + import logging + + with caplog.at_level(logging.WARNING): + page_count = tesseract_parser.get_page_count( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + assert page_count is None + assert any( + "Unable to determine PDF page count" in r.message for r in caplog.records + ) + + def test_non_pdf_returns_none( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + assert ( + tesseract_parser.get_page_count( + tesseract_samples_dir / "simple.png", + "image/png", + ) + is None + ) + + +# --------------------------------------------------------------------------- +# DPI helpers +# --------------------------------------------------------------------------- + + +class TestDpiHelpers: + @pytest.mark.parametrize( + ("filename", "expected_dpi"), + [ + pytest.param("simple-no-dpi.png", None, id="no-dpi"), + pytest.param("simple.png", 72, id="with-dpi"), + ], + ) + def test_get_dpi( + self, + filename: str, + expected_dpi: int | None, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + assert ( + tesseract_parser.get_dpi(str(tesseract_samples_dir / filename)) + == expected_dpi + ) + + def test_calculate_a4_dpi( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + assert ( + tesseract_parser.calculate_a4_dpi( + str(tesseract_samples_dir / "simple-no-dpi.png"), + ) + == 62 + ) + + +# --------------------------------------------------------------------------- +# Thumbnail +# --------------------------------------------------------------------------- + + +class TestGetThumbnail: + def test_thumbnail_is_file( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + thumb = tesseract_parser.get_thumbnail( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + assert thumb.is_file() + + def test_thumbnail_fallback_on_convert_error( + self, + mocker: MockerFixture, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + def _raise_on_pdf(input_file, output_file, **kwargs) -> None: + if ".pdf" in str(input_file): + raise ParseError("Does not compute.") + run_convert(input_file=input_file, output_file=output_file, **kwargs) + + mocker.patch("documents.parsers.run_convert", side_effect=_raise_on_pdf) + + thumb = tesseract_parser.get_thumbnail( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + assert thumb.is_file() + + def test_thumbnail_encrypted_pdf( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + thumb = tesseract_parser.get_thumbnail( + tesseract_samples_dir / "encrypted.pdf", + "application/pdf", + ) + assert thumb.is_file() + + +# --------------------------------------------------------------------------- +# extract_text +# --------------------------------------------------------------------------- + + +class TestExtractText: + def test_extract_text_from_digital_pdf( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + text = tesseract_parser.extract_text( + None, + tesseract_samples_dir / "simple-digital.pdf", + ) + assert text is not None + assert "This is a test document." in text.strip() + + +# --------------------------------------------------------------------------- +# Parse — PDF modes +# --------------------------------------------------------------------------- + + +class TestParsePdf: + def test_simple_digital_creates_archive( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text(), + ["This is a test document."], + ) + + def test_with_form_default( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse( + tesseract_samples_dir / "with-form.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text(), + ["Please enter your name in here:", "This is a PDF document with a form."], + ) + + def test_with_form_redo_produces_no_archive( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "redo" + tesseract_parser.parse( + tesseract_samples_dir / "with-form.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is None + assert_ordered_substrings( + tesseract_parser.get_text(), + ["Please enter your name in here:", "This is a PDF document with a form."], + ) + + def test_with_form_force( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "force" + tesseract_parser.parse( + tesseract_samples_dir / "with-form.pdf", + "application/pdf", + ) + assert_ordered_substrings( + tesseract_parser.get_text(), + ["Please enter your name in here:", "This is a PDF document with a form."], + ) + + def test_signed_skip_mode_no_archive( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "skip" + tesseract_parser.parse(tesseract_samples_dir / "signed.pdf", "application/pdf") + assert tesseract_parser.archive_path is None + assert_ordered_substrings( + tesseract_parser.get_text(), + [ + "This is a digitally signed PDF, created with Acrobat Pro for the Paperless project to enable", + "automated testing of signed/encrypted PDFs", + ], + ) + + def test_encrypted_skip_mode_empty_text( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "skip" + tesseract_parser.parse( + tesseract_samples_dir / "encrypted.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is None + assert tesseract_parser.get_text() == "" + + def test_gs_rendering_error_raises_parse_error( + self, + mocker: MockerFixture, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + mocker.patch( + "ocrmypdf.ocr", + side_effect=SubprocessOutputError("Ghostscript PDF/A rendering failed"), + ) + with pytest.raises(ParseError): + tesseract_parser.parse( + tesseract_samples_dir / "simple-digital.pdf", + "application/pdf", + ) + + +# --------------------------------------------------------------------------- +# Parse — images +# --------------------------------------------------------------------------- + + +class TestParseImages: + def test_simple_png( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse(tesseract_samples_dir / "simple.png", "image/png") + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text(), + ["This is a test document."], + ) + + def test_simple_alpha_png( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + tmp_path: Path, + ) -> None: + dest = tmp_path / "simple-alpha.png" + shutil.copy(tesseract_samples_dir / "simple-alpha.png", dest) + tesseract_parser.parse(dest, "image/png") + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text(), + ["This is a test document."], + ) + + def test_no_dpi_with_default_dpi( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.image_dpi = 72 + tesseract_parser.parse(tesseract_samples_dir / "simple-no-dpi.png", "image/png") + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert "this is a test document." in tesseract_parser.get_text().lower() + + def test_no_dpi_no_fallback_raises( + self, + mocker: MockerFixture, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + mocker.patch.object(tesseract_parser, "calculate_a4_dpi", return_value=None) + with pytest.raises(ParseError): + tesseract_parser.parse( + tesseract_samples_dir / "simple-no-dpi.png", + "image/png", + ) + + +# --------------------------------------------------------------------------- +# Parse — multi-page PDF +# --------------------------------------------------------------------------- + + +class TestParseMultiPage: + def test_multi_page_digital( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-digital.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @pytest.mark.parametrize( + "mode", + [ + pytest.param("skip", id="skip"), + pytest.param("redo", id="redo"), + pytest.param("force", id="force"), + ], + ) + def test_multi_page_digital_pages_2( + self, + mode: str, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.pages = 2 + tesseract_parser.settings.mode = mode + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-digital.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + def test_multi_page_images_skip( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "skip" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-images.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + def test_multi_page_images_redo_pages_2( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with image-only pages + - OCR of only pages 1 and 2 requested + - Mode: redo + WHEN: + - Document is parsed + THEN: + - Pages 1 and 2 extracted; page 3 absent + """ + tesseract_parser.settings.pages = 2 + tesseract_parser.settings.mode = "redo" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-images.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + text = tesseract_parser.get_text().lower() + assert_ordered_substrings(text, ["page 1", "page 2"]) + assert "page 3" not in text + + def test_multi_page_images_force_page_1( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with image-only pages + - Only page 1 requested + - Mode: force + WHEN: + - Document is parsed + THEN: + - Only page 1 extracted + """ + tesseract_parser.settings.pages = 1 + tesseract_parser.settings.mode = "force" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-images.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + text = tesseract_parser.get_text().lower() + assert "page 1" in text + assert "page 2" not in text + assert "page 3" not in text + + def test_multi_page_tiff( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - Multi-page TIFF image + WHEN: + - Image is parsed + THEN: + - Text from all pages extracted + """ + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-images.tiff", + "image/tiff", + ) + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + def test_multi_page_tiff_alpha( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + tmp_path: Path, + ) -> None: + """ + GIVEN: + - Multi-page TIFF with alpha channel + WHEN: + - Image is parsed + THEN: + - Text from all pages extracted + """ + dest = tmp_path / "alpha.tiff" + shutil.copy(tesseract_samples_dir / "multi-page-images-alpha.tiff", dest) + tesseract_parser.parse(dest, "image/tiff") + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + def test_multi_page_tiff_alpha_srgb( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + tmp_path: Path, + ) -> None: + """ + GIVEN: + - Multi-page TIFF with alpha channel and sRGB colorspace + WHEN: + - Image is parsed + THEN: + - Text from all pages extracted + """ + dest = tmp_path / "alpha-rgb.tiff" + shutil.copy(tesseract_samples_dir / "multi-page-images-alpha-rgb.tiff", dest) + tesseract_parser.parse(dest, "image/tiff") + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + +# --------------------------------------------------------------------------- +# Parse — skip_noarchive / skip_archive_file +# --------------------------------------------------------------------------- + + +class TestSkipArchive: + def test_skip_noarchive_with_text_layer( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with existing text layer + - Mode: skip_noarchive + WHEN: + - Document is parsed + THEN: + - Text extracted; no archive created + """ + tesseract_parser.settings.mode = "skip_noarchive" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-digital.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + def test_skip_noarchive_image_only_creates_archive( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with image-only pages (no text layer) + - Mode: skip_noarchive + WHEN: + - Document is parsed + THEN: + - Text extracted; archive created (OCR needed) + """ + tesseract_parser.settings.mode = "skip_noarchive" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-images.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @pytest.mark.parametrize( + ("skip_archive_file", "filename", "expect_archive"), + [ + pytest.param("never", "multi-page-digital.pdf", True, id="never-with-text"), + pytest.param("never", "multi-page-images.pdf", True, id="never-no-text"), + pytest.param( + "with_text", + "multi-page-digital.pdf", + False, + id="with-text-layer", + ), + pytest.param( + "with_text", + "multi-page-images.pdf", + True, + id="with-text-no-layer", + ), + pytest.param( + "always", + "multi-page-digital.pdf", + False, + id="always-with-text", + ), + pytest.param("always", "multi-page-images.pdf", False, id="always-no-text"), + ], + ) + def test_skip_archive_file_setting( + self, + skip_archive_file: str, + filename: str, + expect_archive: str, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.skip_archive_file = skip_archive_file + tesseract_parser.parse(tesseract_samples_dir / filename, "application/pdf") + text = tesseract_parser.get_text().lower() + assert_ordered_substrings(text, ["page 1", "page 2", "page 3"]) + if expect_archive: + assert tesseract_parser.archive_path is not None + else: + assert tesseract_parser.archive_path is None + + +# --------------------------------------------------------------------------- +# Parse — mixed pages / sidecar +# --------------------------------------------------------------------------- + + +class TestParseMixed: + def test_multi_page_mixed_skip_mode( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with text in some pages (image) and some pages (digital) + - Mode: skip + WHEN: + - Document is parsed + THEN: + - All pages extracted; archive created; sidecar notes skipped pages + """ + tesseract_parser.settings.mode = "skip" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-mixed.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 1", "page 2", "page 3", "page 4", "page 5", "page 6"], + ) + sidecar = (tesseract_parser.tempdir / "sidecar.txt").read_text() + assert "[OCR skipped on page(s) 4-6]" in sidecar + + def test_single_page_mixed_redo_mode( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - Single page with both text and image content + - Mode: redo + WHEN: + - Document is parsed + THEN: + - Both text layer and image text extracted; archive created + """ + tesseract_parser.settings.mode = "redo" + tesseract_parser.parse( + tesseract_samples_dir / "single-page-mixed.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + [ + "this is some normal text, present on page 1 of the document.", + "this is some text, but in an image, also on page 1.", + "this is further text on page 1.", + ], + ) + sidecar = (tesseract_parser.tempdir / "sidecar.txt").read_text().lower() + assert "this is some text, but in an image, also on page 1." in sidecar + assert ( + "this is some normal text, present on page 1 of the document." + not in sidecar + ) + + def test_multi_page_mixed_skip_noarchive( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - File with mixed pages + - Mode: skip_noarchive + WHEN: + - Document is parsed + THEN: + - No archive created (file has text layer); later-page text present + """ + tesseract_parser.settings.mode = "skip_noarchive" + tesseract_parser.parse( + tesseract_samples_dir / "multi-page-mixed.pdf", + "application/pdf", + ) + assert tesseract_parser.archive_path is None + assert_ordered_substrings( + tesseract_parser.get_text().lower(), + ["page 4", "page 5", "page 6"], + ) + + +# --------------------------------------------------------------------------- +# Parse — rotation +# --------------------------------------------------------------------------- + + +class TestParseRotate: + def test_rotate_skip_mode( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.mode = "skip" + tesseract_parser.settings.rotate = True + tesseract_parser.parse(tesseract_samples_dir / "rotated.pdf", "application/pdf") + assert_ordered_substrings( + tesseract_parser.get_text(), + [ + "This is the text that appears on the first page. It\u2019s a lot of text.", + "Even if the pages are rotated, OCRmyPDF still gets the job done.", + "This is a really weird file with lots of nonsense text.", + "If you read this, it\u2019s your own fault. Also check your screen orientation.", + ], + ) + + +# --------------------------------------------------------------------------- +# Parse — RTL +# --------------------------------------------------------------------------- + + +class TestParseRtl: + def test_rtl_language_detected( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + """ + GIVEN: + - PDF with RTL Arabic text + WHEN: + - Document is parsed + THEN: + - Arabic content is extracted (normalised for bidi) + """ + tesseract_parser.parse( + tesseract_samples_dir / "rtl-test.pdf", + "application/pdf", + ) + normalised = "".join( + ch + for ch in unicodedata.normalize("NFKC", tesseract_parser.get_text()) + if unicodedata.category(ch) != "Cf" and not ch.isspace() + ) + assert "ةرازو" in normalised + assert any(token in normalised for token in ("ةیلخادلا", "الاخليد")) + + +# --------------------------------------------------------------------------- +# Parse — OCRmyPDF parameters +# --------------------------------------------------------------------------- + + +@pytest.mark.django_db +class TestOcrmypdfParameters: + """Tests that inspect the dict passed to ocrmypdf. + + These create parsers inline via make_tesseract_parser with specific + Django settings overrides so OcrConfig picks them up at construction time. + """ + + def test_basic_parameter_mapping( + self, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser() as parser: + params = parser.construct_ocrmypdf_parameters( + input_file="input.pdf", + output_file="output.pdf", + sidecar_file="sidecar.txt", + mime_type="application/pdf", + safe_fallback=False, + ) + assert params["input_file_or_options"] == "input.pdf" + assert params["output_file"] == "output.pdf" + assert params["sidecar"] == "sidecar.txt" + + @pytest.mark.parametrize( + ("ocr_clean", "expected_clean", "expected_clean_final"), + [ + pytest.param("none", False, False, id="clean-none"), + pytest.param("clean", True, False, id="clean-clean"), + ], + ) + def test_clean_option( + self, + ocr_clean: str, + *, + expected_clean: bool, + expected_clean_final: bool, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_CLEAN=ocr_clean) as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert ("clean" in params) == expected_clean + assert ("clean_final" in params) == expected_clean_final + + def test_clean_final_skip_mode( + self, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_CLEAN="clean-final", OCR_MODE="skip") as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert params["clean_final"] is True + assert "clean" not in params + + def test_clean_final_redo_mode_falls_back_to_clean( + self, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_CLEAN="clean-final", OCR_MODE="redo") as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert params["clean"] is True + assert "clean_final" not in params + + @pytest.mark.parametrize( + ("ocr_mode", "ocr_deskew", "expect_deskew"), + [ + pytest.param("skip", True, True, id="skip-deskew-on"), + pytest.param("redo", True, False, id="redo-deskew-off"), + pytest.param("skip", False, False, id="skip-no-deskew"), + ], + ) + def test_deskew_option( + self, + ocr_mode: str, + *, + ocr_deskew: bool, + expect_deskew: bool, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_MODE=ocr_mode, OCR_DESKEW=ocr_deskew) as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert ("deskew" in params) == expect_deskew + + def test_max_image_pixels_positive( + self, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_MAX_IMAGE_PIXELS=1_000_001.0) as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert "max_image_mpixels" in params + assert abs(params["max_image_mpixels"] - 1.0) < 1e-4 + + def test_max_image_pixels_negative_omitted( + self, + make_tesseract_parser: MakeTesseractParser, + ) -> None: + with make_tesseract_parser(OCR_MAX_IMAGE_PIXELS=-1_000_001.0) as parser: + params = parser.construct_ocrmypdf_parameters("", "", "", "") + assert "max_image_mpixels" not in params + + +# --------------------------------------------------------------------------- +# Parse — file type matrix +# --------------------------------------------------------------------------- + + +class TestParserFileTypes: + @pytest.mark.parametrize( + ("filename", "mime_type"), + [ + pytest.param("simple.bmp", "image/bmp", id="bmp"), + pytest.param("simple.jpg", "image/jpeg", id="jpeg"), + pytest.param("simple.tif", "image/tiff", id="tiff"), + ], + ) + def test_simple_image_contains_test_text( + self, + filename: str, + mime_type: str, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse(tesseract_samples_dir / filename, mime_type) + assert tesseract_parser.archive_path is not None + assert tesseract_parser.archive_path.is_file() + assert "this is a test document" in tesseract_parser.get_text().lower() + + def test_heic( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.parse(tesseract_samples_dir / "simple.heic", "image/heic") + assert tesseract_parser.archive_path is not None + assert "pizza" in tesseract_parser.get_text().lower() + + def test_gif_with_explicit_dpi( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.image_dpi = 200 + tesseract_parser.parse(tesseract_samples_dir / "simple.gif", "image/gif") + assert tesseract_parser.archive_path is not None + assert "this is a test document" in tesseract_parser.get_text().lower() + + def test_webp_with_explicit_dpi( + self, + tesseract_parser: RasterisedDocumentParser, + tesseract_samples_dir: Path, + ) -> None: + tesseract_parser.settings.image_dpi = 72 + tesseract_parser.parse(tesseract_samples_dir / "document.webp", "image/webp") + assert tesseract_parser.archive_path is not None + assert re.search( + r"this is a ?webp document, created 11/14/2022\.", + tesseract_parser.get_text().lower(), + ) + + +# --------------------------------------------------------------------------- +# Registry +# --------------------------------------------------------------------------- + + +class TestRasterisedDocumentParserRegistry: + def test_registered_in_defaults(self) -> None: + from paperless.parsers.registry import ParserRegistry + + registry = ParserRegistry() + registry.register_defaults() + assert RasterisedDocumentParser in registry._builtins + + @pytest.mark.parametrize( + ("mime_type", "filename"), + [ + pytest.param("application/pdf", "doc.pdf", id="pdf"), + pytest.param("image/png", "image.png", id="png"), + pytest.param("image/jpeg", "photo.jpg", id="jpeg"), + pytest.param("image/tiff", "scan.tif", id="tiff"), + ], + ) + def test_get_parser_for_supported_mime( + self, + mime_type: str, + filename: str, + ) -> None: + from paperless.parsers.registry import get_parser_registry + + registry = get_parser_registry() + assert ( + registry.get_parser_for_file(mime_type, filename) + is RasterisedDocumentParser + ) diff --git a/src/paperless/tests/parsers/test_text_parser.py b/src/paperless/tests/parsers/test_text_parser.py index d2f095f5c..fd2a57857 100644 --- a/src/paperless/tests/parsers/test_text_parser.py +++ b/src/paperless/tests/parsers/test_text_parser.py @@ -12,6 +12,7 @@ from pathlib import Path import pytest +from paperless.parsers import ParserContext from paperless.parsers import ParserProtocol from paperless.parsers.text import TextDocumentParser @@ -93,6 +94,7 @@ class TestTextParserParse: text_parser: TextDocumentParser, sample_txt_file: Path, ) -> None: + text_parser.configure(ParserContext()) text_parser.parse(sample_txt_file, "text/plain") assert text_parser.get_text() == "This is a test file.\n" @@ -102,6 +104,7 @@ class TestTextParserParse: text_parser: TextDocumentParser, sample_txt_file: Path, ) -> None: + text_parser.configure(ParserContext()) text_parser.parse(sample_txt_file, "text/plain") assert text_parser.get_archive_path() is None @@ -111,6 +114,7 @@ class TestTextParserParse: text_parser: TextDocumentParser, sample_txt_file: Path, ) -> None: + text_parser.configure(ParserContext()) text_parser.parse(sample_txt_file, "text/plain") assert text_parser.get_date() is None @@ -129,6 +133,7 @@ class TestTextParserParse: - Parsing succeeds - Invalid bytes are replaced with the Unicode replacement character """ + text_parser.configure(ParserContext()) text_parser.parse(malformed_txt_file, "text/plain") assert text_parser.get_text() == "Pantothens\ufffdure\n" @@ -251,6 +256,9 @@ class TestTextParserRegistry: from paperless.parsers.registry import get_parser_registry registry = get_parser_registry() - parser_cls = registry.get_parser_for_file("application/pdf", "doc.pdf") + parser_cls = registry.get_parser_for_file( + "application/x-unknown-format", + "doc.xyz", + ) assert parser_cls is None diff --git a/src/paperless_tika/tests/test_live_tika.py b/src/paperless/tests/parsers/test_tika_liva.py similarity index 77% rename from src/paperless_tika/tests/test_live_tika.py rename to src/paperless/tests/parsers/test_tika_liva.py index 8275708b4..87cdd88a5 100644 --- a/src/paperless_tika/tests/test_live_tika.py +++ b/src/paperless/tests/parsers/test_tika_liva.py @@ -4,7 +4,7 @@ from pathlib import Path import pytest from documents.tests.utils import util_call_with_backoff -from paperless_tika.parsers import TikaDocumentParser +from paperless.parsers.tika import TikaDocumentParser @pytest.mark.skipif( @@ -42,14 +42,15 @@ class TestTikaParserAgainstServer: ) assert ( - tika_parser.text + tika_parser.get_text() == "This is an ODT test document, created September 14, 2022" ) - assert tika_parser.archive_path is not None - assert b"PDF-" in tika_parser.archive_path.read_bytes()[:10] + archive = tika_parser.get_archive_path() + assert archive is not None + assert b"PDF-" in archive.read_bytes()[:10] # TODO: Unsure what can set the Creation-Date field in a document, enable when possible - # self.assertEqual(tika_parser.date, datetime.datetime(2022, 9, 14)) + # self.assertEqual(tika_parser.get_date(), datetime.datetime(2022, 9, 14)) def test_basic_parse_docx( self, @@ -74,14 +75,15 @@ class TestTikaParserAgainstServer: ) assert ( - tika_parser.text + tika_parser.get_text() == "This is an DOCX test document, also made September 14, 2022" ) - assert tika_parser.archive_path is not None - with Path(tika_parser.archive_path).open("rb") as f: + archive = tika_parser.get_archive_path() + assert archive is not None + with archive.open("rb") as f: assert b"PDF-" in f.read()[:10] - # self.assertEqual(tika_parser.date, datetime.datetime(2022, 9, 14)) + # self.assertEqual(tika_parser.get_date(), datetime.datetime(2022, 9, 14)) def test_basic_parse_doc( self, @@ -102,13 +104,12 @@ class TestTikaParserAgainstServer: [sample_doc_file, "application/msword"], ) - assert tika_parser.text is not None - assert ( - "This is a test document, saved in the older .doc format" - in tika_parser.text - ) - assert tika_parser.archive_path is not None - with Path(tika_parser.archive_path).open("rb") as f: + text = tika_parser.get_text() + assert text is not None + assert "This is a test document, saved in the older .doc format" in text + archive = tika_parser.get_archive_path() + assert archive is not None + with archive.open("rb") as f: assert b"PDF-" in f.read()[:10] def test_tika_fails_multi_part( @@ -133,6 +134,7 @@ class TestTikaParserAgainstServer: [sample_broken_odt, "application/vnd.oasis.opendocument.text"], ) - assert tika_parser.archive_path is not None - with Path(tika_parser.archive_path).open("rb") as f: + archive = tika_parser.get_archive_path() + assert archive is not None + with archive.open("rb") as f: assert b"PDF-" in f.read()[:10] diff --git a/src/paperless_tika/tests/test_tika_parser.py b/src/paperless/tests/parsers/test_tika_parser.py similarity index 57% rename from src/paperless_tika/tests/test_tika_parser.py rename to src/paperless/tests/parsers/test_tika_parser.py index e1c71c131..560527934 100644 --- a/src/paperless_tika/tests/test_tika_parser.py +++ b/src/paperless/tests/parsers/test_tika_parser.py @@ -9,7 +9,80 @@ from pytest_django.fixtures import SettingsWrapper from pytest_httpx import HTTPXMock from documents.parsers import ParseError -from paperless_tika.parsers import TikaDocumentParser +from paperless.parsers import ParserContext +from paperless.parsers import ParserProtocol +from paperless.parsers.tika import TikaDocumentParser + + +class TestTikaParserRegistryInterface: + """Verify that TikaDocumentParser satisfies the ParserProtocol contract.""" + + def test_satisfies_parser_protocol(self) -> None: + assert isinstance(TikaDocumentParser(), ParserProtocol) + + def test_supported_mime_types_is_classmethod(self) -> None: + mime_types = TikaDocumentParser.supported_mime_types() + assert isinstance(mime_types, dict) + assert len(mime_types) > 0 + + def test_score_returns_none_when_tika_disabled( + self, + settings: SettingsWrapper, + ) -> None: + settings.TIKA_ENABLED = False + result = TikaDocumentParser.score( + "application/vnd.oasis.opendocument.text", + "sample.odt", + ) + assert result is None + + def test_score_returns_int_when_tika_enabled( + self, + settings: SettingsWrapper, + ) -> None: + settings.TIKA_ENABLED = True + result = TikaDocumentParser.score( + "application/vnd.oasis.opendocument.text", + "sample.odt", + ) + assert isinstance(result, int) + + def test_score_returns_none_for_unsupported_mime( + self, + settings: SettingsWrapper, + ) -> None: + settings.TIKA_ENABLED = True + result = TikaDocumentParser.score("application/pdf", "doc.pdf") + assert result is None + + def test_can_produce_archive_is_false(self) -> None: + assert TikaDocumentParser().can_produce_archive is False + + def test_requires_pdf_rendition_is_true(self) -> None: + assert TikaDocumentParser().requires_pdf_rendition is True + + def test_get_page_count_returns_none_without_archive( + self, + tika_parser: TikaDocumentParser, + sample_odt_file: Path, + ) -> None: + assert ( + tika_parser.get_page_count( + sample_odt_file, + "application/vnd.oasis.opendocument.text", + ) + is None + ) + + def test_get_page_count_returns_int_with_pdf_archive( + self, + tika_parser: TikaDocumentParser, + simple_digital_pdf_file: Path, + ) -> None: + tika_parser._archive_path = simple_digital_pdf_file + count = tika_parser.get_page_count(simple_digital_pdf_file, "application/pdf") + assert isinstance(count, int) + assert count > 0 @pytest.mark.django_db() @@ -34,14 +107,15 @@ class TestTikaParser: # Pretend convert to PDF response httpx_mock.add_response(content=b"PDF document") + tika_parser.configure(ParserContext()) tika_parser.parse(sample_odt_file, "application/vnd.oasis.opendocument.text") - assert tika_parser.text == "the content" - assert tika_parser.archive_path is not None - with Path(tika_parser.archive_path).open("rb") as f: + assert tika_parser.get_text() == "the content" + assert tika_parser.get_archive_path() is not None + with Path(tika_parser.get_archive_path()).open("rb") as f: assert f.read() == b"PDF document" - assert tika_parser.date == datetime.datetime( + assert tika_parser.get_date() == datetime.datetime( 2020, 11, 21, @@ -89,7 +163,7 @@ class TestTikaParser: httpx_mock.add_response(status_code=HTTPStatus.INTERNAL_SERVER_ERROR) with pytest.raises(ParseError): - tika_parser.convert_to_pdf(sample_odt_file, None) + tika_parser._convert_to_pdf(sample_odt_file) @pytest.mark.parametrize( ("setting_value", "expected_form_value"), @@ -106,7 +180,6 @@ class TestTikaParser: expected_form_value: str, httpx_mock: HTTPXMock, settings: SettingsWrapper, - tika_parser: TikaDocumentParser, sample_odt_file: Path, ) -> None: """ @@ -117,6 +190,8 @@ class TestTikaParser: THEN: - Request to Gotenberg contains the expected PDF/A format string """ + # Parser must be created after the setting is changed so that + # OutputTypeConfig reads the correct value at __init__ time. settings.OCR_OUTPUT_TYPE = setting_value httpx_mock.add_response( status_code=codes.OK, @@ -124,7 +199,8 @@ class TestTikaParser: method="POST", ) - tika_parser.convert_to_pdf(sample_odt_file, None) + with TikaDocumentParser() as parser: + parser._convert_to_pdf(sample_odt_file) request = httpx_mock.get_request() diff --git a/src/paperless_mail/tests/samples/broken.eml b/src/paperless/tests/samples/mail/broken.eml similarity index 100% rename from src/paperless_mail/tests/samples/broken.eml rename to src/paperless/tests/samples/mail/broken.eml diff --git a/src/paperless_mail/tests/samples/first.pdf b/src/paperless/tests/samples/mail/first.pdf similarity index 100% rename from src/paperless_mail/tests/samples/first.pdf rename to src/paperless/tests/samples/mail/first.pdf diff --git a/src/paperless_mail/tests/samples/html.eml b/src/paperless/tests/samples/mail/html.eml similarity index 100% rename from src/paperless_mail/tests/samples/html.eml rename to src/paperless/tests/samples/mail/html.eml diff --git a/src/paperless_mail/tests/samples/html.eml.html b/src/paperless/tests/samples/mail/html.eml.html similarity index 100% rename from src/paperless_mail/tests/samples/html.eml.html rename to src/paperless/tests/samples/mail/html.eml.html diff --git a/src/paperless_mail/tests/samples/html.eml.pdf b/src/paperless/tests/samples/mail/html.eml.pdf similarity index 100% rename from src/paperless_mail/tests/samples/html.eml.pdf rename to src/paperless/tests/samples/mail/html.eml.pdf diff --git a/src/paperless_mail/tests/samples/html.eml.pdf.webp b/src/paperless/tests/samples/mail/html.eml.pdf.webp similarity index 100% rename from src/paperless_mail/tests/samples/html.eml.pdf.webp rename to src/paperless/tests/samples/mail/html.eml.pdf.webp diff --git a/src/paperless_mail/tests/samples/sample.html b/src/paperless/tests/samples/mail/sample.html similarity index 100% rename from src/paperless_mail/tests/samples/sample.html rename to src/paperless/tests/samples/mail/sample.html diff --git a/src/paperless_mail/tests/samples/sample.html.pdf b/src/paperless/tests/samples/mail/sample.html.pdf similarity index 100% rename from src/paperless_mail/tests/samples/sample.html.pdf rename to src/paperless/tests/samples/mail/sample.html.pdf diff --git a/src/paperless_mail/tests/samples/sample.html.pdf.webp b/src/paperless/tests/samples/mail/sample.html.pdf.webp similarity index 100% rename from src/paperless_mail/tests/samples/sample.html.pdf.webp rename to src/paperless/tests/samples/mail/sample.html.pdf.webp diff --git a/src/paperless_mail/tests/samples/sample.png b/src/paperless/tests/samples/mail/sample.png similarity index 100% rename from src/paperless_mail/tests/samples/sample.png rename to src/paperless/tests/samples/mail/sample.png diff --git a/src/paperless_mail/tests/samples/second.pdf b/src/paperless/tests/samples/mail/second.pdf similarity index 100% rename from src/paperless_mail/tests/samples/second.pdf rename to src/paperless/tests/samples/mail/second.pdf diff --git a/src/paperless_mail/tests/samples/simple_text.eml b/src/paperless/tests/samples/mail/simple_text.eml similarity index 100% rename from src/paperless_mail/tests/samples/simple_text.eml rename to src/paperless/tests/samples/mail/simple_text.eml diff --git a/src/paperless_mail/tests/samples/simple_text.eml.pdf b/src/paperless/tests/samples/mail/simple_text.eml.pdf similarity index 100% rename from src/paperless_mail/tests/samples/simple_text.eml.pdf rename to src/paperless/tests/samples/mail/simple_text.eml.pdf diff --git a/src/paperless_mail/tests/samples/simple_text.eml.pdf.webp b/src/paperless/tests/samples/mail/simple_text.eml.pdf.webp similarity index 100% rename from src/paperless_mail/tests/samples/simple_text.eml.pdf.webp rename to src/paperless/tests/samples/mail/simple_text.eml.pdf.webp diff --git a/src/paperless_tesseract/tests/samples/document.webp b/src/paperless/tests/samples/tesseract/document.webp similarity index 100% rename from src/paperless_tesseract/tests/samples/document.webp rename to src/paperless/tests/samples/tesseract/document.webp diff --git a/src/paperless_tesseract/tests/samples/encrypted.pdf b/src/paperless/tests/samples/tesseract/encrypted.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/encrypted.pdf rename to src/paperless/tests/samples/tesseract/encrypted.pdf diff --git a/src/paperless_tesseract/tests/samples/multi-page-digital.pdf b/src/paperless/tests/samples/tesseract/multi-page-digital.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-digital.pdf rename to src/paperless/tests/samples/tesseract/multi-page-digital.pdf diff --git a/src/paperless_tesseract/tests/samples/multi-page-images-alpha-rgb.tiff b/src/paperless/tests/samples/tesseract/multi-page-images-alpha-rgb.tiff similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-images-alpha-rgb.tiff rename to src/paperless/tests/samples/tesseract/multi-page-images-alpha-rgb.tiff diff --git a/src/paperless_tesseract/tests/samples/multi-page-images-alpha.tiff b/src/paperless/tests/samples/tesseract/multi-page-images-alpha.tiff similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-images-alpha.tiff rename to src/paperless/tests/samples/tesseract/multi-page-images-alpha.tiff diff --git a/src/paperless_tesseract/tests/samples/multi-page-images.pdf b/src/paperless/tests/samples/tesseract/multi-page-images.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-images.pdf rename to src/paperless/tests/samples/tesseract/multi-page-images.pdf diff --git a/src/paperless_tesseract/tests/samples/multi-page-images.tiff b/src/paperless/tests/samples/tesseract/multi-page-images.tiff similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-images.tiff rename to src/paperless/tests/samples/tesseract/multi-page-images.tiff diff --git a/src/paperless_tesseract/tests/samples/multi-page-mixed.pdf b/src/paperless/tests/samples/tesseract/multi-page-mixed.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/multi-page-mixed.pdf rename to src/paperless/tests/samples/tesseract/multi-page-mixed.pdf diff --git a/src/paperless_tesseract/tests/samples/no-text-alpha.png b/src/paperless/tests/samples/tesseract/no-text-alpha.png similarity index 100% rename from src/paperless_tesseract/tests/samples/no-text-alpha.png rename to src/paperless/tests/samples/tesseract/no-text-alpha.png diff --git a/src/paperless_tesseract/tests/samples/rotated.pdf b/src/paperless/tests/samples/tesseract/rotated.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/rotated.pdf rename to src/paperless/tests/samples/tesseract/rotated.pdf diff --git a/src/paperless_tesseract/tests/samples/rtl-test.pdf b/src/paperless/tests/samples/tesseract/rtl-test.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/rtl-test.pdf rename to src/paperless/tests/samples/tesseract/rtl-test.pdf diff --git a/src/paperless_tesseract/tests/samples/signed.pdf b/src/paperless/tests/samples/tesseract/signed.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/signed.pdf rename to src/paperless/tests/samples/tesseract/signed.pdf diff --git a/src/paperless_tesseract/tests/samples/simple-alpha.png b/src/paperless/tests/samples/tesseract/simple-alpha.png similarity index 100% rename from src/paperless_tesseract/tests/samples/simple-alpha.png rename to src/paperless/tests/samples/tesseract/simple-alpha.png diff --git a/src/paperless_remote/tests/samples/simple-digital.pdf b/src/paperless/tests/samples/tesseract/simple-digital.pdf similarity index 100% rename from src/paperless_remote/tests/samples/simple-digital.pdf rename to src/paperless/tests/samples/tesseract/simple-digital.pdf diff --git a/src/paperless_tesseract/tests/samples/simple-no-dpi.png b/src/paperless/tests/samples/tesseract/simple-no-dpi.png similarity index 100% rename from src/paperless_tesseract/tests/samples/simple-no-dpi.png rename to src/paperless/tests/samples/tesseract/simple-no-dpi.png diff --git a/src/paperless_tesseract/tests/samples/simple.bmp b/src/paperless/tests/samples/tesseract/simple.bmp similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.bmp rename to src/paperless/tests/samples/tesseract/simple.bmp diff --git a/src/paperless_tesseract/tests/samples/simple.gif b/src/paperless/tests/samples/tesseract/simple.gif similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.gif rename to src/paperless/tests/samples/tesseract/simple.gif diff --git a/src/paperless_tesseract/tests/samples/simple.heic b/src/paperless/tests/samples/tesseract/simple.heic similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.heic rename to src/paperless/tests/samples/tesseract/simple.heic diff --git a/src/paperless_tesseract/tests/samples/simple.jpg b/src/paperless/tests/samples/tesseract/simple.jpg similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.jpg rename to src/paperless/tests/samples/tesseract/simple.jpg diff --git a/src/paperless_tesseract/tests/samples/simple.png b/src/paperless/tests/samples/tesseract/simple.png similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.png rename to src/paperless/tests/samples/tesseract/simple.png diff --git a/src/paperless_tesseract/tests/samples/simple.tif b/src/paperless/tests/samples/tesseract/simple.tif similarity index 100% rename from src/paperless_tesseract/tests/samples/simple.tif rename to src/paperless/tests/samples/tesseract/simple.tif diff --git a/src/paperless_tesseract/tests/samples/single-page-mixed.pdf b/src/paperless/tests/samples/tesseract/single-page-mixed.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/single-page-mixed.pdf rename to src/paperless/tests/samples/tesseract/single-page-mixed.pdf diff --git a/src/paperless_tesseract/tests/samples/with-form.pdf b/src/paperless/tests/samples/tesseract/with-form.pdf similarity index 100% rename from src/paperless_tesseract/tests/samples/with-form.pdf rename to src/paperless/tests/samples/tesseract/with-form.pdf diff --git a/src/paperless_tika/tests/samples/multi-part-broken.odt b/src/paperless/tests/samples/tika/multi-part-broken.odt similarity index 100% rename from src/paperless_tika/tests/samples/multi-part-broken.odt rename to src/paperless/tests/samples/tika/multi-part-broken.odt diff --git a/src/paperless_tika/tests/samples/sample.doc b/src/paperless/tests/samples/tika/sample.doc similarity index 100% rename from src/paperless_tika/tests/samples/sample.doc rename to src/paperless/tests/samples/tika/sample.doc diff --git a/src/paperless_tika/tests/samples/sample.docx b/src/paperless/tests/samples/tika/sample.docx similarity index 100% rename from src/paperless_tika/tests/samples/sample.docx rename to src/paperless/tests/samples/tika/sample.docx diff --git a/src/paperless_tika/tests/samples/sample.odt b/src/paperless/tests/samples/tika/sample.odt similarity index 100% rename from src/paperless_tika/tests/samples/sample.odt rename to src/paperless/tests/samples/tika/sample.odt diff --git a/src/paperless/tests/settings/test_custom_parsers.py b/src/paperless/tests/settings/test_custom_parsers.py index 06299abb3..6fa7ad8eb 100644 --- a/src/paperless/tests/settings/test_custom_parsers.py +++ b/src/paperless/tests/settings/test_custom_parsers.py @@ -79,6 +79,15 @@ class TestRedisSocketConversion: ), id="celery_style_socket_with_credentials", ), + # Empty username, password only: unix://:SECRET@/path.sock + pytest.param( + "unix://:SECRET@/run/redis/paperless.sock", + ( + "redis+socket://:SECRET@/run/redis/paperless.sock", + "unix://:SECRET@/run/redis/paperless.sock", + ), + id="redis_py_style_socket_with_password_only", + ), ], ) def test_redis_socket_parsing( diff --git a/src/paperless/tests/settings/test_settings.py b/src/paperless/tests/settings/test_settings.py index b0ae3c0c5..0694d9360 100644 --- a/src/paperless/tests/settings/test_settings.py +++ b/src/paperless/tests/settings/test_settings.py @@ -2,6 +2,9 @@ import os from unittest import TestCase from unittest import mock +import pytest + +from paperless.settings import _get_search_language_setting from paperless.settings import _parse_paperless_url from paperless.settings import default_threads_per_worker @@ -32,6 +35,48 @@ class TestThreadCalculation(TestCase): self.assertLessEqual(default_workers * default_threads, i) +@pytest.mark.parametrize( + ("env_value", "expected"), + [ + ("en", "en"), + ("de", "de"), + ("fr", "fr"), + ("swedish", "swedish"), + ], +) +def test_get_search_language_setting_explicit_valid( + monkeypatch: pytest.MonkeyPatch, + env_value: str, + expected: str, +) -> None: + """ + GIVEN: + - PAPERLESS_SEARCH_LANGUAGE is set to a valid Tantivy stemmer language + WHEN: + - _get_search_language_setting is called + THEN: + - The explicit value is returned regardless of the OCR language + """ + monkeypatch.setenv("PAPERLESS_SEARCH_LANGUAGE", env_value) + assert _get_search_language_setting("deu") == expected + + +def test_get_search_language_setting_explicit_invalid( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """ + GIVEN: + - PAPERLESS_SEARCH_LANGUAGE is set to an unsupported language code + WHEN: + - _get_search_language_setting is called + THEN: + - ValueError is raised + """ + monkeypatch.setenv("PAPERLESS_SEARCH_LANGUAGE", "klingon") + with pytest.raises(ValueError, match="klingon"): + _get_search_language_setting("eng") + + class TestPaperlessURLSettings(TestCase): def test_paperless_url(self) -> None: """ diff --git a/src/paperless/tests/test_celery.py b/src/paperless/tests/test_celery.py new file mode 100644 index 000000000..0c0e51272 --- /dev/null +++ b/src/paperless/tests/test_celery.py @@ -0,0 +1,69 @@ +import hmac +import pickle +from hashlib import sha256 + +import pytest +from django.test import override_settings + +from paperless.celery import HMAC_SIZE +from paperless.celery import signed_pickle_dumps +from paperless.celery import signed_pickle_loads + + +class TestSignedPickleSerializer: + def test_roundtrip_simple_types(self): + """Signed pickle can round-trip basic JSON-like types.""" + for obj in [42, "hello", [1, 2, 3], {"key": "value"}, None, True]: + assert signed_pickle_loads(signed_pickle_dumps(obj)) == obj + + def test_roundtrip_complex_types(self): + """Signed pickle can round-trip types that JSON cannot.""" + from pathlib import Path + + obj = {"path": Path("/tmp/test"), "data": {1, 2, 3}} + result = signed_pickle_loads(signed_pickle_dumps(obj)) + assert result["path"] == Path("/tmp/test") + assert result["data"] == {1, 2, 3} + + def test_tampered_data_rejected(self): + """Flipping a byte in the data portion causes HMAC failure.""" + payload = signed_pickle_dumps({"task": "test"}) + tampered = bytearray(payload) + tampered[-1] ^= 0xFF + with pytest.raises(ValueError, match="HMAC verification failed"): + signed_pickle_loads(bytes(tampered)) + + def test_tampered_signature_rejected(self): + """Flipping a byte in the signature portion causes HMAC failure.""" + payload = signed_pickle_dumps({"task": "test"}) + tampered = bytearray(payload) + tampered[0] ^= 0xFF + with pytest.raises(ValueError, match="HMAC verification failed"): + signed_pickle_loads(bytes(tampered)) + + def test_truncated_payload_rejected(self): + """A payload shorter than HMAC_SIZE is rejected.""" + with pytest.raises(ValueError, match="too short"): + signed_pickle_loads(b"\x00" * (HMAC_SIZE - 1)) + + def test_empty_payload_rejected(self): + with pytest.raises(ValueError, match="too short"): + signed_pickle_loads(b"") + + @override_settings(SECRET_KEY="different-secret-key") + def test_wrong_secret_key_rejected(self): + """A message signed with one key cannot be loaded with another.""" + original_key = b"test-secret-key-do-not-use-in-production" + obj = {"task": "test"} + data = pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL) + signature = hmac.new(original_key, data, sha256).digest() + payload = signature + data + with pytest.raises(ValueError, match="HMAC verification failed"): + signed_pickle_loads(payload) + + def test_forged_pickle_rejected(self): + """A raw pickle payload (no signature) is rejected.""" + raw_pickle = pickle.dumps({"task": "test"}) + # Raw pickle won't have a valid HMAC prefix + with pytest.raises(ValueError, match="HMAC verification failed"): + signed_pickle_loads(b"\x00" * HMAC_SIZE + raw_pickle) diff --git a/src/paperless/tests/test_checks.py b/src/paperless/tests/test_checks.py index 3572f02a4..87e64a90e 100644 --- a/src/paperless/tests/test_checks.py +++ b/src/paperless/tests/test_checks.py @@ -5,6 +5,7 @@ from pathlib import Path from unittest import mock import pytest +from django.core.checks import ERROR from django.core.checks import Error from django.core.checks import Warning from pytest_django.fixtures import SettingsWrapper @@ -12,7 +13,9 @@ from pytest_mock import MockerFixture from paperless.checks import audit_log_check from paperless.checks import binaries_check +from paperless.checks import check_default_language_available from paperless.checks import check_deprecated_db_settings +from paperless.checks import check_remote_parser_configured from paperless.checks import check_v3_minimum_upgrade_version from paperless.checks import debug_mode_check from paperless.checks import paths_check @@ -626,3 +629,116 @@ class TestV3MinimumUpgradeVersionCheck: conn.introspection.table_names.side_effect = OperationalError("DB unavailable") mocker.patch.dict("paperless.checks.connections", {"default": conn}) assert check_v3_minimum_upgrade_version(None) == [] + + +class TestRemoteParserChecks: + def test_no_engine(self, settings: SettingsWrapper) -> None: + settings.REMOTE_OCR_ENGINE = None + msgs = check_remote_parser_configured(None) + + assert len(msgs) == 0 + + def test_azure_no_endpoint(self, settings: SettingsWrapper) -> None: + + settings.REMOTE_OCR_ENGINE = "azureai" + settings.REMOTE_OCR_API_KEY = "somekey" + settings.REMOTE_OCR_ENDPOINT = None + + msgs = check_remote_parser_configured(None) + + assert len(msgs) == 1 + + msg = msgs[0] + + assert ( + "Azure AI remote parser requires endpoint and API key to be configured." + in msg.msg + ) + + +class TestTesseractChecks: + def test_default_language(self) -> None: + check_default_language_available(None) + + def test_no_language(self, settings: SettingsWrapper) -> None: + + settings.OCR_LANGUAGE = "" + + msgs = check_default_language_available(None) + + assert len(msgs) == 1 + msg = msgs[0] + + assert ( + "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE" in msg.msg + ) + + def test_invalid_language( + self, + settings: SettingsWrapper, + mocker: MockerFixture, + ) -> None: + + settings.OCR_LANGUAGE = "ita" + + tesser_lang_mock = mocker.patch("paperless.checks.get_tesseract_langs") + tesser_lang_mock.return_value = ["deu", "eng"] + + msgs = check_default_language_available(None) + + assert len(msgs) == 1 + msg = msgs[0] + + assert msg.level == ERROR + assert "The selected ocr language ita is not installed" in msg.msg + + def test_multi_part_language( + self, + settings: SettingsWrapper, + mocker: MockerFixture, + ) -> None: + """ + GIVEN: + - An OCR language which is multi part (ie chi-sim) + - The language is correctly formatted + WHEN: + - Installed packages are checked + THEN: + - No errors are reported + """ + + settings.OCR_LANGUAGE = "chi_sim" + + tesser_lang_mock = mocker.patch("paperless.checks.get_tesseract_langs") + tesser_lang_mock.return_value = ["chi_sim", "eng"] + + msgs = check_default_language_available(None) + + assert len(msgs) == 0 + + def test_multi_part_language_bad_format( + self, + settings: SettingsWrapper, + mocker: MockerFixture, + ) -> None: + """ + GIVEN: + - An OCR language which is multi part (ie chi-sim) + - The language is correctly NOT formatted + WHEN: + - Installed packages are checked + THEN: + - No errors are reported + """ + settings.OCR_LANGUAGE = "chi-sim" + + tesser_lang_mock = mocker.patch("paperless.checks.get_tesseract_langs") + tesser_lang_mock.return_value = ["chi_sim", "eng"] + + msgs = check_default_language_available(None) + + assert len(msgs) == 1 + msg = msgs[0] + + assert msg.level == ERROR + assert "The selected ocr language chi-sim is not installed" in msg.msg diff --git a/src/paperless/tests/test_logging.py b/src/paperless/tests/test_logging.py new file mode 100644 index 000000000..dbd36c7d0 --- /dev/null +++ b/src/paperless/tests/test_logging.py @@ -0,0 +1,34 @@ +import logging + +from paperless.logging import ConsumeTaskFormatter +from paperless.logging import consume_task_id + + +def _make_record(msg: str = "Test message") -> logging.LogRecord: + return logging.LogRecord( + name="paperless.consumer", + level=logging.INFO, + pathname="", + lineno=0, + msg=msg, + args=(), + exc_info=None, + ) + + +def test_formatter_includes_task_id_when_set(): + token = consume_task_id.set("a8098c1a") + try: + formatter = ConsumeTaskFormatter() + output = formatter.format(_make_record()) + assert "[a8098c1a] Test message" in output + finally: + consume_task_id.reset(token) + + +def test_formatter_omits_prefix_when_no_task_id(): + # ContextVar default is "" — no task active + formatter = ConsumeTaskFormatter() + output = formatter.format(_make_record()) + assert "[] " not in output + assert "Test message" in output diff --git a/src/paperless/tests/test_registry.py b/src/paperless/tests/test_registry.py index 80c686bc4..5c2d20d50 100644 --- a/src/paperless/tests/test_registry.py +++ b/src/paperless/tests/test_registry.py @@ -18,6 +18,7 @@ from unittest.mock import patch import pytest +from paperless.parsers import ParserContext from paperless.parsers import ParserProtocol from paperless.parsers.registry import ParserRegistry from paperless.parsers.registry import get_parser_registry @@ -103,6 +104,11 @@ def dummy_parser_cls() -> type: ) -> list: return [] + def configure(self, context: ParserContext) -> None: + """ + Required to exist, but doesn't need to do anything + """ + def __enter__(self) -> Self: return self @@ -144,6 +150,7 @@ class TestParserProtocol: @pytest.mark.parametrize( "missing_method", [ + pytest.param("configure", id="missing-configure"), pytest.param("parse", id="missing-parse"), pytest.param("get_text", id="missing-get_text"), pytest.param("get_thumbnail", id="missing-get_thumbnail"), diff --git a/src/paperless/tests/test_websockets.py b/src/paperless/tests/test_websockets.py index bffc44f82..9f7c9a652 100644 --- a/src/paperless/tests/test_websockets.py +++ b/src/paperless/tests/test_websockets.py @@ -200,7 +200,10 @@ class TestWebSockets: "Test message", 1, 10, - extra_args={"foo": "bar"}, + document_id=42, + owner_id=1, + users_can_view=[2, 3], + groups_can_view=[4], ) assert mock_group_send.call_args[0][1] == { @@ -212,7 +215,10 @@ class TestWebSockets: "max_progress": 10, "status": ProgressStatusOptions.STARTED, "message": "Test message", - "foo": "bar", + "document_id": 42, + "owner_id": 1, + "users_can_view": [2, 3], + "groups_can_view": [4], }, } diff --git a/src/paperless/version.py b/src/paperless/version.py index 3f35bde70..b0b675c87 100644 --- a/src/paperless/version.py +++ b/src/paperless/version.py @@ -1,6 +1,6 @@ from typing import Final -__version__: Final[tuple[int, int, int]] = (2, 20, 10) +__version__: Final[tuple[int, int, int]] = (2, 20, 13) # Version string like X.Y.Z __full_version_str__: Final[str] = ".".join(map(str, __version__)) # Version string like X.Y diff --git a/src/paperless/views.py b/src/paperless/views.py index 05a0997fb..e4db40bb4 100644 --- a/src/paperless/views.py +++ b/src/paperless/views.py @@ -9,6 +9,7 @@ from allauth.mfa.recovery_codes.internal.flows import auto_generate_recovery_cod from allauth.mfa.totp.internal import auth as totp_auth from allauth.socialaccount.adapter import get_adapter from allauth.socialaccount.models import SocialAccount +from django.conf import settings from django.contrib.auth.models import Group from django.contrib.auth.models import User from django.contrib.staticfiles.storage import staticfiles_storage @@ -25,15 +26,17 @@ from drf_spectacular.utils import extend_schema_view from rest_framework.authtoken.models import Token from rest_framework.authtoken.views import ObtainAuthToken from rest_framework.decorators import action +from rest_framework.exceptions import ValidationError +from rest_framework.fields import BooleanField from rest_framework.filters import OrderingFilter from rest_framework.generics import GenericAPIView from rest_framework.pagination import PageNumberPagination from rest_framework.permissions import DjangoModelPermissions from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response +from rest_framework.throttling import ScopedRateThrottle from rest_framework.viewsets import ModelViewSet -from documents.index import DelayedQuery from documents.permissions import PaperlessObjectPermissions from documents.tasks import llmindex_index from paperless.filters import GroupFilterSet @@ -49,6 +52,8 @@ from paperless_ai.indexing import vector_store_file_exists class PaperlessObtainAuthTokenView(ObtainAuthToken): serializer_class = PaperlessAuthTokenSerializer + throttle_classes = [ScopedRateThrottle] + throttle_scope = "login" class StandardPagination(PageNumberPagination): @@ -56,42 +61,47 @@ class StandardPagination(PageNumberPagination): page_size_query_param = "page_size" max_page_size = 100000 + def _get_api_version(self) -> int: + request = getattr(self, "request", None) + default_version = settings.REST_FRAMEWORK["DEFAULT_VERSION"] + return int(request.version if request else default_version) + + def _should_include_all(self) -> bool: + # TODO: remove legacy `all` support when API v9 is dropped. + return self._get_api_version() < 10 + def get_paginated_response(self, data): + response_data = [ + ("count", self.page.paginator.count), + ("next", self.get_next_link()), + ("previous", self.get_previous_link()), + ] + if self._should_include_all(): + response_data.append(("all", self.get_all_result_ids())) + response_data.append(("results", data)) + return Response( - OrderedDict( - [ - ("count", self.page.paginator.count), - ("next", self.get_next_link()), - ("previous", self.get_previous_link()), - ("all", self.get_all_result_ids()), - ("results", data), - ], - ), + OrderedDict(response_data), ) def get_all_result_ids(self): + from documents.search import TantivyRelevanceList + query = self.page.paginator.object_list - if isinstance(query, DelayedQuery): - try: - ids = [ - query.searcher.ixreader.stored_fields( - doc_num, - )["id"] - for doc_num in query.saved_results.get(0).results.docs() - ] - except Exception: - pass - else: - ids = self.page.paginator.object_list.values_list("pk", flat=True) - return ids + if isinstance(query, TantivyRelevanceList): + return [h["id"] for h in query._hits] + return self.page.paginator.object_list.values_list("pk", flat=True) def get_paginated_response_schema(self, schema): response_schema = super().get_paginated_response_schema(schema) - response_schema["properties"]["all"] = { - "type": "array", - "example": "[1, 2, 3]", - "items": {"type": "integer"}, - } + if self._should_include_all(): + response_schema["properties"]["all"] = { + "type": "array", + "example": "[1, 2, 3]", + "items": {"type": "integer"}, + } + else: + response_schema["properties"].pop("all", None) return response_schema @@ -105,6 +115,7 @@ class FaviconView(View): class UserViewSet(ModelViewSet): + _BOOL_NOT_PROVIDED = object() model = User queryset = User.objects.exclude( @@ -118,27 +129,65 @@ class UserViewSet(ModelViewSet): filterset_class = UserFilterSet ordering_fields = ("username",) + @staticmethod + def _parse_requested_bool(data, key: str): + if key not in data: + return UserViewSet._BOOL_NOT_PROVIDED + try: + return BooleanField().to_internal_value(data.get(key)) + except ValidationError: + # Let serializer validation report invalid values as 400 responses + return UserViewSet._BOOL_NOT_PROVIDED + def create(self, request, *args, **kwargs): - if not request.user.is_superuser and request.data.get("is_superuser") is True: - return HttpResponseForbidden( - "Superuser status can only be granted by a superuser", - ) + requested_is_superuser = self._parse_requested_bool( + request.data, + "is_superuser", + ) + requested_is_staff = self._parse_requested_bool(request.data, "is_staff") + + if not request.user.is_superuser: + if requested_is_superuser is True: + return HttpResponseForbidden( + "Superuser status can only be granted by a superuser", + ) + if requested_is_staff is True: + return HttpResponseForbidden( + "Staff status can only be granted by a superuser", + ) + return super().create(request, *args, **kwargs) def update(self, request, *args, **kwargs): user_to_update: User = self.get_object() + if not request.user.is_superuser and user_to_update.is_superuser: return HttpResponseForbidden( "Superusers can only be modified by other superusers", ) + + requested_is_superuser = self._parse_requested_bool( + request.data, + "is_superuser", + ) + requested_is_staff = self._parse_requested_bool(request.data, "is_staff") + if ( not request.user.is_superuser - and request.data.get("is_superuser") is not None - and request.data.get("is_superuser") != user_to_update.is_superuser + and requested_is_superuser is not self._BOOL_NOT_PROVIDED + and requested_is_superuser != user_to_update.is_superuser ): return HttpResponseForbidden( "Superuser status can only be changed by a superuser", ) + if ( + not request.user.is_superuser + and requested_is_staff is not self._BOOL_NOT_PROVIDED + and requested_is_staff != user_to_update.is_staff + ): + return HttpResponseForbidden( + "Staff status can only be changed by a superuser", + ) return super().update(request, *args, **kwargs) @extend_schema( diff --git a/src/paperless_ai/client.py b/src/paperless_ai/client.py index d70fe57b5..95b61b508 100644 --- a/src/paperless_ai/client.py +++ b/src/paperless_ai/client.py @@ -7,6 +7,7 @@ if TYPE_CHECKING: from llama_index.llms.openai import OpenAI from paperless.config import AIConfig +from paperless.network import validate_outbound_http_url from paperless_ai.base_model import DocumentClassifierSchema logger = logging.getLogger("paperless_ai.client") @@ -25,17 +26,28 @@ class AIClient: if self.settings.llm_backend == "ollama": from llama_index.llms.ollama import Ollama + endpoint = self.settings.llm_endpoint or "http://localhost:11434" + validate_outbound_http_url( + endpoint, + allow_internal=self.settings.llm_allow_internal_endpoints, + ) return Ollama( model=self.settings.llm_model or "llama3.1", - base_url=self.settings.llm_endpoint or "http://localhost:11434", + base_url=endpoint, request_timeout=120, ) elif self.settings.llm_backend == "openai": from llama_index.llms.openai import OpenAI + endpoint = self.settings.llm_endpoint or None + if endpoint: + validate_outbound_http_url( + endpoint, + allow_internal=self.settings.llm_allow_internal_endpoints, + ) return OpenAI( model=self.settings.llm_model or "gpt-3.5-turbo", - api_base=self.settings.llm_endpoint or None, + api_base=endpoint, api_key=self.settings.llm_api_key, ) else: diff --git a/src/paperless_ai/embedding.py b/src/paperless_ai/embedding.py index f7193a8db..72ad8e14a 100644 --- a/src/paperless_ai/embedding.py +++ b/src/paperless_ai/embedding.py @@ -12,6 +12,7 @@ from documents.models import Document from documents.models import Note from paperless.config import AIConfig from paperless.models import LLMEmbeddingBackend +from paperless.network import validate_outbound_http_url def get_embedding_model() -> "BaseEmbedding": @@ -21,10 +22,16 @@ def get_embedding_model() -> "BaseEmbedding": case LLMEmbeddingBackend.OPENAI: from llama_index.embeddings.openai import OpenAIEmbedding + endpoint = config.llm_endpoint or None + if endpoint: + validate_outbound_http_url( + endpoint, + allow_internal=config.llm_allow_internal_endpoints, + ) return OpenAIEmbedding( model=config.llm_embedding_model or "text-embedding-3-small", api_key=config.llm_api_key, - api_base=config.llm_endpoint or None, + api_base=endpoint, ) case LLMEmbeddingBackend.HUGGINGFACE: from llama_index.embeddings.huggingface import HuggingFaceEmbedding diff --git a/src/paperless_ai/indexing.py b/src/paperless_ai/indexing.py index bee8f0dd9..a54492f1f 100644 --- a/src/paperless_ai/indexing.py +++ b/src/paperless_ai/indexing.py @@ -1,11 +1,8 @@ import logging import shutil -from collections.abc import Callable -from collections.abc import Iterable from datetime import timedelta from pathlib import Path from typing import TYPE_CHECKING -from typing import TypeVar from celery import states from django.conf import settings @@ -13,22 +10,17 @@ from django.utils import timezone from documents.models import Document from documents.models import PaperlessTask +from documents.utils import IterWrapper +from documents.utils import identity from paperless_ai.embedding import build_llm_index_text from paperless_ai.embedding import get_embedding_dim from paperless_ai.embedding import get_embedding_model -_T = TypeVar("_T") -IterWrapper = Callable[[Iterable[_T]], Iterable[_T]] - if TYPE_CHECKING: from llama_index.core import VectorStoreIndex from llama_index.core.schema import BaseNode -def _identity(iterable: Iterable[_T]) -> Iterable[_T]: - return iterable - - logger = logging.getLogger("paperless_ai.indexing") @@ -176,7 +168,7 @@ def vector_store_file_exists(): def update_llm_index( *, - iter_wrapper: IterWrapper[Document] = _identity, + iter_wrapper: IterWrapper[Document] = identity, rebuild=False, ) -> str: """ diff --git a/src/paperless_ai/tests/conftest.py b/src/paperless_ai/tests/conftest.py new file mode 100644 index 000000000..2d71476c7 --- /dev/null +++ b/src/paperless_ai/tests/conftest.py @@ -0,0 +1,10 @@ +from pathlib import Path + +import pytest +from pytest_django.fixtures import SettingsWrapper + + +@pytest.fixture +def temp_llm_index_dir(tmp_path: Path, settings: SettingsWrapper): + settings.LLM_INDEX_DIR = tmp_path + return tmp_path diff --git a/src/paperless_ai/tests/test_ai_indexing.py b/src/paperless_ai/tests/test_ai_indexing.py index 724ac43e4..c1e3b64d8 100644 --- a/src/paperless_ai/tests/test_ai_indexing.py +++ b/src/paperless_ai/tests/test_ai_indexing.py @@ -13,14 +13,6 @@ from documents.models import PaperlessTask from paperless_ai import indexing -@pytest.fixture -def temp_llm_index_dir(tmp_path): - original_dir = indexing.settings.LLM_INDEX_DIR - indexing.settings.LLM_INDEX_DIR = tmp_path - yield tmp_path - indexing.settings.LLM_INDEX_DIR = original_dir - - @pytest.fixture def real_document(db): return Document.objects.create( diff --git a/src/paperless_ai/tests/test_client.py b/src/paperless_ai/tests/test_client.py index 08582cc71..e1325b107 100644 --- a/src/paperless_ai/tests/test_client.py +++ b/src/paperless_ai/tests/test_client.py @@ -12,6 +12,7 @@ from paperless_ai.client import AIClient def mock_ai_config(): with patch("paperless_ai.client.AIConfig") as MockAIConfig: mock_config = MagicMock() + mock_config.llm_allow_internal_endpoints = True MockAIConfig.return_value = mock_config yield mock_config @@ -59,6 +60,17 @@ def test_get_llm_openai(mock_ai_config, mock_openai_llm): assert client.llm == mock_openai_llm.return_value +def test_get_llm_openai_blocks_internal_endpoint_when_disallowed(mock_ai_config): + mock_ai_config.llm_backend = "openai" + mock_ai_config.llm_model = "test_model" + mock_ai_config.llm_api_key = "test_api_key" + mock_ai_config.llm_endpoint = "http://127.0.0.1:1234" + mock_ai_config.llm_allow_internal_endpoints = False + + with pytest.raises(ValueError, match="non-public address"): + AIClient() + + def test_get_llm_unsupported_backend(mock_ai_config): mock_ai_config.llm_backend = "unsupported" diff --git a/src/paperless_ai/tests/test_embedding.py b/src/paperless_ai/tests/test_embedding.py index 98da6e410..74151ff89 100644 --- a/src/paperless_ai/tests/test_embedding.py +++ b/src/paperless_ai/tests/test_embedding.py @@ -3,7 +3,6 @@ from unittest.mock import MagicMock from unittest.mock import patch import pytest -from django.conf import settings from documents.models import Document from paperless.models import LLMEmbeddingBackend @@ -15,17 +14,10 @@ from paperless_ai.embedding import get_embedding_model @pytest.fixture def mock_ai_config(): with patch("paperless_ai.embedding.AIConfig") as MockAIConfig: + MockAIConfig.return_value.llm_allow_internal_endpoints = True yield MockAIConfig -@pytest.fixture -def temp_llm_index_dir(tmp_path): - original_dir = settings.LLM_INDEX_DIR - settings.LLM_INDEX_DIR = tmp_path - yield tmp_path - settings.LLM_INDEX_DIR = original_dir - - @pytest.fixture def mock_document(): doc = MagicMock(spec=Document) @@ -77,6 +69,19 @@ def test_get_embedding_model_openai(mock_ai_config): assert model == MockOpenAIEmbedding.return_value +def test_get_embedding_model_openai_blocks_internal_endpoint_when_disallowed( + mock_ai_config, +): + mock_ai_config.return_value.llm_embedding_backend = LLMEmbeddingBackend.OPENAI + mock_ai_config.return_value.llm_embedding_model = "text-embedding-3-small" + mock_ai_config.return_value.llm_api_key = "test_api_key" + mock_ai_config.return_value.llm_endpoint = "http://127.0.0.1:11434" + mock_ai_config.return_value.llm_allow_internal_endpoints = False + + with pytest.raises(ValueError, match="non-public address"): + get_embedding_model() + + def test_get_embedding_model_huggingface(mock_ai_config): mock_ai_config.return_value.llm_embedding_backend = LLMEmbeddingBackend.HUGGINGFACE mock_ai_config.return_value.llm_embedding_model = ( diff --git a/src/paperless_mail/apps.py b/src/paperless_mail/apps.py index dd3e71f82..1c5d656e0 100644 --- a/src/paperless_mail/apps.py +++ b/src/paperless_mail/apps.py @@ -1,18 +1,8 @@ from django.apps import AppConfig -from django.conf import settings from django.utils.translation import gettext_lazy as _ -from paperless_mail.signals import mail_consumer_declaration - class PaperlessMailConfig(AppConfig): name = "paperless_mail" verbose_name = _("Paperless mail") - - def ready(self) -> None: - from documents.signals import document_consumer_declaration - - if settings.TIKA_ENABLED: - document_consumer_declaration.connect(mail_consumer_declaration) - AppConfig.ready(self) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 56eaefaad..ecc785b1a 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -39,6 +39,8 @@ from documents.loggers import LoggingMixin from documents.models import Correspondent from documents.parsers import is_mime_type_supported from documents.tasks import consume_file +from paperless.network import is_public_ip +from paperless.network import resolve_hostname_ips from paperless_mail.models import MailAccount from paperless_mail.models import MailRule from paperless_mail.models import ProcessedMail @@ -412,6 +414,13 @@ def get_mailbox(server, port, security) -> MailBox: """ Returns the correct MailBox instance for the given configuration. """ + if not settings.EMAIL_ALLOW_INTERNAL_HOSTS: + for ip_str in resolve_hostname_ips(server): + if not is_public_ip(ip_str): + raise MailError( + f"Connection blocked: {server} resolves to a non-public address", + ) + ssl_context = ssl.create_default_context() if settings.EMAIL_CERTIFICATE_FILE is not None: # pragma: no cover ssl_context.load_verify_locations(cafile=settings.EMAIL_CERTIFICATE_FILE) diff --git a/src/paperless_mail/parsers.py b/src/paperless_mail/parsers.py deleted file mode 100644 index 86cba23ab..000000000 --- a/src/paperless_mail/parsers.py +++ /dev/null @@ -1,481 +0,0 @@ -import re -from html import escape -from pathlib import Path - -from bleach import clean -from bleach import linkify -from django.conf import settings -from django.utils import timezone -from django.utils.timezone import is_naive -from django.utils.timezone import make_aware -from gotenberg_client import GotenbergClient -from gotenberg_client.constants import A4 -from gotenberg_client.options import Measurement -from gotenberg_client.options import MeasurementUnitType -from gotenberg_client.options import PageMarginsType -from gotenberg_client.options import PdfAFormat -from humanize import naturalsize -from imap_tools import MailAttachment -from imap_tools import MailMessage -from tika_client import TikaClient - -from documents.parsers import DocumentParser -from documents.parsers import ParseError -from documents.parsers import make_thumbnail_from_pdf -from paperless.models import OutputTypeChoices -from paperless_mail.models import MailRule - - -class MailDocumentParser(DocumentParser): - """ - This parser uses imap_tools to parse .eml files, generates pdf using - Gotenberg and sends the html part to a Tika server for text extraction. - """ - - logging_name = "paperless.parsing.mail" - - def _settings_to_gotenberg_pdfa(self) -> PdfAFormat | None: - """ - Converts our requested PDF/A output into the Gotenberg API - format - """ - if settings.OCR_OUTPUT_TYPE in { - OutputTypeChoices.PDF_A, - OutputTypeChoices.PDF_A2, - }: - return PdfAFormat.A2b - elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A1: # pragma: no cover - self.log.warning( - "Gotenberg does not support PDF/A-1a, choosing PDF/A-2b instead", - ) - return PdfAFormat.A2b - elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A3: # pragma: no cover - return PdfAFormat.A3b - return None - - def get_thumbnail( - self, - document_path: Path, - mime_type: str, - file_name=None, - ) -> Path: - if not self.archive_path: - self.archive_path = self.generate_pdf( - self.parse_file_to_message(document_path), - ) - - return make_thumbnail_from_pdf( - self.archive_path, - self.tempdir, - self.logging_group, - ) - - def extract_metadata(self, document_path: Path, mime_type: str): - result = [] - - try: - mail = self.parse_file_to_message(document_path) - except ParseError as e: - self.log.warning( - f"Error while fetching document metadata for {document_path}: {e}", - ) - return result - - for key, value in mail.headers.items(): - value = ", ".join(i for i in value) - try: - value.encode("utf-8") - except UnicodeEncodeError as e: # pragma: no cover - self.log.debug(f"Skipping header {key}: {e}") - continue - - result.append( - { - "namespace": "", - "prefix": "header", - "key": key, - "value": value, - }, - ) - - result.append( - { - "namespace": "", - "prefix": "", - "key": "attachments", - "value": ", ".join( - f"{attachment.filename}" - f"({naturalsize(attachment.size, binary=True, format='%.2f')})" - for attachment in mail.attachments - ), - }, - ) - - result.append( - { - "namespace": "", - "prefix": "", - "key": "date", - "value": mail.date.strftime("%Y-%m-%d %H:%M:%S %Z"), - }, - ) - - result.sort(key=lambda item: (item["prefix"], item["key"])) - return result - - def parse( - self, - document_path: Path, - mime_type: str, - file_name=None, - mailrule_id: int | None = None, - ) -> None: - """ - Parses the given .eml into formatted text, based on the decoded email. - - """ - - def strip_text(text: str): - """ - Reduces the spacing of the given text string - """ - text = re.sub(r"\s+", " ", text) - text = re.sub(r"(\n *)+", "\n", text) - return text.strip() - - def build_formatted_text(mail_message: MailMessage) -> str: - """ - Constructs a formatted string, based on the given email. Basically tries - to get most of the email content, included front matter, into a nice string - """ - fmt_text = f"Subject: {mail_message.subject}\n\n" - fmt_text += f"From: {mail_message.from_values.full}\n\n" - to_list = [address.full for address in mail_message.to_values] - fmt_text += f"To: {', '.join(to_list)}\n\n" - if mail_message.cc_values: - fmt_text += ( - f"CC: {', '.join(address.full for address in mail.cc_values)}\n\n" - ) - if mail_message.bcc_values: - fmt_text += ( - f"BCC: {', '.join(address.full for address in mail.bcc_values)}\n\n" - ) - if mail_message.attachments: - att = [] - for a in mail.attachments: - attachment_size = naturalsize(a.size, binary=True, format="%.2f") - att.append( - f"{a.filename} ({attachment_size})", - ) - fmt_text += f"Attachments: {', '.join(att)}\n\n" - - if mail.html: - fmt_text += "HTML content: " + strip_text(self.tika_parse(mail.html)) - - fmt_text += f"\n\n{strip_text(mail.text)}" - - return fmt_text - - self.log.debug(f"Parsing file {document_path.name} into an email") - mail = self.parse_file_to_message(document_path) - - self.log.debug("Building formatted text from email") - self.text = build_formatted_text(mail) - - if is_naive(mail.date): - self.date = make_aware(mail.date) - else: - self.date = mail.date - - self.log.debug("Creating a PDF from the email") - if mailrule_id: - rule = MailRule.objects.get(pk=mailrule_id) - self.archive_path = self.generate_pdf(mail, rule.pdf_layout) - else: - self.archive_path = self.generate_pdf(mail) - - @staticmethod - def parse_file_to_message(filepath: Path) -> MailMessage: - """ - Parses the given .eml file into a MailMessage object - """ - try: - with filepath.open("rb") as eml: - parsed = MailMessage.from_bytes(eml.read()) - if parsed.from_values is None: - raise ParseError( - f"Could not parse {filepath}: Missing 'from'", - ) - except Exception as err: - raise ParseError( - f"Could not parse {filepath}: {err}", - ) from err - - return parsed - - def tika_parse(self, html: str): - self.log.info("Sending content to Tika server") - - try: - with TikaClient(tika_url=settings.TIKA_ENDPOINT) as client: - parsed = client.tika.as_text.from_buffer(html, "text/html") - - if parsed.content is not None: - return parsed.content.strip() - return "" - except Exception as err: - raise ParseError( - f"Could not parse content with tika server at " - f"{settings.TIKA_ENDPOINT}: {err}", - ) from err - - def generate_pdf( - self, - mail_message: MailMessage, - pdf_layout: MailRule.PdfLayout | None = None, - ) -> Path: - archive_path = Path(self.tempdir) / "merged.pdf" - - mail_pdf_file = self.generate_pdf_from_mail(mail_message) - - pdf_layout = ( - pdf_layout or settings.EMAIL_PARSE_DEFAULT_LAYOUT - ) # EMAIL_PARSE_DEFAULT_LAYOUT is a MailRule.PdfLayout - - # If no HTML content, create the PDF from the message - # Otherwise, create 2 PDFs and merge them with Gotenberg - if not mail_message.html: - archive_path.write_bytes(mail_pdf_file.read_bytes()) - else: - pdf_of_html_content = self.generate_pdf_from_html( - mail_message.html, - mail_message.attachments, - ) - - self.log.debug("Merging email text and HTML content into single PDF") - - with ( - GotenbergClient( - host=settings.TIKA_GOTENBERG_ENDPOINT, - timeout=settings.CELERY_TASK_TIME_LIMIT, - ) as client, - client.merge.merge() as route, - ): - # Configure requested PDF/A formatting, if any - pdf_a_format = self._settings_to_gotenberg_pdfa() - if pdf_a_format is not None: - route.pdf_format(pdf_a_format) - - match pdf_layout: - case MailRule.PdfLayout.HTML_TEXT: - route.merge([pdf_of_html_content, mail_pdf_file]) - case MailRule.PdfLayout.HTML_ONLY: - route.merge([pdf_of_html_content]) - case MailRule.PdfLayout.TEXT_ONLY: - route.merge([mail_pdf_file]) - case MailRule.PdfLayout.TEXT_HTML | _: - route.merge([mail_pdf_file, pdf_of_html_content]) - - try: - response = route.run() - archive_path.write_bytes(response.content) - except Exception as err: - raise ParseError( - f"Error while merging email HTML into PDF: {err}", - ) from err - - return archive_path - - def mail_to_html(self, mail: MailMessage) -> Path: - """ - Converts the given email into an HTML file, formatted - based on the given template - """ - - def clean_html(text: str) -> str: - """ - Attempts to clean, escape and linkify the given HTML string - """ - if isinstance(text, list): - text = "\n".join([str(e) for e in text]) - if not isinstance(text, str): - text = str(text) - text = escape(text) - text = clean(text) - text = linkify(text, parse_email=True) - text = text.replace("\n", "
") - return text - - data = {} - - data["subject"] = clean_html(mail.subject) - if data["subject"]: - data["subject_label"] = "Subject" - data["from"] = clean_html(mail.from_values.full) - if data["from"]: - data["from_label"] = "From" - data["to"] = clean_html(", ".join(address.full for address in mail.to_values)) - if data["to"]: - data["to_label"] = "To" - data["cc"] = clean_html(", ".join(address.full for address in mail.cc_values)) - if data["cc"]: - data["cc_label"] = "CC" - data["bcc"] = clean_html(", ".join(address.full for address in mail.bcc_values)) - if data["bcc"]: - data["bcc_label"] = "BCC" - - att = [] - for a in mail.attachments: - att.append( - f"{a.filename} ({naturalsize(a.size, binary=True, format='%.2f')})", - ) - data["attachments"] = clean_html(", ".join(att)) - if data["attachments"]: - data["attachments_label"] = "Attachments" - - data["date"] = clean_html( - timezone.localtime(mail.date).strftime("%Y-%m-%d %H:%M"), - ) - data["content"] = clean_html(mail.text.strip()) - - from django.template.loader import render_to_string - - html_file = Path(self.tempdir) / "email_as_html.html" - html_file.write_text(render_to_string("email_msg_template.html", context=data)) - - return html_file - - def generate_pdf_from_mail(self, mail: MailMessage) -> Path: - """ - Creates a PDF based on the given email, using the email's values in a - an HTML template - """ - self.log.info("Converting mail to PDF") - - css_file = Path(__file__).parent / "templates" / "output.css" - email_html_file = self.mail_to_html(mail) - - with ( - GotenbergClient( - host=settings.TIKA_GOTENBERG_ENDPOINT, - timeout=settings.CELERY_TASK_TIME_LIMIT, - ) as client, - client.chromium.html_to_pdf() as route, - ): - # Configure requested PDF/A formatting, if any - pdf_a_format = self._settings_to_gotenberg_pdfa() - if pdf_a_format is not None: - route.pdf_format(pdf_a_format) - - try: - response = ( - route.index(email_html_file) - .resource(css_file) - .margins( - PageMarginsType( - top=Measurement(0.1, MeasurementUnitType.Inches), - bottom=Measurement(0.1, MeasurementUnitType.Inches), - left=Measurement(0.1, MeasurementUnitType.Inches), - right=Measurement(0.1, MeasurementUnitType.Inches), - ), - ) - .size(A4) - .scale(1.0) - .run() - ) - except Exception as err: - raise ParseError( - f"Error while converting email to PDF: {err}", - ) from err - - email_as_pdf_file = Path(self.tempdir) / "email_as_pdf.pdf" - email_as_pdf_file.write_bytes(response.content) - - return email_as_pdf_file - - def generate_pdf_from_html( - self, - orig_html: str, - attachments: list[MailAttachment], - ) -> Path: - """ - Generates a PDF file based on the HTML and attachments of the email - """ - - def clean_html_script(text: str): - compiled_open = re.compile(re.escape(" None: - """ - This parser does not implement additional settings yet - """ - return None diff --git a/src/paperless_mail/serialisers.py b/src/paperless_mail/serialisers.py index d7354e9e4..77c6c70f8 100644 --- a/src/paperless_mail/serialisers.py +++ b/src/paperless_mail/serialisers.py @@ -1,5 +1,8 @@ +from django.utils.translation import gettext as _ from rest_framework import serializers +from rest_framework.exceptions import PermissionDenied +from documents.permissions import has_perms_owner_aware from documents.serialisers import CorrespondentField from documents.serialisers import DocumentTypeField from documents.serialisers import OwnedObjectSerializer @@ -128,6 +131,18 @@ class MailRuleSerializer(OwnedObjectSerializer): return attrs + def validate_account(self, account): + if self.user is not None and has_perms_owner_aware( + self.user, + "change_mailaccount", + account, + ): + return account + + raise PermissionDenied( + _("Insufficient permissions."), + ) + def validate_maximum_age(self, value): if value > 36500: # ~100 years raise serializers.ValidationError("Maximum mail age is unreasonably large.") diff --git a/src/paperless_mail/signals.py b/src/paperless_mail/signals.py deleted file mode 100644 index 4a1d82df6..000000000 --- a/src/paperless_mail/signals.py +++ /dev/null @@ -1,14 +0,0 @@ -def get_parser(*args, **kwargs): - from paperless_mail.parsers import MailDocumentParser - - return MailDocumentParser(*args, **kwargs) - - -def mail_consumer_declaration(sender, **kwargs): - return { - "parser": get_parser, - "weight": 20, - "mime_types": { - "message/rfc822": ".eml", - }, - } diff --git a/src/paperless_mail/templates/email_msg_template.html b/src/paperless_mail/templates/email_msg_template.html index a22666957..9df67e997 100644 --- a/src/paperless_mail/templates/email_msg_template.html +++ b/src/paperless_mail/templates/email_msg_template.html @@ -1,4 +1,3 @@ -{% autoescape off %} @@ -13,36 +12,34 @@
-
{{ date }}
+
{{ date|safe }}
{{ from_label }}
-
{{ from }}
+
{{ from|safe }}
{{ subject_label }}
-
{{ subject }}
+
{{ subject|safe }}
{{ to_label }}
-
{{ to }}
+
{{ to|safe }}
{{ cc_label }}
-
{{ cc }}
+
{{ cc|safe }}
{{ bcc_label }}
-
{{ bcc }}
+
{{ bcc|safe }}
{{ attachments_label }}
-
{{ attachments }}
+
{{ attachments|safe }}
-
{{ content }}
+
{{ content|safe }}
- -{% endautoescape %} diff --git a/src/paperless_mail/tests/conftest.py b/src/paperless_mail/tests/conftest.py index 0742edfa3..b662d46f3 100644 --- a/src/paperless_mail/tests/conftest.py +++ b/src/paperless_mail/tests/conftest.py @@ -1,71 +1,9 @@ from collections.abc import Generator -from pathlib import Path import pytest from paperless_mail.mail import MailAccountHandler from paperless_mail.models import MailAccount -from paperless_mail.parsers import MailDocumentParser - - -@pytest.fixture(scope="session") -def sample_dir() -> Path: - return (Path(__file__).parent / Path("samples")).resolve() - - -@pytest.fixture(scope="session") -def broken_email_file(sample_dir: Path) -> Path: - return sample_dir / "broken.eml" - - -@pytest.fixture(scope="session") -def simple_txt_email_file(sample_dir: Path) -> Path: - return sample_dir / "simple_text.eml" - - -@pytest.fixture(scope="session") -def simple_txt_email_pdf_file(sample_dir: Path) -> Path: - return sample_dir / "simple_text.eml.pdf" - - -@pytest.fixture(scope="session") -def simple_txt_email_thumbnail_file(sample_dir: Path) -> Path: - return sample_dir / "simple_text.eml.pdf.webp" - - -@pytest.fixture(scope="session") -def html_email_file(sample_dir: Path) -> Path: - return sample_dir / "html.eml" - - -@pytest.fixture(scope="session") -def html_email_pdf_file(sample_dir: Path) -> Path: - return sample_dir / "html.eml.pdf" - - -@pytest.fixture(scope="session") -def html_email_thumbnail_file(sample_dir: Path) -> Path: - return sample_dir / "html.eml.pdf.webp" - - -@pytest.fixture(scope="session") -def html_email_html_file(sample_dir: Path) -> Path: - return sample_dir / "html.eml.html" - - -@pytest.fixture(scope="session") -def merged_pdf_first(sample_dir: Path) -> Path: - return sample_dir / "first.pdf" - - -@pytest.fixture(scope="session") -def merged_pdf_second(sample_dir: Path) -> Path: - return sample_dir / "second.pdf" - - -@pytest.fixture() -def mail_parser() -> MailDocumentParser: - return MailDocumentParser(logging_group=None) @pytest.fixture() @@ -89,11 +27,3 @@ def greenmail_mail_account(db: None) -> Generator[MailAccount, None, None]: @pytest.fixture() def mail_account_handler() -> MailAccountHandler: return MailAccountHandler() - - -@pytest.fixture(scope="session") -def nginx_base_url() -> Generator[str, None, None]: - """ - The base URL for the nginx HTTP server we expect to be alive - """ - yield "http://localhost:8080" diff --git a/src/paperless_mail/tests/test_api.py b/src/paperless_mail/tests/test_api.py index ce3668f7a..6cf1f6717 100644 --- a/src/paperless_mail/tests/test_api.py +++ b/src/paperless_mail/tests/test_api.py @@ -632,6 +632,116 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): self.assertEqual(returned_rule1.name, "Updated Name 1") self.assertEqual(returned_rule1.action, MailRule.MailAction.DELETE) + def test_create_mail_rule_forbidden_for_unpermitted_account(self) -> None: + other_user = User.objects.create_user(username="mail-owner") + foreign_account = MailAccount.objects.create( + name="ForeignEmail", + username="username1", + password="password1", + imap_server="server.example.com", + imap_port=443, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + owner=other_user, + ) + + response = self.client.post( + self.ENDPOINT, + data={ + "name": "Rule1", + "account": foreign_account.pk, + "folder": "INBOX", + "filter_from": "from@example.com", + "maximum_age": 30, + "action": MailRule.MailAction.MARK_READ, + "assign_title_from": MailRule.TitleSource.FROM_SUBJECT, + "assign_correspondent_from": MailRule.CorrespondentSource.FROM_NOTHING, + "order": 0, + "attachment_type": MailRule.AttachmentProcessing.ATTACHMENTS_ONLY, + }, + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(MailRule.objects.count(), 0) + + def test_create_mail_rule_allowed_for_granted_account_change_permission( + self, + ) -> None: + other_user = User.objects.create_user(username="mail-owner") + foreign_account = MailAccount.objects.create( + name="ForeignEmail", + username="username1", + password="password1", + imap_server="server.example.com", + imap_port=443, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + owner=other_user, + ) + assign_perm("change_mailaccount", self.user, foreign_account) + + response = self.client.post( + self.ENDPOINT, + data={ + "name": "Rule1", + "account": foreign_account.pk, + "folder": "INBOX", + "filter_from": "from@example.com", + "maximum_age": 30, + "action": MailRule.MailAction.MARK_READ, + "assign_title_from": MailRule.TitleSource.FROM_SUBJECT, + "assign_correspondent_from": MailRule.CorrespondentSource.FROM_NOTHING, + "order": 0, + "attachment_type": MailRule.AttachmentProcessing.ATTACHMENTS_ONLY, + }, + ) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertEqual(MailRule.objects.get().account, foreign_account) + + def test_update_mail_rule_forbidden_for_unpermitted_account(self) -> None: + own_account = MailAccount.objects.create( + name="Email1", + username="username1", + password="password1", + imap_server="server.example.com", + imap_port=443, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + ) + other_user = User.objects.create_user(username="mail-owner") + foreign_account = MailAccount.objects.create( + name="ForeignEmail", + username="username2", + password="password2", + imap_server="server.example.com", + imap_port=443, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + owner=other_user, + ) + rule1 = MailRule.objects.create( + name="Rule1", + account=own_account, + folder="INBOX", + filter_from="from@example.com", + maximum_age=30, + action=MailRule.MailAction.MARK_READ, + assign_title_from=MailRule.TitleSource.FROM_SUBJECT, + assign_correspondent_from=MailRule.CorrespondentSource.FROM_NOTHING, + order=0, + attachment_type=MailRule.AttachmentProcessing.ATTACHMENTS_ONLY, + ) + + response = self.client.patch( + f"{self.ENDPOINT}{rule1.pk}/", + data={"account": foreign_account.pk}, + ) + + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + rule1.refresh_from_db() + self.assertEqual(rule1.account, own_account) + def test_get_mail_rules_owner_aware(self) -> None: """ GIVEN: diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 162a764f2..80a718a46 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -13,6 +13,7 @@ from django.contrib.auth.models import User from django.core.management import call_command from django.db import DatabaseError from django.test import TestCase +from django.test import override_settings from django.utils import timezone from imap_tools import NOT from imap_tools import EmailAddress @@ -1665,7 +1666,7 @@ class TestManagementCommand(TestCase): "paperless_mail.management.commands.mail_fetcher.tasks.process_mail_accounts", ) def test_mail_fetcher(self, m) -> None: - call_command("mail_fetcher") + call_command("mail_fetcher", skip_checks=True) m.assert_called_once() @@ -1846,6 +1847,25 @@ class TestMailAccountTestView(APITestCase): self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.content.decode(), "Unable to connect to server") + @override_settings(EMAIL_ALLOW_INTERNAL_HOSTS=False) + @mock.patch("paperless_mail.mail.resolve_hostname_ips", return_value=["127.0.0.1"]) + def test_mail_account_test_view_blocks_internal_host_when_disabled( + self, + _mock_resolve_hostname_ips, + ) -> None: + data = { + "imap_server": "internal.example", + "imap_port": 993, + "imap_security": MailAccount.ImapSecurity.SSL, + "username": "admin", + "password": "secret", + "account_type": MailAccount.MailAccountType.IMAP, + "is_token": False, + } + response = self.client.post(self.url, data, format="json") + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.content.decode(), "Unable to connect to server") + @mock.patch( "paperless_mail.oauth.PaperlessMailOAuth2Manager.refresh_account_oauth_token", ) diff --git a/src/paperless_mail/tests/test_mail_oauth.py b/src/paperless_mail/tests/test_mail_oauth.py index 1f7033bdd..d94e7947b 100644 --- a/src/paperless_mail/tests/test_mail_oauth.py +++ b/src/paperless_mail/tests/test_mail_oauth.py @@ -1,7 +1,6 @@ from datetime import timedelta from unittest import mock -from django.conf import settings from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.test import TestCase @@ -16,6 +15,13 @@ from paperless_mail.models import MailAccount from paperless_mail.oauth import PaperlessMailOAuth2Manager +@override_settings( + OAUTH_CALLBACK_BASE_URL="http://localhost:8000", + GMAIL_OAUTH_CLIENT_ID="test_gmail_client_id", + GMAIL_OAUTH_CLIENT_SECRET="test_gmail_client_secret", + OUTLOOK_OAUTH_CLIENT_ID="test_outlook_client_id", + OUTLOOK_OAUTH_CLIENT_SECRET="test_outlook_client_secret", +) class TestMailOAuth( TestCase, ): @@ -31,12 +37,6 @@ class TestMailOAuth( self.user.save() self.client.force_login(self.user) self.mail_account_handler = MailAccountHandler() - # Mock settings - settings.OAUTH_CALLBACK_BASE_URL = "http://localhost:8000" - settings.GMAIL_OAUTH_CLIENT_ID = "test_gmail_client_id" - settings.GMAIL_OAUTH_CLIENT_SECRET = "test_gmail_client_secret" - settings.OUTLOOK_OAUTH_CLIENT_ID = "test_outlook_client_id" - settings.OUTLOOK_OAUTH_CLIENT_SECRET = "test_outlook_client_secret" super().setUp() def test_generate_paths(self) -> None: @@ -191,7 +191,10 @@ class TestMailOAuth( ).exists(), ) - self.assertIn("Error getting access token: test_error", cm.output[0]) + self.assertIn( + "Error getting access token from OAuth provider", + cm.output[0], + ) def test_oauth_callback_view_insufficient_permissions(self) -> None: """ diff --git a/src/paperless_mail/views.py b/src/paperless_mail/views.py index b8ac2c485..9e3850cfc 100644 --- a/src/paperless_mail/views.py +++ b/src/paperless_mail/views.py @@ -120,12 +120,12 @@ class MailAccountViewSet(ModelViewSet, PassUserMixin): serializer.validated_data["expiration"] = existing_account.expiration account = MailAccount(**serializer.validated_data) - with get_mailbox( - account.imap_server, - account.imap_port, - account.imap_security, - ) as M: - try: + try: + with get_mailbox( + account.imap_server, + account.imap_port, + account.imap_security, + ) as M: if ( existing_account is not None and account.is_token @@ -138,15 +138,18 @@ class MailAccountViewSet(ModelViewSet, PassUserMixin): existing_account.refresh_from_db() account.password = existing_account.password else: + logger.error( + "Mail account connectivity test failed: Unable to refresh oauth token", + ) raise MailError("Unable to refresh oauth token") mailbox_login(M, account) return Response({"success": True}) - except MailError as e: - logger.error( - f"Mail account {account} test failed: {e}", - ) - return HttpResponseBadRequest("Unable to connect to server") + except MailError: + logger.error( + "Mail account connectivity test failed", + ) + return HttpResponseBadRequest("Unable to connect to server") @action(methods=["post"], detail=True) def process(self, request, pk=None): @@ -218,7 +221,7 @@ class OauthCallbackView(GenericAPIView): if code is None: logger.error( - f"Invalid oauth callback request, code: {code}, scope: {scope}", + "Invalid oauth callback request: missing code", ) return HttpResponseBadRequest("Invalid request, see logs for more detail") @@ -229,7 +232,7 @@ class OauthCallbackView(GenericAPIView): state = request.query_params.get("state", "") if not oauth_manager.validate_state(state): logger.error( - f"Invalid oauth callback request received state: {state}, expected: {oauth_manager.state}", + "Invalid oauth callback request: state validation failed", ) return HttpResponseBadRequest("Invalid request, see logs for more detail") @@ -276,8 +279,8 @@ class OauthCallbackView(GenericAPIView): return HttpResponseRedirect( f"{oauth_manager.oauth_redirect_url}?oauth_success=1&account_id={account.pk}", ) - except GetAccessTokenError as e: - logger.error(f"Error getting access token: {e}") + except GetAccessTokenError: + logger.error("Error getting access token from OAuth provider") return HttpResponseRedirect( f"{oauth_manager.oauth_redirect_url}?oauth_success=0", ) diff --git a/src/paperless_remote/__init__.py b/src/paperless_remote/__init__.py deleted file mode 100644 index 5380ea5ac..000000000 --- a/src/paperless_remote/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# this is here so that django finds the checks. -from paperless_remote.checks import check_remote_parser_configured - -__all__ = ["check_remote_parser_configured"] diff --git a/src/paperless_remote/apps.py b/src/paperless_remote/apps.py deleted file mode 100644 index 1997b0ae9..000000000 --- a/src/paperless_remote/apps.py +++ /dev/null @@ -1,14 +0,0 @@ -from django.apps import AppConfig - -from paperless_remote.signals import remote_consumer_declaration - - -class PaperlessRemoteParserConfig(AppConfig): - name = "paperless_remote" - - def ready(self) -> None: - from documents.signals import document_consumer_declaration - - document_consumer_declaration.connect(remote_consumer_declaration) - - AppConfig.ready(self) diff --git a/src/paperless_remote/checks.py b/src/paperless_remote/checks.py deleted file mode 100644 index b9abb0592..000000000 --- a/src/paperless_remote/checks.py +++ /dev/null @@ -1,17 +0,0 @@ -from django.conf import settings -from django.core.checks import Error -from django.core.checks import register - - -@register() -def check_remote_parser_configured(app_configs, **kwargs): - if settings.REMOTE_OCR_ENGINE == "azureai" and not ( - settings.REMOTE_OCR_ENDPOINT and settings.REMOTE_OCR_API_KEY - ): - return [ - Error( - "Azure AI remote parser requires endpoint and API key to be configured.", - ), - ] - - return [] diff --git a/src/paperless_remote/parsers.py b/src/paperless_remote/parsers.py deleted file mode 100644 index 493b7d7bb..000000000 --- a/src/paperless_remote/parsers.py +++ /dev/null @@ -1,118 +0,0 @@ -from pathlib import Path - -from django.conf import settings - -from paperless_tesseract.parsers import RasterisedDocumentParser - - -class RemoteEngineConfig: - def __init__( - self, - engine: str, - api_key: str | None = None, - endpoint: str | None = None, - ): - self.engine = engine - self.api_key = api_key - self.endpoint = endpoint - - def engine_is_valid(self): - valid = self.engine in ["azureai"] and self.api_key is not None - if self.engine == "azureai": - valid = valid and self.endpoint is not None - return valid - - -class RemoteDocumentParser(RasterisedDocumentParser): - """ - This parser uses a remote OCR engine to parse documents. Currently, it supports Azure AI Vision - as this is the only service that provides a remote OCR API with text-embedded PDF output. - """ - - logging_name = "paperless.parsing.remote" - - def get_settings(self) -> RemoteEngineConfig: - """ - Returns the configuration for the remote OCR engine, loaded from Django settings. - """ - return RemoteEngineConfig( - engine=settings.REMOTE_OCR_ENGINE, - api_key=settings.REMOTE_OCR_API_KEY, - endpoint=settings.REMOTE_OCR_ENDPOINT, - ) - - def supported_mime_types(self): - if self.settings.engine_is_valid(): - return { - "application/pdf": ".pdf", - "image/png": ".png", - "image/jpeg": ".jpg", - "image/tiff": ".tiff", - "image/bmp": ".bmp", - "image/gif": ".gif", - "image/webp": ".webp", - } - else: - return {} - - def azure_ai_vision_parse( - self, - file: Path, - ) -> str | None: - """ - Uses Azure AI Vision to parse the document and return the text content. - It requests a searchable PDF output with embedded text. - The PDF is saved to the archive_path attribute. - Returns the text content extracted from the document. - If the parsing fails, it returns None. - """ - from azure.ai.documentintelligence import DocumentIntelligenceClient - from azure.ai.documentintelligence.models import AnalyzeDocumentRequest - from azure.ai.documentintelligence.models import AnalyzeOutputOption - from azure.ai.documentintelligence.models import DocumentContentFormat - from azure.core.credentials import AzureKeyCredential - - client = DocumentIntelligenceClient( - endpoint=self.settings.endpoint, - credential=AzureKeyCredential(self.settings.api_key), - ) - - try: - with file.open("rb") as f: - analyze_request = AnalyzeDocumentRequest(bytes_source=f.read()) - poller = client.begin_analyze_document( - model_id="prebuilt-read", - body=analyze_request, - output_content_format=DocumentContentFormat.TEXT, - output=[AnalyzeOutputOption.PDF], # request searchable PDF output - content_type="application/json", - ) - - poller.wait() - result_id = poller.details["operation_id"] - result = poller.result() - - # Download the PDF with embedded text - self.archive_path = self.tempdir / "archive.pdf" - with self.archive_path.open("wb") as f: - for chunk in client.get_analyze_result_pdf( - model_id="prebuilt-read", - result_id=result_id, - ): - f.write(chunk) - return result.content - except Exception as e: - self.log.error(f"Azure AI Vision parsing failed: {e}") - finally: - client.close() - - return None - - def parse(self, document_path: Path, mime_type, file_name=None): - if not self.settings.engine_is_valid(): - self.log.warning( - "No valid remote parser engine is configured, content will be empty.", - ) - self.text = "" - elif self.settings.engine == "azureai": - self.text = self.azure_ai_vision_parse(document_path) diff --git a/src/paperless_remote/signals.py b/src/paperless_remote/signals.py deleted file mode 100644 index 81955a479..000000000 --- a/src/paperless_remote/signals.py +++ /dev/null @@ -1,18 +0,0 @@ -def get_parser(*args, **kwargs): - from paperless_remote.parsers import RemoteDocumentParser - - return RemoteDocumentParser(*args, **kwargs) - - -def get_supported_mime_types(): - from paperless_remote.parsers import RemoteDocumentParser - - return RemoteDocumentParser(None).supported_mime_types() - - -def remote_consumer_declaration(sender, **kwargs): - return { - "parser": get_parser, - "weight": 5, - "mime_types": get_supported_mime_types(), - } diff --git a/src/paperless_remote/tests/test_checks.py b/src/paperless_remote/tests/test_checks.py deleted file mode 100644 index 0512fb257..000000000 --- a/src/paperless_remote/tests/test_checks.py +++ /dev/null @@ -1,24 +0,0 @@ -from unittest import TestCase - -from django.test import override_settings - -from paperless_remote import check_remote_parser_configured - - -class TestChecks(TestCase): - @override_settings(REMOTE_OCR_ENGINE=None) - def test_no_engine(self) -> None: - msgs = check_remote_parser_configured(None) - self.assertEqual(len(msgs), 0) - - @override_settings(REMOTE_OCR_ENGINE="azureai") - @override_settings(REMOTE_OCR_API_KEY="somekey") - @override_settings(REMOTE_OCR_ENDPOINT=None) - def test_azure_no_endpoint(self) -> None: - msgs = check_remote_parser_configured(None) - self.assertEqual(len(msgs), 1) - self.assertTrue( - msgs[0].msg.startswith( - "Azure AI remote parser requires endpoint and API key to be configured.", - ), - ) diff --git a/src/paperless_remote/tests/test_parser.py b/src/paperless_remote/tests/test_parser.py deleted file mode 100644 index 0116365f4..000000000 --- a/src/paperless_remote/tests/test_parser.py +++ /dev/null @@ -1,131 +0,0 @@ -import uuid -from pathlib import Path -from unittest import mock - -from django.test import TestCase -from django.test import override_settings - -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin -from paperless_remote.parsers import RemoteDocumentParser -from paperless_remote.signals import get_parser - - -class TestParser(DirectoriesMixin, FileSystemAssertsMixin, TestCase): - SAMPLE_FILES = Path(__file__).resolve().parent / "samples" - - def assertContainsStrings(self, content: str, strings: list[str]) -> None: - # Asserts that all strings appear in content, in the given order. - indices = [] - for s in strings: - if s in content: - indices.append(content.index(s)) - else: - self.fail(f"'{s}' is not in '{content}'") - self.assertListEqual(indices, sorted(indices)) - - @mock.patch("paperless_tesseract.parsers.run_subprocess") - @mock.patch("azure.ai.documentintelligence.DocumentIntelligenceClient") - def test_get_text_with_azure(self, mock_client_cls, mock_subprocess) -> None: - # Arrange mock Azure client - mock_client = mock.Mock() - mock_client_cls.return_value = mock_client - - # Simulate poller result and its `.details` - mock_poller = mock.Mock() - mock_poller.wait.return_value = None - mock_poller.details = {"operation_id": "fake-op-id"} - mock_client.begin_analyze_document.return_value = mock_poller - mock_poller.result.return_value.content = "This is a test document." - - # Return dummy PDF bytes - mock_client.get_analyze_result_pdf.return_value = [ - b"%PDF-", - b"1.7 ", - b"FAKEPDF", - ] - - # Simulate pdftotext by writing dummy text to sidecar file - def fake_run(cmd, *args, **kwargs) -> None: - with Path(cmd[-1]).open("w", encoding="utf-8") as f: - f.write("This is a test document.") - - mock_subprocess.side_effect = fake_run - - with override_settings( - REMOTE_OCR_ENGINE="azureai", - REMOTE_OCR_API_KEY="somekey", - REMOTE_OCR_ENDPOINT="https://endpoint.cognitiveservices.azure.com", - ): - parser = get_parser(uuid.uuid4()) - parser.parse( - self.SAMPLE_FILES / "simple-digital.pdf", - "application/pdf", - ) - - self.assertContainsStrings( - parser.text.strip(), - ["This is a test document."], - ) - - @mock.patch("azure.ai.documentintelligence.DocumentIntelligenceClient") - def test_get_text_with_azure_error_logged_and_returns_none( - self, - mock_client_cls, - ) -> None: - mock_client = mock.Mock() - mock_client.begin_analyze_document.side_effect = RuntimeError("fail") - mock_client_cls.return_value = mock_client - - with override_settings( - REMOTE_OCR_ENGINE="azureai", - REMOTE_OCR_API_KEY="somekey", - REMOTE_OCR_ENDPOINT="https://endpoint.cognitiveservices.azure.com", - ): - parser = get_parser(uuid.uuid4()) - with mock.patch.object(parser.log, "error") as mock_log_error: - parser.parse( - self.SAMPLE_FILES / "simple-digital.pdf", - "application/pdf", - ) - - self.assertIsNone(parser.text) - mock_client.begin_analyze_document.assert_called_once() - mock_client.close.assert_called_once() - mock_log_error.assert_called_once() - self.assertIn( - "Azure AI Vision parsing failed", - mock_log_error.call_args[0][0], - ) - - @override_settings( - REMOTE_OCR_ENGINE="azureai", - REMOTE_OCR_API_KEY="key", - REMOTE_OCR_ENDPOINT="https://endpoint.cognitiveservices.azure.com", - ) - def test_supported_mime_types_valid_config(self) -> None: - parser = RemoteDocumentParser(uuid.uuid4()) - expected_types = { - "application/pdf": ".pdf", - "image/png": ".png", - "image/jpeg": ".jpg", - "image/tiff": ".tiff", - "image/bmp": ".bmp", - "image/gif": ".gif", - "image/webp": ".webp", - } - self.assertEqual(parser.supported_mime_types(), expected_types) - - def test_supported_mime_types_invalid_config(self) -> None: - parser = get_parser(uuid.uuid4()) - self.assertEqual(parser.supported_mime_types(), {}) - - @override_settings( - REMOTE_OCR_ENGINE=None, - REMOTE_OCR_API_KEY=None, - REMOTE_OCR_ENDPOINT=None, - ) - def test_parse_with_invalid_config(self) -> None: - parser = get_parser(uuid.uuid4()) - parser.parse(self.SAMPLE_FILES / "simple-digital.pdf", "application/pdf") - self.assertEqual(parser.text, "") diff --git a/src/paperless_tesseract/__init__.py b/src/paperless_tesseract/__init__.py deleted file mode 100644 index cc0b886aa..000000000 --- a/src/paperless_tesseract/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# this is here so that django finds the checks. -from paperless_tesseract.checks import check_default_language_available -from paperless_tesseract.checks import get_tesseract_langs - -__all__ = ["check_default_language_available", "get_tesseract_langs"] diff --git a/src/paperless_tesseract/apps.py b/src/paperless_tesseract/apps.py deleted file mode 100644 index 8ade88400..000000000 --- a/src/paperless_tesseract/apps.py +++ /dev/null @@ -1,14 +0,0 @@ -from django.apps import AppConfig - -from paperless_tesseract.signals import tesseract_consumer_declaration - - -class PaperlessTesseractConfig(AppConfig): - name = "paperless_tesseract" - - def ready(self) -> None: - from documents.signals import document_consumer_declaration - - document_consumer_declaration.connect(tesseract_consumer_declaration) - - AppConfig.ready(self) diff --git a/src/paperless_tesseract/checks.py b/src/paperless_tesseract/checks.py deleted file mode 100644 index 0d7a1d90d..000000000 --- a/src/paperless_tesseract/checks.py +++ /dev/null @@ -1,52 +0,0 @@ -import shutil -import subprocess - -from django.conf import settings -from django.core.checks import Error -from django.core.checks import Warning -from django.core.checks import register - - -def get_tesseract_langs(): - proc = subprocess.run( - [shutil.which("tesseract"), "--list-langs"], - capture_output=True, - ) - - # Decode bytes to string, split on newlines, trim out the header - proc_lines = proc.stdout.decode("utf8", errors="ignore").strip().split("\n")[1:] - - return [x.strip() for x in proc_lines] - - -@register() -def check_default_language_available(app_configs, **kwargs): - errs = [] - - if not settings.OCR_LANGUAGE: - errs.append( - Warning( - "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE. " - "This means that tesseract will fallback to english.", - ), - ) - return errs - - # binaries_check in paperless will check and report if this doesn't exist - # So skip trying to do anything here and let that handle missing binaries - if shutil.which("tesseract") is not None: - installed_langs = get_tesseract_langs() - - specified_langs = [x.strip() for x in settings.OCR_LANGUAGE.split("+")] - - for lang in specified_langs: - if lang not in installed_langs: - errs.append( - Error( - f"The selected ocr language {lang} is " - f"not installed. Paperless cannot OCR your documents " - f"without it. Please fix PAPERLESS_OCR_LANGUAGE.", - ), - ) - - return errs diff --git a/src/paperless_tesseract/signals.py b/src/paperless_tesseract/signals.py deleted file mode 100644 index e4d8449ed..000000000 --- a/src/paperless_tesseract/signals.py +++ /dev/null @@ -1,21 +0,0 @@ -def get_parser(*args, **kwargs): - from paperless_tesseract.parsers import RasterisedDocumentParser - - return RasterisedDocumentParser(*args, **kwargs) - - -def tesseract_consumer_declaration(sender, **kwargs): - return { - "parser": get_parser, - "weight": 0, - "mime_types": { - "application/pdf": ".pdf", - "image/jpeg": ".jpg", - "image/png": ".png", - "image/tiff": ".tif", - "image/gif": ".gif", - "image/bmp": ".bmp", - "image/webp": ".webp", - "image/heic": ".heic", - }, - } diff --git a/src/paperless_tesseract/tests/__init__.py b/src/paperless_tesseract/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/paperless_tesseract/tests/samples/simple-digital.pdf b/src/paperless_tesseract/tests/samples/simple-digital.pdf deleted file mode 100644 index e450de482..000000000 Binary files a/src/paperless_tesseract/tests/samples/simple-digital.pdf and /dev/null differ diff --git a/src/paperless_tesseract/tests/test_checks.py b/src/paperless_tesseract/tests/test_checks.py deleted file mode 100644 index ab3ba0c16..000000000 --- a/src/paperless_tesseract/tests/test_checks.py +++ /dev/null @@ -1,67 +0,0 @@ -from unittest import mock - -from django.core.checks import ERROR -from django.test import TestCase -from django.test import override_settings - -from paperless_tesseract import check_default_language_available - - -class TestChecks(TestCase): - def test_default_language(self) -> None: - check_default_language_available(None) - - @override_settings(OCR_LANGUAGE="") - def test_no_language(self) -> None: - msgs = check_default_language_available(None) - self.assertEqual(len(msgs), 1) - self.assertTrue( - msgs[0].msg.startswith( - "No OCR language has been specified with PAPERLESS_OCR_LANGUAGE", - ), - ) - - @override_settings(OCR_LANGUAGE="ita") - @mock.patch("paperless_tesseract.checks.get_tesseract_langs") - def test_invalid_language(self, m) -> None: - m.return_value = ["deu", "eng"] - msgs = check_default_language_available(None) - self.assertEqual(len(msgs), 1) - self.assertEqual(msgs[0].level, ERROR) - - @override_settings(OCR_LANGUAGE="chi_sim") - @mock.patch("paperless_tesseract.checks.get_tesseract_langs") - def test_multi_part_language(self, m) -> None: - """ - GIVEN: - - An OCR language which is multi part (ie chi-sim) - - The language is correctly formatted - WHEN: - - Installed packages are checked - THEN: - - No errors are reported - """ - m.return_value = ["chi_sim", "eng"] - - msgs = check_default_language_available(None) - - self.assertEqual(len(msgs), 0) - - @override_settings(OCR_LANGUAGE="chi-sim") - @mock.patch("paperless_tesseract.checks.get_tesseract_langs") - def test_multi_part_language_bad_format(self, m) -> None: - """ - GIVEN: - - An OCR language which is multi part (ie chi-sim) - - The language is correctly NOT formatted - WHEN: - - Installed packages are checked - THEN: - - No errors are reported - """ - m.return_value = ["chi_sim", "eng"] - - msgs = check_default_language_available(None) - - self.assertEqual(len(msgs), 1) - self.assertEqual(msgs[0].level, ERROR) diff --git a/src/paperless_tesseract/tests/test_parser.py b/src/paperless_tesseract/tests/test_parser.py deleted file mode 100644 index e9c05b03e..000000000 --- a/src/paperless_tesseract/tests/test_parser.py +++ /dev/null @@ -1,924 +0,0 @@ -import shutil -import tempfile -import unicodedata -import uuid -from pathlib import Path -from unittest import mock - -from django.test import TestCase -from django.test import override_settings -from ocrmypdf import SubprocessOutputError - -from documents.parsers import ParseError -from documents.parsers import run_convert -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin -from paperless_tesseract.parsers import RasterisedDocumentParser -from paperless_tesseract.parsers import post_process_text - - -class TestParser(DirectoriesMixin, FileSystemAssertsMixin, TestCase): - SAMPLE_FILES = Path(__file__).resolve().parent / "samples" - - def assertContainsStrings(self, content, strings) -> None: - # Asserts that all strings appear in content, in the given order. - indices = [] - for s in strings: - if s in content: - indices.append(content.index(s)) - else: - self.fail(f"'{s}' is not in '{content}'") - self.assertListEqual(indices, sorted(indices)) - - def test_post_process_text(self) -> None: - text_cases = [ - ("simple string", "simple string"), - ("simple newline\n testing string", "simple newline\ntesting string"), - ( - "utf-8 строка с пробелами в конце ", - "utf-8 строка с пробелами в конце", - ), - ] - - for source, result in text_cases: - actual_result = post_process_text(source) - self.assertEqual( - result, - actual_result, - f"strip_exceess_whitespace({source}) != '{result}', but '{actual_result}'", - ) - - def test_get_text_from_pdf(self) -> None: - parser = RasterisedDocumentParser(uuid.uuid4()) - text = parser.extract_text( - None, - self.SAMPLE_FILES / "simple-digital.pdf", - ) - - self.assertContainsStrings(text.strip(), ["This is a test document."]) - - def test_get_page_count(self) -> None: - """ - GIVEN: - - PDF file with a single page - - PDF file with multiple pages - WHEN: - - The number of pages is requested - THEN: - - The method returns 1 as the expected number of pages - - The method returns the correct number of pages (6) - """ - parser = RasterisedDocumentParser(uuid.uuid4()) - page_count = parser.get_page_count( - str(self.SAMPLE_FILES / "simple-digital.pdf"), - "application/pdf", - ) - self.assertEqual(page_count, 1) - - page_count = parser.get_page_count( - str(self.SAMPLE_FILES / "multi-page-mixed.pdf"), - "application/pdf", - ) - self.assertEqual(page_count, 6) - - def test_get_page_count_password_protected(self) -> None: - """ - GIVEN: - - Password protected PDF file - WHEN: - - The number of pages is requested - THEN: - - The method returns None - """ - parser = RasterisedDocumentParser(uuid.uuid4()) - with self.assertLogs("paperless.parsing.tesseract", level="WARNING") as cm: - page_count = parser.get_page_count( - str(self.SAMPLE_FILES / "password-protected.pdf"), - "application/pdf", - ) - self.assertEqual(page_count, None) - self.assertIn("Unable to determine PDF page count", cm.output[0]) - - def test_thumbnail(self) -> None: - parser = RasterisedDocumentParser(uuid.uuid4()) - thumb = parser.get_thumbnail( - str(self.SAMPLE_FILES / "simple-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(thumb) - - @mock.patch("documents.parsers.run_convert") - def test_thumbnail_fallback(self, m) -> None: - def call_convert(input_file, output_file, **kwargs) -> None: - if ".pdf" in str(input_file): - raise ParseError("Does not compute.") - else: - run_convert(input_file=input_file, output_file=output_file, **kwargs) - - m.side_effect = call_convert - - parser = RasterisedDocumentParser(uuid.uuid4()) - thumb = parser.get_thumbnail( - str(self.SAMPLE_FILES / "simple-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(thumb) - - def test_thumbnail_encrypted(self) -> None: - parser = RasterisedDocumentParser(uuid.uuid4()) - thumb = parser.get_thumbnail( - str(self.SAMPLE_FILES / "encrypted.pdf"), - "application/pdf", - ) - self.assertIsFile(thumb) - - def test_get_dpi(self) -> None: - parser = RasterisedDocumentParser(None) - - dpi = parser.get_dpi(str(self.SAMPLE_FILES / "simple-no-dpi.png")) - self.assertEqual(dpi, None) - - dpi = parser.get_dpi(str(self.SAMPLE_FILES / "simple.png")) - self.assertEqual(dpi, 72) - - def test_simple_digital(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "simple-digital.pdf"), - "application/pdf", - ) - - self.assertIsFile(parser.archive_path) - - self.assertContainsStrings(parser.get_text(), ["This is a test document."]) - - def test_with_form(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "with-form.pdf"), - "application/pdf", - ) - - self.assertIsFile(parser.archive_path) - - self.assertContainsStrings( - parser.get_text(), - ["Please enter your name in here:", "This is a PDF document with a form."], - ) - - @override_settings(OCR_MODE="redo") - def test_with_form_error(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "with-form.pdf"), - "application/pdf", - ) - - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text(), - ["Please enter your name in here:", "This is a PDF document with a form."], - ) - - @override_settings(OCR_MODE="skip") - def test_signed(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse(str(self.SAMPLE_FILES / "signed.pdf"), "application/pdf") - - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text(), - [ - "This is a digitally signed PDF, created with Acrobat Pro for the Paperless project to enable", - "automated testing of signed/encrypted PDFs", - ], - ) - - @override_settings(OCR_MODE="skip") - def test_encrypted(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "encrypted.pdf"), - "application/pdf", - ) - - self.assertIsNone(parser.archive_path) - self.assertEqual(parser.get_text(), "") - - @override_settings(OCR_MODE="redo") - def test_with_form_error_notext(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "with-form.pdf"), - "application/pdf", - ) - - self.assertContainsStrings( - parser.get_text(), - ["Please enter your name in here:", "This is a PDF document with a form."], - ) - - @override_settings(OCR_MODE="force") - def test_with_form_force(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "with-form.pdf"), - "application/pdf", - ) - - self.assertContainsStrings( - parser.get_text(), - ["Please enter your name in here:", "This is a PDF document with a form."], - ) - - def test_image_simple(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse(str(self.SAMPLE_FILES / "simple.png"), "image/png") - - self.assertIsFile(parser.archive_path) - - self.assertContainsStrings(parser.get_text(), ["This is a test document."]) - - def test_image_simple_alpha(self) -> None: - parser = RasterisedDocumentParser(None) - - with tempfile.TemporaryDirectory() as tempdir: - # Copy sample file to temp directory, as the parsing changes the file - # and this makes it modified to Git - sample_file = self.SAMPLE_FILES / "simple-alpha.png" - dest_file = Path(tempdir) / "simple-alpha.png" - shutil.copy(sample_file, dest_file) - - parser.parse(str(dest_file), "image/png") - - self.assertIsFile(parser.archive_path) - - self.assertContainsStrings(parser.get_text(), ["This is a test document."]) - - def test_image_calc_a4_dpi(self) -> None: - parser = RasterisedDocumentParser(None) - - dpi = parser.calculate_a4_dpi( - str(self.SAMPLE_FILES / "simple-no-dpi.png"), - ) - - self.assertEqual(dpi, 62) - - @mock.patch("paperless_tesseract.parsers.RasterisedDocumentParser.calculate_a4_dpi") - def test_image_dpi_fail(self, m) -> None: - m.return_value = None - parser = RasterisedDocumentParser(None) - - def f() -> None: - parser.parse( - str(self.SAMPLE_FILES / "simple-no-dpi.png"), - "image/png", - ) - - self.assertRaises(ParseError, f) - - @override_settings(OCR_IMAGE_DPI=72, MAX_IMAGE_PIXELS=0) - def test_image_no_dpi_default(self) -> None: - parser = RasterisedDocumentParser(None) - - parser.parse(str(self.SAMPLE_FILES / "simple-no-dpi.png"), "image/png") - - self.assertIsFile(parser.archive_path) - - self.assertContainsStrings( - parser.get_text().lower(), - ["this is a test document."], - ) - - def test_multi_page(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_PAGES=2, OCR_MODE="skip") - def test_multi_page_pages_skip(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_PAGES=2, OCR_MODE="redo") - def test_multi_page_pages_redo(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_PAGES=2, OCR_MODE="force") - def test_multi_page_pages_force(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_MODE="skip") - def test_multi_page_analog_pages_skip(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_PAGES=2, OCR_MODE="redo") - def test_multi_page_analog_pages_redo(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR of only pages 1 and 2 requested - - OCR mode set to redo - WHEN: - - Document is parsed - THEN: - - Text of page 1 and 2 extracted - - An archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings(parser.get_text().lower(), ["page 1", "page 2"]) - self.assertNotIn("page 3", parser.get_text().lower()) - - @override_settings(OCR_PAGES=1, OCR_MODE="force") - def test_multi_page_analog_pages_force(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR of only page 1 requested - - OCR mode set to force - WHEN: - - Document is parsed - THEN: - - Only text of page 1 is extracted - - An archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings(parser.get_text().lower(), ["page 1"]) - self.assertNotIn("page 2", parser.get_text().lower()) - self.assertNotIn("page 3", parser.get_text().lower()) - - @override_settings(OCR_MODE="skip_noarchive") - def test_skip_noarchive_withtext(self) -> None: - """ - GIVEN: - - File with existing text layer - - OCR mode set to skip_noarchive - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - No archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_MODE="skip_noarchive") - def test_skip_noarchive_notext(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR mode set to skip_noarchive - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - An archive file is created with the OCRd text - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - self.assertIsNotNone(parser.archive_path) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="never") - def test_skip_archive_never_withtext(self) -> None: - """ - GIVEN: - - File with existing text layer - - OCR_SKIP_ARCHIVE_FILE set to never - WHEN: - - Document is parsed - THEN: - - Text from text layer is extracted - - Archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsNotNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="never") - def test_skip_archive_never_withimages(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR_SKIP_ARCHIVE_FILE set to never - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - Archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsNotNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="with_text") - def test_skip_archive_withtext_withtext(self) -> None: - """ - GIVEN: - - File with existing text layer - - OCR_SKIP_ARCHIVE_FILE set to with_text - WHEN: - - Document is parsed - THEN: - - Text from text layer is extracted - - No archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="with_text") - def test_skip_archive_withtext_withimages(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR_SKIP_ARCHIVE_FILE set to with_text - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - Archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsNotNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="always") - def test_skip_archive_always_withtext(self) -> None: - """ - GIVEN: - - File with existing text layer - - OCR_SKIP_ARCHIVE_FILE set to always - WHEN: - - Document is parsed - THEN: - - Text from text layer is extracted - - No archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-digital.pdf"), - "application/pdf", - ) - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_SKIP_ARCHIVE_FILE="always") - def test_skip_archive_always_withimages(self) -> None: - """ - GIVEN: - - File with text contained in images but no text layer - - OCR_SKIP_ARCHIVE_FILE set to always - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - No archive file is created - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.pdf"), - "application/pdf", - ) - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - @override_settings(OCR_MODE="skip") - def test_multi_page_mixed(self) -> None: - """ - GIVEN: - - File with some text contained in images and some in text layer - - OCR mode set to skip - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - An archive file is created with the OCRd text and the original text - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-mixed.pdf"), - "application/pdf", - ) - self.assertIsNotNone(parser.archive_path) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3", "page 4", "page 5", "page 6"], - ) - - with (parser.tempdir / "sidecar.txt").open() as f: - sidecar = f.read() - - self.assertIn("[OCR skipped on page(s) 4-6]", sidecar) - - @override_settings(OCR_MODE="redo") - def test_single_page_mixed(self) -> None: - """ - GIVEN: - - File with some text contained in images and some in text layer - - Text and images are mixed on the same page - - OCR mode set to redo - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - Full content of the file is parsed (not just the image text) - - An archive file is created with the OCRd text and the original text - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "single-page-mixed.pdf"), - "application/pdf", - ) - self.assertIsNotNone(parser.archive_path) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - [ - "this is some normal text, present on page 1 of the document.", - "this is some text, but in an image, also on page 1.", - "this is further text on page 1.", - ], - ) - - with (parser.tempdir / "sidecar.txt").open() as f: - sidecar = f.read().lower() - - self.assertIn("this is some text, but in an image, also on page 1.", sidecar) - self.assertNotIn( - "this is some normal text, present on page 1 of the document.", - sidecar, - ) - - @override_settings(OCR_MODE="skip_noarchive") - def test_multi_page_mixed_no_archive(self) -> None: - """ - GIVEN: - - File with some text contained in images and some in text layer - - OCR mode set to skip_noarchive - WHEN: - - Document is parsed - THEN: - - Text from images is extracted - - No archive file is created as original file contains text - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-mixed.pdf"), - "application/pdf", - ) - self.assertIsNone(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 4", "page 5", "page 6"], - ) - - @override_settings(OCR_MODE="skip", OCR_ROTATE_PAGES=True) - def test_rotate(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "rotated.pdf"), "application/pdf") - self.assertContainsStrings( - parser.get_text(), - [ - "This is the text that appears on the first page. It’s a lot of text.", - "Even if the pages are rotated, OCRmyPDF still gets the job done.", - "This is a really weird file with lots of nonsense text.", - "If you read this, it’s your own fault. Also check your screen orientation.", - ], - ) - - def test_multi_page_tiff(self) -> None: - """ - GIVEN: - - Multi-page TIFF image - WHEN: - - Image is parsed - THEN: - - Text from all pages extracted - """ - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "multi-page-images.tiff"), - "image/tiff", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - def test_multi_page_tiff_alpha(self) -> None: - """ - GIVEN: - - Multi-page TIFF image - - Image include an alpha channel - WHEN: - - Image is parsed - THEN: - - Text from all pages extracted - """ - parser = RasterisedDocumentParser(None) - sample_file = self.SAMPLE_FILES / "multi-page-images-alpha.tiff" - with tempfile.NamedTemporaryFile() as tmp_file: - shutil.copy(sample_file, tmp_file.name) - parser.parse( - tmp_file.name, - "image/tiff", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - def test_multi_page_tiff_alpha_srgb(self) -> None: - """ - GIVEN: - - Multi-page TIFF image - - Image include an alpha channel - - Image is srgb colorspace - WHEN: - - Image is parsed - THEN: - - Text from all pages extracted - """ - parser = RasterisedDocumentParser(None) - sample_file = str( - self.SAMPLE_FILES / "multi-page-images-alpha-rgb.tiff", - ) - with tempfile.NamedTemporaryFile() as tmp_file: - shutil.copy(sample_file, tmp_file.name) - parser.parse( - tmp_file.name, - "image/tiff", - ) - self.assertIsFile(parser.archive_path) - self.assertContainsStrings( - parser.get_text().lower(), - ["page 1", "page 2", "page 3"], - ) - - def test_ocrmypdf_parameters(self) -> None: - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters( - input_file="input.pdf", - output_file="output.pdf", - sidecar_file="sidecar.txt", - mime_type="application/pdf", - safe_fallback=False, - ) - - self.assertEqual(params["input_file"], "input.pdf") - self.assertEqual(params["output_file"], "output.pdf") - self.assertEqual(params["sidecar"], "sidecar.txt") - - with override_settings(OCR_CLEAN="none"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertNotIn("clean", params) - self.assertNotIn("clean_final", params) - - with override_settings(OCR_CLEAN="clean"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertTrue(params["clean"]) - self.assertNotIn("clean_final", params) - - with override_settings(OCR_CLEAN="clean-final", OCR_MODE="skip"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertTrue(params["clean_final"]) - self.assertNotIn("clean", params) - - with override_settings(OCR_CLEAN="clean-final", OCR_MODE="redo"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertTrue(params["clean"]) - self.assertNotIn("clean_final", params) - - with override_settings(OCR_DESKEW=True, OCR_MODE="skip"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertTrue(params["deskew"]) - - with override_settings(OCR_DESKEW=True, OCR_MODE="redo"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertNotIn("deskew", params) - - with override_settings(OCR_DESKEW=False, OCR_MODE="skip"): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertNotIn("deskew", params) - - with override_settings(OCR_MAX_IMAGE_PIXELS=1_000_001.0): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertIn("max_image_mpixels", params) - self.assertAlmostEqual(params["max_image_mpixels"], 1, places=4) - - with override_settings(OCR_MAX_IMAGE_PIXELS=-1_000_001.0): - parser = RasterisedDocumentParser(None) - params = parser.construct_ocrmypdf_parameters("", "", "", "") - self.assertNotIn("max_image_mpixels", params) - - def test_rtl_language_detection(self) -> None: - """ - GIVEN: - - File with text in an RTL language - WHEN: - - Document is parsed - THEN: - - Text from the document is extracted - """ - parser = RasterisedDocumentParser(None) - - parser.parse( - str(self.SAMPLE_FILES / "rtl-test.pdf"), - "application/pdf", - ) - - # OCR output for RTL text varies across platforms/versions due to - # bidi controls and presentation forms; normalize before assertion. - normalized_text = "".join( - char - for char in unicodedata.normalize("NFKC", parser.get_text()) - if unicodedata.category(char) != "Cf" and not char.isspace() - ) - - self.assertIn("ةرازو", normalized_text) - self.assertTrue( - any(token in normalized_text for token in ("ةیلخادلا", "الاخليد")), - ) - - @mock.patch("ocrmypdf.ocr") - def test_gs_rendering_error(self, m) -> None: - m.side_effect = SubprocessOutputError("Ghostscript PDF/A rendering failed") - parser = RasterisedDocumentParser(None) - - self.assertRaises( - ParseError, - parser.parse, - str(self.SAMPLE_FILES / "simple-digital.pdf"), - "application/pdf", - ) - - -class TestParserFileTypes(DirectoriesMixin, FileSystemAssertsMixin, TestCase): - SAMPLE_FILES = Path(__file__).parent / "samples" - - def test_bmp(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "simple.bmp"), "image/bmp") - self.assertIsFile(parser.archive_path) - self.assertIn("this is a test document", parser.get_text().lower()) - - def test_jpg(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "simple.jpg"), "image/jpeg") - self.assertIsFile(parser.archive_path) - self.assertIn("this is a test document", parser.get_text().lower()) - - def test_heic(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "simple.heic"), "image/heic") - self.assertIsFile(parser.archive_path) - self.assertIn("pizza", parser.get_text().lower()) - - @override_settings(OCR_IMAGE_DPI=200) - def test_gif(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "simple.gif"), "image/gif") - self.assertIsFile(parser.archive_path) - self.assertIn("this is a test document", parser.get_text().lower()) - - def test_tiff(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse(str(self.SAMPLE_FILES / "simple.tif"), "image/tiff") - self.assertIsFile(parser.archive_path) - self.assertIn("this is a test document", parser.get_text().lower()) - - @override_settings(OCR_IMAGE_DPI=72) - def test_webp(self) -> None: - parser = RasterisedDocumentParser(None) - parser.parse( - str(self.SAMPLE_FILES / "document.webp"), - "image/webp", - ) - self.assertIsFile(parser.archive_path) - # Older tesseracts consistently mangle the space between "a webp", - # tesseract 5.3.0 seems to do a better job, so we're accepting both - self.assertRegex( - parser.get_text().lower(), - r"this is a ?webp document, created 11/14/2022.", - ) diff --git a/src/paperless_text/__init__.py b/src/paperless_text/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/paperless_text/apps.py b/src/paperless_text/apps.py deleted file mode 100644 index 619d71886..000000000 --- a/src/paperless_text/apps.py +++ /dev/null @@ -1,14 +0,0 @@ -from django.apps import AppConfig - -from paperless_text.signals import text_consumer_declaration - - -class PaperlessTextConfig(AppConfig): - name = "paperless_text" - - def ready(self) -> None: - from documents.signals import document_consumer_declaration - - document_consumer_declaration.connect(text_consumer_declaration) - - AppConfig.ready(self) diff --git a/src/paperless_text/signals.py b/src/paperless_text/signals.py deleted file mode 100644 index cf74d1c0e..000000000 --- a/src/paperless_text/signals.py +++ /dev/null @@ -1,22 +0,0 @@ -def get_parser(*args, **kwargs): - from paperless.parsers.text import TextDocumentParser - - # The new TextDocumentParser does not accept the legacy logging_group / - # progress_callback kwargs injected by the old signal-based consumer. - # These are dropped here; Phase 4 will replace this signal path with the - # new ParserRegistry so the shim can be removed at that point. - kwargs.pop("logging_group", None) - kwargs.pop("progress_callback", None) - return TextDocumentParser() - - -def text_consumer_declaration(sender, **kwargs): - return { - "parser": get_parser, - "weight": 10, - "mime_types": { - "text/plain": ".txt", - "text/csv": ".csv", - "application/csv": ".csv", - }, - } diff --git a/src/paperless_text/tests/__init__.py b/src/paperless_text/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/paperless_tika/__init__.py b/src/paperless_tika/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/paperless_tika/apps.py b/src/paperless_tika/apps.py deleted file mode 100644 index 714a05188..000000000 --- a/src/paperless_tika/apps.py +++ /dev/null @@ -1,15 +0,0 @@ -from django.apps import AppConfig -from django.conf import settings - -from paperless_tika.signals import tika_consumer_declaration - - -class PaperlessTikaConfig(AppConfig): - name = "paperless_tika" - - def ready(self) -> None: - from documents.signals import document_consumer_declaration - - if settings.TIKA_ENABLED: - document_consumer_declaration.connect(tika_consumer_declaration) - AppConfig.ready(self) diff --git a/src/paperless_tika/parsers.py b/src/paperless_tika/parsers.py deleted file mode 100644 index 22a5bc1c6..000000000 --- a/src/paperless_tika/parsers.py +++ /dev/null @@ -1,136 +0,0 @@ -from pathlib import Path - -import httpx -from django.conf import settings -from django.utils import timezone -from gotenberg_client import GotenbergClient -from gotenberg_client.options import PdfAFormat -from tika_client import TikaClient - -from documents.parsers import DocumentParser -from documents.parsers import ParseError -from documents.parsers import make_thumbnail_from_pdf -from paperless.config import OutputTypeConfig -from paperless.models import OutputTypeChoices - - -class TikaDocumentParser(DocumentParser): - """ - This parser sends documents to a local tika server - """ - - logging_name = "paperless.parsing.tika" - - def get_thumbnail(self, document_path, mime_type, file_name=None): - if not self.archive_path: - self.archive_path = self.convert_to_pdf(document_path, file_name) - - return make_thumbnail_from_pdf( - self.archive_path, - self.tempdir, - self.logging_group, - ) - - def extract_metadata(self, document_path, mime_type): - try: - with TikaClient( - tika_url=settings.TIKA_ENDPOINT, - timeout=settings.CELERY_TASK_TIME_LIMIT, - ) as client: - parsed = client.metadata.from_file(document_path, mime_type) - return [ - { - "namespace": "", - "prefix": "", - "key": key, - "value": parsed.data[key], - } - for key in parsed.data - ] - except Exception as e: - self.log.warning( - f"Error while fetching document metadata for {document_path}: {e}", - ) - return [] - - def parse(self, document_path: Path, mime_type: str, file_name=None) -> None: - self.log.info(f"Sending {document_path} to Tika server") - - try: - with TikaClient( - tika_url=settings.TIKA_ENDPOINT, - timeout=settings.CELERY_TASK_TIME_LIMIT, - ) as client: - try: - parsed = client.tika.as_text.from_file(document_path, mime_type) - except httpx.HTTPStatusError as err: - # Workaround https://issues.apache.org/jira/browse/TIKA-4110 - # Tika fails with some files as multi-part form data - if err.response.status_code == httpx.codes.INTERNAL_SERVER_ERROR: - parsed = client.tika.as_text.from_buffer( - document_path.read_bytes(), - mime_type, - ) - else: # pragma: no cover - raise - except Exception as err: - raise ParseError( - f"Could not parse {document_path} with tika server at " - f"{settings.TIKA_ENDPOINT}: {err}", - ) from err - - self.text = parsed.content - if self.text is not None: - self.text = self.text.strip() - - self.date = parsed.created - if self.date is not None and timezone.is_naive(self.date): - self.date = timezone.make_aware(self.date) - - self.archive_path = self.convert_to_pdf(document_path, file_name) - - def convert_to_pdf(self, document_path: Path, file_name): - pdf_path = Path(self.tempdir) / "convert.pdf" - - self.log.info(f"Converting {document_path} to PDF as {pdf_path}") - - with ( - GotenbergClient( - host=settings.TIKA_GOTENBERG_ENDPOINT, - timeout=settings.CELERY_TASK_TIME_LIMIT, - ) as client, - client.libre_office.to_pdf() as route, - ): - # Set the output format of the resulting PDF - if settings.OCR_OUTPUT_TYPE in { - OutputTypeChoices.PDF_A, - OutputTypeChoices.PDF_A2, - }: - route.pdf_format(PdfAFormat.A2b) - elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A1: - self.log.warning( - "Gotenberg does not support PDF/A-1a, choosing PDF/A-2b instead", - ) - route.pdf_format(PdfAFormat.A2b) - elif settings.OCR_OUTPUT_TYPE == OutputTypeChoices.PDF_A3: - route.pdf_format(PdfAFormat.A3b) - - route.convert(document_path) - - try: - response = route.run() - - pdf_path.write_bytes(response.content) - - return pdf_path - - except Exception as err: - raise ParseError( - f"Error while converting document to PDF: {err}", - ) from err - - def get_settings(self) -> OutputTypeConfig: - """ - This parser only uses the PDF output type configuration currently - """ - return OutputTypeConfig() diff --git a/src/paperless_tika/signals.py b/src/paperless_tika/signals.py deleted file mode 100644 index 2b7495e35..000000000 --- a/src/paperless_tika/signals.py +++ /dev/null @@ -1,25 +0,0 @@ -def get_parser(*args, **kwargs): - from paperless_tika.parsers import TikaDocumentParser - - return TikaDocumentParser(*args, **kwargs) - - -def tika_consumer_declaration(sender, **kwargs): - return { - "parser": get_parser, - "weight": 10, - "mime_types": { - "application/msword": ".doc", - "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx", - "application/vnd.ms-excel": ".xls", - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx", - "application/vnd.ms-powerpoint": ".ppt", - "application/vnd.openxmlformats-officedocument.presentationml.presentation": ".pptx", - "application/vnd.openxmlformats-officedocument.presentationml.slideshow": ".ppsx", - "application/vnd.oasis.opendocument.presentation": ".odp", - "application/vnd.oasis.opendocument.spreadsheet": ".ods", - "application/vnd.oasis.opendocument.text": ".odt", - "application/vnd.oasis.opendocument.graphics": ".odg", - "text/rtf": ".rtf", - }, - } diff --git a/src/paperless_tika/tests/__init__.py b/src/paperless_tika/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/paperless_tika/tests/conftest.py b/src/paperless_tika/tests/conftest.py deleted file mode 100644 index 5a54dae95..000000000 --- a/src/paperless_tika/tests/conftest.py +++ /dev/null @@ -1,41 +0,0 @@ -from collections.abc import Generator -from pathlib import Path - -import pytest - -from paperless_tika.parsers import TikaDocumentParser - - -@pytest.fixture() -def tika_parser() -> Generator[TikaDocumentParser, None, None]: - try: - parser = TikaDocumentParser(logging_group=None) - yield parser - finally: - # TODO(stumpylog): Cleanup once all parsers are handled - parser.cleanup() - - -@pytest.fixture(scope="session") -def sample_dir() -> Path: - return (Path(__file__).parent / Path("samples")).resolve() - - -@pytest.fixture(scope="session") -def sample_odt_file(sample_dir: Path) -> Path: - return sample_dir / "sample.odt" - - -@pytest.fixture(scope="session") -def sample_docx_file(sample_dir: Path) -> Path: - return sample_dir / "sample.docx" - - -@pytest.fixture(scope="session") -def sample_doc_file(sample_dir: Path) -> Path: - return sample_dir / "sample.doc" - - -@pytest.fixture(scope="session") -def sample_broken_odt(sample_dir: Path) -> Path: - return sample_dir / "multi-part-broken.odt" diff --git a/uv.lock b/uv.lock index 521c0af5c..180448efe 100644 --- a/uv.lock +++ b/uv.lock @@ -25,7 +25,7 @@ wheels = [ [[package]] name = "aiohttp" -version = "3.13.3" +version = "3.13.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -36,83 +36,83 @@ dependencies = [ { name = "propcache", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "yarl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload-time = "2026-01-03T17:33:05.204Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/4a/064321452809dae953c1ed6e017504e72551a26b6f5708a5a80e4bf556ff/aiohttp-3.13.4.tar.gz", hash = "sha256:d97a6d09c66087890c2ab5d49069e1e570583f7ac0314ecf98294c1b6aaebd38", size = 7859748, upload-time = "2026-03-28T17:19:40.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/4c/a164164834f03924d9a29dc3acd9e7ee58f95857e0b467f6d04298594ebb/aiohttp-3.13.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b", size = 746051, upload-time = "2026-01-03T17:29:43.287Z" }, - { url = "https://files.pythonhosted.org/packages/82/71/d5c31390d18d4f58115037c432b7e0348c60f6f53b727cad33172144a112/aiohttp-3.13.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64", size = 499234, upload-time = "2026-01-03T17:29:44.822Z" }, - { url = "https://files.pythonhosted.org/packages/0e/c9/741f8ac91e14b1d2e7100690425a5b2b919a87a5075406582991fb7de920/aiohttp-3.13.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea", size = 494979, upload-time = "2026-01-03T17:29:46.405Z" }, - { url = "https://files.pythonhosted.org/packages/75/b5/31d4d2e802dfd59f74ed47eba48869c1c21552c586d5e81a9d0d5c2ad640/aiohttp-3.13.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a", size = 1748297, upload-time = "2026-01-03T17:29:48.083Z" }, - { url = "https://files.pythonhosted.org/packages/1a/3e/eefad0ad42959f226bb79664826883f2687d602a9ae2941a18e0484a74d3/aiohttp-3.13.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540", size = 1707172, upload-time = "2026-01-03T17:29:49.648Z" }, - { url = "https://files.pythonhosted.org/packages/c5/3a/54a64299fac2891c346cdcf2aa6803f994a2e4beeaf2e5a09dcc54acc842/aiohttp-3.13.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b", size = 1805405, upload-time = "2026-01-03T17:29:51.244Z" }, - { url = "https://files.pythonhosted.org/packages/6c/70/ddc1b7169cf64075e864f64595a14b147a895a868394a48f6a8031979038/aiohttp-3.13.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3", size = 1899449, upload-time = "2026-01-03T17:29:53.938Z" }, - { url = "https://files.pythonhosted.org/packages/a1/7e/6815aab7d3a56610891c76ef79095677b8b5be6646aaf00f69b221765021/aiohttp-3.13.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1", size = 1748444, upload-time = "2026-01-03T17:29:55.484Z" }, - { url = "https://files.pythonhosted.org/packages/6b/f2/073b145c4100da5511f457dc0f7558e99b2987cf72600d42b559db856fbc/aiohttp-3.13.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3", size = 1606038, upload-time = "2026-01-03T17:29:57.179Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c1/778d011920cae03ae01424ec202c513dc69243cf2db303965615b81deeea/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440", size = 1724156, upload-time = "2026-01-03T17:29:58.914Z" }, - { url = "https://files.pythonhosted.org/packages/0e/cb/3419eabf4ec1e9ec6f242c32b689248365a1cf621891f6f0386632525494/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7", size = 1722340, upload-time = "2026-01-03T17:30:01.962Z" }, - { url = "https://files.pythonhosted.org/packages/7a/e5/76cf77bdbc435bf233c1f114edad39ed4177ccbfab7c329482b179cff4f4/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c", size = 1783041, upload-time = "2026-01-03T17:30:03.609Z" }, - { url = "https://files.pythonhosted.org/packages/9d/d4/dd1ca234c794fd29c057ce8c0566b8ef7fd6a51069de5f06fa84b9a1971c/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51", size = 1596024, upload-time = "2026-01-03T17:30:05.132Z" }, - { url = "https://files.pythonhosted.org/packages/55/58/4345b5f26661a6180afa686c473620c30a66afdf120ed3dd545bbc809e85/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4", size = 1804590, upload-time = "2026-01-03T17:30:07.135Z" }, - { url = "https://files.pythonhosted.org/packages/7b/06/05950619af6c2df7e0a431d889ba2813c9f0129cec76f663e547a5ad56f2/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29", size = 1740355, upload-time = "2026-01-03T17:30:09.083Z" }, - { url = "https://files.pythonhosted.org/packages/a0/be/4fc11f202955a69e0db803a12a062b8379c970c7c84f4882b6da17337cc1/aiohttp-3.13.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c", size = 739732, upload-time = "2026-01-03T17:30:14.23Z" }, - { url = "https://files.pythonhosted.org/packages/97/2c/621d5b851f94fa0bb7430d6089b3aa970a9d9b75196bc93bb624b0db237a/aiohttp-3.13.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168", size = 494293, upload-time = "2026-01-03T17:30:15.96Z" }, - { url = "https://files.pythonhosted.org/packages/5d/43/4be01406b78e1be8320bb8316dc9c42dbab553d281c40364e0f862d5661c/aiohttp-3.13.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d", size = 493533, upload-time = "2026-01-03T17:30:17.431Z" }, - { url = "https://files.pythonhosted.org/packages/8d/a8/5a35dc56a06a2c90d4742cbf35294396907027f80eea696637945a106f25/aiohttp-3.13.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29", size = 1737839, upload-time = "2026-01-03T17:30:19.422Z" }, - { url = "https://files.pythonhosted.org/packages/bf/62/4b9eeb331da56530bf2e198a297e5303e1c1ebdceeb00fe9b568a65c5a0c/aiohttp-3.13.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3", size = 1703932, upload-time = "2026-01-03T17:30:21.756Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f6/af16887b5d419e6a367095994c0b1332d154f647e7dc2bd50e61876e8e3d/aiohttp-3.13.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d", size = 1771906, upload-time = "2026-01-03T17:30:23.932Z" }, - { url = "https://files.pythonhosted.org/packages/ce/83/397c634b1bcc24292fa1e0c7822800f9f6569e32934bdeef09dae7992dfb/aiohttp-3.13.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463", size = 1871020, upload-time = "2026-01-03T17:30:26Z" }, - { url = "https://files.pythonhosted.org/packages/86/f6/a62cbbf13f0ac80a70f71b1672feba90fdb21fd7abd8dbf25c0105fb6fa3/aiohttp-3.13.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc", size = 1755181, upload-time = "2026-01-03T17:30:27.554Z" }, - { url = "https://files.pythonhosted.org/packages/0a/87/20a35ad487efdd3fba93d5843efdfaa62d2f1479eaafa7453398a44faf13/aiohttp-3.13.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf", size = 1561794, upload-time = "2026-01-03T17:30:29.254Z" }, - { url = "https://files.pythonhosted.org/packages/de/95/8fd69a66682012f6716e1bc09ef8a1a2a91922c5725cb904689f112309c4/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033", size = 1697900, upload-time = "2026-01-03T17:30:31.033Z" }, - { url = "https://files.pythonhosted.org/packages/e5/66/7b94b3b5ba70e955ff597672dad1691333080e37f50280178967aff68657/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f", size = 1728239, upload-time = "2026-01-03T17:30:32.703Z" }, - { url = "https://files.pythonhosted.org/packages/47/71/6f72f77f9f7d74719692ab65a2a0252584bf8d5f301e2ecb4c0da734530a/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679", size = 1740527, upload-time = "2026-01-03T17:30:34.695Z" }, - { url = "https://files.pythonhosted.org/packages/fa/b4/75ec16cbbd5c01bdaf4a05b19e103e78d7ce1ef7c80867eb0ace42ff4488/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423", size = 1554489, upload-time = "2026-01-03T17:30:36.864Z" }, - { url = "https://files.pythonhosted.org/packages/52/8f/bc518c0eea29f8406dcf7ed1f96c9b48e3bc3995a96159b3fc11f9e08321/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce", size = 1767852, upload-time = "2026-01-03T17:30:39.433Z" }, - { url = "https://files.pythonhosted.org/packages/9d/f2/a07a75173124f31f11ea6f863dc44e6f09afe2bca45dd4e64979490deab1/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a", size = 1722379, upload-time = "2026-01-03T17:30:41.081Z" }, - { url = "https://files.pythonhosted.org/packages/97/8a/12ca489246ca1faaf5432844adbfce7ff2cc4997733e0af120869345643a/aiohttp-3.13.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c", size = 734190, upload-time = "2026-01-03T17:30:45.832Z" }, - { url = "https://files.pythonhosted.org/packages/32/08/de43984c74ed1fca5c014808963cc83cb00d7bb06af228f132d33862ca76/aiohttp-3.13.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9", size = 491783, upload-time = "2026-01-03T17:30:47.466Z" }, - { url = "https://files.pythonhosted.org/packages/17/f8/8dd2cf6112a5a76f81f81a5130c57ca829d101ad583ce57f889179accdda/aiohttp-3.13.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3", size = 490704, upload-time = "2026-01-03T17:30:49.373Z" }, - { url = "https://files.pythonhosted.org/packages/6d/40/a46b03ca03936f832bc7eaa47cfbb1ad012ba1be4790122ee4f4f8cba074/aiohttp-3.13.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf", size = 1720652, upload-time = "2026-01-03T17:30:50.974Z" }, - { url = "https://files.pythonhosted.org/packages/f7/7e/917fe18e3607af92657e4285498f500dca797ff8c918bd7d90b05abf6c2a/aiohttp-3.13.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6", size = 1692014, upload-time = "2026-01-03T17:30:52.729Z" }, - { url = "https://files.pythonhosted.org/packages/71/b6/cefa4cbc00d315d68973b671cf105b21a609c12b82d52e5d0c9ae61d2a09/aiohttp-3.13.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d", size = 1759777, upload-time = "2026-01-03T17:30:54.537Z" }, - { url = "https://files.pythonhosted.org/packages/fb/e3/e06ee07b45e59e6d81498b591fc589629be1553abb2a82ce33efe2a7b068/aiohttp-3.13.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261", size = 1861276, upload-time = "2026-01-03T17:30:56.512Z" }, - { url = "https://files.pythonhosted.org/packages/7c/24/75d274228acf35ceeb2850b8ce04de9dd7355ff7a0b49d607ee60c29c518/aiohttp-3.13.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0", size = 1743131, upload-time = "2026-01-03T17:30:58.256Z" }, - { url = "https://files.pythonhosted.org/packages/04/98/3d21dde21889b17ca2eea54fdcff21b27b93f45b7bb94ca029c31ab59dc3/aiohttp-3.13.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730", size = 1556863, upload-time = "2026-01-03T17:31:00.445Z" }, - { url = "https://files.pythonhosted.org/packages/9e/84/da0c3ab1192eaf64782b03971ab4055b475d0db07b17eff925e8c93b3aa5/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91", size = 1682793, upload-time = "2026-01-03T17:31:03.024Z" }, - { url = "https://files.pythonhosted.org/packages/ff/0f/5802ada182f575afa02cbd0ec5180d7e13a402afb7c2c03a9aa5e5d49060/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3", size = 1716676, upload-time = "2026-01-03T17:31:04.842Z" }, - { url = "https://files.pythonhosted.org/packages/3f/8c/714d53bd8b5a4560667f7bbbb06b20c2382f9c7847d198370ec6526af39c/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4", size = 1733217, upload-time = "2026-01-03T17:31:06.868Z" }, - { url = "https://files.pythonhosted.org/packages/7d/79/e2176f46d2e963facea939f5be2d26368ce543622be6f00a12844d3c991f/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998", size = 1552303, upload-time = "2026-01-03T17:31:08.958Z" }, - { url = "https://files.pythonhosted.org/packages/ab/6a/28ed4dea1759916090587d1fe57087b03e6c784a642b85ef48217b0277ae/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0", size = 1763673, upload-time = "2026-01-03T17:31:10.676Z" }, - { url = "https://files.pythonhosted.org/packages/e8/35/4a3daeb8b9fab49240d21c04d50732313295e4bd813a465d840236dd0ce1/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591", size = 1721120, upload-time = "2026-01-03T17:31:12.575Z" }, - { url = "https://files.pythonhosted.org/packages/99/36/5b6514a9f5d66f4e2597e40dea2e3db271e023eb7a5d22defe96ba560996/aiohttp-3.13.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808", size = 737238, upload-time = "2026-01-03T17:31:17.909Z" }, - { url = "https://files.pythonhosted.org/packages/f7/49/459327f0d5bcd8c6c9ca69e60fdeebc3622861e696490d8674a6d0cb90a6/aiohttp-3.13.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415", size = 492292, upload-time = "2026-01-03T17:31:19.919Z" }, - { url = "https://files.pythonhosted.org/packages/e8/0b/b97660c5fd05d3495b4eb27f2d0ef18dc1dc4eff7511a9bf371397ff0264/aiohttp-3.13.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f", size = 493021, upload-time = "2026-01-03T17:31:21.636Z" }, - { url = "https://files.pythonhosted.org/packages/54/d4/438efabdf74e30aeceb890c3290bbaa449780583b1270b00661126b8aae4/aiohttp-3.13.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6", size = 1717263, upload-time = "2026-01-03T17:31:23.296Z" }, - { url = "https://files.pythonhosted.org/packages/71/f2/7bddc7fd612367d1459c5bcf598a9e8f7092d6580d98de0e057eb42697ad/aiohttp-3.13.3-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687", size = 1669107, upload-time = "2026-01-03T17:31:25.334Z" }, - { url = "https://files.pythonhosted.org/packages/00/5a/1aeaecca40e22560f97610a329e0e5efef5e0b5afdf9f857f0d93839ab2e/aiohttp-3.13.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26", size = 1760196, upload-time = "2026-01-03T17:31:27.394Z" }, - { url = "https://files.pythonhosted.org/packages/f8/f8/0ff6992bea7bd560fc510ea1c815f87eedd745fe035589c71ce05612a19a/aiohttp-3.13.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a", size = 1843591, upload-time = "2026-01-03T17:31:29.238Z" }, - { url = "https://files.pythonhosted.org/packages/e3/d1/e30e537a15f53485b61f5be525f2157da719819e8377298502aebac45536/aiohttp-3.13.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1", size = 1720277, upload-time = "2026-01-03T17:31:31.053Z" }, - { url = "https://files.pythonhosted.org/packages/84/45/23f4c451d8192f553d38d838831ebbc156907ea6e05557f39563101b7717/aiohttp-3.13.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25", size = 1548575, upload-time = "2026-01-03T17:31:32.87Z" }, - { url = "https://files.pythonhosted.org/packages/6a/ed/0a42b127a43712eda7807e7892c083eadfaf8429ca8fb619662a530a3aab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603", size = 1679455, upload-time = "2026-01-03T17:31:34.76Z" }, - { url = "https://files.pythonhosted.org/packages/2e/b5/c05f0c2b4b4fe2c9d55e73b6d3ed4fd6c9dc2684b1d81cbdf77e7fad9adb/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a", size = 1687417, upload-time = "2026-01-03T17:31:36.699Z" }, - { url = "https://files.pythonhosted.org/packages/c9/6b/915bc5dad66aef602b9e459b5a973529304d4e89ca86999d9d75d80cbd0b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926", size = 1729968, upload-time = "2026-01-03T17:31:38.622Z" }, - { url = "https://files.pythonhosted.org/packages/11/3b/e84581290a9520024a08640b63d07673057aec5ca548177a82026187ba73/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba", size = 1545690, upload-time = "2026-01-03T17:31:40.57Z" }, - { url = "https://files.pythonhosted.org/packages/f5/04/0c3655a566c43fd647c81b895dfe361b9f9ad6d58c19309d45cff52d6c3b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c", size = 1746390, upload-time = "2026-01-03T17:31:42.857Z" }, - { url = "https://files.pythonhosted.org/packages/1f/53/71165b26978f719c3419381514c9690bd5980e764a09440a10bb816ea4ab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43", size = 1702188, upload-time = "2026-01-03T17:31:44.984Z" }, - { url = "https://files.pythonhosted.org/packages/6c/2a/3c79b638a9c3d4658d345339d22070241ea341ed4e07b5ac60fb0f418003/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c", size = 769512, upload-time = "2026-01-03T17:31:51.134Z" }, - { url = "https://files.pythonhosted.org/packages/29/b9/3e5014d46c0ab0db8707e0ac2711ed28c4da0218c358a4e7c17bae0d8722/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592", size = 506444, upload-time = "2026-01-03T17:31:52.85Z" }, - { url = "https://files.pythonhosted.org/packages/90/03/c1d4ef9a054e151cd7839cdc497f2638f00b93cbe8043983986630d7a80c/aiohttp-3.13.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f", size = 510798, upload-time = "2026-01-03T17:31:54.91Z" }, - { url = "https://files.pythonhosted.org/packages/ea/76/8c1e5abbfe8e127c893fe7ead569148a4d5a799f7cf958d8c09f3eedf097/aiohttp-3.13.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29", size = 1868835, upload-time = "2026-01-03T17:31:56.733Z" }, - { url = "https://files.pythonhosted.org/packages/8e/ac/984c5a6f74c363b01ff97adc96a3976d9c98940b8969a1881575b279ac5d/aiohttp-3.13.3-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc", size = 1720486, upload-time = "2026-01-03T17:31:58.65Z" }, - { url = "https://files.pythonhosted.org/packages/b2/9a/b7039c5f099c4eb632138728828b33428585031a1e658d693d41d07d89d1/aiohttp-3.13.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2", size = 1847951, upload-time = "2026-01-03T17:32:00.989Z" }, - { url = "https://files.pythonhosted.org/packages/3c/02/3bec2b9a1ba3c19ff89a43a19324202b8eb187ca1e928d8bdac9bbdddebd/aiohttp-3.13.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587", size = 1941001, upload-time = "2026-01-03T17:32:03.122Z" }, - { url = "https://files.pythonhosted.org/packages/37/df/d879401cedeef27ac4717f6426c8c36c3091c6e9f08a9178cc87549c537f/aiohttp-3.13.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8", size = 1797246, upload-time = "2026-01-03T17:32:05.255Z" }, - { url = "https://files.pythonhosted.org/packages/8d/15/be122de1f67e6953add23335c8ece6d314ab67c8bebb3f181063010795a7/aiohttp-3.13.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632", size = 1627131, upload-time = "2026-01-03T17:32:07.607Z" }, - { url = "https://files.pythonhosted.org/packages/12/12/70eedcac9134cfa3219ab7af31ea56bc877395b1ac30d65b1bc4b27d0438/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64", size = 1795196, upload-time = "2026-01-03T17:32:09.59Z" }, - { url = "https://files.pythonhosted.org/packages/32/11/b30e1b1cd1f3054af86ebe60df96989c6a414dd87e27ad16950eee420bea/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0", size = 1782841, upload-time = "2026-01-03T17:32:11.445Z" }, - { url = "https://files.pythonhosted.org/packages/88/0d/d98a9367b38912384a17e287850f5695c528cff0f14f791ce8ee2e4f7796/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56", size = 1795193, upload-time = "2026-01-03T17:32:13.705Z" }, - { url = "https://files.pythonhosted.org/packages/43/a5/a2dfd1f5ff5581632c7f6a30e1744deda03808974f94f6534241ef60c751/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72", size = 1621979, upload-time = "2026-01-03T17:32:15.965Z" }, - { url = "https://files.pythonhosted.org/packages/fa/f0/12973c382ae7c1cccbc4417e129c5bf54c374dfb85af70893646e1f0e749/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df", size = 1822193, upload-time = "2026-01-03T17:32:18.219Z" }, - { url = "https://files.pythonhosted.org/packages/3c/5f/24155e30ba7f8c96918af1350eb0663e2430aad9e001c0489d89cd708ab1/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa", size = 1769801, upload-time = "2026-01-03T17:32:20.25Z" }, + { url = "https://files.pythonhosted.org/packages/d4/7e/cb94129302d78c46662b47f9897d642fd0b33bdfef4b73b20c6ced35aa4c/aiohttp-3.13.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8ea0c64d1bcbf201b285c2246c51a0c035ba3bbd306640007bc5844a3b4658c1", size = 760027, upload-time = "2026-03-28T17:15:33.022Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cd/2db3c9397c3bd24216b203dd739945b04f8b87bb036c640da7ddb63c75ef/aiohttp-3.13.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6f742e1fa45c0ed522b00ede565e18f97e4cf8d1883a712ac42d0339dfb0cce7", size = 508325, upload-time = "2026-03-28T17:15:34.714Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/d28b2722ec13107f2e37a86b8a169897308bab6a3b9e071ecead9d67bd9b/aiohttp-3.13.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dcfb50ee25b3b7a1222a9123be1f9f89e56e67636b561441f0b304e25aaef8f", size = 502402, upload-time = "2026-03-28T17:15:36.409Z" }, + { url = "https://files.pythonhosted.org/packages/fa/d6/acd47b5f17c4430e555590990a4746efbcb2079909bb865516892bf85f37/aiohttp-3.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3262386c4ff370849863ea93b9ea60fd59c6cf56bf8f93beac625cf4d677c04d", size = 1771224, upload-time = "2026-03-28T17:15:38.223Z" }, + { url = "https://files.pythonhosted.org/packages/98/af/af6e20113ba6a48fd1cd9e5832c4851e7613ef50c7619acdaee6ec5f1aff/aiohttp-3.13.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:473bb5aa4218dd254e9ae4834f20e31f5a0083064ac0136a01a62ddbae2eaa42", size = 1731530, upload-time = "2026-03-28T17:15:39.988Z" }, + { url = "https://files.pythonhosted.org/packages/81/16/78a2f5d9c124ad05d5ce59a9af94214b6466c3491a25fb70760e98e9f762/aiohttp-3.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e56423766399b4c77b965f6aaab6c9546617b8994a956821cc507d00b91d978c", size = 1827925, upload-time = "2026-03-28T17:15:41.944Z" }, + { url = "https://files.pythonhosted.org/packages/2a/1f/79acf0974ced805e0e70027389fccbb7d728e6f30fcac725fb1071e63075/aiohttp-3.13.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8af249343fafd5ad90366a16d230fc265cf1149f26075dc9fe93cfd7c7173942", size = 1923579, upload-time = "2026-03-28T17:15:44.071Z" }, + { url = "https://files.pythonhosted.org/packages/af/53/29f9e2054ea6900413f3b4c3eb9d8331f60678ec855f13ba8714c47fd48d/aiohttp-3.13.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bc0a5cf4f10ef5a2c94fdde488734b582a3a7a000b131263e27c9295bd682d9", size = 1767655, upload-time = "2026-03-28T17:15:45.911Z" }, + { url = "https://files.pythonhosted.org/packages/f3/57/462fe1d3da08109ba4aa8590e7aed57c059af2a7e80ec21f4bac5cfe1094/aiohttp-3.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5c7ff1028e3c9fc5123a865ce17df1cb6424d180c503b8517afbe89aa566e6be", size = 1630439, upload-time = "2026-03-28T17:15:48.11Z" }, + { url = "https://files.pythonhosted.org/packages/d7/4b/4813344aacdb8127263e3eec343d24e973421143826364fa9fc847f6283f/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ba5cf98b5dcb9bddd857da6713a503fa6d341043258ca823f0f5ab7ab4a94ee8", size = 1745557, upload-time = "2026-03-28T17:15:50.13Z" }, + { url = "https://files.pythonhosted.org/packages/d4/01/1ef1adae1454341ec50a789f03cfafe4c4ac9c003f6a64515ecd32fe4210/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:d85965d3ba21ee4999e83e992fecb86c4614d6920e40705501c0a1f80a583c12", size = 1741796, upload-time = "2026-03-28T17:15:52.351Z" }, + { url = "https://files.pythonhosted.org/packages/22/04/8cdd99af988d2aa6922714d957d21383c559835cbd43fbf5a47ddf2e0f05/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:49f0b18a9b05d79f6f37ddd567695943fcefb834ef480f17a4211987302b2dc7", size = 1805312, upload-time = "2026-03-28T17:15:54.407Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7f/b48d5577338d4b25bbdbae35c75dbfd0493cb8886dc586fbfb2e90862239/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7f78cb080c86fbf765920e5f1ef35af3f24ec4314d6675d0a21eaf41f6f2679c", size = 1621751, upload-time = "2026-03-28T17:15:56.564Z" }, + { url = "https://files.pythonhosted.org/packages/bc/89/4eecad8c1858e6d0893c05929e22343e0ebe3aec29a8a399c65c3cc38311/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:67a3ec705534a614b68bbf1c70efa777a21c3da3895d1c44510a41f5a7ae0453", size = 1826073, upload-time = "2026-03-28T17:15:58.489Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5c/9dc8293ed31b46c39c9c513ac7ca152b3c3d38e0ea111a530ad12001b827/aiohttp-3.13.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d6630ec917e85c5356b2295744c8a97d40f007f96a1c76bf1928dc2e27465393", size = 1760083, upload-time = "2026-03-28T17:16:00.677Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bd/ede278648914cabbabfdf95e436679b5d4156e417896a9b9f4587169e376/aiohttp-3.13.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ee62d4471ce86b108b19c3364db4b91180d13fe3510144872d6bad5401957360", size = 752158, upload-time = "2026-03-28T17:16:06.901Z" }, + { url = "https://files.pythonhosted.org/packages/90/de/581c053253c07b480b03785196ca5335e3c606a37dc73e95f6527f1591fe/aiohttp-3.13.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c0fd8f41b54b58636402eb493afd512c23580456f022c1ba2db0f810c959ed0d", size = 501037, upload-time = "2026-03-28T17:16:08.82Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f9/a5ede193c08f13cc42c0a5b50d1e246ecee9115e4cf6e900d8dbd8fd6acb/aiohttp-3.13.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4baa48ce49efd82d6b1a0be12d6a36b35e5594d1dd42f8bfba96ea9f8678b88c", size = 501556, upload-time = "2026-03-28T17:16:10.63Z" }, + { url = "https://files.pythonhosted.org/packages/d6/10/88ff67cd48a6ec36335b63a640abe86135791544863e0cfe1f065d6cef7a/aiohttp-3.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d738ebab9f71ee652d9dbd0211057690022201b11197f9a7324fd4dba128aa97", size = 1757314, upload-time = "2026-03-28T17:16:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/8b/15/fdb90a5cf5a1f52845c276e76298c75fbbcc0ac2b4a86551906d54529965/aiohttp-3.13.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0ce692c3468fa831af7dceed52edf51ac348cebfc8d3feb935927b63bd3e8576", size = 1731819, upload-time = "2026-03-28T17:16:14.558Z" }, + { url = "https://files.pythonhosted.org/packages/ec/df/28146785a007f7820416be05d4f28cc207493efd1e8c6c1068e9bdc29198/aiohttp-3.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8e08abcfe752a454d2cb89ff0c08f2d1ecd057ae3e8cc6d84638de853530ebab", size = 1793279, upload-time = "2026-03-28T17:16:16.594Z" }, + { url = "https://files.pythonhosted.org/packages/10/47/689c743abf62ea7a77774d5722f220e2c912a77d65d368b884d9779ef41b/aiohttp-3.13.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5977f701b3fff36367a11087f30ea73c212e686d41cd363c50c022d48b011d8d", size = 1891082, upload-time = "2026-03-28T17:16:18.71Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b6/f7f4f318c7e58c23b761c9b13b9a3c9b394e0f9d5d76fbc6622fa98509f6/aiohttp-3.13.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54203e10405c06f8b6020bd1e076ae0fe6c194adcee12a5a78af3ffa3c57025e", size = 1773938, upload-time = "2026-03-28T17:16:21.125Z" }, + { url = "https://files.pythonhosted.org/packages/aa/06/f207cb3121852c989586a6fc16ff854c4fcc8651b86c5d3bd1fc83057650/aiohttp-3.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:358a6af0145bc4dda037f13167bef3cce54b132087acc4c295c739d05d16b1c3", size = 1579548, upload-time = "2026-03-28T17:16:23.588Z" }, + { url = "https://files.pythonhosted.org/packages/6c/58/e1289661a32161e24c1fe479711d783067210d266842523752869cc1d9c2/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:898ea1850656d7d61832ef06aa9846ab3ddb1621b74f46de78fbc5e1a586ba83", size = 1714669, upload-time = "2026-03-28T17:16:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/96/0a/3e86d039438a74a86e6a948a9119b22540bae037d6ba317a042ae3c22711/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7bc30cceb710cf6a44e9617e43eebb6e3e43ad855a34da7b4b6a73537d8a6763", size = 1754175, upload-time = "2026-03-28T17:16:28.18Z" }, + { url = "https://files.pythonhosted.org/packages/f4/30/e717fc5df83133ba467a560b6d8ef20197037b4bb5d7075b90037de1018e/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4a31c0c587a8a038f19a4c7e60654a6c899c9de9174593a13e7cc6e15ff271f9", size = 1762049, upload-time = "2026-03-28T17:16:30.941Z" }, + { url = "https://files.pythonhosted.org/packages/e4/28/8f7a2d4492e336e40005151bdd94baf344880a4707573378579f833a64c1/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2062f675f3fe6e06d6113eb74a157fb9df58953ffed0cdb4182554b116545758", size = 1570861, upload-time = "2026-03-28T17:16:32.953Z" }, + { url = "https://files.pythonhosted.org/packages/78/45/12e1a3d0645968b1c38de4b23fdf270b8637735ea057d4f84482ff918ad9/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d1ba8afb847ff80626d5e408c1fdc99f942acc877d0702fe137015903a220a9", size = 1790003, upload-time = "2026-03-28T17:16:35.468Z" }, + { url = "https://files.pythonhosted.org/packages/eb/0f/60374e18d590de16dcb39d6ff62f39c096c1b958e6f37727b5870026ea30/aiohttp-3.13.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b08149419994cdd4d5eecf7fd4bc5986b5a9380285bcd01ab4c0d6bfca47b79d", size = 1737289, upload-time = "2026-03-28T17:16:38.187Z" }, + { url = "https://files.pythonhosted.org/packages/e3/ac/892f4162df9b115b4758d615f32ec63d00f3084c705ff5526630887b9b42/aiohttp-3.13.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:63dd5e5b1e43b8fb1e91b79b7ceba1feba588b317d1edff385084fcc7a0a4538", size = 745744, upload-time = "2026-03-28T17:16:44.67Z" }, + { url = "https://files.pythonhosted.org/packages/97/a9/c5b87e4443a2f0ea88cb3000c93a8fdad1ee63bffc9ded8d8c8e0d66efc6/aiohttp-3.13.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:746ac3cc00b5baea424dacddea3ec2c2702f9590de27d837aa67004db1eebc6e", size = 498178, upload-time = "2026-03-28T17:16:46.766Z" }, + { url = "https://files.pythonhosted.org/packages/94/42/07e1b543a61250783650df13da8ddcdc0d0a5538b2bd15cef6e042aefc61/aiohttp-3.13.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bda8f16ea99d6a6705e5946732e48487a448be874e54a4f73d514660ff7c05d3", size = 498331, upload-time = "2026-03-28T17:16:48.9Z" }, + { url = "https://files.pythonhosted.org/packages/20/d6/492f46bf0328534124772d0cf58570acae5b286ea25006900650f69dae0e/aiohttp-3.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b061e7b5f840391e3f64d0ddf672973e45c4cfff7a0feea425ea24e51530fc2", size = 1744414, upload-time = "2026-03-28T17:16:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4d/e02627b2683f68051246215d2d62b2d2f249ff7a285e7a858dc47d6b6a14/aiohttp-3.13.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b252e8d5cd66184b570d0d010de742736e8a4fab22c58299772b0c5a466d4b21", size = 1719226, upload-time = "2026-03-28T17:16:53.173Z" }, + { url = "https://files.pythonhosted.org/packages/7b/6c/5d0a3394dd2b9f9aeba6e1b6065d0439e4b75d41f1fb09a3ec010b43552b/aiohttp-3.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20af8aad61d1803ff11152a26146d8d81c266aa8c5aa9b4504432abb965c36a0", size = 1782110, upload-time = "2026-03-28T17:16:55.362Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2d/c20791e3437700a7441a7edfb59731150322424f5aadf635602d1d326101/aiohttp-3.13.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:13a5cc924b59859ad2adb1478e31f410a7ed46e92a2a619d6d1dd1a63c1a855e", size = 1884809, upload-time = "2026-03-28T17:16:57.734Z" }, + { url = "https://files.pythonhosted.org/packages/c8/94/d99dbfbd1924a87ef643833932eb2a3d9e5eee87656efea7d78058539eff/aiohttp-3.13.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:534913dfb0a644d537aebb4123e7d466d94e3be5549205e6a31f72368980a81a", size = 1764938, upload-time = "2026-03-28T17:17:00.221Z" }, + { url = "https://files.pythonhosted.org/packages/49/61/3ce326a1538781deb89f6cf5e094e2029cd308ed1e21b2ba2278b08426f6/aiohttp-3.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:320e40192a2dcc1cf4b5576936e9652981ab596bf81eb309535db7e2f5b5672f", size = 1570697, upload-time = "2026-03-28T17:17:02.985Z" }, + { url = "https://files.pythonhosted.org/packages/b6/77/4ab5a546857bb3028fbaf34d6eea180267bdab022ee8b1168b1fcde4bfdd/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9e587fcfce2bcf06526a43cb705bdee21ac089096f2e271d75de9c339db3100c", size = 1702258, upload-time = "2026-03-28T17:17:05.28Z" }, + { url = "https://files.pythonhosted.org/packages/79/63/d8f29021e39bc5af8e5d5e9da1b07976fb9846487a784e11e4f4eeda4666/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9eb9c2eea7278206b5c6c1441fdd9dc420c278ead3f3b2cc87f9b693698cc500", size = 1740287, upload-time = "2026-03-28T17:17:07.712Z" }, + { url = "https://files.pythonhosted.org/packages/55/3a/cbc6b3b124859a11bc8055d3682c26999b393531ef926754a3445b99dfef/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:29be00c51972b04bf9d5c8f2d7f7314f48f96070ca40a873a53056e652e805f7", size = 1753011, upload-time = "2026-03-28T17:17:10.053Z" }, + { url = "https://files.pythonhosted.org/packages/e0/30/836278675205d58c1368b21520eab9572457cf19afd23759216c04483048/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:90c06228a6c3a7c9f776fe4fc0b7ff647fffd3bed93779a6913c804ae00c1073", size = 1566359, upload-time = "2026-03-28T17:17:12.433Z" }, + { url = "https://files.pythonhosted.org/packages/50/b4/8032cc9b82d17e4277704ba30509eaccb39329dc18d6a35f05e424439e32/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a533ec132f05fd9a1d959e7f34184cd7d5e8511584848dab85faefbaac573069", size = 1785537, upload-time = "2026-03-28T17:17:14.721Z" }, + { url = "https://files.pythonhosted.org/packages/17/7d/5873e98230bde59f493bf1f7c3e327486a4b5653fa401144704df5d00211/aiohttp-3.13.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1c946f10f413836f82ea4cfb90200d2a59578c549f00857e03111cf45ad01ca5", size = 1740752, upload-time = "2026-03-28T17:17:17.387Z" }, + { url = "https://files.pythonhosted.org/packages/6d/29/6657cc37ae04cacc2dbf53fb730a06b6091cc4cbe745028e047c53e6d840/aiohttp-3.13.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:e0a2c961fc92abeff61d6444f2ce6ad35bb982db9fc8ff8a47455beacf454a57", size = 749363, upload-time = "2026-03-28T17:17:24.044Z" }, + { url = "https://files.pythonhosted.org/packages/90/7f/30ccdf67ca3d24b610067dc63d64dcb91e5d88e27667811640644aa4a85d/aiohttp-3.13.4-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:153274535985a0ff2bff1fb6c104ed547cec898a09213d21b0f791a44b14d933", size = 499317, upload-time = "2026-03-28T17:17:26.199Z" }, + { url = "https://files.pythonhosted.org/packages/93/13/e372dd4e68ad04ee25dafb050c7f98b0d91ea643f7352757e87231102555/aiohttp-3.13.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:351f3171e2458da3d731ce83f9e6b9619e325c45cbd534c7759750cabf453ad7", size = 500477, upload-time = "2026-03-28T17:17:28.279Z" }, + { url = "https://files.pythonhosted.org/packages/e5/fe/ee6298e8e586096fb6f5eddd31393d8544f33ae0792c71ecbb4c2bef98ac/aiohttp-3.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f989ac8bc5595ff761a5ccd32bdb0768a117f36dd1504b1c2c074ed5d3f4df9c", size = 1737227, upload-time = "2026-03-28T17:17:30.587Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b9/a7a0463a09e1a3fe35100f74324f23644bfc3383ac5fd5effe0722a5f0b7/aiohttp-3.13.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d36fc1709110ec1e87a229b201dd3ddc32aa01e98e7868083a794609b081c349", size = 1694036, upload-time = "2026-03-28T17:17:33.29Z" }, + { url = "https://files.pythonhosted.org/packages/57/7c/8972ae3fb7be00a91aee6b644b2a6a909aedb2c425269a3bfd90115e6f8f/aiohttp-3.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42adaeea83cbdf069ab94f5103ce0787c21fb1a0153270da76b59d5578302329", size = 1786814, upload-time = "2026-03-28T17:17:36.035Z" }, + { url = "https://files.pythonhosted.org/packages/93/01/c81e97e85c774decbaf0d577de7d848934e8166a3a14ad9f8aa5be329d28/aiohttp-3.13.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:92deb95469928cc41fd4b42a95d8012fa6df93f6b1c0a83af0ffbc4a5e218cde", size = 1866676, upload-time = "2026-03-28T17:17:38.441Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5f/5b46fe8694a639ddea2cd035bf5729e4677ea882cb251396637e2ef1590d/aiohttp-3.13.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0c0c7c07c4257ef3a1df355f840bc62d133bcdef5c1c5ba75add3c08553e2eed", size = 1740842, upload-time = "2026-03-28T17:17:40.783Z" }, + { url = "https://files.pythonhosted.org/packages/20/a2/0d4b03d011cca6b6b0acba8433193c1e484efa8d705ea58295590fe24203/aiohttp-3.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f062c45de8a1098cb137a1898819796a2491aec4e637a06b03f149315dff4d8f", size = 1566508, upload-time = "2026-03-28T17:17:43.235Z" }, + { url = "https://files.pythonhosted.org/packages/98/17/e689fd500da52488ec5f889effd6404dece6a59de301e380f3c64f167beb/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:76093107c531517001114f0ebdb4f46858ce818590363e3e99a4a2280334454a", size = 1700569, upload-time = "2026-03-28T17:17:46.165Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0d/66402894dbcf470ef7db99449e436105ea862c24f7ea4c95c683e635af35/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:6f6ec32162d293b82f8b63a16edc80769662fbd5ae6fbd4936d3206a2c2cc63b", size = 1707407, upload-time = "2026-03-28T17:17:48.825Z" }, + { url = "https://files.pythonhosted.org/packages/2f/eb/af0ab1a3650092cbd8e14ef29e4ab0209e1460e1c299996c3f8288b3f1ff/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5903e2db3d202a00ad9f0ec35a122c005e85d90c9836ab4cda628f01edf425e2", size = 1752214, upload-time = "2026-03-28T17:17:51.206Z" }, + { url = "https://files.pythonhosted.org/packages/5a/bf/72326f8a98e4c666f292f03c385545963cc65e358835d2a7375037a97b57/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2d5bea57be7aca98dbbac8da046d99b5557c5cf4e28538c4c786313078aca09e", size = 1562162, upload-time = "2026-03-28T17:17:53.634Z" }, + { url = "https://files.pythonhosted.org/packages/67/9f/13b72435f99151dd9a5469c96b3b5f86aa29b7e785ca7f35cf5e538f74c0/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:bcf0c9902085976edc0232b75006ef38f89686901249ce14226b6877f88464fb", size = 1768904, upload-time = "2026-03-28T17:17:55.991Z" }, + { url = "https://files.pythonhosted.org/packages/18/bc/28d4970e7d5452ac7776cdb5431a1164a0d9cf8bd2fffd67b4fb463aa56d/aiohttp-3.13.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c3295f98bfeed2e867cab588f2a146a9db37a85e3ae9062abf46ba062bd29165", size = 1723378, upload-time = "2026-03-28T17:17:58.348Z" }, + { url = "https://files.pythonhosted.org/packages/47/fb/e41b63c6ce71b07a59243bb8f3b457ee0c3402a619acb9d2c0d21ef0e647/aiohttp-3.13.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45abbbf09a129825d13c18c7d3182fecd46d9da3cfc383756145394013604ac1", size = 781549, upload-time = "2026-03-28T17:18:05.779Z" }, + { url = "https://files.pythonhosted.org/packages/97/53/532b8d28df1e17e44c4d9a9368b78dcb6bf0b51037522136eced13afa9e8/aiohttp-3.13.4-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:74c80b2bc2c2adb7b3d1941b2b60701ee2af8296fc8aad8b8bc48bc25767266c", size = 514383, upload-time = "2026-03-28T17:18:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/1b/1f/62e5d400603e8468cd635812d99cb81cfdc08127a3dc474c647615f31339/aiohttp-3.13.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c97989ae40a9746650fa196894f317dafc12227c808c774929dda0ff873a5954", size = 518304, upload-time = "2026-03-28T17:18:10.642Z" }, + { url = "https://files.pythonhosted.org/packages/90/57/2326b37b10896447e3c6e0cbef4fe2486d30913639a5cfd1332b5d870f82/aiohttp-3.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dae86be9811493f9990ef44fff1685f5c1a3192e9061a71a109d527944eed551", size = 1893433, upload-time = "2026-03-28T17:18:13.121Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b4/a24d82112c304afdb650167ef2fe190957d81cbddac7460bedd245f765aa/aiohttp-3.13.4-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1db491abe852ca2fa6cc48a3341985b0174b3741838e1341b82ac82c8bd9e871", size = 1755901, upload-time = "2026-03-28T17:18:16.21Z" }, + { url = "https://files.pythonhosted.org/packages/9e/2d/0883ef9d878d7846287f036c162a951968f22aabeef3ac97b0bea6f76d5d/aiohttp-3.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e5d701c0aad02a7dce72eef6b93226cf3734330f1a31d69ebbf69f33b86666e", size = 1876093, upload-time = "2026-03-28T17:18:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/ad/52/9204bb59c014869b71971addad6778f005daa72a96eed652c496789d7468/aiohttp-3.13.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8ac32a189081ae0a10ba18993f10f338ec94341f0d5df8fff348043962f3c6f8", size = 1970815, upload-time = "2026-03-28T17:18:21.858Z" }, + { url = "https://files.pythonhosted.org/packages/d6/b5/e4eb20275a866dde0f570f411b36c6b48f7b53edfe4f4071aa1b0728098a/aiohttp-3.13.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98e968cdaba43e45c73c3f306fca418c8009a957733bac85937c9f9cf3f4de27", size = 1816223, upload-time = "2026-03-28T17:18:24.729Z" }, + { url = "https://files.pythonhosted.org/packages/d8/23/e98075c5bb146aa61a1239ee1ac7714c85e814838d6cebbe37d3fe19214a/aiohttp-3.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca114790c9144c335d538852612d3e43ea0f075288f4849cf4b05d6cd2238ce7", size = 1649145, upload-time = "2026-03-28T17:18:27.269Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c1/7bad8be33bb06c2bb224b6468874346026092762cbec388c3bdb65a368ee/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ea2e071661ba9cfe11eabbc81ac5376eaeb3061f6e72ec4cc86d7cdd1ffbdbbb", size = 1816562, upload-time = "2026-03-28T17:18:29.847Z" }, + { url = "https://files.pythonhosted.org/packages/5c/10/c00323348695e9a5e316825969c88463dcc24c7e9d443244b8a2c9cf2eae/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:34e89912b6c20e0fd80e07fa401fd218a410aa1ce9f1c2f1dad6db1bd0ce0927", size = 1800333, upload-time = "2026-03-28T17:18:32.269Z" }, + { url = "https://files.pythonhosted.org/packages/84/43/9b2147a1df3559f49bd723e22905b46a46c068a53adb54abdca32c4de180/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0e217cf9f6a42908c52b46e42c568bd57adc39c9286ced31aaace614b6087965", size = 1820617, upload-time = "2026-03-28T17:18:35.238Z" }, + { url = "https://files.pythonhosted.org/packages/a9/7f/b3481a81e7a586d02e99387b18c6dafff41285f6efd3daa2124c01f87eae/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:0c296f1221e21ba979f5ac1964c3b78cfde15c5c5f855ffd2caab337e9cd9182", size = 1643417, upload-time = "2026-03-28T17:18:37.949Z" }, + { url = "https://files.pythonhosted.org/packages/8f/72/07181226bc99ce1124e0f89280f5221a82d3ae6a6d9d1973ce429d48e52b/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d99a9d168ebaffb74f36d011750e490085ac418f4db926cce3989c8fe6cb6b1b", size = 1849286, upload-time = "2026-03-28T17:18:40.534Z" }, + { url = "https://files.pythonhosted.org/packages/1a/e6/1b3566e103eca6da5be4ae6713e112a053725c584e96574caf117568ffef/aiohttp-3.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cb19177205d93b881f3f89e6081593676043a6828f59c78c17a0fd6c1fbed2ba", size = 1782635, upload-time = "2026-03-28T17:18:43.073Z" }, ] [[package]] @@ -350,42 +350,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/73/3183c9e41ca755713bdf2cc1d0810df742c09484e2e1ddd693bee53877c1/brotli-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d2d085ded05278d1c7f65560aae97b3160aeb2ea2c0b3e26204856beccb60888", size = 1488164, upload-time = "2025-11-05T18:38:53.079Z" }, ] -[[package]] -name = "cached-property" -version = "2.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/76/4b/3d870836119dbe9a5e3c9a61af8cc1a8b69d75aea564572e385882d5aefb/cached_property-2.0.1.tar.gz", hash = "sha256:484d617105e3ee0e4f1f58725e72a8ef9e93deee462222dbd51cd91230897641", size = 10574, upload-time = "2024-10-25T15:43:55.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/0e/7d8225aab3bc1a0f5811f8e1b557aa034ac04bdf641925b30d3caf586b28/cached_property-2.0.1-py3-none-any.whl", hash = "sha256:f617d70ab1100b7bcf6e42228f9ddcb78c676ffa167278d9f730d1c2fba69ccb", size = 7428, upload-time = "2024-10-25T15:43:54.711Z" }, -] - [[package]] name = "cbor2" -version = "5.8.0" +version = "5.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d9/8e/8b4fdde28e42ffcd741a37f4ffa9fb59cd4fe01625b544dfcfd9ccb54f01/cbor2-5.8.0.tar.gz", hash = "sha256:b19c35fcae9688ac01ef75bad5db27300c2537eb4ee00ed07e05d8456a0d4931", size = 107825, upload-time = "2025-12-30T18:44:22.455Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/cb/09939728be094d155b5d4ac262e39877875f5f7e36eea66beb359f647bd0/cbor2-5.9.0.tar.gz", hash = "sha256:85c7a46279ac8f226e1059275221e6b3d0e370d2bb6bd0500f9780781615bcea", size = 111231, upload-time = "2026-03-22T15:56:50.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/4b/623435ef9b98e86b6956a41863d39ff4fe4d67983948b5834f55499681dd/cbor2-5.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:18ac191640093e6c7fbcb174c006ffec4106c3d8ab788e70272c1c4d933cbe11", size = 69875, upload-time = "2025-12-30T18:43:35.888Z" }, - { url = "https://files.pythonhosted.org/packages/58/17/f664201080b2a7d0f57c16c8e9e5922013b92f202e294863ec7e75b7ff7f/cbor2-5.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fddee9103a17d7bed5753f0c7fc6663faa506eb953e50d8287804eccf7b048e6", size = 268316, upload-time = "2025-12-30T18:43:37.161Z" }, - { url = "https://files.pythonhosted.org/packages/d0/e1/072745b4ff01afe9df2cd627f8fc51a1acedb5d3d1253765625d2929db91/cbor2-5.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d2ea26fad620aba5e88d7541be8b10c5034a55db9a23809b7cb49f36803f05b", size = 258874, upload-time = "2025-12-30T18:43:38.878Z" }, - { url = "https://files.pythonhosted.org/packages/a7/10/61c262b886d22b62c56e8aac6d10fa06d0953c997879ab882a31a624952b/cbor2-5.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:de68b4b310b072b082d317adc4c5e6910173a6d9455412e6183d72c778d1f54c", size = 261971, upload-time = "2025-12-30T18:43:40.401Z" }, - { url = "https://files.pythonhosted.org/packages/7e/42/b7862f5e64364b10ad120ea53e87ec7e891fb268cb99c572348e647cf7e9/cbor2-5.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:418d2cf0e03e90160fa1474c05a40fe228bbb4a92d1628bdbbd13a48527cb34d", size = 254151, upload-time = "2025-12-30T18:43:41.938Z" }, - { url = "https://files.pythonhosted.org/packages/2f/4f/3a16e3e8fd7e5fd86751a4f1aad218a8d19a96e75ec3989c3e95a8fe1d8f/cbor2-5.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4b3f91fa699a5ce22470e973601c62dd9d55dc3ca20ee446516ac075fcab27c9", size = 70270, upload-time = "2025-12-30T18:43:46.005Z" }, - { url = "https://files.pythonhosted.org/packages/38/81/0d0cf0796fe8081492a61c45278f03def21a929535a492dd97c8438f5dbe/cbor2-5.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:518c118a5e00001854adb51f3164e647aa99b6a9877d2a733a28cb5c0a4d6857", size = 286242, upload-time = "2025-12-30T18:43:47.026Z" }, - { url = "https://files.pythonhosted.org/packages/7b/a9/fdab6c10190cfb8d639e01f2b168f2406fc847a2a6bc00e7de78c3381d0a/cbor2-5.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cff2a1999e49cd51c23d1b6786a012127fd8f722c5946e82bd7ab3eb307443f3", size = 285412, upload-time = "2025-12-30T18:43:48.563Z" }, - { url = "https://files.pythonhosted.org/packages/31/59/746a8e630996217a3afd523f583fcf7e3d16640d63f9a03f0f4e4f74b5b1/cbor2-5.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4c4492160212374973cdc14e46f0565f2462721ef922b40f7ea11e7d613dfb2a", size = 278041, upload-time = "2025-12-30T18:43:49.92Z" }, - { url = "https://files.pythonhosted.org/packages/0f/a3/f3bbeb6dedd45c6e0cddd627ea790dea295eaf82c83f0e2159b733365ebd/cbor2-5.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:546c7c7c4c6bcdc54a59242e0e82cea8f332b17b4465ae628718fef1fce401ca", size = 278185, upload-time = "2025-12-30T18:43:51.192Z" }, - { url = "https://files.pythonhosted.org/packages/a6/0d/5a3f20bafaefeb2c1903d961416f051c0950f0d09e7297a3aa6941596b29/cbor2-5.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6d8d104480845e2f28c6165b4c961bbe58d08cb5638f368375cfcae051c28015", size = 70332, upload-time = "2025-12-30T18:43:54.694Z" }, - { url = "https://files.pythonhosted.org/packages/57/66/177a3f089e69db69c987453ab4934086408c3338551e4984734597be9f80/cbor2-5.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:43efee947e5ab67d406d6e0dc61b5dee9d2f5e89ae176f90677a3741a20ca2e7", size = 285985, upload-time = "2025-12-30T18:43:55.733Z" }, - { url = "https://files.pythonhosted.org/packages/b7/8e/9e17b8e4ed80a2ce97e2dfa5915c169dbb31599409ddb830f514b57f96cc/cbor2-5.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be7ae582f50be539e09c134966d0fd63723fc4789b8dff1f6c2e3f24ae3eaf32", size = 285173, upload-time = "2025-12-30T18:43:57.321Z" }, - { url = "https://files.pythonhosted.org/packages/cc/33/9f92e107d78f88ac22723ac15d0259d220ba98c1d855e51796317f4c4114/cbor2-5.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:50f5c709561a71ea7970b4cd2bf9eda4eccacc0aac212577080fdfe64183e7f5", size = 278395, upload-time = "2025-12-30T18:43:58.497Z" }, - { url = "https://files.pythonhosted.org/packages/2f/3f/46b80050a4a35ce5cf7903693864a9fdea7213567dc8faa6e25cb375c182/cbor2-5.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a6790ecc73aa93e76d2d9076fc42bf91a9e69f2295e5fa702e776dbe986465bd", size = 278330, upload-time = "2025-12-30T18:43:59.656Z" }, - { url = "https://files.pythonhosted.org/packages/4b/0c/0654233d7543ac8a50f4785f172430ddc97538ba418eb305d6e529d1a120/cbor2-5.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ad72381477133046ce217617d839ea4e9454f8b77d9a6351b229e214102daeb7", size = 70710, upload-time = "2025-12-30T18:44:03.209Z" }, - { url = "https://files.pythonhosted.org/packages/84/62/4671d24e557d7f5a74a01b422c538925140c0495e57decde7e566f91d029/cbor2-5.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6da25190fad3434ce99876b11d4ca6b8828df6ca232cf7344cd14ae1166fb718", size = 285005, upload-time = "2025-12-30T18:44:05.109Z" }, - { url = "https://files.pythonhosted.org/packages/87/85/0c67d763a08e848c9a80d7e4723ba497cce676f41bc7ca1828ae90a0a872/cbor2-5.8.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c13919e3a24c5a6d286551fa288848a4cedc3e507c58a722ccd134e461217d99", size = 282435, upload-time = "2025-12-30T18:44:06.465Z" }, - { url = "https://files.pythonhosted.org/packages/b2/01/0650972b4dbfbebcfbe37cbba7fc3cd9019a8da6397ab3446e07175e342b/cbor2-5.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f8c40d32e5972047a777f9bf730870828f3cf1c43b3eb96fd0429c57a1d3b9e6", size = 277493, upload-time = "2025-12-30T18:44:07.609Z" }, - { url = "https://files.pythonhosted.org/packages/b3/6c/7704a4f32adc7f10f3b41ec067f500a4458f7606397af5e4cf2d368fd288/cbor2-5.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7627894bc0b3d5d0807f31e3107e11b996205470c4429dc2bb4ef8bfe7f64e1e", size = 276085, upload-time = "2025-12-30T18:44:09.021Z" }, - { url = "https://files.pythonhosted.org/packages/d6/4f/101071f880b4da05771128c0b89f41e334cff044dee05fb013c8f4be661c/cbor2-5.8.0-py3-none-any.whl", hash = "sha256:3727d80f539567b03a7aa11890e57798c67092c38df9e6c23abb059e0f65069c", size = 24374, upload-time = "2025-12-30T18:44:21.476Z" }, + { url = "https://files.pythonhosted.org/packages/43/aa/317c7118b8dda4c9563125c1a12c70c5b41e36677964a49c72b1aac061ec/cbor2-5.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0485d3372fc832c5e16d4eb45fa1a20fc53e806e6c29a1d2b0d3e176cedd52b9", size = 70578, upload-time = "2026-03-22T15:56:03.835Z" }, + { url = "https://files.pythonhosted.org/packages/31/43/fe29b1f897770011a5e7497f4523c2712282ee4a6cbf775ea6383fb7afb9/cbor2-5.9.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a9d6e4e0f988b0e766509a8071975a8ee99f930e14a524620bf38083106158d2", size = 268738, upload-time = "2026-03-22T15:56:05.222Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/e494568f3d8aafbcdfe361df44c3bcf5cdab5183e25ea08e3d3f9fcf4075/cbor2-5.9.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5326336f633cc89dfe543c78829c16c3a6449c2c03277d1ddba99086c3323363", size = 262571, upload-time = "2026-03-22T15:56:06.411Z" }, + { url = "https://files.pythonhosted.org/packages/42/2e/92acd6f87382fd44a34d9d7e85cc45372e6ba664040b72d1d9df648b25d0/cbor2-5.9.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5e702b02d42a5ace45425b595ffe70fe35aebaf9a3cdfdc2c758b6189c744422", size = 262356, upload-time = "2026-03-22T15:56:08.236Z" }, + { url = "https://files.pythonhosted.org/packages/3f/68/52c039a28688baeeb78b0be7483855e6c66ea05884a937444deede0c87b8/cbor2-5.9.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2372d357d403e7912f104ff085950ffc82a5854d6d717f1ca1ce16a40a0ef5a7", size = 257604, upload-time = "2026-03-22T15:56:09.835Z" }, + { url = "https://files.pythonhosted.org/packages/ee/39/72d8a5a4b06565561ec28f4fcb41aff7bb77f51705c01f00b8254a2aca4f/cbor2-5.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1f223dffb1bcdd2764665f04c1152943d9daa4bc124a576cd8dee1cad4264313", size = 71223, upload-time = "2026-03-22T15:56:13.68Z" }, + { url = "https://files.pythonhosted.org/packages/09/fd/7ddf3d3153b54c69c3be77172b8d9aa3a9d74f62a7fbde614d53eaeed9a4/cbor2-5.9.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae6c706ac1d85a0b3cb3395308fd0c4d55e3202b4760773675957e93cdff45fc", size = 287865, upload-time = "2026-03-22T15:56:14.813Z" }, + { url = "https://files.pythonhosted.org/packages/db/9d/7ede2cc42f9bb4260492e7d29d2aab781eacbbcfb09d983de1e695077199/cbor2-5.9.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4cd43d8fc374b31643b2830910f28177a606a7bc84975a62675dd3f2e320fc7b", size = 288246, upload-time = "2026-03-22T15:56:16.113Z" }, + { url = "https://files.pythonhosted.org/packages/ce/9d/588ebc7c5bc5843f609b05fe07be8575c7dec987735b0bbc908ac9c1264a/cbor2-5.9.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4aa07b392cc3d76fb31c08a46a226b58c320d1c172ff3073e864409ced7bc50f", size = 280214, upload-time = "2026-03-22T15:56:17.519Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a1/6fc8f4b15c6a27e7fbb7966c30c2b4b18c274a3221fa2f5e6235502d34bc/cbor2-5.9.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:971d425b3a23b75953d8853d5f9911bdeefa09d759ee3b5e6b07b5ff3cbd9073", size = 282162, upload-time = "2026-03-22T15:56:18.975Z" }, + { url = "https://files.pythonhosted.org/packages/81/c5/4901e21a8afe9448fd947b11e8f383903207cd6dd0800e5f5a386838de5b/cbor2-5.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fbb06f34aa645b4deca66643bba3d400d20c15312d1fe88d429be60c1ab50f27", size = 71284, upload-time = "2026-03-22T15:56:22.836Z" }, + { url = "https://files.pythonhosted.org/packages/1b/10/df643a381aebc3f05486de4813662bc58accb640fc3275cb276a75e89694/cbor2-5.9.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac684fe195c39821fca70d18afbf748f728aefbfbf88456018d299e559b8cae0", size = 287682, upload-time = "2026-03-22T15:56:24.024Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/8aa6b766059ae4a0ca1ec3ff96fe3823a69a7be880dba2e249f7fbe2700b/cbor2-5.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a54fbb32cb828c214f7f333a707e4aec61182e7efdc06ea5d9596d3ecee624a", size = 288009, upload-time = "2026-03-22T15:56:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/74/07/6236bc25c183a9cf7e8062e5dddf9eae9b0b14ebf14a58a69fe5a1e872c6/cbor2-5.9.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4753a6d1bc71054d9179557bc65740860f185095ccb401d46637fff028a5b3ec", size = 280437, upload-time = "2026-03-22T15:56:26.479Z" }, + { url = "https://files.pythonhosted.org/packages/4e/0a/84328d23c3c68874ac6497edb9b1900579a1028efa54734df3f1762bbc15/cbor2-5.9.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:380e534482b843e43442b87d8777a7bf9bed20cb7526f89b780c3400f617304b", size = 282247, upload-time = "2026-03-22T15:56:28.644Z" }, + { url = "https://files.pythonhosted.org/packages/08/7d/9ccc36d10ef96e6038e48046ebe1ce35a1e7814da0e1e204d09e6ef09b8d/cbor2-5.9.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23606d31ba1368bd1b6602e3020ee88fe9523ca80e8630faf6b2fc904fd84560", size = 71500, upload-time = "2026-03-22T15:56:31.876Z" }, + { url = "https://files.pythonhosted.org/packages/70/e1/a6cca2cc72e13f00030c6a649f57ae703eb2c620806ab70c40db8eab33fa/cbor2-5.9.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0322296b9d52f55880e300ba8ba09ecf644303b99b51138bbb1c0fb644fa7c3e", size = 286953, upload-time = "2026-03-22T15:56:33.292Z" }, + { url = "https://files.pythonhosted.org/packages/08/3c/24cd5ef488a957d90e016f200a3aad820e4c2f85edd61c9fe4523007a1ee/cbor2-5.9.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:422817286c1d0ce947fb2f7eca9212b39bddd7231e8b452e2d2cc52f15332dba", size = 285454, upload-time = "2026-03-22T15:56:34.703Z" }, + { url = "https://files.pythonhosted.org/packages/a4/35/dca96818494c0ba47cdd73e8d809b27fa91f8fa0ce32a068a09237687454/cbor2-5.9.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9a4907e0c3035bb8836116854ed8e56d8aef23909d601fa59706320897ec2551", size = 279441, upload-time = "2026-03-22T15:56:35.888Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/d3362378b16e53cf7e535a3f5aed8476e2109068154e24e31981ef5bde9e/cbor2-5.9.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fb7afe77f8d269e42d7c4b515c6fd14f1ccc0625379fb6829b269f493d16eddd", size = 279673, upload-time = "2026-03-22T15:56:37.08Z" }, + { url = "https://files.pythonhosted.org/packages/42/ff/b83492b096fbef26e9cb62c1a4bf2d3cef579ea7b33138c6c37c4ae66f67/cbor2-5.9.0-py3-none-any.whl", hash = "sha256:27695cbd70c90b8de5c4a284642c2836449b14e2c2e07e3ffe0744cb7669a01b", size = 24627, upload-time = "2026-03-22T15:56:48.847Z" }, ] [[package]] @@ -730,54 +721,54 @@ toml = [ [[package]] name = "cryptography" -version = "46.0.5" +version = "46.0.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "(platform_python_implementation != 'PyPy' and sys_platform == 'darwin') or (platform_python_implementation != 'PyPy' and sys_platform == 'linux')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/ba/04b1bd4218cbc58dc90ce967106d51582371b898690f3ae0402876cc4f34/cryptography-46.0.6.tar.gz", hash = "sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759", size = 750542, upload-time = "2026-03-25T23:34:53.396Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" }, - { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" }, - { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" }, - { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" }, - { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" }, - { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" }, - { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" }, - { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" }, - { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" }, - { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" }, - { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" }, - { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" }, - { url = "https://files.pythonhosted.org/packages/00/13/3d278bfa7a15a96b9dc22db5a12ad1e48a9eb3d40e1827ef66a5df75d0d0/cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2", size = 7119287, upload-time = "2026-02-10T19:17:33.801Z" }, - { url = "https://files.pythonhosted.org/packages/67/c8/581a6702e14f0898a0848105cbefd20c058099e2c2d22ef4e476dfec75d7/cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678", size = 4265728, upload-time = "2026-02-10T19:17:35.569Z" }, - { url = "https://files.pythonhosted.org/packages/dd/4a/ba1a65ce8fc65435e5a849558379896c957870dd64fecea97b1ad5f46a37/cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87", size = 4408287, upload-time = "2026-02-10T19:17:36.938Z" }, - { url = "https://files.pythonhosted.org/packages/f8/67/8ffdbf7b65ed1ac224d1c2df3943553766914a8ca718747ee3871da6107e/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee", size = 4270291, upload-time = "2026-02-10T19:17:38.748Z" }, - { url = "https://files.pythonhosted.org/packages/f8/e5/f52377ee93bc2f2bba55a41a886fd208c15276ffbd2569f2ddc89d50e2c5/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981", size = 4927539, upload-time = "2026-02-10T19:17:40.241Z" }, - { url = "https://files.pythonhosted.org/packages/3b/02/cfe39181b02419bbbbcf3abdd16c1c5c8541f03ca8bda240debc467d5a12/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9", size = 4442199, upload-time = "2026-02-10T19:17:41.789Z" }, - { url = "https://files.pythonhosted.org/packages/c0/96/2fcaeb4873e536cf71421a388a6c11b5bc846e986b2b069c79363dc1648e/cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648", size = 3960131, upload-time = "2026-02-10T19:17:43.379Z" }, - { url = "https://files.pythonhosted.org/packages/d8/d2/b27631f401ddd644e94c5cf33c9a4069f72011821cf3dc7309546b0642a0/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4", size = 4270072, upload-time = "2026-02-10T19:17:45.481Z" }, - { url = "https://files.pythonhosted.org/packages/f4/a7/60d32b0370dae0b4ebe55ffa10e8599a2a59935b5ece1b9f06edb73abdeb/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0", size = 4892170, upload-time = "2026-02-10T19:17:46.997Z" }, - { url = "https://files.pythonhosted.org/packages/d2/b9/cf73ddf8ef1164330eb0b199a589103c363afa0cf794218c24d524a58eab/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663", size = 4441741, upload-time = "2026-02-10T19:17:48.661Z" }, - { url = "https://files.pythonhosted.org/packages/5f/eb/eee00b28c84c726fe8fa0158c65afe312d9c3b78d9d01daf700f1f6e37ff/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826", size = 4396728, upload-time = "2026-02-10T19:17:50.058Z" }, - { url = "https://files.pythonhosted.org/packages/65/f4/6bc1a9ed5aef7145045114b75b77c2a8261b4d38717bd8dea111a63c3442/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d", size = 4652001, upload-time = "2026-02-10T19:17:51.54Z" }, - { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" }, - { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" }, - { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" }, - { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" }, - { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" }, - { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" }, - { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" }, - { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" }, - { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" }, - { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" }, - { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" }, - { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" }, - { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" }, - { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" }, - { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" }, - { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" }, - { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/47/23/9285e15e3bc57325b0a72e592921983a701efc1ee8f91c06c5f0235d86d9/cryptography-46.0.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8", size = 7176401, upload-time = "2026-03-25T23:33:22.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/f8/e61f8f13950ab6195b31913b42d39f0f9afc7d93f76710f299b5ec286ae6/cryptography-46.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30", size = 4275275, upload-time = "2026-03-25T23:33:23.844Z" }, + { url = "https://files.pythonhosted.org/packages/19/69/732a736d12c2631e140be2348b4ad3d226302df63ef64d30dfdb8db7ad1c/cryptography-46.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a", size = 4425320, upload-time = "2026-03-25T23:33:25.703Z" }, + { url = "https://files.pythonhosted.org/packages/d4/12/123be7292674abf76b21ac1fc0e1af50661f0e5b8f0ec8285faac18eb99e/cryptography-46.0.6-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175", size = 4278082, upload-time = "2026-03-25T23:33:27.423Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ba/d5e27f8d68c24951b0a484924a84c7cdaed7502bac9f18601cd357f8b1d2/cryptography-46.0.6-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463", size = 4926514, upload-time = "2026-03-25T23:33:29.206Z" }, + { url = "https://files.pythonhosted.org/packages/34/71/1ea5a7352ae516d5512d17babe7e1b87d9db5150b21f794b1377eac1edc0/cryptography-46.0.6-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97", size = 4457766, upload-time = "2026-03-25T23:33:30.834Z" }, + { url = "https://files.pythonhosted.org/packages/01/59/562be1e653accee4fdad92c7a2e88fced26b3fdfce144047519bbebc299e/cryptography-46.0.6-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c", size = 3986535, upload-time = "2026-03-25T23:33:33.02Z" }, + { url = "https://files.pythonhosted.org/packages/d6/8b/b1ebfeb788bf4624d36e45ed2662b8bd43a05ff62157093c1539c1288a18/cryptography-46.0.6-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507", size = 4277618, upload-time = "2026-03-25T23:33:34.567Z" }, + { url = "https://files.pythonhosted.org/packages/dd/52/a005f8eabdb28df57c20f84c44d397a755782d6ff6d455f05baa2785bd91/cryptography-46.0.6-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19", size = 4890802, upload-time = "2026-03-25T23:33:37.034Z" }, + { url = "https://files.pythonhosted.org/packages/ec/4d/8e7d7245c79c617d08724e2efa397737715ca0ec830ecb3c91e547302555/cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738", size = 4457425, upload-time = "2026-03-25T23:33:38.904Z" }, + { url = "https://files.pythonhosted.org/packages/1d/5c/f6c3596a1430cec6f949085f0e1a970638d76f81c3ea56d93d564d04c340/cryptography-46.0.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c", size = 4405530, upload-time = "2026-03-25T23:33:40.842Z" }, + { url = "https://files.pythonhosted.org/packages/7e/c9/9f9cea13ee2dbde070424e0c4f621c091a91ffcc504ffea5e74f0e1daeff/cryptography-46.0.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f", size = 4667896, upload-time = "2026-03-25T23:33:42.781Z" }, + { url = "https://files.pythonhosted.org/packages/01/41/3a578f7fd5c70611c0aacba52cd13cb364a5dee895a5c1d467208a9380b0/cryptography-46.0.6-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275", size = 7117147, upload-time = "2026-03-25T23:33:48.249Z" }, + { url = "https://files.pythonhosted.org/packages/fa/87/887f35a6fca9dde90cad08e0de0c89263a8e59b2d2ff904fd9fcd8025b6f/cryptography-46.0.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4", size = 4266221, upload-time = "2026-03-25T23:33:49.874Z" }, + { url = "https://files.pythonhosted.org/packages/aa/a8/0a90c4f0b0871e0e3d1ed126aed101328a8a57fd9fd17f00fb67e82a51ca/cryptography-46.0.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b", size = 4408952, upload-time = "2026-03-25T23:33:52.128Z" }, + { url = "https://files.pythonhosted.org/packages/16/0b/b239701eb946523e4e9f329336e4ff32b1247e109cbab32d1a7b61da8ed7/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707", size = 4270141, upload-time = "2026-03-25T23:33:54.11Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a8/976acdd4f0f30df7b25605f4b9d3d89295351665c2091d18224f7ad5cdbf/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361", size = 4904178, upload-time = "2026-03-25T23:33:55.725Z" }, + { url = "https://files.pythonhosted.org/packages/b1/1b/bf0e01a88efd0e59679b69f42d4afd5bced8700bb5e80617b2d63a3741af/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b", size = 4441812, upload-time = "2026-03-25T23:33:57.364Z" }, + { url = "https://files.pythonhosted.org/packages/bb/8b/11df86de2ea389c65aa1806f331cae145f2ed18011f30234cc10ca253de8/cryptography-46.0.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca", size = 3963923, upload-time = "2026-03-25T23:33:59.361Z" }, + { url = "https://files.pythonhosted.org/packages/91/e0/207fb177c3a9ef6a8108f234208c3e9e76a6aa8cf20d51932916bd43bda0/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013", size = 4269695, upload-time = "2026-03-25T23:34:00.909Z" }, + { url = "https://files.pythonhosted.org/packages/21/5e/19f3260ed1e95bced52ace7501fabcd266df67077eeb382b79c81729d2d3/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4", size = 4869785, upload-time = "2026-03-25T23:34:02.796Z" }, + { url = "https://files.pythonhosted.org/packages/10/38/cd7864d79aa1d92ef6f1a584281433419b955ad5a5ba8d1eb6c872165bcb/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a", size = 4441404, upload-time = "2026-03-25T23:34:04.35Z" }, + { url = "https://files.pythonhosted.org/packages/09/0a/4fe7a8d25fed74419f91835cf5829ade6408fd1963c9eae9c4bce390ecbb/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d", size = 4397549, upload-time = "2026-03-25T23:34:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a0/7d738944eac6513cd60a8da98b65951f4a3b279b93479a7e8926d9cd730b/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736", size = 4651874, upload-time = "2026-03-25T23:34:07.916Z" }, + { url = "https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a", size = 7162776, upload-time = "2026-03-25T23:34:13.308Z" }, + { url = "https://files.pythonhosted.org/packages/49/b3/dc27efd8dcc4bff583b3f01d4a3943cd8b5821777a58b3a6a5f054d61b79/cryptography-46.0.6-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8", size = 4270529, upload-time = "2026-03-25T23:34:15.019Z" }, + { url = "https://files.pythonhosted.org/packages/e6/05/e8d0e6eb4f0d83365b3cb0e00eb3c484f7348db0266652ccd84632a3d58d/cryptography-46.0.6-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77", size = 4414827, upload-time = "2026-03-25T23:34:16.604Z" }, + { url = "https://files.pythonhosted.org/packages/2f/97/daba0f5d2dc6d855e2dcb70733c812558a7977a55dd4a6722756628c44d1/cryptography-46.0.6-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290", size = 4271265, upload-time = "2026-03-25T23:34:18.586Z" }, + { url = "https://files.pythonhosted.org/packages/89/06/fe1fce39a37ac452e58d04b43b0855261dac320a2ebf8f5260dd55b201a9/cryptography-46.0.6-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410", size = 4916800, upload-time = "2026-03-25T23:34:20.561Z" }, + { url = "https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d", size = 4448771, upload-time = "2026-03-25T23:34:22.406Z" }, + { url = "https://files.pythonhosted.org/packages/01/b3/0796998056a66d1973fd52ee89dc1bb3b6581960a91ad4ac705f182d398f/cryptography-46.0.6-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70", size = 3978333, upload-time = "2026-03-25T23:34:24.281Z" }, + { url = "https://files.pythonhosted.org/packages/c5/3d/db200af5a4ffd08918cd55c08399dc6c9c50b0bc72c00a3246e099d3a849/cryptography-46.0.6-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d", size = 4271069, upload-time = "2026-03-25T23:34:25.895Z" }, + { url = "https://files.pythonhosted.org/packages/d7/18/61acfd5b414309d74ee838be321c636fe71815436f53c9f0334bf19064fa/cryptography-46.0.6-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa", size = 4878358, upload-time = "2026-03-25T23:34:27.67Z" }, + { url = "https://files.pythonhosted.org/packages/8b/65/5bf43286d566f8171917cae23ac6add941654ccf085d739195a4eacf1674/cryptography-46.0.6-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58", size = 4448061, upload-time = "2026-03-25T23:34:29.375Z" }, + { url = "https://files.pythonhosted.org/packages/e0/25/7e49c0fa7205cf3597e525d156a6bce5b5c9de1fd7e8cb01120e459f205a/cryptography-46.0.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb", size = 4399103, upload-time = "2026-03-25T23:34:32.036Z" }, + { url = "https://files.pythonhosted.org/packages/44/46/466269e833f1c4718d6cd496ffe20c56c9c8d013486ff66b4f69c302a68d/cryptography-46.0.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72", size = 4659255, upload-time = "2026-03-25T23:34:33.679Z" }, + { url = "https://files.pythonhosted.org/packages/2e/84/7ccff00ced5bac74b775ce0beb7d1be4e8637536b522b5df9b73ada42da2/cryptography-46.0.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:2ea0f37e9a9cf0df2952893ad145fd9627d326a59daec9b0802480fa3bcd2ead", size = 3475444, upload-time = "2026-03-25T23:34:38.944Z" }, + { url = "https://files.pythonhosted.org/packages/bc/1f/4c926f50df7749f000f20eede0c896769509895e2648db5da0ed55db711d/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a3e84d5ec9ba01f8fd03802b2147ba77f0c8f2617b2aff254cedd551844209c8", size = 4218227, upload-time = "2026-03-25T23:34:40.871Z" }, + { url = "https://files.pythonhosted.org/packages/c6/65/707be3ffbd5f786028665c3223e86e11c4cda86023adbc56bd72b1b6bab5/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:12f0fa16cc247b13c43d56d7b35287ff1569b5b1f4c5e87e92cc4fcc00cd10c0", size = 4381399, upload-time = "2026-03-25T23:34:42.609Z" }, + { url = "https://files.pythonhosted.org/packages/f3/6d/73557ed0ef7d73d04d9aba745d2c8e95218213687ee5e76b7d236a5030fc/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:50575a76e2951fe7dbd1f56d181f8c5ceeeb075e9ff88e7ad997d2f42af06e7b", size = 4217595, upload-time = "2026-03-25T23:34:44.205Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c5/e1594c4eec66a567c3ac4400008108a415808be2ce13dcb9a9045c92f1a0/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:90e5f0a7b3be5f40c3a0a0eafb32c681d8d2c181fc2a1bdabe9b3f611d9f6b1a", size = 4380912, upload-time = "2026-03-25T23:34:46.328Z" }, ] [[package]] @@ -831,6 +822,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2d/82/e5d2c1c67d19841e9edc74954c827444ae826978499bde3dfc1d007c8c11/deepmerge-2.0-py3-none-any.whl", hash = "sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00", size = 13475, upload-time = "2024-08-30T05:31:48.659Z" }, ] +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + [[package]] name = "deprecated" version = "1.3.1" @@ -888,15 +888,15 @@ wheels = [ [[package]] name = "django-allauth" -version = "65.14.1" +version = "65.15.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/02/549b6f41ba3e55d4e2cf8e181cdf57b50035a3c0bdddb710a7df0b24efb0/django_allauth-65.14.1.tar.gz", hash = "sha256:2467656d0adc835607e407847054979ab5a943778f6eb8980ed2a29eee6c5790", size = 1993088, upload-time = "2026-02-07T22:36:52.279Z" } +sdist = { url = "https://files.pythonhosted.org/packages/84/c1/d3385f4c3169c1d6eea3c63aed0f36af51478c1d72e46db12bb1a08f8034/django_allauth-65.15.0.tar.gz", hash = "sha256:b404d48cf0c3ee14dacc834c541f30adedba2ff1c433980ecc494d6cb0b395a8", size = 2215709, upload-time = "2026-03-09T13:51:28.675Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/28/80/05e2b3fffb80260af2dbb179d186929d7531bc9331974ba774d1d8eb3e38/django_allauth-65.14.1-py3-none-any.whl", hash = "sha256:204d8a07f217c41769a62aa4c7ae7afeb2886c841bebda6964e613e5be72e8b3", size = 1793120, upload-time = "2026-02-07T22:37:03.486Z" }, + { url = "https://files.pythonhosted.org/packages/75/b8/c8411339171bd8bc075c09ef190fb42195e9a2149e5c5026e094fe62fce0/django_allauth-65.15.0-py3-none-any.whl", hash = "sha256:ad9fc49c49a9368eaa5bb95456b76e2a4f377b3c6862ee8443507816578c098d", size = 2022994, upload-time = "2026-03-09T13:51:19.711Z" }, ] [package.optional-dependencies] @@ -1108,14 +1108,14 @@ wheels = [ [[package]] name = "djangorestframework" -version = "3.16.1" +version = "3.17.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8a/95/5376fe618646fde6899b3cdc85fd959716bb67542e273a76a80d9f326f27/djangorestframework-3.16.1.tar.gz", hash = "sha256:166809528b1aced0a17dc66c24492af18049f2c9420dbd0be29422029cfc3ff7", size = 1089735, upload-time = "2025-08-06T17:50:53.251Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/d7/c016e69fac19ff8afdc89db9d31d9ae43ae031e4d1993b20aca179b8301a/djangorestframework-3.17.1.tar.gz", hash = "sha256:a6def5f447fe78ff853bff1d47a3c59bf38f5434b031780b351b0c73a62db1a5", size = 905742, upload-time = "2026-03-24T16:58:33.705Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/ce/bf8b9d3f415be4ac5588545b5fcdbbb841977db1c1d923f7568eeabe1689/djangorestframework-3.16.1-py3-none-any.whl", hash = "sha256:33a59f47fb9c85ede792cbf88bde71893bcda0667bc573f784649521f1102cec", size = 1080442, upload-time = "2025-08-06T17:50:50.667Z" }, + { url = "https://files.pythonhosted.org/packages/5a/e1/2c516bdc83652b1a60c6119366ac2c0607b479ed05cd6093f916ca8928f8/djangorestframework-3.17.1-py3-none-any.whl", hash = "sha256:c3c74dd3e83a5a3efc37b3c18d92bd6f86a6791c7b7d4dff62bb068500e76457", size = 898844, upload-time = "2026-03-24T16:58:31.845Z" }, ] [[package]] @@ -1283,6 +1283,59 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a6/ff/ee2f67c0ff146ec98b5df1df637b2bc2d17beeb05df9f427a67bd7a7d79c/flower-2.0.1-py2.py3-none-any.whl", hash = "sha256:9db2c621eeefbc844c8dd88be64aef61e84e2deb29b271e02ab2b5b9f01068e2", size = 383553, upload-time = "2023-08-13T14:37:41.552Z" }, ] +[[package]] +name = "fonttools" +version = "4.62.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/96/686339e0fda8142b7ebed39af53f4a5694602a729662f42a6209e3be91d0/fonttools-4.62.0.tar.gz", hash = "sha256:0dc477c12b8076b4eb9af2e440421b0433ffa9e1dcb39e0640a6c94665ed1098", size = 3579521, upload-time = "2026-03-09T16:50:06.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/33/63d79ca41020dd460b51f1e0f58ad1ff0a36b7bcbdf8f3971d52836581e9/fonttools-4.62.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:196cafef9aeec5258425bd31a4e9a414b2ee0d1557bca184d7923d3d3bcd90f9", size = 2870816, upload-time = "2026-03-09T16:48:32.39Z" }, + { url = "https://files.pythonhosted.org/packages/c0/7a/9aeec114bc9fc00d757a41f092f7107863d372e684a5b5724c043654477c/fonttools-4.62.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:153afc3012ff8761b1733e8fbe5d98623409774c44ffd88fbcb780e240c11d13", size = 2416127, upload-time = "2026-03-09T16:48:34.627Z" }, + { url = "https://files.pythonhosted.org/packages/5a/71/12cfd8ae0478b7158ffa8850786781f67e73c00fd897ef9d053415c5f88b/fonttools-4.62.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13b663fb197334de84db790353d59da2a7288fd14e9be329f5debc63ec0500a5", size = 5100678, upload-time = "2026-03-09T16:48:36.454Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d7/8e4845993ee233c2023d11babe9b3dae7d30333da1d792eeccebcb77baab/fonttools-4.62.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:591220d5333264b1df0d3285adbdfe2af4f6a45bbf9ca2b485f97c9f577c49ff", size = 5070859, upload-time = "2026-03-09T16:48:38.786Z" }, + { url = "https://files.pythonhosted.org/packages/ae/a0/287ae04cd883a52e7bb1d92dfc4997dcffb54173761c751106845fa9e316/fonttools-4.62.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:579f35c121528a50c96bf6fcb6a393e81e7f896d4326bf40e379f1c971603db9", size = 5076689, upload-time = "2026-03-09T16:48:41.886Z" }, + { url = "https://files.pythonhosted.org/packages/6d/4e/a2377ad26c36fcd3e671a1c316ea5ed83107de1588e2d897a98349363bc7/fonttools-4.62.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:44956b003151d5a289eba6c71fe590d63509267c37e26de1766ba15d9c589582", size = 5202053, upload-time = "2026-03-09T16:48:43.867Z" }, + { url = "https://files.pythonhosted.org/packages/ab/9d/7ad1ffc080619f67d0b1e0fa6a0578f0be077404f13fd8e448d1616a94a3/fonttools-4.62.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:22bde4dc12a9e09b5ced77f3b5053d96cf10c4976c6ac0dee293418ef289d221", size = 2870004, upload-time = "2026-03-09T16:48:50.837Z" }, + { url = "https://files.pythonhosted.org/packages/4d/8b/ba59069a490f61b737e064c3129453dbd28ee38e81d56af0d04d7e6b4de4/fonttools-4.62.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7199c73b326bad892f1cb53ffdd002128bfd58a89b8f662204fbf1daf8d62e85", size = 2414662, upload-time = "2026-03-09T16:48:53.295Z" }, + { url = "https://files.pythonhosted.org/packages/8c/8c/c52a4310de58deeac7e9ea800892aec09b00bb3eb0c53265b31ec02be115/fonttools-4.62.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d732938633681d6e2324e601b79e93f7f72395ec8681f9cdae5a8c08bc167e72", size = 5032975, upload-time = "2026-03-09T16:48:55.718Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a1/d16318232964d786907b9b3613b8409f74cf0be2da400854509d3a864e43/fonttools-4.62.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31a804c16d76038cc4e3826e07678efb0a02dc4f15396ea8e07088adbfb2578e", size = 4988544, upload-time = "2026-03-09T16:48:57.715Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8d/7e745ca3e65852adc5e52a83dc213fe1b07d61cb5b394970fcd4b1199d1e/fonttools-4.62.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:090e74ac86e68c20150e665ef8e7e0c20cb9f8b395302c9419fa2e4d332c3b51", size = 4971296, upload-time = "2026-03-09T16:48:59.678Z" }, + { url = "https://files.pythonhosted.org/packages/e6/d4/b717a4874175146029ca1517e85474b1af80c9d9a306fc3161e71485eea5/fonttools-4.62.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8f086120e8be9e99ca1288aa5ce519833f93fe0ec6ebad2380c1dee18781f0b5", size = 5122503, upload-time = "2026-03-09T16:49:02.464Z" }, + { url = "https://files.pythonhosted.org/packages/82/c7/985c1670aa6d82ef270f04cde11394c168f2002700353bd2bde405e59b8f/fonttools-4.62.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:274c8b8a87e439faf565d3bcd3f9f9e31bca7740755776a4a90a4bfeaa722efa", size = 2864929, upload-time = "2026-03-09T16:49:09.331Z" }, + { url = "https://files.pythonhosted.org/packages/c1/dc/c409c8ceec0d3119e9ab0b7b1a2e3c76d1f4d66e4a9db5c59e6b7652e7df/fonttools-4.62.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93e27131a5a0ae82aaadcffe309b1bae195f6711689722af026862bede05c07c", size = 2412586, upload-time = "2026-03-09T16:49:11.378Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ac/8e300dbf7b4d135287c261ffd92ede02d9f48f0d2db14665fbc8b059588a/fonttools-4.62.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83c6524c5b93bad9c2939d88e619fedc62e913c19e673f25d5ab74e7a5d074e5", size = 5013708, upload-time = "2026-03-09T16:49:14.063Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bc/60d93477b653eeb1ddf5f9ec34be689b79234d82dbdded269ac0252715b8/fonttools-4.62.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:106aec9226f9498fc5345125ff7200842c01eda273ae038f5049b0916907acee", size = 4964355, upload-time = "2026-03-09T16:49:16.515Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/6dc62bcc3c3598c28a3ecb77e69018869c3e109bd83031d4973c059d318b/fonttools-4.62.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:15d86b96c79013320f13bc1b15f94789edb376c0a2d22fb6088f33637e8dfcbc", size = 4953472, upload-time = "2026-03-09T16:49:18.494Z" }, + { url = "https://files.pythonhosted.org/packages/82/b3/3af7592d9b254b7b7fec018135f8776bfa0d1ad335476c2791b1334dc5e4/fonttools-4.62.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f16c07e5250d5d71d0f990a59460bc5620c3cc456121f2cfb5b60475699905f", size = 5094701, upload-time = "2026-03-09T16:49:21.67Z" }, + { url = "https://files.pythonhosted.org/packages/1a/64/61f69298aa6e7c363dcf00dd6371a654676900abe27d1effd1a74b43e5d0/fonttools-4.62.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:4fa5a9c716e2f75ef34b5a5c2ca0ee4848d795daa7e6792bf30fd4abf8993449", size = 2864222, upload-time = "2026-03-09T16:49:28.285Z" }, + { url = "https://files.pythonhosted.org/packages/c6/57/6b08756fe4455336b1fe160ab3c11fccc90768ccb6ee03fb0b45851aace4/fonttools-4.62.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:625f5cbeb0b8f4e42343eaeb4bc2786718ddd84760a2f5e55fdd3db049047c00", size = 2410674, upload-time = "2026-03-09T16:49:30.504Z" }, + { url = "https://files.pythonhosted.org/packages/6f/86/db65b63bb1b824b63e602e9be21b18741ddc99bcf5a7850f9181159ae107/fonttools-4.62.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6247e58b96b982709cd569a91a2ba935d406dccf17b6aa615afaed37ac3856aa", size = 4999387, upload-time = "2026-03-09T16:49:32.593Z" }, + { url = "https://files.pythonhosted.org/packages/86/c8/c6669e42d2f4efd60d38a3252cebbb28851f968890efb2b9b15f9d1092b0/fonttools-4.62.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:840632ea9c1eab7b7f01c369e408c0721c287dfd7500ab937398430689852fd1", size = 4912506, upload-time = "2026-03-09T16:49:34.927Z" }, + { url = "https://files.pythonhosted.org/packages/2e/49/0ae552aa098edd0ec548413fbf818f52ceb70535016215094a5ce9bf8f70/fonttools-4.62.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:28a9ea2a7467a816d1bec22658b0cce4443ac60abac3e293bdee78beb74588f3", size = 4951202, upload-time = "2026-03-09T16:49:37.1Z" }, + { url = "https://files.pythonhosted.org/packages/71/65/ae38fc8a4cea6f162d74cf11f58e9aeef1baa7d0e3d1376dabd336c129e5/fonttools-4.62.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5ae611294f768d413949fd12693a8cba0e6332fbc1e07aba60121be35eac68d0", size = 5060758, upload-time = "2026-03-09T16:49:39.464Z" }, + { url = "https://files.pythonhosted.org/packages/f8/65/f47f9b3db1ec156a1f222f1089ba076b2cc9ee1d024a8b0a60c54258517e/fonttools-4.62.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0361a7d41d86937f1f752717c19f719d0fde064d3011038f9f19bdf5fc2f5c95", size = 2947079, upload-time = "2026-03-09T16:49:46.471Z" }, + { url = "https://files.pythonhosted.org/packages/52/73/bc62e5058a0c22cf02b1e0169ef0c3ca6c3247216d719f95bead3c05a991/fonttools-4.62.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4108c12773b3c97aa592311557c405d5b4fc03db2b969ed928fcf68e7b3c887", size = 2448802, upload-time = "2026-03-09T16:49:48.328Z" }, + { url = "https://files.pythonhosted.org/packages/2b/df/bfaa0e845884935355670e6e68f137185ab87295f8bc838db575e4a66064/fonttools-4.62.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b448075f32708e8fb377fe7687f769a5f51a027172c591ba9a58693631b077a8", size = 5137378, upload-time = "2026-03-09T16:49:50.223Z" }, + { url = "https://files.pythonhosted.org/packages/32/32/04f616979a18b48b52e634988b93d847b6346260faf85ecccaf7e2e9057f/fonttools-4.62.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5f1fa8cc9f1a56a3e33ee6b954d6d9235e6b9d11eb7a6c9dfe2c2f829dc24db", size = 4920714, upload-time = "2026-03-09T16:49:53.172Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2e/274e16689c1dfee5c68302cd7c444213cfddd23cf4620374419625037ec6/fonttools-4.62.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f8c8ea812f82db1e884b9cdb663080453e28f0f9a1f5027a5adb59c4cc8d38d1", size = 5016012, upload-time = "2026-03-09T16:49:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/7f/0c/b08117270626e7117ac2f89d732fdd4386ec37d2ab3a944462d29e6f89a1/fonttools-4.62.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:03c6068adfdc67c565d217e92386b1cdd951abd4240d65180cec62fa74ba31b2", size = 5042766, upload-time = "2026-03-09T16:49:57.726Z" }, + { url = "https://files.pythonhosted.org/packages/9c/57/c2487c281dde03abb2dec244fd67059b8d118bd30a653cbf69e94084cb23/fonttools-4.62.0-py3-none-any.whl", hash = "sha256:75064f19a10c50c74b336aa5ebe7b1f89fd0fb5255807bfd4b0c6317098f4af3", size = 1152427, upload-time = "2026-03-09T16:50:04.074Z" }, +] + +[[package]] +name = "fpdf2" +version = "2.8.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "defusedxml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fonttools", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/f2/72feae0b2827ed38013e4307b14f95bf0b3d124adfef4d38a7d57533f7be/fpdf2-2.8.7.tar.gz", hash = "sha256:7060ccee5a9c7ab0a271fb765a36a23639f83ef8996c34e3d46af0a17ede57f9", size = 362351, upload-time = "2026-02-28T05:39:16.456Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/0a/cf50ecffa1e3747ed9380a3adfc829259f1f86b3fdbd9e505af789003141/fpdf2-2.8.7-py3-none-any.whl", hash = "sha256:d391fc508a3ce02fc43a577c830cda4fe6f37646f2d143d489839940932fbc19", size = 327056, upload-time = "2026-02-28T05:39:14.619Z" }, +] + [[package]] name = "frozenlist" version = "1.8.0" @@ -1381,14 +1434,14 @@ wheels = [ [[package]] name = "gotenberg-client" -version = "0.13.1" +version = "0.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx", extra = ["http2"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e4/6c/aaadd6657ca42fbd148b1c00604b98c1ead5a22552f4e5365ce5f0632430/gotenberg_client-0.13.1.tar.gz", hash = "sha256:cdd6bbb535cd739b87446cd1b4f6347ed7f9af6a0d4b19baf7c064b75528ee54", size = 1211143, upload-time = "2025-12-04T20:45:24.151Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/34/8e3be3a6a1b654d2a3bfa3e5d201183aeff6d50c42199ac0b8ed912c01c5/gotenberg_client-0.14.0.tar.gz", hash = "sha256:a853700c6b01c3372871264c4eb9ae3375addafbcbbfd3341e411f4217a8088c", size = 1214438, upload-time = "2026-03-11T17:23:11.122Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/f6/7a6e6785295332d2538f729ae19516cef712273a5ab8b90d015f08e37a45/gotenberg_client-0.13.1-py3-none-any.whl", hash = "sha256:613f7083a5e8a81699dd8d715c97e5806a424ac48920aad25d7c11b600cdfaf3", size = 51058, upload-time = "2025-12-04T20:45:22.603Z" }, + { url = "https://files.pythonhosted.org/packages/55/1a/67ff4cca162ae4195bd6f1a107779898b6f2977cc33ae7e05a5178a395fa/gotenberg_client-0.14.0-py3-none-any.whl", hash = "sha256:868f1be46d1ed0f327ca3efeb1888b4fe35641c35bfa39684d23a59365703156", size = 50977, upload-time = "2026-03-11T17:23:09.397Z" }, ] [[package]] @@ -2086,7 +2139,7 @@ wheels = [ [[package]] name = "llama-index-core" -version = "0.14.15" +version = "0.14.19" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2118,9 +2171,9 @@ dependencies = [ { name = "typing-inspect", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "wrapt", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/4f/7c714bdf94dd229707b43e7f8cedf3aed0a99938fd46a9ad8a418c199988/llama_index_core-0.14.15.tar.gz", hash = "sha256:3766aeeb95921b3a2af8c2a51d844f75f404215336e1639098e3652db52c68ce", size = 11593505, upload-time = "2026-02-18T19:05:48.274Z" } +sdist = { url = "https://files.pythonhosted.org/packages/09/eb/a661cc2f70177f59cfe7bfcdb7a4e9352fb073ab46927068151bf2905fbb/llama_index_core-0.14.19.tar.gz", hash = "sha256:7b17f321f0d965495402890991b2bfde49d4197bc46ca5970300cc7b9c2df6a2", size = 11599592, upload-time = "2026-03-25T20:58:25.751Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/9e/262f6465ee4fffa40698b3cc2177e377ce7d945d3bd8b7d9c6b09448625d/llama_index_core-0.14.15-py3-none-any.whl", hash = "sha256:e02b321c10673871a38aaefdc4a93d5ae8ec324cad4408683189e5a1aa1e3d52", size = 11937002, upload-time = "2026-02-18T19:05:45.855Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b6/6c2678b8597903503b804fe831a203d299bcbcc07bdf35789a484e67f7c0/llama_index_core-0.14.19-py3-none-any.whl", hash = "sha256:807352f16a300f9980d0110cfdaa81d07e201384965e9f7d940c8ead80d463ed", size = 11945679, upload-time = "2026-03-25T20:58:28.265Z" }, ] [[package]] @@ -2638,7 +2691,7 @@ wheels = [ [[package]] name = "nltk" -version = "3.9.3" +version = "3.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2646,9 +2699,9 @@ dependencies = [ { name = "regex", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tqdm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/8f/915e1c12df07c70ed779d18ab83d065718a926e70d3ea33eb0cd66ffb7c0/nltk-3.9.3.tar.gz", hash = "sha256:cb5945d6424a98d694c2b9a0264519fab4363711065a46aa0ae7a2195b92e71f", size = 2923673, upload-time = "2026-02-24T12:05:53.833Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/a1/b3b4adf15585a5bc4c357adde150c01ebeeb642173ded4d871e89468767c/nltk-3.9.4.tar.gz", hash = "sha256:ed03bc098a40481310320808b2db712d95d13ca65b27372f8a403949c8b523d0", size = 2946864, upload-time = "2026-03-24T06:13:40.641Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/7e/9af5a710a1236e4772de8dfcc6af942a561327bb9f42b5b4a24d0cf100fd/nltk-3.9.3-py3-none-any.whl", hash = "sha256:60b3db6e9995b3dd976b1f0fa7dec22069b2677e759c28eb69b62ddd44870522", size = 1525385, upload-time = "2026-02-24T12:05:46.54Z" }, + { url = "https://files.pythonhosted.org/packages/9d/91/04e965f8e717ba0ab4bdca5c112deeab11c9e750d94c4d4602f050295d39/nltk-3.9.4-py3-none-any.whl", hash = "sha256:f2fa301c3a12718ce4a0e9305c5675299da5ad9e26068218b69d692fda84828f", size = 1552087, upload-time = "2026-03-24T06:13:38.47Z" }, ] [[package]] @@ -2722,10 +2775,11 @@ wheels = [ [[package]] name = "ocrmypdf" -version = "16.13.0" +version = "17.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "deprecation", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "fpdf2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "img2pdf", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "packaging", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pdfminer-six", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2733,11 +2787,14 @@ dependencies = [ { name = "pikepdf", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pillow", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pluggy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pydantic", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "pypdfium2", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "uharfbuzz", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/52/be1aaece0703a736757d8957c0d4f19c37561054169b501eb0e7132f15e5/ocrmypdf-16.13.0.tar.gz", hash = "sha256:29d37e915234ce717374863a9cc5dd32d29e063dfe60c51380dda71254c88248", size = 7042247, upload-time = "2025-12-24T07:58:35.86Z" } +sdist = { url = "https://files.pythonhosted.org/packages/88/b9/01f5cbd062f680af8a3f8f883f8e71de8be7979c3256f509661c1e2e2065/ocrmypdf-17.4.0.tar.gz", hash = "sha256:4bbc53249f3981599565f670c5de774d6440832eede87c515e6608880fa02a34", size = 7378592, upload-time = "2026-03-21T19:06:50.966Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/b1/e2e7ad98de0d3ee05b44dbc3f78ccb158a620f3add82d00c85490120e7f2/ocrmypdf-16.13.0-py3-none-any.whl", hash = "sha256:fad8a6f7cc52cdc6225095c401a1766c778c47efe9f1e854ae4dc64a550a3d37", size = 165377, upload-time = "2025-12-24T07:58:33.925Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b7/71ae51a11669e63f1fea76153db4475079ea8d7b60802faf080f25b4a262/ocrmypdf-17.4.0-py3-none-any.whl", hash = "sha256:b93fd4d736a71a241e44d1b48e1305b9bf4581cd2ae9a96fcd89f4db1051dd87", size = 488312, upload-time = "2026-03-21T19:06:48.456Z" }, ] [[package]] @@ -2755,7 +2812,7 @@ wheels = [ [[package]] name = "openai" -version = "2.24.0" +version = "2.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2767,9 +2824,9 @@ dependencies = [ { name = "tqdm", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "typing-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/13/17e87641b89b74552ed408a92b231283786523edddc95f3545809fab673c/openai-2.24.0.tar.gz", hash = "sha256:1e5769f540dbd01cb33bc4716a23e67b9d695161a734aff9c5f925e2bf99a673", size = 658717, upload-time = "2026-02-24T20:02:07.958Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/91/2a06c4e9597c338cac1e5e5a8dd6f29e1836fc229c4c523529dca387fda8/openai-2.26.0.tar.gz", hash = "sha256:b41f37c140ae0034a6e92b0c509376d907f3a66109935fba2c1b471a7c05a8fb", size = 666702, upload-time = "2026-03-05T23:17:35.874Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/30/844dc675ee6902579b8eef01ed23917cc9319a1c9c0c14ec6e39340c96d0/openai-2.24.0-py3-none-any.whl", hash = "sha256:fed30480d7d6c884303287bde864980a4b137b60553ffbcf9ab4a233b7a73d94", size = 1120122, upload-time = "2026-02-24T20:02:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2e/3f73e8ca53718952222cacd0cf7eecc9db439d020f0c1fe7ae717e4e199a/openai-2.26.0-py3-none-any.whl", hash = "sha256:6151bf8f83802f036117f06cc8a57b3a4da60da9926826cc96747888b57f394f", size = 1136409, upload-time = "2026-03-05T23:17:34.072Z" }, ] [[package]] @@ -2783,7 +2840,7 @@ wheels = [ [[package]] name = "paperless-ngx" -version = "2.20.10" +version = "2.20.13" source = { virtual = "." } dependencies = [ { name = "azure-ai-documentintelligence", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2844,12 +2901,12 @@ dependencies = [ { name = "scikit-learn", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "sentence-transformers", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "setproctitle", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "tantivy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "tika-client", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "torch", version = "2.10.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'darwin'" }, { name = "torch", version = "2.10.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'linux'" }, { name = "watchfiles", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "whitenoise", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "whoosh-reloaded", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "zxing-cpp", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] @@ -2885,6 +2942,7 @@ dev = [ { name = "pytest-sugar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-xdist", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "time-machine", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "zensical", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] docs = [ @@ -2908,6 +2966,7 @@ testing = [ { name = "pytest-rerunfailures", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-sugar", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pytest-xdist", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "time-machine", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] typing = [ { name = "celery-types", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -2942,7 +3001,7 @@ requires-dist = [ { name = "concurrent-log-handler", specifier = "~=0.9.25" }, { name = "dateparser", specifier = "~=1.2" }, { name = "django", specifier = "~=5.2.10" }, - { name = "django-allauth", extras = ["mfa", "socialaccount"], specifier = "~=65.14.0" }, + { name = "django-allauth", extras = ["mfa", "socialaccount"], specifier = "~=65.15.0" }, { name = "django-auditlog", specifier = "~=3.4.1" }, { name = "django-cachalot", specifier = "~=2.9.0" }, { name = "django-celery-results", specifier = "~=2.6.0" }, @@ -2963,7 +3022,7 @@ requires-dist = [ { name = "faiss-cpu", specifier = ">=1.10" }, { name = "filelock", specifier = "~=3.25.2" }, { name = "flower", specifier = "~=2.0.1" }, - { name = "gotenberg-client", specifier = "~=0.13.1" }, + { name = "gotenberg-client", specifier = "~=0.14.0" }, { name = "granian", extras = ["uvloop"], marker = "extra == 'webserver'", specifier = "~=2.7.0" }, { name = "httpx-oauth", specifier = "~=0.16" }, { name = "ijson", specifier = ">=3.2" }, @@ -2978,7 +3037,7 @@ requires-dist = [ { name = "llama-index-vector-stores-faiss", specifier = ">=0.5.2" }, { name = "mysqlclient", marker = "extra == 'mariadb'", specifier = "~=2.2.7" }, { name = "nltk", specifier = "~=3.9.1" }, - { name = "ocrmypdf", specifier = "~=16.13.0" }, + { name = "ocrmypdf", specifier = "~=17.4.0" }, { name = "openai", specifier = ">=1.76" }, { name = "pathvalidate", specifier = "~=3.3.1" }, { name = "pdf2image", specifier = "~=1.17.0" }, @@ -2998,11 +3057,11 @@ requires-dist = [ { name = "scikit-learn", specifier = "~=1.8.0" }, { name = "sentence-transformers", specifier = ">=4.1" }, { name = "setproctitle", specifier = "~=1.3.4" }, - { name = "tika-client", specifier = "~=0.10.0" }, + { name = "tantivy", specifier = ">=0.25.1" }, + { name = "tika-client", specifier = "~=0.11.0" }, { name = "torch", specifier = "~=2.10.0", index = "https://download.pytorch.org/whl/cpu" }, { name = "watchfiles", specifier = ">=1.1.1" }, { name = "whitenoise", specifier = "~=6.11" }, - { name = "whoosh-reloaded", specifier = ">=2.7.5" }, { name = "zxing-cpp", specifier = "~=3.0.0" }, ] provides-extras = ["mariadb", "postgres", "webserver"] @@ -3024,6 +3083,7 @@ dev = [ { name = "pytest-sugar" }, { name = "pytest-xdist", specifier = "~=3.8.0" }, { name = "ruff", specifier = "~=0.15.0" }, + { name = "time-machine", specifier = ">=2.13" }, { name = "zensical", specifier = ">=0.0.21" }, ] docs = [{ name = "zensical", specifier = ">=0.0.21" }] @@ -3045,6 +3105,7 @@ testing = [ { name = "pytest-rerunfailures", specifier = "~=16.1" }, { name = "pytest-sugar" }, { name = "pytest-xdist", specifier = "~=3.8.0" }, + { name = "time-machine", specifier = ">=2.13" }, ] typing = [ { name = "celery-types" }, @@ -3285,23 +3346,23 @@ wheels = [ [[package]] name = "prek" -version = "0.3.5" +version = "0.3.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/46/d6/277e002e56eeab3a9d48f1ca4cc067d249d6326fc1783b770d70ad5ae2be/prek-0.3.5.tar.gz", hash = "sha256:ca40b6685a4192256bc807f32237af94bf9b8799c0d708b98735738250685642", size = 374806, upload-time = "2026-03-09T10:35:18.842Z" } +sdist = { url = "https://files.pythonhosted.org/packages/62/ee/03e8180e3fda9de25b6480bd15cc2bde40d573868d50648b0e527b35562f/prek-0.3.8.tar.gz", hash = "sha256:434a214256516f187a3ab15f869d950243be66b94ad47987ee4281b69643a2d9", size = 400224, upload-time = "2026-03-23T08:23:35.981Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/a9/16dd8d3a50362ebccffe58518af1f1f571c96f0695d7fcd8bbd386585f58/prek-0.3.5-py3-none-linux_armv6l.whl", hash = "sha256:44b3e12791805804f286d103682b42a84e0f98a2687faa37045e9d3375d3d73d", size = 5105604, upload-time = "2026-03-09T10:35:00.332Z" }, - { url = "https://files.pythonhosted.org/packages/e4/74/bc6036f5bf03860cda66ab040b32737e54802b71a81ec381839deb25df9e/prek-0.3.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e3cb451cc51ac068974557491beb4c7d2d41dfde29ed559c1694c8ce23bf53e8", size = 5506155, upload-time = "2026-03-09T10:35:17.64Z" }, - { url = "https://files.pythonhosted.org/packages/02/d9/a3745c2a10509c63b6a118ada766614dd705efefd08f275804d5c807aa4a/prek-0.3.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ad8f5f0d8da53dc94d00b76979af312b3dacccc9dcbc6417756c5dca3633c052", size = 5100383, upload-time = "2026-03-09T10:35:13.302Z" }, - { url = "https://files.pythonhosted.org/packages/43/8e/de965fc515d39309a332789cd3778161f7bc80cde15070bedf17f9f8cb93/prek-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:4511e15d34072851ac88e4b2006868fbe13655059ad941d7a0ff9ee17138fd9f", size = 5334913, upload-time = "2026-03-09T10:35:14.813Z" }, - { url = "https://files.pythonhosted.org/packages/3f/8c/44f07e8940256059cfd82520e3cbe0764ab06ddb4aa43148465db00b39ad/prek-0.3.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcc0b63b8337e2046f51267facaac63ba755bc14aad53991840a5eccba3e5c28", size = 5033825, upload-time = "2026-03-09T10:35:06.976Z" }, - { url = "https://files.pythonhosted.org/packages/94/85/3ff0f96881ff2360c212d310ff23c3cf5a15b223d34fcfa8cdcef203be69/prek-0.3.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5fc0d78c3896a674aeb8247a83bbda7efec85274dbdfbc978ceff8d37e4ed20", size = 5438586, upload-time = "2026-03-09T10:34:58.779Z" }, - { url = "https://files.pythonhosted.org/packages/79/a5/c6d08d31293400fcb5d427f8e7e6bacfc959988e868ad3a9d97b4d87c4b7/prek-0.3.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64cad21cb9072d985179495b77b312f6b81e7b45357d0c68dc1de66e0408eabc", size = 6359714, upload-time = "2026-03-09T10:34:57.454Z" }, - { url = "https://files.pythonhosted.org/packages/ba/18/321dcff9ece8065d42c8c1c7a53a23b45d2b4330aa70993be75dc5f2822f/prek-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45ee84199bb48e013bdfde0c84352c17a44cc42d5792681b86d94e9474aab6f8", size = 5717632, upload-time = "2026-03-09T10:35:08.634Z" }, - { url = "https://files.pythonhosted.org/packages/a3/7f/1288226aa381d0cea403157f4e6b64b356e1a745f2441c31dd9d8a1d63da/prek-0.3.5-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:f43275e5d564e18e52133129ebeb5cb071af7ce4a547766c7f025aa0955dfbb6", size = 5339040, upload-time = "2026-03-09T10:35:03.665Z" }, - { url = "https://files.pythonhosted.org/packages/22/94/cfec83df9c2b8e7ed1608087bcf9538a6a77b4c2e7365123e9e0a3162cd1/prek-0.3.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:abcee520d31522bcbad9311f21326b447694cd5edba33618c25fd023fc9865ec", size = 5162586, upload-time = "2026-03-09T10:35:11.564Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/741d62132f37a5f7cc0fad1168bd31f20dea9628f482f077f569547e0436/prek-0.3.5-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:499c56a94a155790c75a973d351a33f8065579d9094c93f6d451ada5d1e469be", size = 5002933, upload-time = "2026-03-09T10:35:16.347Z" }, - { url = "https://files.pythonhosted.org/packages/6f/83/630a5671df6550fcfa67c54955e8a8174eb9b4d97ac38fb05a362029245b/prek-0.3.5-py3-none-musllinux_1_1_i686.whl", hash = "sha256:de1065b59f194624adc9dea269d4ff6b50e98a1b5bb662374a9adaa496b3c1eb", size = 5304934, upload-time = "2026-03-09T10:35:09.975Z" }, - { url = "https://files.pythonhosted.org/packages/de/79/67a7afd0c0b6c436630b7dba6e586a42d21d5d6e5778fbd9eba7bbd3dd26/prek-0.3.5-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:a1c4869e45ee341735d07179da3a79fa2afb5959cef8b3c8a71906eb52dc6933", size = 5829914, upload-time = "2026-03-09T10:35:05.39Z" }, + { url = "https://files.pythonhosted.org/packages/00/84/40d2ddf362d12c4cd4a25a8c89a862edf87cdfbf1422aa41aac8e315d409/prek-0.3.8-py3-none-linux_armv6l.whl", hash = "sha256:6fb646ada60658fa6dd7771b2e0fb097f005151be222f869dada3eb26d79ed33", size = 5226646, upload-time = "2026-03-23T08:23:18.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/52/7308a033fa43b7e8e188797bd2b3b017c0f0adda70fa7af575b1f43ea888/prek-0.3.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f3d7fdadb15efc19c09953c7a33cf2061a70f367d1e1957358d3ad5cc49d0616", size = 5620104, upload-time = "2026-03-23T08:23:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b1/f106ac000a91511a9cd80169868daf2f5b693480ef5232cec5517a38a512/prek-0.3.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:72728c3295e79ca443f8c1ec037d2a5b914ec73a358f69cf1bc1964511876bf8", size = 5199867, upload-time = "2026-03-23T08:23:38.066Z" }, + { url = "https://files.pythonhosted.org/packages/b3/e9/970713f4b019f69de9844e1bab37b8ddb67558e410916f4eb5869a696165/prek-0.3.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:48efc28f2f53b5b8087efca9daaed91572d62df97d5f24a1c7a087fecb5017de", size = 5441801, upload-time = "2026-03-23T08:23:32.617Z" }, + { url = "https://files.pythonhosted.org/packages/12/a4/7ef44032b181753e19452ec3b09abb3a32607cf6b0a0508f0604becaaf2b/prek-0.3.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f6ca9d63bacbc448a5c18e955c78d3ac5176c3a17c3baacdd949b1a623e08a36", size = 5155107, upload-time = "2026-03-23T08:23:31.021Z" }, + { url = "https://files.pythonhosted.org/packages/bd/77/4d9c8985dbba84149760785dfe07093ea1e29d710257dfb7c89615e2234c/prek-0.3.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1000f7029696b4fe712fb1fefd4c55b9c4de72b65509c8e50296370a06f9dc3f", size = 5566541, upload-time = "2026-03-23T08:23:45.694Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1a/81e6769ac1f7f8346d09ce2ab0b47cf06466acd9ff72e87e5d1f0d98cd32/prek-0.3.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ff0bed0e2c1286522987d982168a86cbbd0d069d840506a46c9fda983515517", size = 6552991, upload-time = "2026-03-23T08:23:21.958Z" }, + { url = "https://files.pythonhosted.org/packages/6f/fa/ce2df0dd2dc75a9437a52463239d0782998943d7b04e191fb89b83016c34/prek-0.3.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fb087ac0ffda3ac65bbbae9a38326a7fd27ee007bb4a94323ce1eb539d8bbec", size = 5832972, upload-time = "2026-03-23T08:23:20.258Z" }, + { url = "https://files.pythonhosted.org/packages/18/6b/9d4269df9073216d296244595a21c253b6475dfc9076c0bd2906be7a436c/prek-0.3.8-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:2e1e5e206ff7b31bd079cce525daddc96cd6bc544d20dc128921ad92f7a4c85d", size = 5448371, upload-time = "2026-03-23T08:23:41.835Z" }, + { url = "https://files.pythonhosted.org/packages/60/1d/1e4d8a78abefa5b9d086e5a9f1638a74b5e540eec8a648d9946707701f29/prek-0.3.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:dcea3fe23832a4481bccb7c45f55650cb233be7c805602e788bb7dba60f2d861", size = 5270546, upload-time = "2026-03-23T08:23:24.231Z" }, + { url = "https://files.pythonhosted.org/packages/77/07/34f36551a6319ae36e272bea63a42f59d41d2d47ab0d5fb00eb7b4e88e87/prek-0.3.8-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:4d25e647e9682f6818ab5c31e7a4b842993c14782a6ffcd128d22b784e0d677f", size = 5124032, upload-time = "2026-03-23T08:23:26.368Z" }, + { url = "https://files.pythonhosted.org/packages/e3/01/6d544009bb655e709993411796af77339f439526db4f3b3509c583ad8eb9/prek-0.3.8-py3-none-musllinux_1_1_i686.whl", hash = "sha256:de528b82935e33074815acff3c7c86026754d1212136295bc88fe9c43b4231d5", size = 5432245, upload-time = "2026-03-23T08:23:47.877Z" }, + { url = "https://files.pythonhosted.org/packages/54/96/1237ee269e9bfa283ffadbcba1f401f48a47aed2b2563eb1002740d6079d/prek-0.3.8-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:6d660f1c25a126e6d9f682fe61449441226514f412a4469f5d71f8f8cad56db2", size = 5950550, upload-time = "2026-03-23T08:23:43.8Z" }, ] [[package]] @@ -3482,11 +3543,11 @@ sdist = { url = "https://files.pythonhosted.org/packages/1d/c7/28220d37e041fe1df [[package]] name = "pyasn1" -version = "0.6.2" +version = "0.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/b6/6e630dff89739fcd427e3f72b3d905ce0acb85a45d4ec3e2678718a3487f/pyasn1-0.6.2.tar.gz", hash = "sha256:9b59a2b25ba7e4f8197db7686c09fb33e658b98339fadb826e9512629017833b", size = 146586, upload-time = "2026-01-16T18:04:18.534Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5f/6583902b6f79b399c9c40674ac384fd9cd77805f9e6205075f828ef11fb2/pyasn1-0.6.3.tar.gz", hash = "sha256:697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf", size = 148685, upload-time = "2026-03-17T01:06:53.382Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/44/b5/a96872e5184f354da9c84ae119971a0a4c221fe9b27a4d94bd43f2596727/pyasn1-0.6.2-py3-none-any.whl", hash = "sha256:1eb26d860996a18e9b6ed05e7aae0e9fc21619fcee6af91cca9bad4fbea224bf", size = 83371, upload-time = "2026-01-16T18:04:17.174Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl", hash = "sha256:a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde", size = 83997, upload-time = "2026-03-17T01:06:52.036Z" }, ] [[package]] @@ -3617,11 +3678,11 @@ wheels = [ [[package]] name = "pyjwt" -version = "2.10.1" +version = "2.12.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a8/10/e8192be5f38f3e8e7e046716de4cae33d56fd5ae08927a823bb916be36c1/pyjwt-2.12.0.tar.gz", hash = "sha256:2f62390b667cd8257de560b850bb5a883102a388829274147f1d724453f8fb02", size = 102511, upload-time = "2026-03-12T17:15:30.831Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, + { url = "https://files.pythonhosted.org/packages/15/70/70f895f404d363d291dcf62c12c85fdd47619ad9674ac0f53364d035925a/pyjwt-2.12.0-py3-none-any.whl", hash = "sha256:9bb459d1bdd0387967d287f5656bf7ec2b9a26645d1961628cda1764e087fd6e", size = 29700, upload-time = "2026-03-12T17:15:29.257Z" }, ] [package.optional-dependencies] @@ -3644,15 +3705,39 @@ wheels = [ [[package]] name = "pyopenssl" -version = "25.3.0" +version = "26.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "typing-extensions", marker = "(python_full_version < '3.13' and sys_platform == 'darwin') or (python_full_version < '3.13' and sys_platform == 'linux')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/be/97b83a464498a79103036bc74d1038df4a7ef0e402cfaf4d5e113fb14759/pyopenssl-25.3.0.tar.gz", hash = "sha256:c981cb0a3fd84e8602d7afc209522773b94c1c2446a3c710a75b06fe1beae329", size = 184073, upload-time = "2025-09-17T00:32:21.037Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/81/ef2b1dfd1862567d573a4fdbc9f969067621764fbb74338496840a1d2977/pyopenssl-25.3.0-py3-none-any.whl", hash = "sha256:1fda6fc034d5e3d179d39e59c1895c9faeaf40a79de5fc4cbbfbe0d36f4a77b6", size = 57268, upload-time = "2025-09-17T00:32:19.474Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + +[[package]] +name = "pypdfium2" +version = "5.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/01/be763b9081c7eb823196e7d13d9c145bf75ac43f3c1466de81c21c24b381/pypdfium2-5.6.0.tar.gz", hash = "sha256:bcb9368acfe3547054698abbdae68ba0cbd2d3bda8e8ee437e061deef061976d", size = 270714, upload-time = "2026-03-08T01:05:06.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/f6/9f9e190fe0e5a6b86b82f83bd8b5d3490348766062381140ca5cad8e00b1/pypdfium2-5.6.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e468c38997573f0e86f03273c2c1fbdea999de52ba43fee96acaa2f6b2ad35f7", size = 3412541, upload-time = "2026-03-08T01:04:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/ee/8d/e57492cb2228ba56ed57de1ff044c8ac114b46905f8b1445c33299ba0488/pypdfium2-5.6.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:ad3abddc5805424f962e383253ccad6a0d1d2ebd86afa9a9e1b9ca659773cd0d", size = 3592320, upload-time = "2026-03-08T01:04:27.509Z" }, + { url = "https://files.pythonhosted.org/packages/f9/8a/8ab82e33e9c551494cbe1526ea250ca8cc4e9e98d6a4fc6b6f8d959aa1d1/pypdfium2-5.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b5eb9eae5c45076395454522ca26add72ba8bd1fe473e1e4721aa58521470c", size = 3596450, upload-time = "2026-03-08T01:04:29.183Z" }, + { url = "https://files.pythonhosted.org/packages/f5/b5/602a792282312ccb158cc63849528079d94b0a11efdc61f2a359edfb41e9/pypdfium2-5.6.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:258624da8ef45cdc426e11b33e9d83f9fb723c1c201c6e0f4ab5a85966c6b876", size = 3325442, upload-time = "2026-03-08T01:04:30.886Z" }, + { url = "https://files.pythonhosted.org/packages/81/1f/9e48ec05ed8d19d736c2d1f23c1bd0f20673f02ef846a2576c69e237f15d/pypdfium2-5.6.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9367451c8a00931d6612db0822525a18c06f649d562cd323a719e46ac19c9bb", size = 3727434, upload-time = "2026-03-08T01:04:33.619Z" }, + { url = "https://files.pythonhosted.org/packages/33/90/0efd020928b4edbd65f4f3c2af0c84e20b43a3ada8fa6d04f999a97afe7a/pypdfium2-5.6.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a757869f891eac1cc1372e38a4aa01adac8abc8fe2a8a4e2ebf50595e3bf5937", size = 4139029, upload-time = "2026-03-08T01:04:36.08Z" }, + { url = "https://files.pythonhosted.org/packages/ff/49/a640b288a48dab1752281dd9b72c0679fccea107874e80a65a606b00efa9/pypdfium2-5.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:515be355222cc57ae9e62cd5c7c350b8e0c863efc539f80c7d75e2811ba45cb6", size = 3646387, upload-time = "2026-03-08T01:04:38.151Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/a344c19c01021eeb5d830c102e4fc9b1602f19c04aa7d11abbe2d188fd8e/pypdfium2-5.6.0-py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1c4753c7caf7d004211d7f57a21f10d127f5e0e5510a14d24bc073e7220a3ea", size = 3097212, upload-time = "2026-03-08T01:04:40.776Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/e48e13789ace22aeb9b7510904a1b1493ec588196e11bbacc122da330b3d/pypdfium2-5.6.0-py3-none-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c49729090281fdd85775fb8912c10bd19e99178efaa98f145ab06e7ce68554d2", size = 2965026, upload-time = "2026-03-08T01:04:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/cb/06/3100e44d4935f73af8f5d633d3bd40f0d36d606027085a0ef1f0566a6320/pypdfium2-5.6.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a4a1749a8d4afd62924a8d95cfa4f2e26fc32957ce34ac3b674be6f127ed252e", size = 4131431, upload-time = "2026-03-08T01:04:44.982Z" }, + { url = "https://files.pythonhosted.org/packages/64/ef/d8df63569ce9a66c8496057782eb8af78e0d28667922d62ec958434e3d4b/pypdfium2-5.6.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:36469ebd0fdffb7130ce45ed9c44f8232d91571c89eb851bd1633c64b6f6114f", size = 3747469, upload-time = "2026-03-08T01:04:46.702Z" }, + { url = "https://files.pythonhosted.org/packages/a6/47/fd2c6a67a49fade1acd719fbd11f7c375e7219912923ef2de0ea0ac1544e/pypdfium2-5.6.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9da900df09be3cf546b637a127a7b6428fb22d705951d731269e25fd3adef457", size = 4337578, upload-time = "2026-03-08T01:04:49.007Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f5/836c83e54b01e09478c4d6bf4912651d6053c932250fcee953f5c72d8e4a/pypdfium2-5.6.0-py3-none-musllinux_1_2_ppc64le.whl", hash = "sha256:45fccd5622233c5ec91a885770ae7dd4004d4320ac05a4ad8fa03a66dea40244", size = 4376104, upload-time = "2026-03-08T01:04:51.04Z" }, + { url = "https://files.pythonhosted.org/packages/6e/7f/b940b6a1664daf8f9bad87c6c99b84effa3611615b8708d10392dc33036c/pypdfium2-5.6.0-py3-none-musllinux_1_2_riscv64.whl", hash = "sha256:282dc030e767cd61bd0299f9d581052b91188e2b87561489057a8e7963e7e0cb", size = 3929824, upload-time = "2026-03-08T01:04:53.544Z" }, + { url = "https://files.pythonhosted.org/packages/88/79/00267d92a6a58c229e364d474f5698efe446e0c7f4f152f58d0138715e99/pypdfium2-5.6.0-py3-none-musllinux_1_2_s390x.whl", hash = "sha256:a1c1dfe950382c76a7bba1ba160ec5e40df8dd26b04a1124ae268fda55bc4cbe", size = 4270201, upload-time = "2026-03-08T01:04:55.81Z" }, + { url = "https://files.pythonhosted.org/packages/e1/ab/b127f38aba41746bdf9ace15ba08411d7ef6ecba1326d529ba414eb1ed50/pypdfium2-5.6.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:43b0341ca6feb6c92e4b7a9eb4813e5466f5f5e8b6baeb14df0a94d5f312c00b", size = 4180793, upload-time = "2026-03-08T01:04:57.961Z" }, ] [[package]] @@ -4121,7 +4206,7 @@ wheels = [ [[package]] name = "requests" -version = "2.32.5" +version = "2.33.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -4129,9 +4214,9 @@ dependencies = [ { name = "idna", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "urllib3", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +sdist = { url = "https://files.pythonhosted.org/packages/34/64/8860370b167a9721e8956ae116825caff829224fbca0ca6e7bf8ddef8430/requests-2.33.0.tar.gz", hash = "sha256:c7ebc5e8b0f21837386ad0e1c8fe8b829fa5f544d8df3b2253bff14ef29d7652", size = 134232, upload-time = "2026-03-25T15:10:41.586Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, + { url = "https://files.pythonhosted.org/packages/56/5d/c814546c2333ceea4ba42262d8c4d55763003e767fa169adc693bd524478/requests-2.33.0-py3-none-any.whl", hash = "sha256:3324635456fa185245e24865e810cecec7b4caf933d7eb133dcde67d48cee69b", size = 65017, upload-time = "2026-03-25T15:10:40.382Z" }, ] [[package]] @@ -4241,24 +4326,24 @@ wheels = [ [[package]] name = "ruff" -version = "0.15.5" +version = "0.15.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/77/9b/840e0039e65fcf12758adf684d2289024d6140cde9268cc59887dc55189c/ruff-0.15.5.tar.gz", hash = "sha256:7c3601d3b6d76dce18c5c824fc8d06f4eef33d6df0c21ec7799510cde0f159a2", size = 4574214, upload-time = "2026-03-05T20:06:34.946Z" } +sdist = { url = "https://files.pythonhosted.org/packages/14/b0/73cf7550861e2b4824950b8b52eebdcc5adc792a00c514406556c5b80817/ruff-0.15.8.tar.gz", hash = "sha256:995f11f63597ee362130d1d5a327a87cb6f3f5eae3094c620bcc632329a4d26e", size = 4610921, upload-time = "2026-03-26T18:39:38.675Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/47/20/5369c3ce21588c708bcbe517a8fbe1a8dfdb5dfd5137e14790b1da71612c/ruff-0.15.5-py3-none-linux_armv6l.whl", hash = "sha256:4ae44c42281f42e3b06b988e442d344a5b9b72450ff3c892e30d11b29a96a57c", size = 10478185, upload-time = "2026-03-05T20:06:29.093Z" }, - { url = "https://files.pythonhosted.org/packages/44/ed/e81dd668547da281e5dce710cf0bc60193f8d3d43833e8241d006720e42b/ruff-0.15.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6edd3792d408ebcf61adabc01822da687579a1a023f297618ac27a5b51ef0080", size = 10859201, upload-time = "2026-03-05T20:06:32.632Z" }, - { url = "https://files.pythonhosted.org/packages/c4/8f/533075f00aaf19b07c5cd6aa6e5d89424b06b3b3f4583bfa9c640a079059/ruff-0.15.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:89f463f7c8205a9f8dea9d658d59eff49db05f88f89cc3047fb1a02d9f344010", size = 10184752, upload-time = "2026-03-05T20:06:40.312Z" }, - { url = "https://files.pythonhosted.org/packages/66/0e/ba49e2c3fa0395b3152bad634c7432f7edfc509c133b8f4529053ff024fb/ruff-0.15.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba786a8295c6574c1116704cf0b9e6563de3432ac888d8f83685654fe528fd65", size = 10534857, upload-time = "2026-03-05T20:06:19.581Z" }, - { url = "https://files.pythonhosted.org/packages/59/71/39234440f27a226475a0659561adb0d784b4d247dfe7f43ffc12dd02e288/ruff-0.15.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd4b801e57955fe9f02b31d20375ab3a5c4415f2e5105b79fb94cf2642c91440", size = 10309120, upload-time = "2026-03-05T20:06:00.435Z" }, - { url = "https://files.pythonhosted.org/packages/f5/87/4140aa86a93df032156982b726f4952aaec4a883bb98cb6ef73c347da253/ruff-0.15.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391f7c73388f3d8c11b794dbbc2959a5b5afe66642c142a6effa90b45f6f5204", size = 11047428, upload-time = "2026-03-05T20:05:51.867Z" }, - { url = "https://files.pythonhosted.org/packages/5a/f7/4953e7e3287676f78fbe85e3a0ca414c5ca81237b7575bdadc00229ac240/ruff-0.15.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc18f30302e379fe1e998548b0f5e9f4dff907f52f73ad6da419ea9c19d66c8", size = 11914251, upload-time = "2026-03-05T20:06:22.887Z" }, - { url = "https://files.pythonhosted.org/packages/77/46/0f7c865c10cf896ccf5a939c3e84e1cfaeed608ff5249584799a74d33835/ruff-0.15.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc6e7f90087e2d27f98dc34ed1b3ab7c8f0d273cc5431415454e22c0bd2a681", size = 11333801, upload-time = "2026-03-05T20:05:57.168Z" }, - { url = "https://files.pythonhosted.org/packages/d3/01/a10fe54b653061585e655f5286c2662ebddb68831ed3eaebfb0eb08c0a16/ruff-0.15.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1cb7169f53c1ddb06e71a9aebd7e98fc0fea936b39afb36d8e86d36ecc2636a", size = 11206821, upload-time = "2026-03-05T20:06:03.441Z" }, - { url = "https://files.pythonhosted.org/packages/7a/0d/2132ceaf20c5e8699aa83da2706ecb5c5dcdf78b453f77edca7fb70f8a93/ruff-0.15.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9b037924500a31ee17389b5c8c4d88874cc6ea8e42f12e9c61a3d754ff72f1ca", size = 11133326, upload-time = "2026-03-05T20:06:25.655Z" }, - { url = "https://files.pythonhosted.org/packages/72/cb/2e5259a7eb2a0f87c08c0fe5bf5825a1e4b90883a52685524596bfc93072/ruff-0.15.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:65bb414e5b4eadd95a8c1e4804f6772bbe8995889f203a01f77ddf2d790929dd", size = 10510820, upload-time = "2026-03-05T20:06:37.79Z" }, - { url = "https://files.pythonhosted.org/packages/ff/20/b67ce78f9e6c59ffbdb5b4503d0090e749b5f2d31b599b554698a80d861c/ruff-0.15.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d20aa469ae3b57033519c559e9bc9cd9e782842e39be05b50e852c7c981fa01d", size = 10302395, upload-time = "2026-03-05T20:05:54.504Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e5/719f1acccd31b720d477751558ed74e9c88134adcc377e5e886af89d3072/ruff-0.15.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:15388dd28c9161cdb8eda68993533acc870aa4e646a0a277aa166de9ad5a8752", size = 10754069, upload-time = "2026-03-05T20:06:06.422Z" }, - { url = "https://files.pythonhosted.org/packages/c3/9c/d1db14469e32d98f3ca27079dbd30b7b44dbb5317d06ab36718dee3baf03/ruff-0.15.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b30da330cbd03bed0c21420b6b953158f60c74c54c5f4c1dabbdf3a57bf355d2", size = 11304315, upload-time = "2026-03-05T20:06:10.867Z" }, + { url = "https://files.pythonhosted.org/packages/4a/92/c445b0cd6da6e7ae51e954939cb69f97e008dbe750cfca89b8cedc081be7/ruff-0.15.8-py3-none-linux_armv6l.whl", hash = "sha256:cbe05adeba76d58162762d6b239c9056f1a15a55bd4b346cfd21e26cd6ad7bc7", size = 10527394, upload-time = "2026-03-26T18:39:41.566Z" }, + { url = "https://files.pythonhosted.org/packages/eb/92/f1c662784d149ad1414cae450b082cf736430c12ca78367f20f5ed569d65/ruff-0.15.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d3e3d0b6ba8dca1b7ef9ab80a28e840a20070c4b62e56d675c24f366ef330570", size = 10905693, upload-time = "2026-03-26T18:39:30.364Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f2/7a631a8af6d88bcef997eb1bf87cc3da158294c57044aafd3e17030613de/ruff-0.15.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6ee3ae5c65a42f273f126686353f2e08ff29927b7b7e203b711514370d500de3", size = 10323044, upload-time = "2026-03-26T18:39:33.37Z" }, + { url = "https://files.pythonhosted.org/packages/67/18/1bf38e20914a05e72ef3b9569b1d5c70a7ef26cd188d69e9ca8ef588d5bf/ruff-0.15.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdce027ada77baa448077ccc6ebb2fa9c3c62fd110d8659d601cf2f475858d94", size = 10629135, upload-time = "2026-03-26T18:39:44.142Z" }, + { url = "https://files.pythonhosted.org/packages/d2/e9/138c150ff9af60556121623d41aba18b7b57d95ac032e177b6a53789d279/ruff-0.15.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12e617fc01a95e5821648a6df341d80456bd627bfab8a829f7cfc26a14a4b4a3", size = 10348041, upload-time = "2026-03-26T18:39:52.178Z" }, + { url = "https://files.pythonhosted.org/packages/02/f1/5bfb9298d9c323f842c5ddeb85f1f10ef51516ac7a34ba446c9347d898df/ruff-0.15.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:432701303b26416d22ba696c39f2c6f12499b89093b61360abc34bcc9bf07762", size = 11121987, upload-time = "2026-03-26T18:39:55.195Z" }, + { url = "https://files.pythonhosted.org/packages/10/11/6da2e538704e753c04e8d86b1fc55712fdbdcc266af1a1ece7a51fff0d10/ruff-0.15.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d910ae974b7a06a33a057cb87d2a10792a3b2b3b35e33d2699fdf63ec8f6b17a", size = 11951057, upload-time = "2026-03-26T18:39:19.18Z" }, + { url = "https://files.pythonhosted.org/packages/83/f0/c9208c5fd5101bf87002fed774ff25a96eea313d305f1e5d5744698dc314/ruff-0.15.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2033f963c43949d51e6fdccd3946633c6b37c484f5f98c3035f49c27395a8ab8", size = 11464613, upload-time = "2026-03-26T18:40:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/22/d7f2fabdba4fae9f3b570e5605d5eb4500dcb7b770d3217dca4428484b17/ruff-0.15.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f29b989a55572fb885b77464cf24af05500806ab4edf9a0fd8977f9759d85b1", size = 11257557, upload-time = "2026-03-26T18:39:57.972Z" }, + { url = "https://files.pythonhosted.org/packages/71/8c/382a9620038cf6906446b23ce8632ab8c0811b8f9d3e764f58bedd0c9a6f/ruff-0.15.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:ac51d486bf457cdc985a412fb1801b2dfd1bd8838372fc55de64b1510eff4bec", size = 11169440, upload-time = "2026-03-26T18:39:22.205Z" }, + { url = "https://files.pythonhosted.org/packages/4d/0d/0994c802a7eaaf99380085e4e40c845f8e32a562e20a38ec06174b52ef24/ruff-0.15.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c9861eb959edab053c10ad62c278835ee69ca527b6dcd72b47d5c1e5648964f6", size = 10605963, upload-time = "2026-03-26T18:39:46.682Z" }, + { url = "https://files.pythonhosted.org/packages/19/aa/d624b86f5b0aad7cef6bbf9cd47a6a02dfdc4f72c92a337d724e39c9d14b/ruff-0.15.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8d9a5b8ea13f26ae90838afc33f91b547e61b794865374f114f349e9036835fb", size = 10357484, upload-time = "2026-03-26T18:39:49.176Z" }, + { url = "https://files.pythonhosted.org/packages/35/c3/e0b7835d23001f7d999f3895c6b569927c4d39912286897f625736e1fd04/ruff-0.15.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c2a33a529fb3cbc23a7124b5c6ff121e4d6228029cba374777bd7649cc8598b8", size = 10830426, upload-time = "2026-03-26T18:40:03.702Z" }, + { url = "https://files.pythonhosted.org/packages/f0/51/ab20b322f637b369383adc341d761eaaa0f0203d6b9a7421cd6e783d81b9/ruff-0.15.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:75e5cd06b1cf3f47a3996cfc999226b19aa92e7cce682dcd62f80d7035f98f49", size = 11345125, upload-time = "2026-03-26T18:39:27.799Z" }, ] [[package]] @@ -4574,6 +4659,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, ] +[[package]] +name = "tantivy" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/f9/0cd3955d155d3e3ef74b864769514dd191e5dacba9f0beb7af2d914942ce/tantivy-0.25.1.tar.gz", hash = "sha256:68a3314699a7d18fcf338b52bae8ce46a97dde1128a3e47e33fa4db7f71f265e", size = 75120, upload-time = "2025-12-02T11:57:12.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/7a/8a277f377e8a151fc0e71d4ffc1114aefb6e5e1c7dd609fed0955cf34ed8/tantivy-0.25.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d363d7b4207d3a5aa7f0d212420df35bed18bdb6bae26a2a8bd57428388b7c29", size = 7637033, upload-time = "2025-12-02T11:56:18.104Z" }, + { url = "https://files.pythonhosted.org/packages/71/31/8b4acdedfc9f9a2d04b1340d07eef5213d6f151d1e18da0cb423e5f090d2/tantivy-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8f4389cf1d889a1df7c5a3195806b4b56c37cee10d8a26faaa0dea35a867b5ff", size = 3932180, upload-time = "2025-12-02T11:56:19.833Z" }, + { url = "https://files.pythonhosted.org/packages/2f/dc/3e8499c21b4b9795e8f2fc54c68ce5b92905aaeadadaa56ecfa9180b11b1/tantivy-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99864c09fc54652c3c2486cdf13f86cdc8200f4b481569cb291e095ca5d496e5", size = 4197620, upload-time = "2025-12-02T11:56:21.496Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8e/f2ce62fffc811eb62bead92c7b23c2e218f817cbd54c4f3b802e03ba1438/tantivy-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05abf37ddbc5063c575548be0d62931629c086bff7a5a1b67cf5a8f5ebf4cd8c", size = 4183794, upload-time = "2025-12-02T11:56:23.215Z" }, + { url = "https://files.pythonhosted.org/packages/41/e7/6849c713ed0996c7628324c60512c4882006f0a62145e56c624a93407f90/tantivy-0.25.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:90fd919e5f611809f746560ecf36eb9be824dec62e21ae17a27243759edb9aa1", size = 7621494, upload-time = "2025-12-02T11:56:27.069Z" }, + { url = "https://files.pythonhosted.org/packages/c5/22/c3d8294600dc6e7fa350daef9ff337d3c06e132b81df727de9f7a50c692a/tantivy-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:4613c7cf6c23f3a97989819690a0f956d799354957de7a204abcc60083cebe02", size = 3925219, upload-time = "2025-12-02T11:56:29.403Z" }, + { url = "https://files.pythonhosted.org/packages/41/fc/cbb1df71dd44c9110eff4eaaeda9d44f2d06182fe0452193be20ddfba93f/tantivy-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c477bd20b4df804d57dfc5033431bef27cde605695ae141b03abbf6ebc069129", size = 4198699, upload-time = "2025-12-02T11:56:31.359Z" }, + { url = "https://files.pythonhosted.org/packages/47/4d/71abb78b774073c3ce12a4faa4351a9d910a71ffa3659526affba163873d/tantivy-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9b1a1ba1113c523c7ff7b10f282d6c4074006f7ef8d71e1d973d51bf7291ddb", size = 4183585, upload-time = "2025-12-02T11:56:33.317Z" }, + { url = "https://files.pythonhosted.org/packages/3d/25/73cfbcf1a8ea49be6c42817431cac46b70a119fe64da903fcc2d92b5b511/tantivy-0.25.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:f51ff7196c6f31719202080ed8372d5e3d51e92c749c032fb8234f012e99744c", size = 7622530, upload-time = "2025-12-02T11:56:36.839Z" }, + { url = "https://files.pythonhosted.org/packages/12/c8/c0d7591cdf4f7e7a9fc4da786d1ca8cd1aacffaa2be16ea6d401a8e4a566/tantivy-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:550e63321bfcacc003859f2fa29c1e8e56450807b3c9a501c1add27cfb9236d9", size = 3925637, upload-time = "2025-12-02T11:56:38.425Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/bedfc223bffec7641b417dd7ab071134b2ef8f8550e9b1fb6014657ef52e/tantivy-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fde31cc8d6e122faf7902aeea32bc008a429a6e8904e34d3468126a3ec01b016", size = 4197322, upload-time = "2025-12-02T11:56:40.411Z" }, + { url = "https://files.pythonhosted.org/packages/f5/f1/1fa5183500c8042200c9f2b840d34f5bbcfb434a1ee750e7132262d2a5c9/tantivy-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b11bd5a518b0be645320b47af8493f6a40c4f3234313e37adcf4534a564d27dd", size = 4183143, upload-time = "2025-12-02T11:56:42.048Z" }, + { url = "https://files.pythonhosted.org/packages/8b/2f/581519492226f97d23bd0adc95dad991ebeaa73ea6abc8bff389a3096d9a/tantivy-0.25.1-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:dae99e75b7eaa9bf5bd16ab106b416370f08c135aed0e117d62a3201cd1ffe36", size = 7610316, upload-time = "2025-12-02T11:56:45.927Z" }, + { url = "https://files.pythonhosted.org/packages/91/40/5d7bc315ab9e6a22c5572656e8ada1c836cfa96dccf533377504fbc3c9d9/tantivy-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:506e9533c5ef4d3df43bad64ffecc0aa97c76e361ea610815dc3a20a9d6b30b3", size = 3919882, upload-time = "2025-12-02T11:56:48.469Z" }, + { url = "https://files.pythonhosted.org/packages/02/b9/e0ef2f57a6a72444cb66c2ffbc310ab33ffaace275f1c4b0319d84ea3f18/tantivy-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbd4f8f264dacbcc9dee542832da2173fd53deaaea03f082d95214f8b5ed6bc", size = 4196031, upload-time = "2025-12-02T11:56:50.151Z" }, + { url = "https://files.pythonhosted.org/packages/1e/02/bf3f8cacfd08642e14a73f7956a3fb95d58119132c98c121b9065a1f8615/tantivy-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:824c643ccb640dd9e35e00c5d5054ddf3323f56fe4219d57d428a9eeea13d22c", size = 4183437, upload-time = "2025-12-02T11:56:51.818Z" }, + { url = "https://files.pythonhosted.org/packages/ff/44/9f1d67aa5030f7eebc966c863d1316a510a971dd8bb45651df4acdfae9ed/tantivy-0.25.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7f5d29ae85dd0f23df8d15b3e7b341d4f9eb5a446bbb9640df48ac1f6d9e0c6c", size = 7623723, upload-time = "2025-12-02T11:56:55.066Z" }, + { url = "https://files.pythonhosted.org/packages/db/30/6e085bd3ed9d12da3c91c185854abd70f9dfd35fb36a75ea98428d42c30b/tantivy-0.25.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:f2d2938fb69a74fc1bb36edfaf7f0d1596fa1264db0f377bda2195c58bcb6245", size = 3926243, upload-time = "2025-12-02T11:56:57.058Z" }, + { url = "https://files.pythonhosted.org/packages/32/f5/a00d65433430f51718e5cc6938df571765d7c4e03aedec5aef4ab567aa9b/tantivy-0.25.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f5ff124c4802558e627091e780b362ca944169736caba5a372eef39a79d0ae0", size = 4207186, upload-time = "2025-12-02T11:56:58.803Z" }, + { url = "https://files.pythonhosted.org/packages/19/63/61bdb12fc95f2a7f77bd419a5149bfa9f28caa76cb569bf2b6b06e1d033e/tantivy-0.25.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43b80ef62a340416139c93d19264e5f808da48e04f9305f1092b8ed22be0a5be", size = 4187312, upload-time = "2025-12-02T11:57:00.595Z" }, +] + [[package]] name = "tenacity" version = "9.1.2" @@ -4603,15 +4716,15 @@ wheels = [ [[package]] name = "tika-client" -version = "0.10.0" +version = "0.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "httpx", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/be/65bfc47e4689ecd5ead20cf47dc0084fd767b7e71e8cfabf5fddc42aae3c/tika_client-0.10.0.tar.gz", hash = "sha256:3101e8b2482ae4cb7f87be13ada970ff691bdc3404d94cd52f5e57a09c99370c", size = 2178257, upload-time = "2025-08-04T17:47:30.414Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4d/d9/01f2049240dacf67c9be61d9c59e72b6827a862e8fd87e77e458e0a3b797/tika_client-0.11.0.tar.gz", hash = "sha256:c741caaca08bbd715a8db3fe6f0430a54d075fef3d59a441e8b8d810f58de4f0", size = 2178828, upload-time = "2026-03-11T16:50:25.865Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/31/002e0fa5bca67d6a19da8c294273486f6c46cbcc83d6879719a38a181461/tika_client-0.10.0-py3-none-any.whl", hash = "sha256:f5486cc884e4522575662aa295bda761bf9f101ac8d92840155b58ab8b96f6e2", size = 18237, upload-time = "2025-08-04T17:47:28.966Z" }, + { url = "https://files.pythonhosted.org/packages/53/04/5a433d621ec559d1d216d200eea43b0ac63435beb5dd52bbc75f4aaef465/tika_client-0.11.0-py3-none-any.whl", hash = "sha256:461903ccbe705d84dd3e4a1ca83e04174776d4b06dc57b902f9281633a3836e6", size = 18470, upload-time = "2026-03-11T16:50:24.672Z" }, ] [[package]] @@ -4663,12 +4776,68 @@ wheels = [ ] [[package]] -name = "tinytag" -version = "2.2.0" +name = "time-machine" +version = "3.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/07/fb260bac73119f369a10e884016516d07cd760b5068e703773f83dd5e7bf/tinytag-2.2.0.tar.gz", hash = "sha256:f15b082510f6e0fc717e597edc8759d6f2d3ff6194ac0f3bcd675a9a09d9b798", size = 38120, upload-time = "2025-12-15T21:10:19.093Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/fc/37b02f6094dbb1f851145330460532176ed2f1dc70511a35828166c41e52/time_machine-3.2.0.tar.gz", hash = "sha256:a4ddd1cea17b8950e462d1805a42b20c81eb9aafc8f66b392dd5ce997e037d79", size = 14804, upload-time = "2025-12-17T23:33:02.599Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/e2/9818fcebb348237389d2ac2fea97cf2b2638378a0866105a45ae9be49728/tinytag-2.2.0-py3-none-any.whl", hash = "sha256:d2cf3ef8ee0f6c854663f77d9d5f8159ee1c834c70f5ea4f214ddc4af8148f79", size = 32861, upload-time = "2025-12-15T21:10:17.63Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e1/03aae5fbaa53859f665094af696338fc7cae733d926a024af69982712350/time_machine-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c188a9dda9fcf975022f1b325b466651b96a4dfc223c523ed7ed8d979f9bf3e8", size = 19143, upload-time = "2025-12-17T23:31:44.258Z" }, + { url = "https://files.pythonhosted.org/packages/75/8f/98cb17bebb52b22ff4ec26984dd44280f9c71353c3bae0640a470e6683e5/time_machine-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17245f1cc2dd13f9d63a174be59bb2684a9e5e0a112ab707e37be92068cd655f", size = 15273, upload-time = "2025-12-17T23:31:45.246Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2f/ca11e4a7897234bb9331fcc5f4ed4714481ba4012370cc79a0ae8c42ea0a/time_machine-3.2.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d9bd1de1996e76efd36ae15970206c5089fb3728356794455bd5cd8d392b5537", size = 31049, upload-time = "2025-12-17T23:31:46.613Z" }, + { url = "https://files.pythonhosted.org/packages/cf/ad/d17d83a59943094e6b6c6a3743caaf6811b12203c3e07a30cc7bcc2ab7ee/time_machine-3.2.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:98493cd50e8b7f941eab69b9e18e697ad69db1a0ec1959f78f3d7b0387107e5c", size = 32632, upload-time = "2025-12-17T23:31:47.72Z" }, + { url = "https://files.pythonhosted.org/packages/71/50/d60576d047a0dfb5638cdfb335e9c3deb6e8528544fa0b3966a8480f72b7/time_machine-3.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:31f2a33d595d9f91eb9bc7f157f0dc5721f5789f4c4a9e8b852cdedb2a7d9b16", size = 34289, upload-time = "2025-12-17T23:31:48.913Z" }, + { url = "https://files.pythonhosted.org/packages/fa/fe/4afa602dbdebddde6d0ea4a7fe849e49b9bb85dc3fb415725a87ccb4b471/time_machine-3.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9f78ac4213c10fbc44283edd1a29cfb7d3382484f4361783ddc057292aaa1889", size = 33175, upload-time = "2025-12-17T23:31:50.611Z" }, + { url = "https://files.pythonhosted.org/packages/0d/87/c152e23977c1d7d7c94eb3ed3ea45cc55971796205125c6fdff40db2c60f/time_machine-3.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c1326b09e947b360926d529a96d1d9e126ce120359b63b506ecdc6ee20755c23", size = 31170, upload-time = "2025-12-17T23:31:51.645Z" }, + { url = "https://files.pythonhosted.org/packages/80/af/54acf51d0f3ade3b51eab73df6192937c9a938753ef5456dff65eb8630be/time_machine-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9f2949f03d15264cc15c38918a2cda8966001f0f4ebe190cbfd9c56d91aed8ac", size = 32292, upload-time = "2025-12-17T23:31:52.803Z" }, + { url = "https://files.pythonhosted.org/packages/71/8b/080c8eedcd67921a52ba5bd0e075362062509ab63c86fc1a0442fad241a6/time_machine-3.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cc4bee5b0214d7dc4ebc91f4a4c600f1a598e9b5606ac751f42cb6f6740b1dbb", size = 19255, upload-time = "2025-12-17T23:31:58.057Z" }, + { url = "https://files.pythonhosted.org/packages/66/17/0e5291e9eb705bf8a5a1305f826e979af307bbeb79def4ddbf4b3f9a81e0/time_machine-3.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ca036304b4460ae2fdc1b52dd8b1fa7cf1464daa427fc49567413c09aa839c1", size = 15360, upload-time = "2025-12-17T23:31:59.048Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/9ab87b71d2e2b62463b9b058b7ae7ac09fb57f8fcd88729dec169d304340/time_machine-3.2.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5442735b41d7a2abc2f04579b4ca6047ed4698a8338a4fec92c7c9423e7938cb", size = 33029, upload-time = "2025-12-17T23:32:00.413Z" }, + { url = "https://files.pythonhosted.org/packages/4b/26/b5ca19da6f25ea905b3e10a0ea95d697c1aeba0404803a43c68f1af253e6/time_machine-3.2.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:97da3e971e505cb637079fb07ab0bcd36e33279f8ecac888ff131f45ef1e4d8d", size = 34579, upload-time = "2025-12-17T23:32:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/79/ca/6ac7ad5f10ea18cc1d9de49716ba38c32132c7b64532430d92ef240c116b/time_machine-3.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3cdda6dee4966e38aeb487309bb414c6cb23a81fc500291c77a8fcd3098832e7", size = 35961, upload-time = "2025-12-17T23:32:02.521Z" }, + { url = "https://files.pythonhosted.org/packages/33/67/390dd958bed395ab32d79a9fe61fe111825c0dd4ded54dbba7e867f171e6/time_machine-3.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:33d9efd302a6998bcc8baa4d84f259f8a4081105bd3d7f7af7f1d0abd3b1c8aa", size = 34668, upload-time = "2025-12-17T23:32:03.585Z" }, + { url = "https://files.pythonhosted.org/packages/da/57/c88fff034a4e9538b3ae7c68c9cfb283670b14d17522c5a8bc17d29f9a4b/time_machine-3.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3a0b0a33971f14145853c9bd95a6ab0353cf7e0019fa2a7aa1ae9fddfe8eab50", size = 32891, upload-time = "2025-12-17T23:32:04.656Z" }, + { url = "https://files.pythonhosted.org/packages/2d/70/ebbb76022dba0fec8f9156540fc647e4beae1680c787c01b1b6200e56d70/time_machine-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2d0be9e5f22c38082d247a2cdcd8a936504e9db60b7b3606855fb39f299e9548", size = 34080, upload-time = "2025-12-17T23:32:06.146Z" }, + { url = "https://files.pythonhosted.org/packages/ee/cd/43ad5efc88298af3c59b66769cea7f055567a85071579ed40536188530c1/time_machine-3.2.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c421a8eb85a4418a7675a41bf8660224318c46cc62e4751c8f1ceca752059090", size = 19318, upload-time = "2025-12-17T23:32:10.518Z" }, + { url = "https://files.pythonhosted.org/packages/b0/f6/084010ef7f4a3f38b5a4900923d7c85b29e797655c4f6ee4ce54d903cca8/time_machine-3.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f4e758f7727d0058c4950c66b58200c187072122d6f7a98b610530a4233ea7b", size = 15390, upload-time = "2025-12-17T23:32:11.625Z" }, + { url = "https://files.pythonhosted.org/packages/25/aa/1cabb74134f492270dc6860cb7865859bf40ecf828be65972827646e91ad/time_machine-3.2.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:154bd3f75c81f70218b2585cc12b60762fb2665c507eec5ec5037d8756d9b4e0", size = 33115, upload-time = "2025-12-17T23:32:13.219Z" }, + { url = "https://files.pythonhosted.org/packages/5e/03/78c5d7dfa366924eb4dbfcc3fc917c39a4280ca234b12819cc1f16c03d88/time_machine-3.2.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d50cfe5ebea422c896ad8d278af9648412b7533b8ea6adeeee698a3fd9b1d3b7", size = 34705, upload-time = "2025-12-17T23:32:14.29Z" }, + { url = "https://files.pythonhosted.org/packages/86/93/d5e877c24541f674c6869ff6e9c56833369796010190252e92c9d7ae5f0f/time_machine-3.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:636576501724bd6a9124e69d86e5aef263479e89ef739c5db361469f0463a0a1", size = 36104, upload-time = "2025-12-17T23:32:15.354Z" }, + { url = "https://files.pythonhosted.org/packages/22/1c/d4bae72f388f67efc9609f89b012e434bb19d9549c7a7b47d6c7d9e5c55d/time_machine-3.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40e6f40c57197fcf7ec32d2c563f4df0a82c42cdcc3cab27f688e98f6060df10", size = 34765, upload-time = "2025-12-17T23:32:16.434Z" }, + { url = "https://files.pythonhosted.org/packages/1d/c3/ac378cf301d527d8dfad2f0db6bad0dfb1ab73212eaa56d6b96ee5d9d20b/time_machine-3.2.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a1bcf0b846bbfc19a79bc19e3fa04d8c7b1e8101c1b70340ffdb689cd801ea53", size = 33010, upload-time = "2025-12-17T23:32:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/06/35/7ce897319accda7a6970b288a9a8c52d25227342a7508505a2b3d235b649/time_machine-3.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ae55a56c179f4fe7a62575ad5148b6ed82f6c7e5cf2f9a9ec65f2f5b067db5f5", size = 34185, upload-time = "2025-12-17T23:32:18.566Z" }, + { url = "https://files.pythonhosted.org/packages/67/e7/487f0ba5fe6c58186a5e1af2a118dfa2c160fedb37ef53a7e972d410408e/time_machine-3.2.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:59d71545e62525a4b85b6de9ab5c02ee3c61110fd7f636139914a2335dcbfc9c", size = 20000, upload-time = "2025-12-17T23:32:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/e1/17/eb2c0054c8d44dd42df84ccd434539249a9c7d0b8eb53f799be2102500ab/time_machine-3.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:999672c621c35362bc28e03ca0c7df21500195540773c25993421fd8d6cc5003", size = 15657, upload-time = "2025-12-17T23:32:24.125Z" }, + { url = "https://files.pythonhosted.org/packages/43/21/93443b5d1dd850f8bb9442e90d817a9033dcce6bfbdd3aabbb9786251c80/time_machine-3.2.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5faf7397f0580c7b9d67288522c8d7863e85f0cffadc0f1fccdb2c3dfce5783e", size = 39216, upload-time = "2025-12-17T23:32:25.542Z" }, + { url = "https://files.pythonhosted.org/packages/9f/9e/18544cf8acc72bb1dc03762231c82ecc259733f4bb6770a7bbe5cd138603/time_machine-3.2.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d3dd886ec49f1fa5a00e844f5947e5c0f98ce574750c24b7424c6f77fc1c3e87", size = 40764, upload-time = "2025-12-17T23:32:26.643Z" }, + { url = "https://files.pythonhosted.org/packages/27/f7/9fe9ce2795636a3a7467307af6bdf38bb613ddb701a8a5cd50ec713beb5e/time_machine-3.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da0ecd96bc7bbe450acaaabe569d84e81688f1be8ad58d1470e42371d145fb53", size = 43526, upload-time = "2025-12-17T23:32:27.693Z" }, + { url = "https://files.pythonhosted.org/packages/03/c1/a93e975ba9dec22e87ec92d18c28e67d36bd536f9119ffa439b2892b0c9c/time_machine-3.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:158220e946c1c4fb8265773a0282c88c35a7e3bb5d78e3561214e3b3231166f3", size = 41727, upload-time = "2025-12-17T23:32:28.985Z" }, + { url = "https://files.pythonhosted.org/packages/5f/fb/e3633e5a6bbed1c76bb2e9810dabc2f8467532ffcd29b9aed404b473061a/time_machine-3.2.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c1aee29bc54356f248d5d7dfdd131e12ca825e850a08c0ebdb022266d073013", size = 38952, upload-time = "2025-12-17T23:32:30.031Z" }, + { url = "https://files.pythonhosted.org/packages/82/3d/02e9fb2526b3d6b1b45bc8e4d912d95d1cd699d1a3f6df985817d37a0600/time_machine-3.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c8ed2224f09d25b1c2fc98683613aca12f90f682a427eabb68fc824d27014e4a", size = 39829, upload-time = "2025-12-17T23:32:31.075Z" }, + { url = "https://files.pythonhosted.org/packages/61/70/b4b980d126ed155c78d1879c50d60c8dcbd47bd11cb14ee7be50e0dfc07f/time_machine-3.2.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:1398980c017fe5744d66f419e0115ee48a53b00b146d738e1416c225eb610b82", size = 19303, upload-time = "2025-12-17T23:32:35.796Z" }, + { url = "https://files.pythonhosted.org/packages/73/73/eaa33603c69a68fe2b6f54f9dd75481693d62f1d29676531002be06e2d1c/time_machine-3.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4f8f4e35f4191ef70c2ab8ff490761ee9051b891afce2bf86dde3918eb7b537b", size = 15431, upload-time = "2025-12-17T23:32:37.244Z" }, + { url = "https://files.pythonhosted.org/packages/76/10/b81e138e86cc7bab40cdb59d294b341e172201f4a6c84bb0ec080407977a/time_machine-3.2.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6db498686ecf6163c5aa8cf0bcd57bbe0f4081184f247edf3ee49a2612b584f9", size = 33206, upload-time = "2025-12-17T23:32:38.713Z" }, + { url = "https://files.pythonhosted.org/packages/d3/72/4deab446b579e8bd5dca91de98595c5d6bd6a17ce162abf5c5f2ce40d3d8/time_machine-3.2.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:027c1807efb74d0cd58ad16524dec94212fbe900115d70b0123399883657ac0f", size = 34792, upload-time = "2025-12-17T23:32:40.223Z" }, + { url = "https://files.pythonhosted.org/packages/2c/39/439c6b587ddee76d533fe972289d0646e0a5520e14dc83d0a30aeb5565f7/time_machine-3.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92432610c05676edd5e6946a073c6f0c926923123ce7caee1018dc10782c713d", size = 36187, upload-time = "2025-12-17T23:32:41.705Z" }, + { url = "https://files.pythonhosted.org/packages/4b/db/2da4368db15180989bab83746a857bde05ad16e78f326801c142bb747a06/time_machine-3.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c25586b62480eb77ef3d953fba273209478e1ef49654592cd6a52a68dfe56a67", size = 34855, upload-time = "2025-12-17T23:32:42.817Z" }, + { url = "https://files.pythonhosted.org/packages/88/84/120a431fee50bc4c241425bee4d3a4910df4923b7ab5f7dff1bf0c772f08/time_machine-3.2.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6bf3a2fa738d15e0b95d14469a0b8ea42635467408d8b490e263d5d45c9a177f", size = 33222, upload-time = "2025-12-17T23:32:43.94Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ea/89cfda82bb8c57ff91bb9a26751aa234d6d90e9b4d5ab0ad9dce0f9f0329/time_machine-3.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ce76b82276d7ad2a66cdc85dad4df19d1422b69183170a34e8fbc4c3f35502f7", size = 34270, upload-time = "2025-12-17T23:32:45.037Z" }, + { url = "https://files.pythonhosted.org/packages/86/a1/142de946dc4393f910bf4564b5c3ba819906e1f49b06c9cb557519c849e4/time_machine-3.2.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4e374779021446fc2b5c29d80457ec9a3b1a5df043dc2aae07d7c1415d52323c", size = 19991, upload-time = "2025-12-17T23:32:49.933Z" }, + { url = "https://files.pythonhosted.org/packages/ee/62/7f17def6289901f94726921811a16b9adce46e666362c75d45730c60274f/time_machine-3.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:122310a6af9c36e9a636da32830e591e7923e8a07bdd0a43276c3a36c6821c90", size = 15707, upload-time = "2025-12-17T23:32:50.969Z" }, + { url = "https://files.pythonhosted.org/packages/5d/d3/3502fb9bd3acb159c18844b26c43220201a0d4a622c0c853785d07699a92/time_machine-3.2.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ba3eeb0f018cc362dd8128befa3426696a2e16dd223c3fb695fde184892d4d8c", size = 39207, upload-time = "2025-12-17T23:32:52.033Z" }, + { url = "https://files.pythonhosted.org/packages/5a/be/8b27f4aa296fda14a5a2ad7f588ddd450603c33415ab3f8e85b2f1a44678/time_machine-3.2.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:77d38ba664b381a7793f8786efc13b5004f0d5f672dae814430445b8202a67a6", size = 40764, upload-time = "2025-12-17T23:32:53.167Z" }, + { url = "https://files.pythonhosted.org/packages/42/cd/fe4c4e5c8ab6d48fab3624c32be9116fb120173a35fe67e482e5cf68b3d2/time_machine-3.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f09abeb8f03f044d72712207e0489a62098ad3ad16dac38927fcf80baca4d6a7", size = 43508, upload-time = "2025-12-17T23:32:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/28/5a3ba2fce85b97655a425d6bb20a441550acd2b304c96b2c19d3839f721a/time_machine-3.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6b28367ce4f73987a55e230e1d30a57a3af85da8eb1a140074eb6e8c7e6ef19f", size = 41712, upload-time = "2025-12-17T23:32:55.781Z" }, + { url = "https://files.pythonhosted.org/packages/81/58/e38084be7fdabb4835db68a3a47e58c34182d79fc35df1ecbe0db2c5359f/time_machine-3.2.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:903c7751c904581da9f7861c3015bed7cdc40047321291d3694a3cdc783bbca3", size = 38939, upload-time = "2025-12-17T23:32:56.867Z" }, + { url = "https://files.pythonhosted.org/packages/40/d0/ad3feb0a392ef4e0c08bc32024950373ddc0669002cbdcbb9f3bf0c2d114/time_machine-3.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:528217cad85ede5f85c8bc78b0341868d3c3cfefc6ecb5b622e1cacb6c73247b", size = 39837, upload-time = "2025-12-17T23:32:58.283Z" }, +] + +[[package]] +name = "tinytag" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/59/8a8cb2331e2602b53e4dc06960f57d1387a2b18e7efd24e5f9cb60ea4925/tinytag-2.2.1.tar.gz", hash = "sha256:e6d06610ebe7cd66fd07be2d3b9495914ab32654a5e47657bb8cd44c2484523c", size = 38214, upload-time = "2026-03-15T18:48:01.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/34/d50e338631baaf65ec5396e70085e5de0b52b24b28db1ffbc1c6e82190dc/tinytag-2.2.1-py3-none-any.whl", hash = "sha256:ed8b1e6d25367937e3321e054f4974f9abfde1a3e0a538824c87da377130c2b6", size = 32927, upload-time = "2026-03-15T18:47:59.613Z" }, ] [[package]] @@ -5014,11 +5183,11 @@ wheels = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20260124" +version = "2.9.0.20260305" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/41/4f8eb1ce08688a9e3e23709ed07089ccdeaf95b93745bfb768c6da71197d/types_python_dateutil-2.9.0.20260124.tar.gz", hash = "sha256:7d2db9f860820c30e5b8152bfe78dbdf795f7d1c6176057424e8b3fdd1f581af", size = 16596, upload-time = "2026-01-24T03:18:42.975Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/c7/025c624f347e10476b439a6619a95f1d200250ea88e7ccea6e09e48a7544/types_python_dateutil-2.9.0.20260305.tar.gz", hash = "sha256:389717c9f64d8f769f36d55a01873915b37e97e52ce21928198d210fbd393c8b", size = 16885, upload-time = "2026-03-05T04:00:47.409Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/c2/aa5e3f4103cc8b1dcf92432415dde75d70021d634ecfd95b2e913cf43e17/types_python_dateutil-2.9.0.20260124-py3-none-any.whl", hash = "sha256:f802977ae08bf2260142e7ca1ab9d4403772a254409f7bbdf652229997124951", size = 18266, upload-time = "2026-01-24T03:18:42.155Z" }, + { url = "https://files.pythonhosted.org/packages/0a/77/8c0d1ec97f0d9707ad3d8fa270ab8964e7b31b076d2f641c94987395cc75/types_python_dateutil-2.9.0.20260305-py3-none-any.whl", hash = "sha256:a3be9ca444d38cadabd756cfbb29780d8b338ae2a3020e73c266a83cc3025dd7", size = 18419, upload-time = "2026-03-05T04:00:46.392Z" }, ] [[package]] @@ -5144,56 +5313,77 @@ wheels = [ ] [[package]] -name = "ujson" -version = "5.11.0" +name = "uharfbuzz" +version = "0.53.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/d9/3f17e3c5773fb4941c68d9a37a47b1a79c9649d6c56aefbed87cc409d18a/ujson-5.11.0.tar.gz", hash = "sha256:e204ae6f909f099ba6b6b942131cee359ddda2b6e4ea39c12eb8b991fe2010e0", size = 7156583, upload-time = "2025-08-20T11:57:02.452Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/8d/7c82298bfa5c96f018541661bc2ccdf90dfe397bb2724db46725bf495466/uharfbuzz-0.53.3.tar.gz", hash = "sha256:9a87175c14d1361322ce2a3504e63c6b66062934a5edf47266aed5b33416806c", size = 1714488, upload-time = "2026-01-24T13:10:43.693Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/da/ea/80346b826349d60ca4d612a47cdf3533694e49b45e9d1c07071bb867a184/ujson-5.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d7c46cb0fe5e7056b9acb748a4c35aa1b428025853032540bb7e41f46767321f", size = 55248, upload-time = "2025-08-20T11:55:19.033Z" }, - { url = "https://files.pythonhosted.org/packages/57/df/b53e747562c89515e18156513cc7c8ced2e5e3fd6c654acaa8752ffd7cd9/ujson-5.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8951bb7a505ab2a700e26f691bdfacf395bc7e3111e3416d325b513eea03a58", size = 53156, upload-time = "2025-08-20T11:55:20.174Z" }, - { url = "https://files.pythonhosted.org/packages/41/b8/ab67ec8c01b8a3721fd13e5cb9d85ab2a6066a3a5e9148d661a6870d6293/ujson-5.11.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952c0be400229940248c0f5356514123d428cba1946af6fa2bbd7503395fef26", size = 57657, upload-time = "2025-08-20T11:55:21.296Z" }, - { url = "https://files.pythonhosted.org/packages/7b/c7/fb84f27cd80a2c7e2d3c6012367aecade0da936790429801803fa8d4bffc/ujson-5.11.0-cp311-cp311-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:94fcae844f1e302f6f8095c5d1c45a2f0bfb928cccf9f1b99e3ace634b980a2a", size = 59779, upload-time = "2025-08-20T11:55:22.772Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7c/48706f7c1e917ecb97ddcfb7b1d756040b86ed38290e28579d63bd3fcc48/ujson-5.11.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e0ec1646db172beb8d3df4c32a9d78015e671d2000af548252769e33079d9a6", size = 57284, upload-time = "2025-08-20T11:55:24.01Z" }, - { url = "https://files.pythonhosted.org/packages/ec/ce/48877c6eb4afddfd6bd1db6be34456538c07ca2d6ed233d3f6c6efc2efe8/ujson-5.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:da473b23e3a54448b008d33f742bcd6d5fb2a897e42d1fc6e7bf306ea5d18b1b", size = 1036395, upload-time = "2025-08-20T11:55:25.725Z" }, - { url = "https://files.pythonhosted.org/packages/8b/7a/2c20dc97ad70cd7c31ad0596ba8e2cf8794d77191ba4d1e0bded69865477/ujson-5.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:aa6b3d4f1c0d3f82930f4cbd7fe46d905a4a9205a7c13279789c1263faf06dba", size = 1195731, upload-time = "2025-08-20T11:55:27.915Z" }, - { url = "https://files.pythonhosted.org/packages/15/f5/ca454f2f6a2c840394b6f162fff2801450803f4ff56c7af8ce37640b8a2a/ujson-5.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4843f3ab4fe1cc596bb7e02228ef4c25d35b4bb0809d6a260852a4bfcab37ba3", size = 1088710, upload-time = "2025-08-20T11:55:29.426Z" }, - { url = "https://files.pythonhosted.org/packages/b9/ef/a9cb1fce38f699123ff012161599fb9f2ff3f8d482b4b18c43a2dc35073f/ujson-5.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7895f0d2d53bd6aea11743bd56e3cb82d729980636cd0ed9b89418bf66591702", size = 55434, upload-time = "2025-08-20T11:55:34.987Z" }, - { url = "https://files.pythonhosted.org/packages/b1/05/dba51a00eb30bd947791b173766cbed3492269c150a7771d2750000c965f/ujson-5.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12b5e7e22a1fe01058000d1b317d3b65cc3daf61bd2ea7a2b76721fe160fa74d", size = 53190, upload-time = "2025-08-20T11:55:36.384Z" }, - { url = "https://files.pythonhosted.org/packages/03/3c/fd11a224f73fbffa299fb9644e425f38b38b30231f7923a088dd513aabb4/ujson-5.11.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0180a480a7d099082501cad1fe85252e4d4bf926b40960fb3d9e87a3a6fbbc80", size = 57600, upload-time = "2025-08-20T11:55:37.692Z" }, - { url = "https://files.pythonhosted.org/packages/55/b9/405103cae24899df688a3431c776e00528bd4799e7d68820e7ebcf824f92/ujson-5.11.0-cp312-cp312-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:fa79fdb47701942c2132a9dd2297a1a85941d966d8c87bfd9e29b0cf423f26cc", size = 59791, upload-time = "2025-08-20T11:55:38.877Z" }, - { url = "https://files.pythonhosted.org/packages/17/7b/2dcbc2bbfdbf68f2368fb21ab0f6735e872290bb604c75f6e06b81edcb3f/ujson-5.11.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8254e858437c00f17cb72e7a644fc42dad0ebb21ea981b71df6e84b1072aaa7c", size = 57356, upload-time = "2025-08-20T11:55:40.036Z" }, - { url = "https://files.pythonhosted.org/packages/d1/71/fea2ca18986a366c750767b694430d5ded6b20b6985fddca72f74af38a4c/ujson-5.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1aa8a2ab482f09f6c10fba37112af5f957689a79ea598399c85009f2f29898b5", size = 1036313, upload-time = "2025-08-20T11:55:41.408Z" }, - { url = "https://files.pythonhosted.org/packages/a3/bb/d4220bd7532eac6288d8115db51710fa2d7d271250797b0bfba9f1e755af/ujson-5.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a638425d3c6eed0318df663df44480f4a40dc87cc7c6da44d221418312f6413b", size = 1195782, upload-time = "2025-08-20T11:55:43.357Z" }, - { url = "https://files.pythonhosted.org/packages/80/47/226e540aa38878ce1194454385701d82df538ccb5ff8db2cf1641dde849a/ujson-5.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7e3cff632c1d78023b15f7e3a81c3745cd3f94c044d1e8fa8efbd6b161997bbc", size = 1088817, upload-time = "2025-08-20T11:55:45.262Z" }, - { url = "https://files.pythonhosted.org/packages/1c/ec/2de9dd371d52c377abc05d2b725645326c4562fc87296a8907c7bcdf2db7/ujson-5.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:109f59885041b14ee9569bf0bb3f98579c3fa0652317b355669939e5fc5ede53", size = 55435, upload-time = "2025-08-20T11:55:50.243Z" }, - { url = "https://files.pythonhosted.org/packages/5b/a4/f611f816eac3a581d8a4372f6967c3ed41eddbae4008d1d77f223f1a4e0a/ujson-5.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a31c6b8004438e8c20fc55ac1c0e07dad42941db24176fe9acf2815971f8e752", size = 53193, upload-time = "2025-08-20T11:55:51.373Z" }, - { url = "https://files.pythonhosted.org/packages/e9/c5/c161940967184de96f5cbbbcce45b562a4bf851d60f4c677704b1770136d/ujson-5.11.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78c684fb21255b9b90320ba7e199780f653e03f6c2528663768965f4126a5b50", size = 57603, upload-time = "2025-08-20T11:55:52.583Z" }, - { url = "https://files.pythonhosted.org/packages/2b/d6/c7b2444238f5b2e2d0e3dab300b9ddc3606e4b1f0e4bed5a48157cebc792/ujson-5.11.0-cp313-cp313-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:4c9f5d6a27d035dd90a146f7761c2272cf7103de5127c9ab9c4cd39ea61e878a", size = 59794, upload-time = "2025-08-20T11:55:53.69Z" }, - { url = "https://files.pythonhosted.org/packages/fe/a3/292551f936d3d02d9af148f53e1bc04306b00a7cf1fcbb86fa0d1c887242/ujson-5.11.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:837da4d27fed5fdc1b630bd18f519744b23a0b5ada1bbde1a36ba463f2900c03", size = 57363, upload-time = "2025-08-20T11:55:54.843Z" }, - { url = "https://files.pythonhosted.org/packages/90/a6/82cfa70448831b1a9e73f882225980b5c689bf539ec6400b31656a60ea46/ujson-5.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:787aff4a84da301b7f3bac09bc696e2e5670df829c6f8ecf39916b4e7e24e701", size = 1036311, upload-time = "2025-08-20T11:55:56.197Z" }, - { url = "https://files.pythonhosted.org/packages/84/5c/96e2266be50f21e9b27acaee8ca8f23ea0b85cb998c33d4f53147687839b/ujson-5.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6dd703c3e86dc6f7044c5ac0b3ae079ed96bf297974598116aa5fb7f655c3a60", size = 1195783, upload-time = "2025-08-20T11:55:58.081Z" }, - { url = "https://files.pythonhosted.org/packages/8d/20/78abe3d808cf3bb3e76f71fca46cd208317bf461c905d79f0d26b9df20f1/ujson-5.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3772e4fe6b0c1e025ba3c50841a0ca4786825a4894c8411bf8d3afe3a8061328", size = 1088822, upload-time = "2025-08-20T11:55:59.469Z" }, - { url = "https://files.pythonhosted.org/packages/28/08/4518146f4984d112764b1dfa6fb7bad691c44a401adadaa5e23ccd930053/ujson-5.11.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:65724738c73645db88f70ba1f2e6fb678f913281804d5da2fd02c8c5839af302", size = 55462, upload-time = "2025-08-20T11:56:04.873Z" }, - { url = "https://files.pythonhosted.org/packages/29/37/2107b9a62168867a692654d8766b81bd2fd1e1ba13e2ec90555861e02b0c/ujson-5.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29113c003ca33ab71b1b480bde952fbab2a0b6b03a4ee4c3d71687cdcbd1a29d", size = 53246, upload-time = "2025-08-20T11:56:06.054Z" }, - { url = "https://files.pythonhosted.org/packages/9b/f8/25583c70f83788edbe3ca62ce6c1b79eff465d78dec5eb2b2b56b3e98b33/ujson-5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c44c703842024d796b4c78542a6fcd5c3cb948b9fc2a73ee65b9c86a22ee3638", size = 57631, upload-time = "2025-08-20T11:56:07.374Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ca/19b3a632933a09d696f10dc1b0dfa1d692e65ad507d12340116ce4f67967/ujson-5.11.0-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:e750c436fb90edf85585f5c62a35b35082502383840962c6983403d1bd96a02c", size = 59877, upload-time = "2025-08-20T11:56:08.534Z" }, - { url = "https://files.pythonhosted.org/packages/55/7a/4572af5324ad4b2bfdd2321e898a527050290147b4ea337a79a0e4e87ec7/ujson-5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f278b31a7c52eb0947b2db55a5133fbc46b6f0ef49972cd1a80843b72e135aba", size = 57363, upload-time = "2025-08-20T11:56:09.758Z" }, - { url = "https://files.pythonhosted.org/packages/7b/71/a2b8c19cf4e1efe53cf439cdf7198ac60ae15471d2f1040b490c1f0f831f/ujson-5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ab2cb8351d976e788669c8281465d44d4e94413718af497b4e7342d7b2f78018", size = 1036394, upload-time = "2025-08-20T11:56:11.168Z" }, - { url = "https://files.pythonhosted.org/packages/7a/3e/7b98668cba3bb3735929c31b999b374ebc02c19dfa98dfebaeeb5c8597ca/ujson-5.11.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:090b4d11b380ae25453100b722d0609d5051ffe98f80ec52853ccf8249dfd840", size = 1195837, upload-time = "2025-08-20T11:56:12.6Z" }, - { url = "https://files.pythonhosted.org/packages/a1/ea/8870f208c20b43571a5c409ebb2fe9b9dba5f494e9e60f9314ac01ea8f78/ujson-5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:80017e870d882d5517d28995b62e4e518a894f932f1e242cbc802a2fd64d365c", size = 1088837, upload-time = "2025-08-20T11:56:14.15Z" }, - { url = "https://files.pythonhosted.org/packages/6e/cd/e9809b064a89fe5c4184649adeb13c1b98652db3f8518980b04227358574/ujson-5.11.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:de6e88f62796372fba1de973c11138f197d3e0e1d80bcb2b8aae1e826096d433", size = 55759, upload-time = "2025-08-20T11:56:18.882Z" }, - { url = "https://files.pythonhosted.org/packages/1b/be/ae26a6321179ebbb3a2e2685b9007c71bcda41ad7a77bbbe164005e956fc/ujson-5.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49e56ef8066f11b80d620985ae36869a3ff7e4b74c3b6129182ec5d1df0255f3", size = 53634, upload-time = "2025-08-20T11:56:20.012Z" }, - { url = "https://files.pythonhosted.org/packages/ae/e9/fb4a220ee6939db099f4cfeeae796ecb91e7584ad4d445d4ca7f994a9135/ujson-5.11.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a325fd2c3a056cf6c8e023f74a0c478dd282a93141356ae7f16d5309f5ff823", size = 58547, upload-time = "2025-08-20T11:56:21.175Z" }, - { url = "https://files.pythonhosted.org/packages/bd/f8/fc4b952b8f5fea09ea3397a0bd0ad019e474b204cabcb947cead5d4d1ffc/ujson-5.11.0-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:a0af6574fc1d9d53f4ff371f58c96673e6d988ed2b5bf666a6143c782fa007e9", size = 60489, upload-time = "2025-08-20T11:56:22.342Z" }, - { url = "https://files.pythonhosted.org/packages/2e/e5/af5491dfda4f8b77e24cf3da68ee0d1552f99a13e5c622f4cef1380925c3/ujson-5.11.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10f29e71ecf4ecd93a6610bd8efa8e7b6467454a363c3d6416db65de883eb076", size = 58035, upload-time = "2025-08-20T11:56:23.92Z" }, - { url = "https://files.pythonhosted.org/packages/c4/09/0945349dd41f25cc8c38d78ace49f14c5052c5bbb7257d2f466fa7bdb533/ujson-5.11.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a0a9b76a89827a592656fe12e000cf4f12da9692f51a841a4a07aa4c7ecc41c", size = 1037212, upload-time = "2025-08-20T11:56:25.274Z" }, - { url = "https://files.pythonhosted.org/packages/49/44/8e04496acb3d5a1cbee3a54828d9652f67a37523efa3d3b18a347339680a/ujson-5.11.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b16930f6a0753cdc7d637b33b4e8f10d5e351e1fb83872ba6375f1e87be39746", size = 1196500, upload-time = "2025-08-20T11:56:27.517Z" }, - { url = "https://files.pythonhosted.org/packages/64/ae/4bc825860d679a0f208a19af2f39206dfd804ace2403330fdc3170334a2f/ujson-5.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:04c41afc195fd477a59db3a84d5b83a871bd648ef371cf8c6f43072d89144eef", size = 1089487, upload-time = "2025-08-20T11:56:29.07Z" }, - { url = "https://files.pythonhosted.org/packages/50/17/30275aa2933430d8c0c4ead951cc4fdb922f575a349aa0b48a6f35449e97/ujson-5.11.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:abae0fb58cc820092a0e9e8ba0051ac4583958495bfa5262a12f628249e3b362", size = 51206, upload-time = "2025-08-20T11:56:48.797Z" }, - { url = "https://files.pythonhosted.org/packages/c3/15/42b3924258eac2551f8f33fa4e35da20a06a53857ccf3d4deb5e5d7c0b6c/ujson-5.11.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fac6c0649d6b7c3682a0a6e18d3de6857977378dce8d419f57a0b20e3d775b39", size = 48907, upload-time = "2025-08-20T11:56:50.136Z" }, - { url = "https://files.pythonhosted.org/packages/94/7e/0519ff7955aba581d1fe1fb1ca0e452471250455d182f686db5ac9e46119/ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b42c115c7c6012506e8168315150d1e3f76e7ba0f4f95616f4ee599a1372bbc", size = 50319, upload-time = "2025-08-20T11:56:51.63Z" }, - { url = "https://files.pythonhosted.org/packages/74/cf/209d90506b7d6c5873f82c5a226d7aad1a1da153364e9ebf61eff0740c33/ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:86baf341d90b566d61a394869ce77188cc8668f76d7bb2c311d77a00f4bdf844", size = 56584, upload-time = "2025-08-20T11:56:52.89Z" }, - { url = "https://files.pythonhosted.org/packages/e9/97/bd939bb76943cb0e1d2b692d7e68629f51c711ef60425fa5bb6968037ecd/ujson-5.11.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4598bf3965fc1a936bd84034312bcbe00ba87880ef1ee33e33c1e88f2c398b49", size = 51588, upload-time = "2025-08-20T11:56:54.054Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/5df9337adb60d7b1ad150b162bbc5c56d783d15546714085d92b9531f8f3/uharfbuzz-0.53.3-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:d977e41a501d9e8af3f2c329d75031037ee79634bc29ca3872e9115c44e67d25", size = 2722639, upload-time = "2026-01-24T13:10:22.436Z" }, + { url = "https://files.pythonhosted.org/packages/39/c4/8b4b050e77d6cb9a84af509e5796734f0e687bd02ad11757a581bd6f197d/uharfbuzz-0.53.3-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21d512c94aa992691aaf5b433deaca7e51f4ea54c68b99f535974073364f806f", size = 1647506, upload-time = "2026-01-24T13:10:24.16Z" }, + { url = "https://files.pythonhosted.org/packages/30/ff/8e7cf78d525604f3e0a43b9468263fcf2acb5d208a3979c3bfa8dc61112d/uharfbuzz-0.53.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dca9a2e071c0c59ba8f382356f31a2518ac3dc7cc77e4f3519defc454c5b9a97", size = 1706448, upload-time = "2026-01-24T13:10:25.729Z" }, + { url = "https://files.pythonhosted.org/packages/9b/a0/739471cdd52723ecc9fc80f36fb92c706a87265dc258521c1b14d99414f7/uharfbuzz-0.53.3-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1191a74ddcf18ec721161b6b33a8ab31b0c6a2b15c6724a9b663127bf7f07d2e", size = 2664628, upload-time = "2026-01-24T13:10:27.814Z" }, + { url = "https://files.pythonhosted.org/packages/ae/4a/63a81e9eef922b9f26bd948b518b73704d01a8d8e83324b2f99084ab7af0/uharfbuzz-0.53.3-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:35ec3b600b3f63e7659792f9bd43e1ffb389d3d2aac8285f269d11efbe04787d", size = 2757384, upload-time = "2026-01-24T13:10:29.669Z" }, + { url = "https://files.pythonhosted.org/packages/e2/d2/27be1201488323d0ff0c99fb966a0522b2736f79bd5a5b7b99526fca3d98/uharfbuzz-0.53.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6f0ad2812303d2c7ccff596fd6c9d5629874f3a83f30255e11639c9b7ba4e89d", size = 1335822, upload-time = "2026-01-24T13:10:34.774Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/53e39bcd4dec5981eb70a6a76285a862c8a76b80cd52e8f40fe51adab032/uharfbuzz-0.53.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:757d9ed1841912e8f229319f335cf7dd25a2fd377e444bda9deb720617192e12", size = 1237560, upload-time = "2026-01-24T13:10:36.971Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2b/04d8cde466acfe70373d4f489da5c6eab0aba07d50442dd21217cb0fd167/uharfbuzz-0.53.3-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d3a0b824811bd1be129356818e6cdbf0e4b056bb60aa9a5eb270bff9d21f24c", size = 1497923, upload-time = "2026-01-24T13:10:38.743Z" }, + { url = "https://files.pythonhosted.org/packages/f3/01/a250521491bc995609275e0062c552b16f437a3ce15de83250176245093e/uharfbuzz-0.53.3-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9211d798b2921a99b8c34e810676137f66372d3b5447765b72d969bdfa6abe6a", size = 1556794, upload-time = "2026-01-24T13:10:40.262Z" }, +] + +[[package]] +name = "ujson" +version = "5.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/3e/c35530c5ffc25b71c59ae0cd7b8f99df37313daa162ce1e2f7925f7c2877/ujson-5.12.0.tar.gz", hash = "sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4", size = 7158451, upload-time = "2026-03-11T22:19:30.397Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/22/fd22e2f6766bae934d3050517ca47d463016bd8688508d1ecc1baa18a7ad/ujson-5.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58a11cb49482f1a095a2bd9a1d81dd7c8fb5d2357f959ece85db4e46a825fd00", size = 56139, upload-time = "2026-03-11T22:18:04.591Z" }, + { url = "https://files.pythonhosted.org/packages/c6/fd/6839adff4fc0164cbcecafa2857ba08a6eaeedd7e098d6713cb899a91383/ujson-5.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9b3cf13facf6f77c283af0e1713e5e8c47a0fe295af81326cb3cb4380212e797", size = 53836, upload-time = "2026-03-11T22:18:05.662Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b0/0c19faac62d68ceeffa83a08dc3d71b8462cf5064d0e7e0b15ba19898dad/ujson-5.12.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb94245a715b4d6e24689de12772b85329a1f9946cbf6187923a64ecdea39e65", size = 57851, upload-time = "2026-03-11T22:18:06.744Z" }, + { url = "https://files.pythonhosted.org/packages/04/f6/e7fd283788de73b86e99e08256726bb385923249c21dcd306e59d532a1a1/ujson-5.12.0-cp311-cp311-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:0fe6b8b8968e11dd9b2348bd508f0f57cf49ab3512064b36bc4117328218718e", size = 59906, upload-time = "2026-03-11T22:18:07.791Z" }, + { url = "https://files.pythonhosted.org/packages/d7/3a/b100735a2b43ee6e8fe4c883768e362f53576f964d4ea841991060aeaf35/ujson-5.12.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89e302abd3749f6d6699691747969a5d85f7c73081d5ed7e2624c7bd9721a2ab", size = 57409, upload-time = "2026-03-11T22:18:08.79Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fa/f97cc20c99ca304662191b883ae13ae02912ca7244710016ba0cb8a5be34/ujson-5.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0727363b05ab05ee737a28f6200dc4078bce6b0508e10bd8aab507995a15df61", size = 1037339, upload-time = "2026-03-11T22:18:10.424Z" }, + { url = "https://files.pythonhosted.org/packages/10/7a/53ddeda0ffe1420db2f9999897b3cbb920fbcff1849d1f22b196d0f34785/ujson-5.12.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b62cb9a7501e1f5c9ffe190485501349c33e8862dde4377df774e40b8166871f", size = 1196625, upload-time = "2026-03-11T22:18:11.82Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1a/4c64a6bef522e9baf195dd5be151bc815cd4896c50c6e2489599edcda85f/ujson-5.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a6ec5bf6bc361f2f0f9644907a36ce527715b488988a8df534120e5c34eeda94", size = 1089669, upload-time = "2026-03-11T22:18:13.343Z" }, + { url = "https://files.pythonhosted.org/packages/84/f6/ac763d2108d28f3a40bb3ae7d2fafab52ca31b36c2908a4ad02cd3ceba2a/ujson-5.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:09b4beff9cc91d445d5818632907b85fb06943b61cb346919ce202668bf6794a", size = 56326, upload-time = "2026-03-11T22:18:18.467Z" }, + { url = "https://files.pythonhosted.org/packages/25/46/d0b3af64dcdc549f9996521c8be6d860ac843a18a190ffc8affeb7259687/ujson-5.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca0c7ce828bb76ab78b3991904b477c2fd0f711d7815c252d1ef28ff9450b052", size = 53910, upload-time = "2026-03-11T22:18:19.502Z" }, + { url = "https://files.pythonhosted.org/packages/9a/10/853c723bcabc3e9825a079019055fc99e71b85c6bae600607a2b9d31d18d/ujson-5.12.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2d79c6635ccffcbfc1d5c045874ba36b594589be81d50d43472570bb8de9c57", size = 57754, upload-time = "2026-03-11T22:18:20.874Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c6/6e024830d988f521f144ead641981c1f7a82c17ad1927c22de3242565f5c/ujson-5.12.0-cp312-cp312-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:7e07f6f644d2c44d53b7a320a084eef98063651912c1b9449b5f45fcbdc6ccd2", size = 59936, upload-time = "2026-03-11T22:18:21.924Z" }, + { url = "https://files.pythonhosted.org/packages/34/c9/c5f236af5abe06b720b40b88819d00d10182d2247b1664e487b3ed9229cf/ujson-5.12.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:085b6ce182cdd6657481c7c4003a417e0655c4f6e58b76f26ee18f0ae21db827", size = 57463, upload-time = "2026-03-11T22:18:22.924Z" }, + { url = "https://files.pythonhosted.org/packages/ae/04/41342d9ef68e793a87d84e4531a150c2b682f3bcedfe59a7a5e3f73e9213/ujson-5.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:16b4fe9c97dc605f5e1887a9e1224287291e35c56cbc379f8aa44b6b7bcfe2bb", size = 1037239, upload-time = "2026-03-11T22:18:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/d4/81/dc2b7617d5812670d4ff4a42f6dd77926430ee52df0dedb2aec7990b2034/ujson-5.12.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0d2e8db5ade3736a163906154ca686203acc7d1d30736cbf577c730d13653d84", size = 1196713, upload-time = "2026-03-11T22:18:25.391Z" }, + { url = "https://files.pythonhosted.org/packages/b6/9c/80acff0504f92459ed69e80a176286e32ca0147ac6a8252cd0659aad3227/ujson-5.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93bc91fdadcf046da37a214eaa714574e7e9b1913568e93bb09527b2ceb7f759", size = 1089742, upload-time = "2026-03-11T22:18:26.738Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f1/0ef0eeab1db8493e1833c8b440fe32cf7538f7afa6e7f7c7e9f62cef464d/ujson-5.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:15d416440148f3e56b9b244fdaf8a09fcf5a72e4944b8e119f5bf60417a2bfc8", size = 56331, upload-time = "2026-03-11T22:18:31.539Z" }, + { url = "https://files.pythonhosted.org/packages/b0/2f/9159f6f399b3f572d20847a2b80d133e3a03c14712b0da4971a36879fb64/ujson-5.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e0dd3676ea0837cd70ea1879765e9e9f6be063be0436de9b3ea4b775caf83654", size = 53910, upload-time = "2026-03-11T22:18:32.829Z" }, + { url = "https://files.pythonhosted.org/packages/e5/a9/f96376818d71495d1a4be19a0ab6acf0cc01dd8826553734c3d4dac685b2/ujson-5.12.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7bbf05c38debc90d1a195b11340cc85cb43ab3e753dc47558a3a84a38cbc72da", size = 57757, upload-time = "2026-03-11T22:18:33.866Z" }, + { url = "https://files.pythonhosted.org/packages/98/8d/dd4a151caac6fdcb77f024fbe7f09d465ebf347a628ed6dd581a0a7f6364/ujson-5.12.0-cp313-cp313-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:3c2f947e55d3c7cfe124dd4521ee481516f3007d13c6ad4bf6aeb722e190eb1b", size = 59940, upload-time = "2026-03-11T22:18:35.276Z" }, + { url = "https://files.pythonhosted.org/packages/c7/17/0d36c2fee0a8d8dc37b011ccd5bbdcfaff8b8ec2bcfc5be998661cdc935b/ujson-5.12.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ea6206043385343aff0b7da65cf73677f6f5e50de8f1c879e557f4298cac36a", size = 57465, upload-time = "2026-03-11T22:18:36.644Z" }, + { url = "https://files.pythonhosted.org/packages/8c/04/b0ee4a4b643a01ba398441da1e357480595edb37c6c94c508dbe0eb9eb60/ujson-5.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb349dbba57c76eec25e5917e07f35aabaf0a33b9e67fc13d188002500106487", size = 1037236, upload-time = "2026-03-11T22:18:37.743Z" }, + { url = "https://files.pythonhosted.org/packages/2d/08/0e7780d0bbb48fe57ded91f550144bcc99c03b5360bf2886dd0dae0ea8f5/ujson-5.12.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:937794042342006f707837f38d721426b11b0774d327a2a45c0bd389eb750a87", size = 1196717, upload-time = "2026-03-11T22:18:39.101Z" }, + { url = "https://files.pythonhosted.org/packages/ba/4c/e0e34107715bb4dd2d4dcc1ce244d2f074638837adf38aff85a37506efe4/ujson-5.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6ad57654570464eb1b040b5c353dee442608e06cff9102b8fcb105565a44c9ed", size = 1089748, upload-time = "2026-03-11T22:18:40.473Z" }, + { url = "https://files.pythonhosted.org/packages/10/bd/9a8d693254bada62bfea75a507e014afcfdb6b9d047b6f8dd134bfefaf67/ujson-5.12.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef", size = 56499, upload-time = "2026-03-11T22:18:45.431Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2d/285a83df8176e18dcd675d1a4cff8f7620f003f30903ea43929406e98986/ujson-5.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9", size = 53998, upload-time = "2026-03-11T22:18:47.184Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8b/e2f09e16dabfa91f6a84555df34a4329fa7621e92ed054d170b9054b9bb2/ujson-5.12.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c", size = 57783, upload-time = "2026-03-11T22:18:48.271Z" }, + { url = "https://files.pythonhosted.org/packages/68/fb/ba1d06f3658a0c36d0ab3869ec3914f202bad0a9bde92654e41516c7bb13/ujson-5.12.0-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc", size = 60011, upload-time = "2026-03-11T22:18:49.284Z" }, + { url = "https://files.pythonhosted.org/packages/64/2b/3e322bf82d926d9857206cd5820438d78392d1f523dacecb8bd899952f73/ujson-5.12.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961", size = 57465, upload-time = "2026-03-11T22:18:50.584Z" }, + { url = "https://files.pythonhosted.org/packages/e9/fd/af72d69603f9885e5136509a529a4f6d88bf652b457263ff96aefcd3ab7d/ujson-5.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6", size = 1037275, upload-time = "2026-03-11T22:18:51.998Z" }, + { url = "https://files.pythonhosted.org/packages/9c/a7/a2411ec81aef7872578e56304c3e41b3a544a9809e95c8e1df46923fc40b/ujson-5.12.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad", size = 1196758, upload-time = "2026-03-11T22:18:53.548Z" }, + { url = "https://files.pythonhosted.org/packages/ed/85/aa18ae175dd03a118555aa14304d4f466f9db61b924c97c6f84388ecacb1/ujson-5.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4", size = 1089760, upload-time = "2026-03-11T22:18:55.336Z" }, + { url = "https://files.pythonhosted.org/packages/c3/71/9b4dacb177d3509077e50497222d39eec04c8b41edb1471efc764d645237/ujson-5.12.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d", size = 56845, upload-time = "2026-03-11T22:18:59.629Z" }, + { url = "https://files.pythonhosted.org/packages/24/c2/8abffa3be1f3d605c4a62445fab232b3e7681512ce941c6b23014f404d36/ujson-5.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983", size = 54463, upload-time = "2026-03-11T22:19:00.697Z" }, + { url = "https://files.pythonhosted.org/packages/db/2e/60114a35d1d6796eb428f7affcba00a921831ff604a37d9142c3d8bbe5c5/ujson-5.12.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315", size = 58689, upload-time = "2026-03-11T22:19:01.739Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ad/010925c2116c21ce119f9c2ff18d01f48a19ade3ff4c5795da03ce5829fc/ujson-5.12.0-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e", size = 60618, upload-time = "2026-03-11T22:19:03.101Z" }, + { url = "https://files.pythonhosted.org/packages/9b/74/db7f638bf20282b1dccf454386cbd483faaaed3cdbb9cb27e06f74bb109e/ujson-5.12.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0", size = 58151, upload-time = "2026-03-11T22:19:04.175Z" }, + { url = "https://files.pythonhosted.org/packages/9c/7e/3ebaecfa70a2e8ce623db8e21bd5cb05d42a5ef943bcbb3309d71b5de68d/ujson-5.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c", size = 1038117, upload-time = "2026-03-11T22:19:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/2e/aa/e073eda7f0036c2973b28db7bb99faba17a932e7b52d801f9bb3e726271f/ujson-5.12.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e", size = 1197434, upload-time = "2026-03-11T22:19:06.92Z" }, + { url = "https://files.pythonhosted.org/packages/1c/01/b9a13f058fdd50c746b192c4447ca8d6352e696dcda912ccee10f032ff85/ujson-5.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e", size = 1090401, upload-time = "2026-03-11T22:19:08.383Z" }, + { url = "https://files.pythonhosted.org/packages/95/3c/5ee154d505d1aad2debc4ba38b1a60ae1949b26cdb5fa070e85e320d6b64/ujson-5.12.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:bf85a00ac3b56a1e7a19c5be7b02b5180a0895ac4d3c234d717a55e86960691c", size = 54494, upload-time = "2026-03-11T22:19:13.035Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b3/9496ec399ec921e434a93b340bd5052999030b7ac364be4cbe5365ac6b20/ujson-5.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:64df53eef4ac857eb5816a56e2885ccf0d7dff6333c94065c93b39c51063e01d", size = 57999, upload-time = "2026-03-11T22:19:14.385Z" }, + { url = "https://files.pythonhosted.org/packages/0e/da/e9ae98133336e7c0d50b43626c3f2327937cecfa354d844e02ac17379ed1/ujson-5.12.0-graalpy312-graalpy250_312_native-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c0aed6a4439994c9666fb8a5b6c4eac94d4ef6ddc95f9b806a599ef83547e3b", size = 54518, upload-time = "2026-03-11T22:19:15.4Z" }, + { url = "https://files.pythonhosted.org/packages/58/10/978d89dded6bb1558cd46ba78f4351198bd2346db8a8ee1a94119022ce40/ujson-5.12.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efae5df7a8cc8bdb1037b0f786b044ce281081441df5418c3a0f0e1f86fe7bb3", size = 55736, upload-time = "2026-03-11T22:19:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/19/fa/f4a957dddb99bd68c8be91928c0b6fefa7aa8aafc92c93f5d1e8b32f6702/ujson-5.12.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:871c0e5102e47995b0e37e8df7819a894a6c3da0d097545cd1f9f1f7d7079927", size = 52145, upload-time = "2026-03-11T22:19:18.566Z" }, + { url = "https://files.pythonhosted.org/packages/55/6e/50b5cf612de1ca06c7effdc5a5d7e815774dee85a5858f1882c425553b82/ujson-5.12.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:56ba3f7abbd6b0bb282a544dc38406d1a188d8bb9164f49fdb9c2fee62cb29da", size = 49577, upload-time = "2026-03-11T22:19:19.627Z" }, + { url = "https://files.pythonhosted.org/packages/6e/24/b6713fa9897774502cd4c2d6955bb4933349f7d84c3aa805531c382a4209/ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c5a52987a990eb1bae55f9000994f1afdb0326c154fb089992f839ab3c30688", size = 50807, upload-time = "2026-03-11T22:19:20.778Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b6/c0e0f7901180ef80d16f3a4bccb5dc8b01515a717336a62928963a07b80b/ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:adf28d13a33f9d750fe7a78fb481cac298fa257d8863d8727b2ea4455ea41235", size = 56972, upload-time = "2026-03-11T22:19:21.84Z" }, + { url = "https://files.pythonhosted.org/packages/02/a9/05d91b4295ea7239151eb08cf240e5a2ba969012fda50bc27bcb1ea9cd71/ujson-5.12.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51acc750ec7a2df786cdc868fb16fa04abd6269a01d58cf59bafc57978773d8e", size = 52045, upload-time = "2026-03-11T22:19:22.879Z" }, ] [[package]] @@ -5363,18 +5553,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/eb/d5583a11486211f3ebd4b385545ae787f32363d453c19fffd81106c9c138/whitenoise-6.12.0-py3-none-any.whl", hash = "sha256:fc5e8c572e33ebf24795b47b6a7da8da3c00cff2349f5b04c02f28d0cc5a3cc2", size = 20302, upload-time = "2026-02-27T00:05:40.086Z" }, ] -[[package]] -name = "whoosh-reloaded" -version = "2.7.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cached-property", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/17/51/3fb4b9fdeaaf96512514ccf2871186333ce41a0de2ea48236a4056a5f6af/Whoosh-Reloaded-2.7.5.tar.gz", hash = "sha256:39ed7dfbd1fec97af33933107bdf78110728375ed0f2abb25dec6dbfdcb279d8", size = 1061606, upload-time = "2024-02-02T20:06:42.285Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/90/866dfe421f188217ecd7339585e961034a7f4fdc96b62cec3b40a50dbdef/Whoosh_Reloaded-2.7.5-py2.py3-none-any.whl", hash = "sha256:2ab6aeeafb359fbff4beb3c704b960fd88240354f3363f1c5bdb5c2325cae80e", size = 551793, upload-time = "2024-02-02T20:06:39.868Z" }, -] - [[package]] name = "wrapt" version = "2.0.1" @@ -5532,7 +5710,7 @@ wheels = [ [[package]] name = "zensical" -version = "0.0.24" +version = "0.0.29" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -5542,18 +5720,18 @@ dependencies = [ { name = "pymdown-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "pyyaml", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/96/9c6cbdd7b351d1023cdbbcf7872d4cb118b0334cfe5821b99e0dd18e3f00/zensical-0.0.24.tar.gz", hash = "sha256:b5d99e225329bf4f98c8022bdf0a0ee9588c2fada7b4df1b7b896fcc62b37ec3", size = 3840688, upload-time = "2026-02-26T09:43:44.557Z" } +sdist = { url = "https://files.pythonhosted.org/packages/78/bd/5786ab618a60bd7469ab243a7fd2c9eecb0790c85c784abb8b97edb77a54/zensical-0.0.29.tar.gz", hash = "sha256:0d6282be7cb551e12d5806badf5e94c54a5e2f2cf07057a3e36d1eaf97c33ada", size = 3842641, upload-time = "2026-03-24T13:37:27.587Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/aa/b8201af30e376a67566f044a1c56210edac5ae923fd986a836d2cf593c9c/zensical-0.0.24-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d390c5453a5541ca35d4f9e1796df942b6612c546e3153dd928236d3b758409a", size = 12263407, upload-time = "2026-02-26T09:43:14.716Z" }, - { url = "https://files.pythonhosted.org/packages/78/8e/3d910214471ade604fd39b080db3696864acc23678b5b4b8475c7dbfd2ce/zensical-0.0.24-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:81ac072869cf4d280853765b2bfb688653da0dfb9408f3ab15aca96455ab8223", size = 12142610, upload-time = "2026-02-26T09:43:17.546Z" }, - { url = "https://files.pythonhosted.org/packages/cf/d7/eb0983640aa0419ddf670298cfbcf8b75629b6484925429b857851e00784/zensical-0.0.24-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5eb1dfa84cae8e960bfa2c6851d2bc8e9710c4c4c683bd3aaf23185f646ae46", size = 12508380, upload-time = "2026-02-26T09:43:20.114Z" }, - { url = "https://files.pythonhosted.org/packages/a3/04/4405b9e6f937a75db19f0d875798a7eb70817d6a3bec2a2d289a2d5e8aea/zensical-0.0.24-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:57d7c9e589da99c1879a1c703e67c85eaa6be4661cdc6ce6534f7bb3575983f4", size = 12440807, upload-time = "2026-02-26T09:43:22.679Z" }, - { url = "https://files.pythonhosted.org/packages/12/dc/a7ca2a4224b3072a2c2998b6611ad7fd4f8f131ceae7aa23238d97d26e22/zensical-0.0.24-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42fcc121c3095734b078a95a0dae4d4924fb8fbf16bf730456146ad6cab48ad0", size = 12782727, upload-time = "2026-02-26T09:43:25.347Z" }, - { url = "https://files.pythonhosted.org/packages/42/37/22f1727da356ed3fcbd31f68d4a477f15c232997c87e270cfffb927459ac/zensical-0.0.24-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:832d4a2a051b9f49561031a2986ace502326f82d9a401ddf125530d30025fdd4", size = 12547616, upload-time = "2026-02-26T09:43:28.031Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ff/c75ff111b8e12157901d00752beef9d691dbb5a034b6a77359972262416a/zensical-0.0.24-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e5fea3bb61238dba9f930f52669db67b0c26be98e1c8386a05eb2b1e3cb875dc", size = 12684883, upload-time = "2026-02-26T09:43:30.642Z" }, - { url = "https://files.pythonhosted.org/packages/b9/92/4f6ea066382e3d068d3cadbed99e9a71af25e46c84a403e0f747960472a2/zensical-0.0.24-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:75eef0428eec2958590633fdc82dc2a58af124879e29573aa7e153b662978073", size = 12713825, upload-time = "2026-02-26T09:43:33.273Z" }, - { url = "https://files.pythonhosted.org/packages/bc/fb/bf735b19bce0034b1f3b8e1c50b2896ebbd0c5d92d462777e759e78bb083/zensical-0.0.24-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:3c6b39659156394ff805b4831dac108c839483d9efa4c9b901eaa913efee1ac7", size = 12854318, upload-time = "2026-02-26T09:43:35.632Z" }, - { url = "https://files.pythonhosted.org/packages/7e/28/0ddab6c1237e3625e7763ff666806f31e5760bb36d18624135a6bb6e8643/zensical-0.0.24-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9eef82865a18b3ca4c3cd13e245dff09a865d1da3c861e2fc86eaa9253a90f02", size = 12818270, upload-time = "2026-02-26T09:43:37.749Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9c/8b681daa024abca9763017bec09ecee8008e110cae1254217c8dd22cc339/zensical-0.0.29-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:20ae0709ea14fce25ab33d0a82acdaf454a7a2e232a9ee20c019942205174476", size = 12311399, upload-time = "2026-03-24T13:36:53.809Z" }, + { url = "https://files.pythonhosted.org/packages/81/ae/4ebb4d8bb2ef0164d473698b92f11caf431fc436e1625524acd5641102ca/zensical-0.0.29-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:599af3ba66fcd0146d7019f3493ed3c316051fae6c4d5599bc59f3a8f4b8a6f0", size = 12191845, upload-time = "2026-03-24T13:36:56.909Z" }, + { url = "https://files.pythonhosted.org/packages/d5/35/67f89db06571a52283b3ecbe3bcf32fd3115ca50436b3ae177a948b83ea7/zensical-0.0.29-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eea7e48a00a71c0586e875079b5f83a070c33a147e52ad4383e4b63ab524332b", size = 12554105, upload-time = "2026-03-24T13:36:59.945Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f6/ac79e5d9c18b28557c9ff1c7c23d695fbdd82645d69bfe02292f46d935e7/zensical-0.0.29-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59a57db35542e98d2896b833de07d199320f8ada3b4e7ddccb7fe892292d8b74", size = 12498643, upload-time = "2026-03-24T13:37:02.376Z" }, + { url = "https://files.pythonhosted.org/packages/b1/70/5c22a96a69e0e91e569c26236918bb9bab1170f59b29ad04105ead64f199/zensical-0.0.29-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d42c2b2a96a80cf64c98ba7242f59ef95109914bd4c9499d7ebc12544663852c", size = 12854531, upload-time = "2026-03-24T13:37:04.962Z" }, + { url = "https://files.pythonhosted.org/packages/79/25/e32237a8fcb0ceae1ef8e192e7f8db53b38f1e48f1c7cdbacd0a7b713892/zensical-0.0.29-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b2fca39c5f6b1782c77cf6591cf346357cabee85ebdb956c5ddc0fd5169f3d9", size = 12596828, upload-time = "2026-03-24T13:37:07.817Z" }, + { url = "https://files.pythonhosted.org/packages/ff/74/89ac909cbb258903ea53802c184e4986c17ce0ba79b1c7f77b7e78a2dce3/zensical-0.0.29-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dfc23a74ef672aa51088c080286319da1dc0b989cd5051e9e5e6d7d4abbc2fc1", size = 12732059, upload-time = "2026-03-24T13:37:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/8c/31/2429de6a9328eed4acc7e9a3789f160294a15115be15f9870a0d02649302/zensical-0.0.29-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:c9336d4e4b232e3c9a70e30258e916dd7e60c0a2a08c8690065e60350c302028", size = 12768542, upload-time = "2026-03-24T13:37:14.39Z" }, + { url = "https://files.pythonhosted.org/packages/10/8a/55588b2a1dcbe86dad0404506c9ba367a06c663b1ff47147c84d26f7510e/zensical-0.0.29-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:30661148f0681199f3b598cbeb1d54f5cba773e54ae840bac639250d85907b84", size = 12917991, upload-time = "2026-03-24T13:37:16.795Z" }, + { url = "https://files.pythonhosted.org/packages/ec/5d/653901f0d3a3ca72daebc62746a148797f4e422cc3a2b66a4e6718e4398f/zensical-0.0.29-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6a566ac1fd4bfac5d711a7bd1ae06666712127c2718daa5083c7bf3f107e8578", size = 12868392, upload-time = "2026-03-24T13:37:19.42Z" }, ] [[package]]