girder 3.2.18.dev2__tar.gz → 3.2.18.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (803) hide show
  1. {girder-3.2.18.dev2/girder.egg-info → girder-3.2.18.dev4}/PKG-INFO +1 -1
  2. girder-3.2.18.dev4/girder/utility/_hash_state.py +261 -0
  3. {girder-3.2.18.dev2 → girder-3.2.18.dev4/girder.egg-info}/PKG-INFO +1 -1
  4. girder-3.2.18.dev4/girder.egg-info/scm_version.json +8 -0
  5. girder-3.2.18.dev2/girder/utility/_hash_state.py +0 -151
  6. girder-3.2.18.dev2/girder.egg-info/scm_version.json +0 -8
  7. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/Dockerfile +0 -0
  8. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/config.yml +0 -0
  9. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/create_ansible_subtree.sh +0 -0
  10. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/generatePyEnvChecksum.sh +0 -0
  11. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/publish_npm.sh +0 -0
  12. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.circleci/publish_pypi.sh +0 -0
  13. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.codecov.yml +0 -0
  14. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.dockerignore +0 -0
  15. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.editorconfig +0 -0
  16. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.github/workflows/codespell.yml +0 -0
  17. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.gitignore +0 -0
  18. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/.readthedocs.yml +0 -0
  19. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/CHANGELOG.rst +0 -0
  20. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/CMakeLists.txt +0 -0
  21. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/CONTRIBUTING.rst +0 -0
  22. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/Dockerfile +0 -0
  23. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/LICENSE +0 -0
  24. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/MANIFEST.in +0 -0
  25. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/README.rst +0 -0
  26. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/Vagrantfile +0 -0
  27. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/clients/python/README.rst +0 -0
  28. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/clients/python/girder_client/__init__.py +0 -0
  29. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/clients/python/girder_client/cli.py +0 -0
  30. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/clients/python/pyproject.toml +0 -0
  31. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/clients/python/setup.py +0 -0
  32. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/.yamllint +0 -0
  33. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/LICENSE +0 -0
  34. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/README.md +0 -0
  35. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/defaults/main.yml +0 -0
  36. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/handlers/main.yml +0 -0
  37. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/library/.gitignore +0 -0
  38. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/library/README.md +0 -0
  39. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/library/girder.py +0 -0
  40. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/meta/main.yml +0 -0
  41. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/converge.yml +0 -0
  42. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt +0 -0
  43. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt +0 -0
  44. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt +0 -0
  45. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml +0 -0
  46. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/prepare.yml +0 -0
  47. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/requirements.yml +0 -0
  48. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_access.yml +0 -0
  49. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_apikey.yml +0 -0
  50. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_assetstore.yml +0 -0
  51. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_files.yml +0 -0
  52. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_hierarchy.yml +0 -0
  53. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_resources.yml +0 -0
  54. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_setting.yml +0 -0
  55. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/ansible-module/test_user.yml +0 -0
  56. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/default/converge.yml +0 -0
  57. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/default/molecule.yml +0 -0
  58. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/default/prepare.yml +0 -0
  59. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/default/pytest.ini +0 -0
  60. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/molecule/default/tests/test_default.py +0 -0
  61. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/tasks/main.yml +0 -0
  62. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/tasks/nodejs.yml +0 -0
  63. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/ansible-role-girder/templates/daemon/girder.service.j2 +0 -0
  64. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/deployment-template/hosts.yml +0 -0
  65. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/deployment-template/playbook.yml +0 -0
  66. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/deployment-template/provision.sh +0 -0
  67. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/deployment-template/requirements.yml +0 -0
  68. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/vagrant/.gitignore +0 -0
  69. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/vagrant/ansible.cfg +0 -0
  70. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/vagrant/vagrant-playbook.yml +0 -0
  71. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/devops/vagrant/vagrant-requirements.yml +0 -0
  72. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docker-compose.yml +0 -0
  73. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/admin-docs.rst +0 -0
  74. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/api-docs.rst +0 -0
  75. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/build-docs.rst +0 -0
  76. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/changelog.rst +0 -0
  77. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/conf.py +0 -0
  78. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/configuration.rst +0 -0
  79. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/dependencies.rst +0 -0
  80. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/deployment-alternatives.rst +0 -0
  81. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/deployment.rst +0 -0
  82. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/dev-installation.rst +0 -0
  83. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/developer-cookbook.rst +0 -0
  84. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/developer-docs.rst +0 -0
  85. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/development.rst +0 -0
  86. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/external-web-clients.rst +0 -0
  87. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/favicon.ico +0 -0
  88. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/images/dicom-viewer.png +0 -0
  89. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/index.rst +0 -0
  90. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/license.png +0 -0
  91. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/migration-guide.rst +0 -0
  92. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/mount.rst +0 -0
  93. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/plugin-development.rst +0 -0
  94. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/plugins.rst +0 -0
  95. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/python-client.rst +0 -0
  96. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/requirements-docs.txt +0 -0
  97. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/security.rst +0 -0
  98. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/sftp.rst +0 -0
  99. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/user-docs.rst +0 -0
  100. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/docs/user-guide.rst +0 -0
  101. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/__init__.py +0 -0
  102. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/__init__.py +0 -0
  103. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/access.py +0 -0
  104. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/api_docs.mako +0 -0
  105. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/api_main.py +0 -0
  106. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/describe.py +0 -0
  107. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/docs.py +0 -0
  108. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/filter_logging.py +0 -0
  109. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/rest.py +0 -0
  110. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/sftp.py +0 -0
  111. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/__init__.py +0 -0
  112. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/api_key.py +0 -0
  113. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/assetstore.py +0 -0
  114. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/collection.py +0 -0
  115. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/file.py +0 -0
  116. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/folder.py +0 -0
  117. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/group.py +0 -0
  118. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/item.py +0 -0
  119. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/notification.py +0 -0
  120. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/resource.py +0 -0
  121. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/system.py +0 -0
  122. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/token.py +0 -0
  123. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/api/v1/user.py +0 -0
  124. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/__init__.py +0 -0
  125. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/build.py +0 -0
  126. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/mount.py +0 -0
  127. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/serve.py +0 -0
  128. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/sftpd.py +0 -0
  129. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/cli/shell.py +0 -0
  130. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/conf/girder.dist.cfg +0 -0
  131. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/constants.py +0 -0
  132. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/events.py +0 -0
  133. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/exceptions.py +0 -0
  134. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/_footer.mako +0 -0
  135. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/_header.mako +0 -0
  136. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/accountApproval.mako +0 -0
  137. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/accountApproved.mako +0 -0
  138. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/emailVerification.mako +0 -0
  139. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/groupInvite.mako +0 -0
  140. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/mail_templates/temporaryAccess.mako +0 -0
  141. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/__init__.py +0 -0
  142. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/api_key.py +0 -0
  143. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/assetstore.py +0 -0
  144. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/collection.py +0 -0
  145. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/file.py +0 -0
  146. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/folder.py +0 -0
  147. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/group.py +0 -0
  148. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/item.py +0 -0
  149. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/model_base.py +0 -0
  150. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/notification.py +0 -0
  151. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/setting.py +0 -0
  152. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/token.py +0 -0
  153. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/upload.py +0 -0
  154. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/models/user.py +0 -0
  155. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/plugin.py +0 -0
  156. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/settings.py +0 -0
  157. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/__init__.py +0 -0
  158. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/_cache.py +0 -0
  159. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/abstract_assetstore_adapter.py +0 -0
  160. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/acl_mixin.py +0 -0
  161. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/assetstore_utilities.py +0 -0
  162. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/config.py +0 -0
  163. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/error.mako +0 -0
  164. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/filesystem_assetstore_adapter.py +0 -0
  165. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/gridfs_assetstore_adapter.py +0 -0
  166. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/mail_utils.py +0 -0
  167. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/model_importer.py +0 -0
  168. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/path.py +0 -0
  169. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/progress.py +0 -0
  170. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/s3_assetstore_adapter.py +0 -0
  171. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/search.py +0 -0
  172. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/server.py +0 -0
  173. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/setting_utilities.py +0 -0
  174. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/system.py +0 -0
  175. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/webroot.mako +0 -0
  176. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/webroot.py +0 -0
  177. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/utility/ziputil.py +0 -0
  178. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/.gitignore +0 -0
  179. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/Gruntfile.js +0 -0
  180. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/.gitignore +0 -0
  181. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/.npmignore +0 -0
  182. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/README.md +0 -0
  183. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/index.js +0 -0
  184. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/package-lock.json +0 -0
  185. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/eslint-config/package.json +0 -0
  186. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/.gitignore +0 -0
  187. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/.npmignore +0 -0
  188. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/Gruntfile.js +0 -0
  189. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/README.md +0 -0
  190. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/fontello.config.json +0 -0
  191. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/package-lock.json +0 -0
  192. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/fontello/package.json +0 -0
  193. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/build.js +0 -0
  194. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/swagger.js +0 -0
  195. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/test.js +0 -0
  196. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/webpack.config.js +0 -0
  197. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/webpack.paths.js +0 -0
  198. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/grunt_tasks/webpack.plugins.js +0 -0
  199. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/package.json.template +0 -0
  200. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/.gitignore +0 -0
  201. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/.npmignore +0 -0
  202. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/README.md +0 -0
  203. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/index.js +0 -0
  204. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/package-lock.json +0 -0
  205. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/pug-lint-config/package.json +0 -0
  206. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/assets/Girder_Mark.png +0 -0
  207. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/auth.js +0 -0
  208. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/ApiKeyCollection.js +0 -0
  209. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/AssetstoreCollection.js +0 -0
  210. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/Collection.js +0 -0
  211. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/CollectionCollection.js +0 -0
  212. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/FileCollection.js +0 -0
  213. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/FolderCollection.js +0 -0
  214. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/GroupCollection.js +0 -0
  215. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/ItemCollection.js +0 -0
  216. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/UserCollection.js +0 -0
  217. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/collections/index.js +0 -0
  218. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/constants.js +0 -0
  219. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/dialog.js +0 -0
  220. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/events.js +0 -0
  221. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/index.js +0 -0
  222. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/main.js +0 -0
  223. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/misc.js +0 -0
  224. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/AccessControlledModel.js +0 -0
  225. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/ApiKeyModel.js +0 -0
  226. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/AssetstoreModel.js +0 -0
  227. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/CollectionCreationPolicyModel.js +0 -0
  228. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/CollectionModel.js +0 -0
  229. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/FileModel.js +0 -0
  230. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/FolderModel.js +0 -0
  231. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/GroupModel.js +0 -0
  232. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/ItemModel.js +0 -0
  233. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/MetadataMixin.js +0 -0
  234. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/Model.js +0 -0
  235. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/UserModel.js +0 -0
  236. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/models/index.js +0 -0
  237. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/package.json +0 -0
  238. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/pluginUtils.js +0 -0
  239. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/rest.js +0 -0
  240. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/router.js +0 -0
  241. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/routes.js +0 -0
  242. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/apidocs/apidocs.styl +0 -0
  243. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/adminConsole.styl +0 -0
  244. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/assetstores.styl +0 -0
  245. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/collectionList.styl +0 -0
  246. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/collectionPage.styl +0 -0
  247. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/frontPage.styl +0 -0
  248. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/groupList.styl +0 -0
  249. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/groupPage.styl +0 -0
  250. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/itemPage.styl +0 -0
  251. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/plugins.styl +0 -0
  252. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/searchResultsList.styl +0 -0
  253. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/systemConfig.styl +0 -0
  254. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/userAccount.styl +0 -0
  255. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/userList.styl +0 -0
  256. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/body/userPage.styl +0 -0
  257. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/footer.styl +0 -0
  258. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/global.styl +0 -0
  259. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/globalNav.styl +0 -0
  260. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/header.styl +0 -0
  261. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/headerUser.styl +0 -0
  262. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/layout.styl +0 -0
  263. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/layoutVars.styl +0 -0
  264. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/loading.styl +0 -0
  265. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/layout/progressArea.styl +0 -0
  266. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/accessWidget.styl +0 -0
  267. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/browserWidget.styl +0 -0
  268. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/hierarchyWidget.styl +0 -0
  269. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/markdownWidget.styl +0 -0
  270. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/metadataWidget.styl +0 -0
  271. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/searchFieldWidget.styl +0 -0
  272. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/taskProgress.styl +0 -0
  273. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/timelineWidget.styl +0 -0
  274. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/uploadWidget.styl +0 -0
  275. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/stylesheets/widgets/userOtpManagementWidget.styl +0 -0
  276. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/adminConsole.pug +0 -0
  277. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/assetstores.pug +0 -0
  278. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/collectionList.pug +0 -0
  279. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/collectionPage.pug +0 -0
  280. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/filesystemImport.pug +0 -0
  281. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/frontPage.pug +0 -0
  282. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/groupList.pug +0 -0
  283. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/groupPage.pug +0 -0
  284. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/itemPage.pug +0 -0
  285. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/plugins.pug +0 -0
  286. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/s3Import.pug +0 -0
  287. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/searchResults.pug +0 -0
  288. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/searchResultsType.pug +0 -0
  289. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/systemConfiguration.pug +0 -0
  290. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/userAccount.pug +0 -0
  291. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/userList.pug +0 -0
  292. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/body/userPage.pug +0 -0
  293. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/alert.pug +0 -0
  294. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layout.pug +0 -0
  295. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layoutFooter.pug +0 -0
  296. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layoutGlobalNav.pug +0 -0
  297. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layoutHeader.pug +0 -0
  298. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layoutHeaderUser.pug +0 -0
  299. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/layoutProgressArea.pug +0 -0
  300. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/loginDialog.pug +0 -0
  301. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/registerDialog.pug +0 -0
  302. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/layout/resetPasswordDialog.pug +0 -0
  303. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/accessEditor.pug +0 -0
  304. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/accessEditorMixins.pug +0 -0
  305. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/accessEditorNonModal.pug +0 -0
  306. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/accessEntry.pug +0 -0
  307. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/apiKeyList.pug +0 -0
  308. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/browserWidget.pug +0 -0
  309. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/checkedActionsMenu.pug +0 -0
  310. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/collectionInfoDialog.pug +0 -0
  311. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/confirmDialog.pug +0 -0
  312. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/dateTimeRangeWidget.pug +0 -0
  313. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/dateTimeWidget.pug +0 -0
  314. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editApiKeyWidget.pug +0 -0
  315. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editAssetstoreWidget.pug +0 -0
  316. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editCollectionWidget.pug +0 -0
  317. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editFileWidget.pug +0 -0
  318. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editFolderWidget.pug +0 -0
  319. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editGroupWidget.pug +0 -0
  320. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/editItemWidget.pug +0 -0
  321. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/fileInfoDialog.pug +0 -0
  322. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/fileList.pug +0 -0
  323. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/folderInfoDialog.pug +0 -0
  324. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/folderList.pug +0 -0
  325. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/groupAdminList.pug +0 -0
  326. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/groupInviteDialog.pug +0 -0
  327. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/groupInviteList.pug +0 -0
  328. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/groupMemberList.pug +0 -0
  329. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/groupModList.pug +0 -0
  330. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/hierarchyBreadcrumb.pug +0 -0
  331. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/hierarchyPaginated.pug +0 -0
  332. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/hierarchyWidget.pug +0 -0
  333. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/itemBreadcrumb.pug +0 -0
  334. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/itemList.pug +0 -0
  335. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/jsonMetadatumEditWidget.pug +0 -0
  336. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/jsonMetadatumView.pug +0 -0
  337. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/loadingAnimation.pug +0 -0
  338. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/markdownWidget.pug +0 -0
  339. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/metadataWidget.pug +0 -0
  340. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/metadatumEditWidget.pug +0 -0
  341. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/metadatumView.pug +0 -0
  342. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/newAssetstore.pug +0 -0
  343. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/paginateWidget.pug +0 -0
  344. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/pluginConfigBreadcrumb.pug +0 -0
  345. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/rootSelectorWidget.pug +0 -0
  346. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/searchField.pug +0 -0
  347. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/searchHelp.pug +0 -0
  348. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/searchModeSelect.pug +0 -0
  349. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/searchResults.pug +0 -0
  350. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/sortCollectionWidget.pug +0 -0
  351. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/taskProgress.pug +0 -0
  352. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/timeline.pug +0 -0
  353. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/uploadWidget.pug +0 -0
  354. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/uploadWidgetMixins.pug +0 -0
  355. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/uploadWidgetNonModal.pug +0 -0
  356. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/userOtpBegin.pug +0 -0
  357. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/userOtpDisable.pug +0 -0
  358. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/templates/widgets/userOtpEnable.pug +0 -0
  359. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/EventStream.js +0 -0
  360. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/PluginUtils.js +0 -0
  361. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/S3UploadHandler.js +0 -0
  362. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/ShowDownload.js +0 -0
  363. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/index.js +0 -0
  364. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/jquery/girderEnable.js +0 -0
  365. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/utilities/jquery/girderModal.js +0 -0
  366. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/version.js +0 -0
  367. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/App.js +0 -0
  368. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/View.js +0 -0
  369. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/AdminView.js +0 -0
  370. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/AssetstoresView.js +0 -0
  371. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/CollectionView.js +0 -0
  372. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/CollectionsView.js +0 -0
  373. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/FilesystemImportView.js +0 -0
  374. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/FolderView.js +0 -0
  375. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/FrontPageView.js +0 -0
  376. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/GroupView.js +0 -0
  377. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/GroupsView.js +0 -0
  378. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/ItemView.js +0 -0
  379. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/PluginsView.js +0 -0
  380. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/S3ImportView.js +0 -0
  381. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/SearchResultsView.js +0 -0
  382. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/SystemConfigurationView.js +0 -0
  383. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/UserAccountView.js +0 -0
  384. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/UserView.js +0 -0
  385. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/UsersView.js +0 -0
  386. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/body/index.js +0 -0
  387. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/index.js +0 -0
  388. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/FooterView.js +0 -0
  389. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/GlobalNavView.js +0 -0
  390. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/HeaderUserView.js +0 -0
  391. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/HeaderView.js +0 -0
  392. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/LoginView.js +0 -0
  393. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/ProgressListView.js +0 -0
  394. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/RegisterView.js +0 -0
  395. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/ResetPasswordView.js +0 -0
  396. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/layout/index.js +0 -0
  397. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/AccessWidget.js +0 -0
  398. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/ApiKeyListWidget.js +0 -0
  399. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/BrowserWidget.js +0 -0
  400. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/CheckedMenuWidget.js +0 -0
  401. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/CollectionInfoWidget.js +0 -0
  402. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/DateTimeRangeWidget.js +0 -0
  403. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/DateTimeWidget.js +0 -0
  404. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditApiKeyWidget.js +0 -0
  405. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js +0 -0
  406. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditCollectionWidget.js +0 -0
  407. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditFileWidget.js +0 -0
  408. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditFolderWidget.js +0 -0
  409. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditGroupWidget.js +0 -0
  410. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/EditItemWidget.js +0 -0
  411. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/FileInfoWidget.js +0 -0
  412. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/FileListWidget.js +0 -0
  413. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/FolderInfoWidget.js +0 -0
  414. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/FolderListWidget.js +0 -0
  415. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/GroupAdminsWidget.js +0 -0
  416. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/GroupInvitesWidget.js +0 -0
  417. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/GroupMembersWidget.js +0 -0
  418. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/GroupModsWidget.js +0 -0
  419. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/HierarchyWidget.js +0 -0
  420. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/ItemBreadcrumbWidget.js +0 -0
  421. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/ItemListWidget.js +0 -0
  422. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/LoadingAnimation.js +0 -0
  423. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/MarkdownWidget.js +0 -0
  424. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/MetadataWidget.js +0 -0
  425. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js +0 -0
  426. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/PaginateWidget.js +0 -0
  427. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/PluginConfigBreadcrumbWidget.js +0 -0
  428. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/RootSelectorWidget.js +0 -0
  429. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/SearchFieldWidget.js +0 -0
  430. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/SearchPaginateWidget.js +0 -0
  431. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/SortCollectionWidget.js +0 -0
  432. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/TaskProgressWidget.js +0 -0
  433. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/TimelineWidget.js +0 -0
  434. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/UploadWidget.js +0 -0
  435. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/UserOtpManagementWidget.js +0 -0
  436. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/src/views/widgets/index.js +0 -0
  437. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/static/.gitignore +0 -0
  438. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/static/built/.gitignore +0 -0
  439. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/static/girder-swagger.js +0 -0
  440. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/static/img/Girder_Favicon.png +0 -0
  441. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/fake.jpg +0 -0
  442. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/lib/jasmine-1.3.1/ConsoleReporter.js +0 -0
  443. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/lib/jasmine-1.3.1/MIT.LICENSE.txt +0 -0
  444. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.css +0 -0
  445. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.js +0 -0
  446. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/specRunner.js +0 -0
  447. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testEnv.pug +0 -0
  448. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testFile.csv +0 -0
  449. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testFile.tsv +0 -0
  450. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testFile.txt +0 -0
  451. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testFile2 +0 -0
  452. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder/web_client/test/testUtils.js +0 -0
  453. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/SOURCES.txt +0 -0
  454. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/dependency_links.txt +0 -0
  455. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/entry_points.txt +0 -0
  456. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/not-zip-safe +0 -0
  457. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/requires.txt +0 -0
  458. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/scm_file_list.json +0 -0
  459. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/girder.egg-info/top_level.txt +0 -0
  460. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/package-lock.json +0 -0
  461. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/package.json +0 -0
  462. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/.gitignore +0 -0
  463. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/audit_logs/girder_audit_logs/__init__.py +0 -0
  464. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/audit_logs/girder_audit_logs/cleanup.py +0 -0
  465. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/audit_logs/girder_audit_logs/report.py +0 -0
  466. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/audit_logs/pyproject.toml +0 -0
  467. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/audit_logs/setup.py +0 -0
  468. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/__init__.py +0 -0
  469. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/constants.py +0 -0
  470. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/mail_templates/authorized_upload.uploadFinished.mako +0 -0
  471. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/rest.py +0 -0
  472. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/main.js +0 -0
  473. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/package.json +0 -0
  474. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/routes.js +0 -0
  475. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizeUpload.styl +0 -0
  476. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizedUpload.styl +0 -0
  477. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizeUpload.pug +0 -0
  478. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizedUpload.pug +0 -0
  479. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/folderActions.pug +0 -0
  480. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizeUploadView.js +0 -0
  481. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizedUploadView.js +0 -0
  482. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/plugin_tests/__init__.py +0 -0
  483. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/plugin_tests/authorizedUploadSpec.js +0 -0
  484. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/plugin_tests/upload_test.py +0 -0
  485. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/pyproject.toml +0 -0
  486. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/authorized_upload/setup.py +0 -0
  487. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/__init__.py +0 -0
  488. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/settings.py +0 -0
  489. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/main.js +0 -0
  490. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/package.json +0 -0
  491. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/routes.js +0 -0
  492. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/stylesheets/configView.styl +0 -0
  493. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/templates/configView.pug +0 -0
  494. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/girder_autojoin/web_client/views/ConfigView.js +0 -0
  495. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/plugin_tests/__init__.py +0 -0
  496. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/plugin_tests/autojoinSpec.js +0 -0
  497. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/plugin_tests/autojoin_test.py +0 -0
  498. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/pyproject.toml +0 -0
  499. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/autojoin/setup.py +0 -0
  500. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/__init__.py +0 -0
  501. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/event_helper.py +0 -0
  502. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/main.js +0 -0
  503. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/package.json +0 -0
  504. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomItem.styl +0 -0
  505. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomSliceMetadata.styl +0 -0
  506. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomItem.pug +0 -0
  507. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomSliceMetadata.pug +0 -0
  508. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/parseDicomItem.pug +0 -0
  509. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/views/DicomView.js +0 -0
  510. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/girder_dicom_viewer/web_client/webpack.helper.js +0 -0
  511. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/__init__.py +0 -0
  512. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/data/000000.dcm.sha512 +0 -0
  513. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/data/000001.dcm.sha512 +0 -0
  514. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/data/000002.dcm.sha512 +0 -0
  515. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/data/000003.dcm.sha512 +0 -0
  516. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/plugin_tests/dicom_viewer_test.py +0 -0
  517. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/pyproject.toml +0 -0
  518. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/dicom_viewer/setup.py +0 -0
  519. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/girder_download_statistics/__init__.py +0 -0
  520. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/plugin_tests/__init__.py +0 -0
  521. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/plugin_tests/download_statistics_test.py +0 -0
  522. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/plugin_tests/files/txt1.txt +0 -0
  523. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/plugin_tests/files/txt2.txt +0 -0
  524. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/pyproject.toml +0 -0
  525. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/download_statistics/setup.py +0 -0
  526. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/__init__.py +0 -0
  527. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/rest.py +0 -0
  528. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/settings.py +0 -0
  529. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/main.js +0 -0
  530. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/package.json +0 -0
  531. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/routes.js +0 -0
  532. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/stylesheets/configView.styl +0 -0
  533. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/templates/configView.pug +0 -0
  534. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/girder_google_analytics/web_client/views/ConfigView.js +0 -0
  535. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/plugin_tests/__init__.py +0 -0
  536. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/plugin_tests/google_analytics_test.py +0 -0
  537. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/pyproject.toml +0 -0
  538. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/google_analytics/setup.py +0 -0
  539. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/__init__.py +0 -0
  540. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/settings.py +0 -0
  541. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/main.js +0 -0
  542. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/models/UserModel.js +0 -0
  543. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/package.json +0 -0
  544. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/routes.js +0 -0
  545. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/templates/configView.pug +0 -0
  546. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/girder_gravatar/web_client/views/ConfigView.js +0 -0
  547. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/plugin_tests/__init__.py +0 -0
  548. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/plugin_tests/gravatar_test.py +0 -0
  549. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/pyproject.toml +0 -0
  550. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/gravatar/setup.py +0 -0
  551. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/__init__.py +0 -0
  552. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/settings.py +0 -0
  553. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/main.js +0 -0
  554. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/package.json +0 -0
  555. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/stylesheets/hashsumDownloadFileInfoWidget.styl +0 -0
  556. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/config.pug +0 -0
  557. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/hashsumDownloadFileInfoWidget.pug +0 -0
  558. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/views/ConfigView.js +0 -0
  559. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/girder_hashsum_download/web_client/views/FileInfoWidget.js +0 -0
  560. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/plugin_tests/__init__.py +0 -0
  561. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/plugin_tests/hashsumSpec.js +0 -0
  562. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/plugin_tests/hashsum_download_test.py +0 -0
  563. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/pyproject.toml +0 -0
  564. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/hashsum_download/setup.py +0 -0
  565. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/__init__.py +0 -0
  566. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/constants.py +0 -0
  567. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/rest.py +0 -0
  568. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/settings.py +0 -0
  569. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/main.js +0 -0
  570. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/package.json +0 -0
  571. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/routes.js +0 -0
  572. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/stylesheets/configView.styl +0 -0
  573. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/templates/configView.pug +0 -0
  574. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/views/ConfigView.js +0 -0
  575. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/girder_homepage/web_client/views/FrontPageView.js +0 -0
  576. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/plugin_tests/__init__.py +0 -0
  577. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/plugin_tests/homepageSpec.js +0 -0
  578. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/plugin_tests/homepage_test.py +0 -0
  579. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/pyproject.toml +0 -0
  580. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/homepage/setup.py +0 -0
  581. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/__init__.py +0 -0
  582. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/rest.py +0 -0
  583. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/settings.py +0 -0
  584. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/main.js +0 -0
  585. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/package.json +0 -0
  586. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/routes.js +0 -0
  587. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/stylesheets/configView.styl +0 -0
  588. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/templates/configView.pug +0 -0
  589. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/templates/itemLicenseWidget.pug +0 -0
  590. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/templates/selectLicenseWidget.pug +0 -0
  591. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/ConfigView.js +0 -0
  592. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/EditItemWidget.js +0 -0
  593. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/HierarchyWidget.js +0 -0
  594. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemLicenseWidget.js +0 -0
  595. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemView.js +0 -0
  596. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/SelectLicenseWidget.js +0 -0
  597. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/girder_item_licenses/web_client/views/UploadWidget.js +0 -0
  598. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/plugin_tests/__init__.py +0 -0
  599. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/plugin_tests/itemLicensesSpec.js +0 -0
  600. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/plugin_tests/item_licenses_test.py +0 -0
  601. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/pyproject.toml +0 -0
  602. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/item_licenses/setup.py +0 -0
  603. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/__init__.py +0 -0
  604. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/constants.py +0 -0
  605. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/job_rest.py +0 -0
  606. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/models/__init__.py +0 -0
  607. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/models/job.py +0 -0
  608. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/JobStatus.js +0 -0
  609. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/collections/JobCollection.js +0 -0
  610. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/collections/index.js +0 -0
  611. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/index.js +0 -0
  612. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/main.js +0 -0
  613. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/models/JobModel.js +0 -0
  614. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/models/index.js +0 -0
  615. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/package.json +0 -0
  616. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/routes.js +0 -0
  617. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/stylesheets/jobDetailsWidget.styl +0 -0
  618. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/stylesheets/jobListWidget.styl +0 -0
  619. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/adminViewMenuItem.pug +0 -0
  620. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/headerUserViewMenu.pug +0 -0
  621. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxContent.pug +0 -0
  622. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxMenu.pug +0 -0
  623. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobDetailsWidget.pug +0 -0
  624. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobList.pug +0 -0
  625. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobListWidget.pug +0 -0
  626. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/templates/jobsGraphWidget.pug +0 -0
  627. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/AdminView.js +0 -0
  628. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/CheckBoxMenu.js +0 -0
  629. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/HeaderUserView.js +0 -0
  630. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/JobDetailsWidget.js +0 -0
  631. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/JobGraphWidget.js +0 -0
  632. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/JobListWidget.js +0 -0
  633. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/index.js +0 -0
  634. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/timeChartConfig.js +0 -0
  635. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/girder_jobs/web_client/views/timingHistoryChartConfig.js +0 -0
  636. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/plugin_tests/__init__.py +0 -0
  637. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/plugin_tests/jobsSpec.js +0 -0
  638. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/plugin_tests/jobs_test.py +0 -0
  639. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/plugin_tests/local_job_impl.py +0 -0
  640. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/pyproject.toml +0 -0
  641. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/jobs/setup.py +0 -0
  642. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/__init__.py +0 -0
  643. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/settings.py +0 -0
  644. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/main.js +0 -0
  645. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/package.json +0 -0
  646. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/routes.js +0 -0
  647. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/stylesheets/configView.styl +0 -0
  648. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/templates/configView.pug +0 -0
  649. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/templates/editServerMixin.pug +0 -0
  650. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/templates/newServerTemplate.pug +0 -0
  651. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/girder_ldap/web_client/views/ConfigView.js +0 -0
  652. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/plugin_tests/__init__.py +0 -0
  653. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/plugin_tests/ldap_test.py +0 -0
  654. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/pyproject.toml +0 -0
  655. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/ldap/setup.py +0 -0
  656. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/__init__.py +0 -0
  657. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/__init__.py +0 -0
  658. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/base.py +0 -0
  659. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/bitbucket.py +0 -0
  660. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/box.py +0 -0
  661. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/cilogon.py +0 -0
  662. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/github.py +0 -0
  663. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/globus.py +0 -0
  664. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/google.py +0 -0
  665. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/linkedin.py +0 -0
  666. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/providers/microsoft.py +0 -0
  667. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/rest.py +0 -0
  668. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/settings.py +0 -0
  669. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/main.js +0 -0
  670. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/package.json +0 -0
  671. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/routes.js +0 -0
  672. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/stylesheets/configView.styl +0 -0
  673. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/stylesheets/oauthLoginView.styl +0 -0
  674. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/templates/configView.pug +0 -0
  675. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/templates/oauthLoginView.pug +0 -0
  676. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/views/ConfigView.js +0 -0
  677. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/views/LoginView.js +0 -0
  678. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/views/OAuthLoginView.js +0 -0
  679. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/girder_oauth/web_client/views/RegisterView.js +0 -0
  680. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/plugin_tests/__init__.py +0 -0
  681. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/plugin_tests/oauth_test.py +0 -0
  682. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/pyproject.toml +0 -0
  683. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/oauth/setup.py +0 -0
  684. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/__init__.py +0 -0
  685. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/rest.py +0 -0
  686. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/web_client/main.js +0 -0
  687. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/web_client/package.json +0 -0
  688. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/web_client/stylesheets/readmeWidget.styl +0 -0
  689. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/web_client/templates/readmeWidget.pug +0 -0
  690. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/girder_readme/web_client/views/HierarchyWidget.js +0 -0
  691. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/plugin_tests/data/README.md +0 -0
  692. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/plugin_tests/readmeSpec.js +0 -0
  693. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/pyproject.toml +0 -0
  694. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/readme/setup.py +0 -0
  695. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/__init__.py +0 -0
  696. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/rest.py +0 -0
  697. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/settings.py +0 -0
  698. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/main.js +0 -0
  699. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/package.json +0 -0
  700. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/routes.js +0 -0
  701. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/stylesheets/configView.styl +0 -0
  702. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/templates/configView.pug +0 -0
  703. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/girder_sentry/web_client/views/ConfigView.js +0 -0
  704. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/pyproject.toml +0 -0
  705. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/sentry/setup.py +0 -0
  706. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/__init__.py +0 -0
  707. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/main.js +0 -0
  708. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/models/CollectionModel.js +0 -0
  709. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/package.json +0 -0
  710. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/routes.js +0 -0
  711. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/stylesheets/collectionInfoWidget.styl +0 -0
  712. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/stylesheets/editCollectionTermsWidget.styl +0 -0
  713. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/stylesheets/termsAcceptance.styl +0 -0
  714. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/templates/collectionInfoWidget.pug +0 -0
  715. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/templates/editCollectionTermsWidget.pug +0 -0
  716. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/templates/termsAcceptance.pug +0 -0
  717. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/views/CollectionInfoWidget.js +0 -0
  718. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/views/EditCollectionWidget.js +0 -0
  719. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/girder_terms/web_client/views/TermsAcceptanceView.js +0 -0
  720. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/plugin_tests/__init__.py +0 -0
  721. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/plugin_tests/termsSpec.js +0 -0
  722. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/plugin_tests/terms_test.py +0 -0
  723. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/pyproject.toml +0 -0
  724. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/terms/setup.py +0 -0
  725. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/__init__.py +0 -0
  726. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/rest.py +0 -0
  727. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/utils.py +0 -0
  728. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/main.js +0 -0
  729. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/models/ThumbnailModel.js +0 -0
  730. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/package.json +0 -0
  731. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/createThumbnailView.styl +0 -0
  732. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/flowView.styl +0 -0
  733. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewDialog.pug +0 -0
  734. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewTargetDescription.pug +0 -0
  735. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/templates/fileListWidgetCreateButton.pug +0 -0
  736. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/templates/flowView.pug +0 -0
  737. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/templates/itemView.pug +0 -0
  738. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/views/CreateThumbnailView.js +0 -0
  739. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/views/FileListWidget.js +0 -0
  740. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/views/FlowView.js +0 -0
  741. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/web_client/views/ItemView.js +0 -0
  742. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/girder_thumbnails/worker.py +0 -0
  743. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/plugin_tests/__init__.py +0 -0
  744. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/plugin_tests/data/sample_dicom.dcm +0 -0
  745. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/plugin_tests/thumbnail_test.py +0 -0
  746. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/plugin_tests/thumbnailsSpec.js +0 -0
  747. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/pyproject.toml +0 -0
  748. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/thumbnails/setup.py +0 -0
  749. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/__init__.py +0 -0
  750. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/quota.py +0 -0
  751. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/settings.py +0 -0
  752. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/main.js +0 -0
  753. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/models/CollectionModel.js +0 -0
  754. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/models/UserModel.js +0 -0
  755. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/models/extendModel.js +0 -0
  756. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/package.json +0 -0
  757. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/routes.js +0 -0
  758. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/stylesheets/userQuota.styl +0 -0
  759. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/templates/collectionViewPoliciesMenu.pug +0 -0
  760. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/templates/configView.pug +0 -0
  761. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/templates/quotaPoliciesWidget.pug +0 -0
  762. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/templates/userViewPoliciesMenu.pug +0 -0
  763. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/utilities/Conversions.js +0 -0
  764. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/CollectionView.js +0 -0
  765. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/ConfigView.js +0 -0
  766. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/QuotaPoliciesWidget.js +0 -0
  767. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/UploadWidget.js +0 -0
  768. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/UserView.js +0 -0
  769. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/girder_user_quota/web_client/views/extendView.js +0 -0
  770. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/plugin_tests/__init__.py +0 -0
  771. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/plugin_tests/userQuotaSpec.js +0 -0
  772. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/plugin_tests/user_quota_test.py +0 -0
  773. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/pyproject.toml +0 -0
  774. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/user_quota/setup.py +0 -0
  775. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/virtual_folders/girder_virtual_folders/__init__.py +0 -0
  776. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/virtual_folders/plugin_tests/__init__.py +0 -0
  777. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/virtual_folders/plugin_tests/virtual_folders_test.py +0 -0
  778. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/virtual_folders/pyproject.toml +0 -0
  779. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/plugins/virtual_folders/setup.py +0 -0
  780. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pyproject.toml +0 -0
  781. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/LICENSE +0 -0
  782. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/MANIFEST.in +0 -0
  783. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pyproject.toml +0 -0
  784. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/__init__.py +0 -0
  785. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/assertions.py +0 -0
  786. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/fixtures.py +0 -0
  787. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/plugin.py +0 -0
  788. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
  789. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/utils.py +0 -0
  790. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/pytest_girder/web_client.py +0 -0
  791. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/pytest_girder/setup.py +0 -0
  792. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/requirements-dev.txt +0 -0
  793. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/midas/README.rst +0 -0
  794. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/midas/migrate.py +0 -0
  795. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/midas/requirements.txt +0 -0
  796. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/midas/walk_girder.py +0 -0
  797. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/midas/walk_midas.py +0 -0
  798. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/publicNames.py +0 -0
  799. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/publicNames.txt +0 -0
  800. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/scripts/test_names.sh +0 -0
  801. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/setup.cfg +0 -0
  802. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/setup.py +0 -0
  803. {girder-3.2.18.dev2 → girder-3.2.18.dev4}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder
3
- Version: 3.2.18.dev2
3
+ Version: 3.2.18.dev4
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -0,0 +1,261 @@
1
+ # Utility for saving and restoring the internal state of a hash object
2
+ # so that checksums can be streamed without having to remain in memory.
3
+ # Inspired by http://code.activestate.com/recipes/
4
+ # 578479-save-and-restore-sha-512-internal-state/
5
+
6
+ import binascii
7
+ import ctypes
8
+ import hashlib
9
+ import ssl
10
+ import sys
11
+
12
+ _ver = sys.version_info
13
+ _free_threaded = hasattr(sys, '_is_gil_enabled') and not sys._is_gil_enabled()
14
+ _WORD = ctypes.sizeof(ctypes.c_void_p)
15
+
16
+ # This is the offset to the EVP_MD_CTX structure in CPython's _hashopenssl.c
17
+ # EVPObject. It changed for Python 3.8 in
18
+ # https://github.com/python/cpython/pull/16023 and again for the free-threaded
19
+ # builds in 3.14 (which add two words to the object header) and for all builds
20
+ # in 3.15 (which add one word). These values are only used as a fallback on
21
+ # platforms where we cannot safely auto-detect the layout.
22
+ if _free_threaded:
23
+ _HASHLIB_EVP_STRUCT_OFFSET = 5 if _ver >= (3, 15) else 4
24
+ else:
25
+ _HASHLIB_EVP_STRUCT_OFFSET = 3 if _ver >= (3, 15) else 2
26
+
27
+ # Number of pointer-sized words to scan when auto-detecting the layout of
28
+ # CPython's _hashlib.HASH object and the OpenSSL EVP_MD_CTX structure it
29
+ # references. The digest state has never been stored inline in the hash
30
+ # object (since CPython 2.7.13), so it is always reachable via two levels of
31
+ # pointers: the hash object points to an EVP_MD_CTX, which points to the
32
+ # state data.
33
+ _HASHLIB_OBJECT_SCAN_WORDS = 10
34
+ _EVP_MD_CTX_SCAN_WORDS = 16
35
+
36
+ # Minimum plausible heap address; anything smaller is not a real pointer.
37
+ _MIN_VALID_ADDRESS = 0x1000
38
+
39
+ # Auto-detected offsets, in units of words: (offset of the EVP_MD_CTX pointer
40
+ # within the hash object, offset of the state data pointer within the
41
+ # EVP_MD_CTX). Set once the first hash object has been inspected and reused
42
+ # for all subsequent objects, since the layout is the same for every hash
43
+ # algorithm within a single interpreter build.
44
+ _STATE_OFFSETS = None
45
+
46
+
47
+ def _readPointer(address):
48
+ return ctypes.cast(address, ctypes.POINTER(ctypes.c_void_p))[0]
49
+
50
+
51
+ def _getReadableAddressRanges():
52
+ """
53
+ Get the readable memory ranges of the current process, used to validate
54
+ candidate pointers before dereferencing them.
55
+
56
+ :returns: A list of (start, end) address tuples, or None if the platform
57
+ does not provide the information (in which case hardcoded offsets are
58
+ used instead).
59
+ """
60
+ try:
61
+ with open('/proc/self/maps') as mapsFile:
62
+ ranges = []
63
+ for line in mapsFile:
64
+ fields = line.split()
65
+ if 'r' not in fields[1]:
66
+ continue
67
+ start, end = fields[0].split('-')
68
+ ranges.append((int(start, 16), int(end, 16)))
69
+ return ranges
70
+ except (OSError, IndexError, ValueError):
71
+ return None
72
+
73
+
74
+ def _isValidAddress(ranges, address, size):
75
+ """
76
+ Check that an address range is safe to read without segfaulting.
77
+ """
78
+ if not address or address < _MIN_VALID_ADDRESS:
79
+ return False
80
+ return any(start <= address and address + size <= end for start, end in ranges)
81
+
82
+
83
+ def _locateStateDataAddress(hashObject, initVectorFirstWord, stateSize):
84
+ """
85
+ Find the address of the internal hash state of a hash object.
86
+
87
+ When possible, this is done by scanning the hash object for a pointer to
88
+ an OpenSSL EVP_MD_CTX and scanning that for a pointer to memory that
89
+ begins with the algorithm's initialization vector. This avoids depending
90
+ on hardcoded struct offsets, which CPython has repeatedly changed (see
91
+ the fallback offsets below the imports). On platforms where memory
92
+ ranges cannot be enumerated, the hardcoded offsets are used instead.
93
+
94
+ :param hashObject: A hashlib hash object backed by OpenSSL
95
+ (_hashlib.HASH).
96
+ :param initVectorFirstWord: The first eight bytes of the digest state of a
97
+ freshly initialized hash object of this algorithm.
98
+ :param stateSize: The size in bytes of the digest state.
99
+ :return: The address of the digest state, or None if it could not be
100
+ located.
101
+ """
102
+ global _STATE_OFFSETS
103
+ objectAddress = id(hashObject)
104
+
105
+ if _STATE_OFFSETS is not None:
106
+ objectOffset, ctxOffset = _STATE_OFFSETS
107
+ ctxAddress = _readPointer(objectAddress + objectOffset * _WORD)
108
+ return _readPointer(ctxAddress + ctxOffset * _WORD)
109
+
110
+ ranges = _getReadableAddressRanges()
111
+ if ranges is None:
112
+ # Platforms without /proc/self/maps, such as macOS and Windows.
113
+ ctxAddress = _readPointer(objectAddress + _HASHLIB_EVP_STRUCT_OFFSET * _WORD)
114
+ if ssl._OPENSSL_API_VERSION < (3, 0):
115
+ # OpenSSL 1.x
116
+ return _readPointer(ctxAddress + 3 * _WORD)
117
+ # OpenSSL 3.x
118
+ return _readPointer(ctxAddress + 7 * _WORD)
119
+
120
+ for objectOffset in range(2, _HASHLIB_OBJECT_SCAN_WORDS):
121
+ ctxAddress = _readPointer(objectAddress + objectOffset * _WORD)
122
+ if not _isValidAddress(ranges, ctxAddress, _EVP_MD_CTX_SCAN_WORDS * _WORD):
123
+ continue
124
+ for ctxOffset in range(_EVP_MD_CTX_SCAN_WORDS):
125
+ stateAddress = _readPointer(ctxAddress + ctxOffset * _WORD)
126
+ if not _isValidAddress(ranges, stateAddress, stateSize):
127
+ continue
128
+ if ctypes.cast(
129
+ stateAddress, ctypes.POINTER(ctypes.c_char)
130
+ )[:8] == initVectorFirstWord:
131
+ _STATE_OFFSETS = (objectOffset, ctxOffset)
132
+ return stateAddress
133
+ return None
134
+
135
+
136
+ def _getStateDataPointer(hashObject, hashInfo):
137
+ """
138
+ Get a pointer to the internal hash state of a hash object.
139
+
140
+ :param hashObject: A hashlib hash object.
141
+ :param hashInfo: The _HashInfo instance describing the hash algorithm.
142
+ :return: A ctypes pointer to the internal hash state.
143
+ :rtype: ctypes.POINTER(ctypes.c_char)
144
+ """
145
+ stateAddress = _locateStateDataAddress(
146
+ hashObject, hashInfo.initVectorFirstWord, hashInfo.stateSize)
147
+ if stateAddress is None:
148
+ raise RuntimeError(
149
+ 'Could not locate the internal state of the %s hash object. This module '
150
+ 'requires a CPython build with OpenSSL-backed hashlib.' % hashInfo.name)
151
+ return ctypes.cast(stateAddress, ctypes.POINTER(ctypes.c_char))
152
+
153
+
154
+ _HASH_INFOS = {}
155
+
156
+
157
+ class _HashInfo:
158
+ def __init__(self, type, stateSize, initVectorFirstWord):
159
+ self.type = type
160
+ self.stateSize = stateSize
161
+ self.initVectorFirstWord = initVectorFirstWord
162
+
163
+ # Instantiate to get the name and do a sanity check
164
+ instance = self.type()
165
+ self.name = instance.name
166
+
167
+ stateDataPointer = _getStateDataPointer(instance, self)
168
+ assert stateDataPointer[:8] == initVectorFirstWord
169
+
170
+ _HASH_INFOS[self.name] = self
171
+
172
+
173
+ _HashInfo(
174
+ type=hashlib.md5,
175
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/md5/md5.h#L100
176
+ stateSize=92,
177
+ # Found empirically
178
+ initVectorFirstWord=b'\x01\x23\x45\x67\x89\xab\xcd\xef'
179
+ )
180
+ _HashInfo(
181
+ type=hashlib.sha1,
182
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L100
183
+ stateSize=96,
184
+ # Found empirically
185
+ initVectorFirstWord=b'\x01\x23\x45\x67\x89\xab\xcd\xef'
186
+ )
187
+ _HashInfo(
188
+ type=hashlib.sha224,
189
+ # Uses the same struct as sha256
190
+ stateSize=112,
191
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha256.c#L22
192
+ initVectorFirstWord=b'\xd8\x9e\x05\xc1\x07\xd5\x7c\x36'
193
+ )
194
+ _HashInfo(
195
+ type=hashlib.sha256,
196
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L135
197
+ stateSize=112,
198
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha256.c#L33
199
+ initVectorFirstWord=b'\x67\xe6\x09\x6a\x85\xae\x67\xbb'
200
+ )
201
+ _HashInfo(
202
+ type=hashlib.sha384,
203
+ # Uses the same struct as sha512
204
+ stateSize=216,
205
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha512.c#L64
206
+ initVectorFirstWord=b'\xd8\x9e\x05\xc1\x5d\x9d\xbb\xcb'
207
+ )
208
+ _HashInfo(
209
+ type=hashlib.sha512,
210
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L182
211
+ stateSize=216,
212
+ # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha512.c#L80
213
+ initVectorFirstWord=b'\x08\xc9\xbc\xf3\x67\xe6\x09\x6a'
214
+ )
215
+
216
+
217
+ def serialize(hashObject):
218
+ """
219
+ Serializes the internal state of the hash object passed in. Calling
220
+ restore() on the serialized value afterward will return an equivalent
221
+ hash object to the one passed.
222
+
223
+ :param hashObject: The hash object to serialize.
224
+ :type hashObject: _hashlib.HASH
225
+ :returns: A binary string representing the serialized state.
226
+ """
227
+ hashInfo = _HASH_INFOS[hashObject.name]
228
+ stateDataPointer = _getStateDataPointer(hashObject, hashInfo)
229
+ return stateDataPointer[:hashInfo.stateSize]
230
+
231
+
232
+ def restore(oldStateData, hashName):
233
+ """
234
+ Unserializes a hash object from a binary string created by the
235
+ serialize() method in this module.
236
+
237
+ :param oldStateData: The serialized state.
238
+ :type oldStateData: binary string
239
+ :param hashName: The name of the hash algorithm type.
240
+ :type hashName: str
241
+ :returns: A hash object in the same state as the one that serialize()
242
+ was called on.
243
+ """
244
+ hashInfo = _HASH_INFOS[hashName]
245
+ assert len(oldStateData) == hashInfo.stateSize
246
+
247
+ hashObject = hashInfo.type()
248
+ stateDataPointer = _getStateDataPointer(hashObject, hashInfo)
249
+
250
+ for i, byte in enumerate(oldStateData):
251
+ stateDataPointer[i] = byte
252
+
253
+ return hashObject
254
+
255
+
256
+ def serializeHex(hashObject):
257
+ return binascii.b2a_hex(serialize(hashObject))
258
+
259
+
260
+ def restoreHex(oldHexStateData, hashName):
261
+ return restore(binascii.a2b_hex(oldHexStateData), hashName)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: girder
3
- Version: 3.2.18.dev2
3
+ Version: 3.2.18.dev4
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "3.2.17",
3
+ "distance": 4,
4
+ "node": "gcc074ff94a423e7bf97deb7fd014a604bdec4693",
5
+ "dirty": false,
6
+ "branch": "3.x-maintenance",
7
+ "node_date": "2026-10-12"
8
+ }
@@ -1,151 +0,0 @@
1
- # Utility for saving and restoring the internal state of a hash object
2
- # so that checksums can be streamed without having to remain in memory.
3
- # Inspired by http://code.activestate.com/recipes/
4
- # 578479-save-and-restore-sha-512-internal-state/
5
-
6
- import binascii
7
- import ctypes
8
- import hashlib
9
- import ssl
10
- import sys
11
-
12
- _ver = sys.version_info
13
- # This is the offset to the EVP_MD_CTX structure in CPython's _hashopenssl.c
14
- # EVPObject. It changed for Python 3.8 in
15
- # https://github.com/python/cpython/pull/16023
16
- _HASHLIB_EVP_STRUCT_OFFSET = 2
17
-
18
-
19
- def _getHashStateDataPointer(hashObject):
20
- """
21
- Get a pointer to the internal hash state of a hash object.
22
-
23
- :param hashObject: A hashlib hash object.
24
- :return: A ctypes pointer to the internal hash state.
25
- :rtype: ctypes.POINTER(ctypes.c_char)
26
- """
27
- hashPointer = ctypes.cast(id(hashObject), ctypes.POINTER(ctypes.c_void_p))
28
-
29
- # In cpython 2.7.13, hashlib changed to store a pointer to the OpenSSL hash
30
- # object rather than inlining it in the struct, so we require an extra dereference. See
31
- # https://github.com/python/cpython/commit/9d9615f6782be4b1f38b47d4d56cee208c26a970
32
- evpStruct = ctypes.cast(hashPointer[_HASHLIB_EVP_STRUCT_OFFSET],
33
- ctypes.POINTER(ctypes.c_void_p))
34
- if ssl._OPENSSL_API_VERSION < (3, 0):
35
- # OpenSSL 1.x
36
- stateDataPointer = ctypes.cast(evpStruct[3], ctypes.POINTER(ctypes.c_char))
37
- else:
38
- # OpenSSL 3.x
39
- stateDataPointer = ctypes.cast(evpStruct[7], ctypes.POINTER(ctypes.c_char))
40
-
41
- assert stateDataPointer
42
- return stateDataPointer
43
-
44
-
45
- _HASH_INFOS = {}
46
-
47
-
48
- class _HashInfo:
49
- def __init__(self, type, stateSize, initVectorFirstWord):
50
- self.type = type
51
- self.stateSize = stateSize
52
-
53
- # Instantiate to get the name and do a sanity check
54
- instance = self.type()
55
- self.name = instance.name
56
-
57
- stateDataPointer = _getHashStateDataPointer(instance)
58
- assert stateDataPointer[:8] == initVectorFirstWord
59
-
60
- _HASH_INFOS[self.name] = self
61
-
62
-
63
- _HashInfo(
64
- type=hashlib.md5,
65
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/md5/md5.h#L100
66
- stateSize=92,
67
- # Found empirically
68
- initVectorFirstWord=b'\x01\x23\x45\x67\x89\xab\xcd\xef'
69
- )
70
- _HashInfo(
71
- type=hashlib.sha1,
72
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L100
73
- stateSize=96,
74
- # Found empirically
75
- initVectorFirstWord=b'\x01\x23\x45\x67\x89\xab\xcd\xef'
76
- )
77
- _HashInfo(
78
- type=hashlib.sha224,
79
- # Uses the same struct as sha256
80
- stateSize=112,
81
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha256.c#L22
82
- initVectorFirstWord=b'\xd8\x9e\x05\xc1\x07\xd5\x7c\x36'
83
- )
84
- _HashInfo(
85
- type=hashlib.sha256,
86
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L135
87
- stateSize=112,
88
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha256.c#L33
89
- initVectorFirstWord=b'\x67\xe6\x09\x6a\x85\xae\x67\xbb'
90
- )
91
- _HashInfo(
92
- type=hashlib.sha384,
93
- # Uses the same struct as sha512
94
- stateSize=216,
95
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha512.c#L64
96
- initVectorFirstWord=b'\xd8\x9e\x05\xc1\x5d\x9d\xbb\xcb'
97
- )
98
- _HashInfo(
99
- type=hashlib.sha512,
100
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha.h#L182
101
- stateSize=216,
102
- # github.com/openssl/openssl/blob/OpenSSL_1_0_1f/crypto/sha/sha512.c#L80
103
- initVectorFirstWord=b'\x08\xc9\xbc\xf3\x67\xe6\x09\x6a'
104
- )
105
-
106
-
107
- def serialize(hashObject):
108
- """
109
- Serializes the internal state of the hash object passed in. Calling
110
- restore() on the serialized value afterward will return an equivalent
111
- hash object to the one passed.
112
-
113
- :param hashObject: The hash object to serialize.
114
- :type hashObject: _hashlib.HASH
115
- :returns: A binary string representing the serialized state.
116
- """
117
- stateDataPointer = _getHashStateDataPointer(hashObject)
118
- hashInfo = _HASH_INFOS[hashObject.name]
119
- return stateDataPointer[:hashInfo.stateSize]
120
-
121
-
122
- def restore(oldStateData, hashName):
123
- """
124
- Unserializes a hash object from a binary string created by the
125
- serialize() method in this module.
126
-
127
- :param oldStateData: The serialized state.
128
- :type oldStateData: binary string
129
- :param hashName: The name of the hash algorithm type.
130
- :type hashName: str
131
- :returns: A hash object in the same state as the one that serialize()
132
- was called on.
133
- """
134
- hashInfo = _HASH_INFOS[hashName]
135
- assert len(oldStateData) == hashInfo.stateSize
136
-
137
- hashObject = hashInfo.type()
138
- stateDataPointer = _getHashStateDataPointer(hashObject)
139
-
140
- for i, byte in enumerate(oldStateData):
141
- stateDataPointer[i] = byte
142
-
143
- return hashObject
144
-
145
-
146
- def serializeHex(hashObject):
147
- return binascii.b2a_hex(serialize(hashObject))
148
-
149
-
150
- def restoreHex(oldHexStateData, hashName):
151
- return restore(binascii.a2b_hex(oldHexStateData), hashName)
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "3.2.17",
3
- "distance": 2,
4
- "node": "g339bcdfe6c97a4eb52c194b29b6430523b66d778",
5
- "dirty": false,
6
- "branch": "3.x-maintenance",
7
- "node_date": "2026-09-21"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes