@futdevpro/nts-dynamo 1.15.136 → 1.15.139
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.
- package/.c8rc.json +26 -26
- package/.copilot/patterns.json +7 -7
- package/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.vscode/settings.json +10 -10
- package/HOWTO.md +15 -15
- package/LICENSE +21 -21
- package/_specifications/BACKLOG.md +92 -92
- package/_specifications/TODO.md +15 -15
- package/_specifications/agent.md +138 -138
- package/build/_collections/app-version-header.util.spec.d.ts +2 -0
- package/build/_collections/app-version-header.util.spec.d.ts.map +1 -0
- package/build/_collections/app-version-header.util.spec.js +82 -0
- package/build/_collections/app-version-header.util.spec.js.map +1 -0
- package/build/_collections/archive.util.spec.d.ts +2 -0
- package/build/_collections/archive.util.spec.d.ts.map +1 -0
- package/build/_collections/archive.util.spec.js +51 -0
- package/build/_collections/archive.util.spec.js.map +1 -0
- package/build/_collections/client-safe-error.util.spec.d.ts +2 -0
- package/build/_collections/client-safe-error.util.spec.d.ts.map +1 -0
- package/build/_collections/client-safe-error.util.spec.js +124 -0
- package/build/_collections/client-safe-error.util.spec.js.map +1 -0
- package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts +2 -0
- package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts.map +1 -0
- package/build/_collections/default-fallback-cache-max-age.const.spec.js +12 -0
- package/build/_collections/default-fallback-cache-max-age.const.spec.js.map +1 -0
- package/build/_collections/default-not-found-page.const.spec.d.ts +2 -0
- package/build/_collections/default-not-found-page.const.spec.d.ts.map +1 -0
- package/build/_collections/default-not-found-page.const.spec.js +19 -0
- package/build/_collections/default-not-found-page.const.spec.js.map +1 -0
- package/build/_collections/default-socket-path.const.spec.d.ts +2 -0
- package/build/_collections/default-socket-path.const.spec.d.ts.map +1 -0
- package/build/_collections/default-socket-path.const.spec.js +13 -0
- package/build/_collections/default-socket-path.const.spec.js.map +1 -0
- package/build/_collections/field-encryption.util.spec.d.ts +2 -0
- package/build/_collections/field-encryption.util.spec.d.ts.map +1 -0
- package/build/_collections/field-encryption.util.spec.js +156 -0
- package/build/_collections/field-encryption.util.spec.js.map +1 -0
- package/build/_collections/get-environment-settings.util.spec.d.ts +2 -0
- package/build/_collections/get-environment-settings.util.spec.d.ts.map +1 -0
- package/build/_collections/get-environment-settings.util.spec.js +165 -0
- package/build/_collections/get-environment-settings.util.spec.js.map +1 -0
- package/build/_collections/load-shed.util.spec.d.ts +2 -0
- package/build/_collections/load-shed.util.spec.d.ts.map +1 -0
- package/build/_collections/load-shed.util.spec.js +48 -0
- package/build/_collections/load-shed.util.spec.js.map +1 -0
- package/build/_collections/mongo-reconnect-guard.util.spec.d.ts +2 -0
- package/build/_collections/mongo-reconnect-guard.util.spec.d.ts.map +1 -0
- package/build/_collections/mongo-reconnect-guard.util.spec.js +46 -0
- package/build/_collections/mongo-reconnect-guard.util.spec.js.map +1 -0
- package/build/_collections/security-headers.util.spec.d.ts +2 -0
- package/build/_collections/security-headers.util.spec.d.ts.map +1 -0
- package/build/_collections/security-headers.util.spec.js +66 -0
- package/build/_collections/security-headers.util.spec.js.map +1 -0
- package/build/_collections/signed-url.util.spec.d.ts +2 -0
- package/build/_collections/signed-url.util.spec.d.ts.map +1 -0
- package/build/_collections/signed-url.util.spec.js +161 -0
- package/build/_collections/signed-url.util.spec.js.map +1 -0
- package/build/_collections/star.controller.spec.d.ts +2 -0
- package/build/_collections/star.controller.spec.d.ts.map +1 -0
- package/build/_collections/star.controller.spec.js +194 -0
- package/build/_collections/star.controller.spec.js.map +1 -0
- package/build/_collections/static-cache-control.util.spec.d.ts +2 -0
- package/build/_collections/static-cache-control.util.spec.d.ts.map +1 -0
- package/build/_collections/static-cache-control.util.spec.js +41 -0
- package/build/_collections/static-cache-control.util.spec.js.map +1 -0
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/api-call-params.control-model.spec.js +128 -0
- package/build/_models/control-models/api-call-params.control-model.spec.js.map +1 -0
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.js +43 -0
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.js.map +1 -0
- package/build/_models/control-models/app-params.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/app-params.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/app-params.control-model.spec.js +180 -0
- package/build/_models/control-models/app-params.control-model.spec.js.map +1 -0
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/app-system-controls.control-model.spec.js +26 -0
- package/build/_models/control-models/app-system-controls.control-model.spec.js.map +1 -0
- package/build/_models/control-models/endpoint-params.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/endpoint-params.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/endpoint-params.control-model.spec.js +569 -0
- package/build/_models/control-models/endpoint-params.control-model.spec.js.map +1 -0
- package/build/_models/control-models/http-settings.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/http-settings.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/http-settings.control-model.spec.js +71 -0
- package/build/_models/control-models/http-settings.control-model.spec.js.map +1 -0
- package/build/_models/control-models/system-control.control-model.spec.d.ts +2 -0
- package/build/_models/control-models/system-control.control-model.spec.d.ts.map +1 -0
- package/build/_models/control-models/system-control.control-model.spec.js +24 -0
- package/build/_models/control-models/system-control.control-model.spec.js.map +1 -0
- package/build/_models/interfaces/cors-settings.interface.spec.d.ts +2 -0
- package/build/_models/interfaces/cors-settings.interface.spec.d.ts.map +1 -0
- package/build/_models/interfaces/cors-settings.interface.spec.js +48 -0
- package/build/_models/interfaces/cors-settings.interface.spec.js.map +1 -0
- package/build/_models/interfaces/static-client-settings.interface.spec.d.ts +2 -0
- package/build/_models/interfaces/static-client-settings.interface.spec.d.ts.map +1 -0
- package/build/_models/interfaces/static-client-settings.interface.spec.js +28 -0
- package/build/_models/interfaces/static-client-settings.interface.spec.js.map +1 -0
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts +2 -0
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts.map +1 -0
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js +185 -0
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js.map +1 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts +2 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js +132 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js +56 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js +43 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js +47 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js +98 -0
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js +117 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js +87 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js +42 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js +74 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js +95 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js +207 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js +244 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js +162 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js +279 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js +452 -0
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js +293 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js +395 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js +411 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts +2 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js +143 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js +98 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.js +80 -0
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js +186 -0
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js +108 -0
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-llm.service-base.spec.js +185 -0
- package/build/_modules/ai/_services/ai-llm.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts +2 -0
- package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-provider.service-base.spec.js +128 -0
- package/build/_modules/ai/_services/ai-provider.service-base.spec.js.map +1 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts +2 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts.map +1 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js +159 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js.map +1 -0
- package/build/_modules/assistant/_collections/ass.util.spec.d.ts +2 -0
- package/build/_modules/assistant/_collections/ass.util.spec.d.ts.map +1 -0
- package/build/_modules/assistant/_collections/ass.util.spec.js +153 -0
- package/build/_modules/assistant/_collections/ass.util.spec.js.map +1 -0
- package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts +2 -0
- package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts.map +1 -0
- package/build/_modules/assistant/_services/ass-io.control-service.spec.js +99 -0
- package/build/_modules/assistant/_services/ass-io.control-service.spec.js.map +1 -0
- package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts +2 -0
- package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts.map +1 -0
- package/build/_modules/assistant/_services/ass-main.control-service.spec.js +146 -0
- package/build/_modules/assistant/_services/ass-main.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js +356 -0
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts +2 -0
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts.map +1 -0
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js +93 -0
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js.map +1 -0
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js +304 -0
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js +336 -0
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js +337 -0
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_services/bot-commands.control-service.spec.js +84 -0
- package/build/_modules/bot/_services/bot-commands.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_services/bot-io.control-service.spec.js +228 -0
- package/build/_modules/bot/_services/bot-io.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_services/bot-main.control-service.spec.js +164 -0
- package/build/_modules/bot/_services/bot-main.control-service.spec.js.map +1 -0
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts +2 -0
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts.map +1 -0
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js +267 -0
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js.map +1 -0
- package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts +2 -0
- package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts.map +1 -0
- package/build/_modules/bot/_services/bot-routines.control-service.spec.js +82 -0
- package/build/_modules/bot/_services/bot-routines.control-service.spec.js.map +1 -0
- package/build/_modules/custom-data/custom-data.controller.spec.d.ts +2 -0
- package/build/_modules/custom-data/custom-data.controller.spec.d.ts.map +1 -0
- package/build/_modules/custom-data/custom-data.controller.spec.js +38 -0
- package/build/_modules/custom-data/custom-data.controller.spec.js.map +1 -0
- package/build/_modules/custom-data/custom-data.data-service.spec.d.ts +2 -0
- package/build/_modules/custom-data/custom-data.data-service.spec.d.ts.map +1 -0
- package/build/_modules/custom-data/custom-data.data-service.spec.js +45 -0
- package/build/_modules/custom-data/custom-data.data-service.spec.js.map +1 -0
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts +2 -0
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts.map +1 -0
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js +23 -0
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js.map +1 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts +2 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts.map +1 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js +124 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js.map +1 -0
- package/build/_modules/defaults/_services/default-auth.service.spec.d.ts +2 -0
- package/build/_modules/defaults/_services/default-auth.service.spec.d.ts.map +1 -0
- package/build/_modules/defaults/_services/default-auth.service.spec.js +210 -0
- package/build/_modules/defaults/_services/default-auth.service.spec.js.map +1 -0
- package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts +2 -0
- package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts.map +1 -0
- package/build/_modules/defaults/_services/default-socket-events.service.spec.js +34 -0
- package/build/_modules/defaults/_services/default-socket-events.service.spec.js.map +1 -0
- package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts +2 -0
- package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts.map +1 -0
- package/build/_modules/defaults/_services/default-user.data-service.spec.js +133 -0
- package/build/_modules/defaults/_services/default-user.data-service.spec.js.map +1 -0
- package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts +2 -0
- package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts.map +1 -0
- package/build/_modules/discord-assistant/_collections/dias.util.spec.js +307 -0
- package/build/_modules/discord-assistant/_collections/dias.util.spec.js.map +1 -0
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js +76 -0
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js.map +1 -0
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js +17 -0
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js.map +1 -0
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts +2 -0
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts.map +1 -0
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.js +151 -0
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.js.map +1 -0
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js +29 -0
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js.map +1 -0
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts +2 -0
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts.map +1 -0
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js +172 -0
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js +133 -0
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js +215 -0
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js +342 -0
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts +2 -0
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts.map +1 -0
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js +87 -0
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js +137 -0
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js +345 -0
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js +407 -0
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js +160 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js +122 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts +2 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js +388 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js.map +1 -0
- package/build/_modules/logs/file-log.service.spec.d.ts +2 -0
- package/build/_modules/logs/file-log.service.spec.d.ts.map +1 -0
- package/build/_modules/logs/file-log.service.spec.js +300 -0
- package/build/_modules/logs/file-log.service.spec.js.map +1 -0
- package/build/_modules/logs/file-logs.controller.spec.d.ts +2 -0
- package/build/_modules/logs/file-logs.controller.spec.d.ts.map +1 -0
- package/build/_modules/logs/file-logs.controller.spec.js +203 -0
- package/build/_modules/logs/file-logs.controller.spec.js.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts +2 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js +125 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js.map +1 -0
- package/build/_modules/messaging/_collections/msg.util.spec.d.ts +2 -0
- package/build/_modules/messaging/_collections/msg.util.spec.d.ts.map +1 -0
- package/build/_modules/messaging/_collections/msg.util.spec.js +157 -0
- package/build/_modules/messaging/_collections/msg.util.spec.js.map +1 -0
- package/build/_modules/messaging/_services/msg-events.service.spec.d.ts +2 -0
- package/build/_modules/messaging/_services/msg-events.service.spec.d.ts.map +1 -0
- package/build/_modules/messaging/_services/msg-events.service.spec.js +122 -0
- package/build/_modules/messaging/_services/msg-events.service.spec.js.map +1 -0
- package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts +2 -0
- package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts.map +1 -0
- package/build/_modules/messaging/_services/msg-main.control-service.spec.js +121 -0
- package/build/_modules/messaging/_services/msg-main.control-service.spec.js.map +1 -0
- package/build/_modules/messaging/_services/msg.controller.spec.d.ts +2 -0
- package/build/_modules/messaging/_services/msg.controller.spec.d.ts.map +1 -0
- package/build/_modules/messaging/_services/msg.controller.spec.js +165 -0
- package/build/_modules/messaging/_services/msg.controller.spec.js.map +1 -0
- package/build/_modules/mock/app-params.mock.spec.d.ts +2 -0
- package/build/_modules/mock/app-params.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/app-params.mock.spec.js +19 -0
- package/build/_modules/mock/app-params.mock.spec.js.map +1 -0
- package/build/_modules/mock/auth-service.mock.spec.d.ts +2 -0
- package/build/_modules/mock/auth-service.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/auth-service.mock.spec.js +40 -0
- package/build/_modules/mock/auth-service.mock.spec.js.map +1 -0
- package/build/_modules/mock/controller.mock.spec.d.ts +2 -0
- package/build/_modules/mock/controller.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/controller.mock.spec.js +23 -0
- package/build/_modules/mock/controller.mock.spec.js.map +1 -0
- package/build/_modules/mock/data-model.mock.spec.d.ts +2 -0
- package/build/_modules/mock/data-model.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/data-model.mock.spec.js +101 -0
- package/build/_modules/mock/data-model.mock.spec.js.map +1 -0
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts +2 -0
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/email-service-collection.mock.spec.js +21 -0
- package/build/_modules/mock/email-service-collection.mock.spec.js.map +1 -0
- package/build/_modules/mock/email-service.mock.spec.d.ts +2 -0
- package/build/_modules/mock/email-service.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/email-service.mock.spec.js +14 -0
- package/build/_modules/mock/email-service.mock.spec.js.map +1 -0
- package/build/_modules/mock/socket-client.mock.spec.d.ts +2 -0
- package/build/_modules/mock/socket-client.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/socket-client.mock.spec.js +32 -0
- package/build/_modules/mock/socket-client.mock.spec.js.map +1 -0
- package/build/_modules/mock/socket-server.mock.spec.d.ts +2 -0
- package/build/_modules/mock/socket-server.mock.spec.d.ts.map +1 -0
- package/build/_modules/mock/socket-server.mock.spec.js +36 -0
- package/build/_modules/mock/socket-server.mock.spec.js.map +1 -0
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts +2 -0
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts.map +1 -0
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.js +89 -0
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.js.map +1 -0
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts +2 -0
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts.map +1 -0
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js +195 -0
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js.map +1 -0
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts +2 -0
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts.map +1 -0
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.js +432 -0
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.js.map +1 -0
- package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts +2 -0
- package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts.map +1 -0
- package/build/_modules/rate-limit/rate-limit.middleware.spec.js +277 -0
- package/build/_modules/rate-limit/rate-limit.middleware.spec.js.map +1 -0
- package/build/_modules/scheduler/scheduler.controller.spec.d.ts +2 -0
- package/build/_modules/scheduler/scheduler.controller.spec.d.ts.map +1 -0
- package/build/_modules/scheduler/scheduler.controller.spec.js +35 -0
- package/build/_modules/scheduler/scheduler.controller.spec.js.map +1 -0
- package/build/_modules/scheduler/scheduler.service.spec.d.ts +2 -0
- package/build/_modules/scheduler/scheduler.service.spec.d.ts.map +1 -0
- package/build/_modules/scheduler/scheduler.service.spec.js +123 -0
- package/build/_modules/scheduler/scheduler.service.spec.js.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts +2 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js +229 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts +2 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js +88 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js.map +1 -0
- package/build/_modules/server/errors/errors.control-service.spec.d.ts +2 -0
- package/build/_modules/server/errors/errors.control-service.spec.d.ts.map +1 -0
- package/build/_modules/server/errors/errors.control-service.spec.js +198 -0
- package/build/_modules/server/errors/errors.control-service.spec.js.map +1 -0
- package/build/_modules/server/errors/errors.controller.spec.d.ts +2 -0
- package/build/_modules/server/errors/errors.controller.spec.d.ts.map +1 -0
- package/build/_modules/server/errors/errors.controller.spec.js +287 -0
- package/build/_modules/server/errors/errors.controller.spec.js.map +1 -0
- package/build/_modules/server/errors/errors.data-service.spec.d.ts +2 -0
- package/build/_modules/server/errors/errors.data-service.spec.d.ts.map +1 -0
- package/build/_modules/server/errors/errors.data-service.spec.js +390 -0
- package/build/_modules/server/errors/errors.data-service.spec.js.map +1 -0
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts +2 -0
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts.map +1 -0
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js +59 -0
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js.map +1 -0
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts +2 -0
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts.map +1 -0
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js +58 -0
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js.map +1 -0
- package/build/_modules/server/server-status/server-status.control-service.spec.d.ts +2 -0
- package/build/_modules/server/server-status/server-status.control-service.spec.d.ts.map +1 -0
- package/build/_modules/server/server-status/server-status.control-service.spec.js +537 -0
- package/build/_modules/server/server-status/server-status.control-service.spec.js.map +1 -0
- package/build/_modules/server/server-status/server-status.controller.spec.d.ts +2 -0
- package/build/_modules/server/server-status/server-status.controller.spec.d.ts.map +1 -0
- package/build/_modules/server/server-status/server-status.controller.spec.js +223 -0
- package/build/_modules/server/server-status/server-status.controller.spec.js.map +1 -0
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts +2 -0
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts.map +1 -0
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +25 -0
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +1 -0
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js +1 -0
- package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts +2 -0
- package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts.map +1 -0
- package/build/_modules/socket/_models/socket-presence.control-model.spec.js +137 -0
- package/build/_modules/socket/_models/socket-presence.control-model.spec.js.map +1 -0
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts +2 -0
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts.map +1 -0
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js +58 -0
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js.map +1 -0
- package/build/_modules/socket/_services/socket-client.service.spec.d.ts +2 -0
- package/build/_modules/socket/_services/socket-client.service.spec.d.ts.map +1 -0
- package/build/_modules/socket/_services/socket-client.service.spec.js +12 -0
- package/build/_modules/socket/_services/socket-client.service.spec.js.map +1 -0
- package/build/_modules/socket/_services/socket-server.service.d.ts +3 -1
- package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.js +32 -50
- package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts +2 -0
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts.map +1 -0
- package/build/_modules/socket/_services/socket-server.service.spec.js +149 -0
- package/build/_modules/socket/_services/socket-server.service.spec.js.map +1 -0
- package/build/_modules/socket/app-extended.integration.spec.d.ts +2 -0
- package/build/_modules/socket/app-extended.integration.spec.d.ts.map +1 -0
- package/build/_modules/socket/app-extended.integration.spec.js +76 -0
- package/build/_modules/socket/app-extended.integration.spec.js.map +1 -0
- package/build/_modules/test/get-test-routing-module.util.spec.d.ts +2 -0
- package/build/_modules/test/get-test-routing-module.util.spec.d.ts.map +1 -0
- package/build/_modules/test/get-test-routing-module.util.spec.js +23 -0
- package/build/_modules/test/get-test-routing-module.util.spec.js.map +1 -0
- package/build/_modules/test/test.controller.spec.d.ts +2 -0
- package/build/_modules/test/test.controller.spec.d.ts.map +1 -0
- package/build/_modules/test/test.controller.spec.js +54 -0
- package/build/_modules/test/test.controller.spec.js.map +1 -0
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts +2 -0
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts.map +1 -0
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js +91 -0
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js.map +1 -0
- package/build/_modules/usage/usage.controller.spec.d.ts +2 -0
- package/build/_modules/usage/usage.controller.spec.d.ts.map +1 -0
- package/build/_modules/usage/usage.controller.spec.js +82 -0
- package/build/_modules/usage/usage.controller.spec.js.map +1 -0
- package/build/_modules/usage/usage.data-service.spec.d.ts +2 -0
- package/build/_modules/usage/usage.data-service.spec.d.ts.map +1 -0
- package/build/_modules/usage/usage.data-service.spec.js +284 -0
- package/build/_modules/usage/usage.data-service.spec.js.map +1 -0
- package/build/_services/base/api.service-base.spec.d.ts +2 -0
- package/build/_services/base/api.service-base.spec.d.ts.map +1 -0
- package/build/_services/base/api.service-base.spec.js +91 -0
- package/build/_services/base/api.service-base.spec.js.map +1 -0
- package/build/_services/base/archive-data.service.spec.d.ts +2 -0
- package/build/_services/base/archive-data.service.spec.d.ts.map +1 -0
- package/build/_services/base/archive-data.service.spec.js +149 -0
- package/build/_services/base/archive-data.service.spec.js.map +1 -0
- package/build/_services/base/data.service.spec.d.ts +2 -0
- package/build/_services/base/data.service.spec.d.ts.map +1 -0
- package/build/_services/base/data.service.spec.js +614 -0
- package/build/_services/base/data.service.spec.js.map +1 -0
- package/build/_services/base/db.service.encryption.spec.d.ts +2 -0
- package/build/_services/base/db.service.encryption.spec.d.ts.map +1 -0
- package/build/_services/base/db.service.encryption.spec.js +66 -0
- package/build/_services/base/db.service.encryption.spec.js.map +1 -0
- package/build/_services/base/db.service.spec.d.ts +2 -0
- package/build/_services/base/db.service.spec.d.ts.map +1 -0
- package/build/_services/base/db.service.spec.js +127 -0
- package/build/_services/base/db.service.spec.js.map +1 -0
- package/build/_services/base/singleton.service-base.spec.d.ts +2 -0
- package/build/_services/base/singleton.service-base.spec.d.ts.map +1 -0
- package/build/_services/base/singleton.service-base.spec.js +24 -0
- package/build/_services/base/singleton.service-base.spec.js.map +1 -0
- package/build/_services/base/singleton.service.spec.d.ts +2 -0
- package/build/_services/base/singleton.service.spec.d.ts.map +1 -0
- package/build/_services/base/singleton.service.spec.js +88 -0
- package/build/_services/base/singleton.service.spec.js.map +1 -0
- package/build/_services/core/api.service.spec.d.ts +2 -0
- package/build/_services/core/api.service.spec.d.ts.map +1 -0
- package/build/_services/core/api.service.spec.js +150 -0
- package/build/_services/core/api.service.spec.js.map +1 -0
- package/build/_services/core/auth.service.spec.d.ts +2 -0
- package/build/_services/core/auth.service.spec.d.ts.map +1 -0
- package/build/_services/core/auth.service.spec.js +129 -0
- package/build/_services/core/auth.service.spec.js.map +1 -0
- package/build/_services/core/collection-growth-monitor.service.spec.d.ts +2 -0
- package/build/_services/core/collection-growth-monitor.service.spec.d.ts.map +1 -0
- package/build/_services/core/collection-growth-monitor.service.spec.js +51 -0
- package/build/_services/core/collection-growth-monitor.service.spec.js.map +1 -0
- package/build/_services/core/diagnostics.service.spec.d.ts +2 -0
- package/build/_services/core/diagnostics.service.spec.d.ts.map +1 -0
- package/build/_services/core/diagnostics.service.spec.js +40 -0
- package/build/_services/core/diagnostics.service.spec.js.map +1 -0
- package/build/_services/core/email.service.spec.d.ts +2 -0
- package/build/_services/core/email.service.spec.d.ts.map +1 -0
- package/build/_services/core/email.service.spec.js +77 -0
- package/build/_services/core/email.service.spec.js.map +1 -0
- package/build/_services/core/event-loop-diag.service.spec.d.ts +2 -0
- package/build/_services/core/event-loop-diag.service.spec.d.ts.map +1 -0
- package/build/_services/core/event-loop-diag.service.spec.js +18 -0
- package/build/_services/core/event-loop-diag.service.spec.js.map +1 -0
- package/build/_services/core/global.service.spec.d.ts +2 -0
- package/build/_services/core/global.service.spec.d.ts.map +1 -0
- package/build/_services/core/global.service.spec.js +235 -0
- package/build/_services/core/global.service.spec.js.map +1 -0
- package/build/_services/core/memory-guard.service.spec.d.ts +2 -0
- package/build/_services/core/memory-guard.service.spec.d.ts.map +1 -0
- package/build/_services/core/memory-guard.service.spec.js +219 -0
- package/build/_services/core/memory-guard.service.spec.js.map +1 -0
- package/build/_services/core/migration-runner.service.spec.d.ts +2 -0
- package/build/_services/core/migration-runner.service.spec.d.ts.map +1 -0
- package/build/_services/core/migration-runner.service.spec.js +77 -0
- package/build/_services/core/migration-runner.service.spec.js.map +1 -0
- package/build/_services/core/request-hunter.service.spec.d.ts +2 -0
- package/build/_services/core/request-hunter.service.spec.d.ts.map +1 -0
- package/build/_services/core/request-hunter.service.spec.js +101 -0
- package/build/_services/core/request-hunter.service.spec.js.map +1 -0
- package/build/_services/core/service-collection.service.spec.d.ts +2 -0
- package/build/_services/core/service-collection.service.spec.d.ts.map +1 -0
- package/build/_services/core/service-collection.service.spec.js +39 -0
- package/build/_services/core/service-collection.service.spec.js.map +1 -0
- package/build/_services/route/controller.service.spec.d.ts +2 -0
- package/build/_services/route/controller.service.spec.d.ts.map +1 -0
- package/build/_services/route/controller.service.spec.js +48 -0
- package/build/_services/route/controller.service.spec.js.map +1 -0
- package/build/_services/route/routing-module.service.spec.d.ts +2 -0
- package/build/_services/route/routing-module.service.spec.d.ts.map +1 -0
- package/build/_services/route/routing-module.service.spec.js +81 -0
- package/build/_services/route/routing-module.service.spec.js.map +1 -0
- package/build/_services/server/app.server-retention.spec.d.ts +2 -0
- package/build/_services/server/app.server-retention.spec.d.ts.map +1 -0
- package/build/_services/server/app.server-retention.spec.js +93 -0
- package/build/_services/server/app.server-retention.spec.js.map +1 -0
- package/build/_services/shared.static-service.spec.d.ts +2 -0
- package/build/_services/shared.static-service.spec.d.ts.map +1 -0
- package/build/_services/shared.static-service.spec.js +82 -0
- package/build/_services/shared.static-service.spec.js.map +1 -0
- package/coverage/_collections/archive.util.ts.html +139 -0
- package/coverage/_collections/get-environment-settings.util.ts.html +229 -0
- package/coverage/_collections/index.html +146 -0
- package/coverage/_collections/star.controller.ts.html +472 -0
- package/coverage/_models/control-models/api-call-params.control-model.ts.html +511 -0
- package/coverage/_models/control-models/app-ext-system-controls.control-model.ts.html +112 -0
- package/coverage/_models/control-models/app-params.control-model.ts.html +475 -0
- package/coverage/_models/control-models/app-system-controls.control-model.ts.html +112 -0
- package/coverage/_models/control-models/endpoint-params.control-model.ts.html +1618 -0
- package/coverage/_models/control-models/http-settings.control-model.ts.html +172 -0
- package/coverage/_models/control-models/index.html +206 -0
- package/coverage/_models/control-models/system-control.control-model.ts.html +121 -0
- package/coverage/_modules/ai/_models/ai-input-interfaces.ts.html +436 -0
- package/coverage/_modules/ai/_models/index.html +116 -0
- package/coverage/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +1993 -0
- package/coverage/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +340 -0
- package/coverage/_modules/ai/_modules/document-ai/_collections/index.html +131 -0
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +523 -0
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +571 -0
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +382 -0
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/index.html +146 -0
- package/coverage/_modules/ai/_modules/open-ai/_collections/index.html +131 -0
- package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +331 -0
- package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +310 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/index.html +161 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +958 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +1801 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +1390 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +1915 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/index.html +146 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +334 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +1822 -0
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +2584 -0
- package/coverage/_modules/ai/_services/ai-embedding.service-base.ts.html +208 -0
- package/coverage/_modules/ai/_services/ai-llm-chat.service-base.ts.html +289 -0
- package/coverage/_modules/ai/_services/ai-llm.service-base.ts.html +1060 -0
- package/coverage/_modules/ai/_services/ai-provider.service-base.ts.html +172 -0
- package/coverage/_modules/ai/_services/index.html +161 -0
- package/coverage/_modules/assistant/_collections/ass.util.ts.html +235 -0
- package/coverage/_modules/assistant/_collections/index.html +116 -0
- package/coverage/_modules/assistant/_services/ass-io.control-service.ts.html +307 -0
- package/coverage/_modules/assistant/_services/ass-main.control-service.ts.html +406 -0
- package/coverage/_modules/assistant/_services/index.html +131 -0
- package/coverage/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +112 -0
- package/coverage/_modules/bot/_modules/discord-bot/_models/index.html +116 -0
- package/coverage/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +1978 -0
- package/coverage/_modules/bot/_modules/discord-bot/_services/index.html +116 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +250 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_collections/index.html +116 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +130 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_models/index.html +116 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +1414 -0
- package/coverage/_modules/bot/_modules/dynamo-bot/_services/index.html +116 -0
- package/coverage/_modules/bot/_modules/slack-bot/_models/index.html +116 -0
- package/coverage/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +112 -0
- package/coverage/_modules/bot/_modules/slack-bot/_services/index.html +116 -0
- package/coverage/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +664 -0
- package/coverage/_modules/bot/_modules/teams-bot/_models/index.html +116 -0
- package/coverage/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +112 -0
- package/coverage/_modules/bot/_modules/teams-bot/_services/index.html +116 -0
- package/coverage/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +664 -0
- package/coverage/_modules/bot/_services/bot-commands.control-service.ts.html +559 -0
- package/coverage/_modules/bot/_services/bot-io.control-service.ts.html +1072 -0
- package/coverage/_modules/bot/_services/bot-main.control-service.ts.html +1552 -0
- package/coverage/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +556 -0
- package/coverage/_modules/bot/_services/bot-routines.control-service.ts.html +319 -0
- package/coverage/_modules/bot/_services/index.html +176 -0
- package/coverage/_modules/custom-data/custom-data.controller.ts.html +292 -0
- package/coverage/_modules/custom-data/custom-data.data-service.ts.html +148 -0
- package/coverage/_modules/custom-data/get-custom-data-routing-module.util.ts.html +157 -0
- package/coverage/_modules/custom-data/index.html +146 -0
- package/coverage/_modules/defaults/_models/default-user.data-model.ts.html +301 -0
- package/coverage/_modules/defaults/_models/index.html +116 -0
- package/coverage/_modules/defaults/_services/default-auth.service.ts.html +616 -0
- package/coverage/_modules/defaults/_services/default-socket-events.service.ts.html +268 -0
- package/coverage/_modules/defaults/_services/default-user.data-service.ts.html +379 -0
- package/coverage/_modules/defaults/_services/index.html +146 -0
- package/coverage/_modules/discord-assistant/_collections/dias.util.ts.html +481 -0
- package/coverage/_modules/discord-assistant/_collections/index.html +116 -0
- package/coverage/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +241 -0
- package/coverage/_modules/discord-assistant/_models/index.html +116 -0
- package/coverage/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +616 -0
- package/coverage/_modules/discord-assistant/_services/dias-io.control-service.ts.html +292 -0
- package/coverage/_modules/discord-assistant/_services/dias-main.control-service.ts.html +166 -0
- package/coverage/_modules/discord-assistant/_services/dias.service-base.ts.html +313 -0
- package/coverage/_modules/discord-assistant/_services/index.html +161 -0
- package/coverage/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +118 -0
- package/coverage/_modules/discord-assistant-voiced/_services/index.html +116 -0
- package/coverage/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +250 -0
- package/coverage/_modules/discord-bot/_collections/dibo-operations.util.ts.html +1246 -0
- package/coverage/_modules/discord-bot/_collections/index.html +131 -0
- package/coverage/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +106 -0
- package/coverage/_modules/discord-bot/_models/index.html +116 -0
- package/coverage/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +544 -0
- package/coverage/_modules/discord-bot/_services/dibo-io.control-service.ts.html +1003 -0
- package/coverage/_modules/discord-bot/_services/dibo-main.control-service.ts.html +1546 -0
- package/coverage/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +376 -0
- package/coverage/_modules/discord-bot/_services/index.html +161 -0
- package/coverage/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +163 -0
- package/coverage/_modules/messaging/_collections/index.html +131 -0
- package/coverage/_modules/messaging/_collections/msg.util.ts.html +334 -0
- package/coverage/_modules/messaging/_services/index.html +191 -0
- package/coverage/_modules/messaging/_services/msg-conversation.data-service.ts.html +523 -0
- package/coverage/_modules/messaging/_services/msg-events.service.ts.html +886 -0
- package/coverage/_modules/messaging/_services/msg-integration.control-service.ts.html +622 -0
- package/coverage/_modules/messaging/_services/msg-main.control-service.ts.html +1738 -0
- package/coverage/_modules/messaging/_services/msg-message.data-service.ts.html +472 -0
- package/coverage/_modules/messaging/_services/msg.controller.ts.html +1195 -0
- package/coverage/_modules/mock/app-extended-server.mock.ts.html +688 -0
- package/coverage/_modules/mock/app-params.mock.ts.html +112 -0
- package/coverage/_modules/mock/app-server.mock.ts.html +649 -0
- package/coverage/_modules/mock/auth-service.mock.ts.html +169 -0
- package/coverage/_modules/mock/controller.mock.ts.html +133 -0
- package/coverage/_modules/mock/data-model.mock.ts.html +331 -0
- package/coverage/_modules/mock/email-service-collection.mock.ts.html +130 -0
- package/coverage/_modules/mock/email-service.mock.ts.html +145 -0
- package/coverage/_modules/mock/endpoint.mock.ts.html +358 -0
- package/coverage/_modules/mock/index.html +266 -0
- package/coverage/_modules/mock/socket-client.mock.ts.html +220 -0
- package/coverage/_modules/mock/socket-server.mock.ts.html +247 -0
- package/coverage/_modules/oauth2/_routes/index.html +116 -0
- package/coverage/_modules/oauth2/_routes/oauth2.controller.ts.html +379 -0
- package/coverage/_modules/oauth2/_services/index.html +131 -0
- package/coverage/_modules/oauth2/_services/oauth2.auth-service.ts.html +781 -0
- package/coverage/_modules/oauth2/_services/oauth2.control-service.ts.html +2044 -0
- package/coverage/_modules/server/errors/errors.control-service.ts.html +292 -0
- package/coverage/_modules/server/errors/errors.controller.ts.html +895 -0
- package/coverage/_modules/server/errors/errors.data-service.ts.html +1666 -0
- package/coverage/_modules/server/errors/index.html +146 -0
- package/coverage/_modules/server/server-status/index.html +161 -0
- package/coverage/_modules/server/server-status/server-status-snapshot.control-service.ts.html +136 -0
- package/coverage/_modules/server/server-status/server-status-snapshot.data-service.ts.html +196 -0
- package/coverage/_modules/server/server-status/server-status.control-service.ts.html +1093 -0
- package/coverage/_modules/server/server-status/server-status.controller.ts.html +478 -0
- package/coverage/_modules/socket/_models/index.html +146 -0
- package/coverage/_modules/socket/_models/socket-client-service-params.control-model.ts.html +151 -0
- package/coverage/_modules/socket/_models/socket-presence.control-model.ts.html +715 -0
- package/coverage/_modules/socket/_models/socket-server-service-params.control-model.ts.html +145 -0
- package/coverage/_modules/socket/_services/index.html +131 -0
- package/coverage/_modules/socket/_services/socket-client.service.ts.html +862 -0
- package/coverage/_modules/socket/_services/socket-server.service.ts.html +3196 -0
- package/coverage/_modules/socket/app-extended.server.ts.html +1954 -0
- package/coverage/_modules/socket/index.html +116 -0
- package/coverage/_modules/test/get-test-routing-module.util.ts.html +154 -0
- package/coverage/_modules/test/index.html +131 -0
- package/coverage/_modules/test/test.controller.ts.html +430 -0
- package/coverage/_modules/usage/get-usage-routing-module.util.ts.html +151 -0
- package/coverage/_modules/usage/index.html +146 -0
- package/coverage/_modules/usage/usage.controller.ts.html +463 -0
- package/coverage/_modules/usage/usage.data-service.ts.html +640 -0
- package/coverage/_services/base/api.service-base.ts.html +307 -0
- package/coverage/_services/base/archive-data.service.ts.html +727 -0
- package/coverage/_services/base/data.service.ts.html +7033 -0
- package/coverage/_services/base/db.service.ts.html +4786 -0
- package/coverage/_services/base/index.html +191 -0
- package/coverage/_services/base/singleton.service-base.ts.html +157 -0
- package/coverage/_services/base/singleton.service.ts.html +190 -0
- package/coverage/_services/core/api.service.ts.html +1900 -0
- package/coverage/_services/core/auth.service.ts.html +607 -0
- package/coverage/_services/core/email.service.ts.html +2302 -0
- package/coverage/_services/core/global.service.ts.html +1363 -0
- package/coverage/_services/core/index.html +176 -0
- package/coverage/_services/core/service-collection.service.ts.html +103 -0
- package/coverage/_services/index.html +116 -0
- package/coverage/_services/route/controller.service.ts.html +475 -0
- package/coverage/_services/route/index.html +131 -0
- package/coverage/_services/route/routing-module.service.ts.html +1075 -0
- package/coverage/_services/server/app.server.ts.html +4408 -0
- package/coverage/_services/server/index.html +116 -0
- package/coverage/_services/shared.static-service.ts.html +319 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +821 -0
- package/coverage/lcov-report/_collections/archive.util.ts.html +139 -0
- package/coverage/lcov-report/_collections/get-environment-settings.util.ts.html +229 -0
- package/coverage/lcov-report/_collections/index.html +146 -0
- package/coverage/lcov-report/_collections/star.controller.ts.html +472 -0
- package/coverage/lcov-report/_models/control-models/api-call-params.control-model.ts.html +511 -0
- package/coverage/lcov-report/_models/control-models/app-ext-system-controls.control-model.ts.html +112 -0
- package/coverage/lcov-report/_models/control-models/app-params.control-model.ts.html +475 -0
- package/coverage/lcov-report/_models/control-models/app-system-controls.control-model.ts.html +112 -0
- package/coverage/lcov-report/_models/control-models/endpoint-params.control-model.ts.html +1618 -0
- package/coverage/lcov-report/_models/control-models/http-settings.control-model.ts.html +172 -0
- package/coverage/lcov-report/_models/control-models/index.html +206 -0
- package/coverage/lcov-report/_models/control-models/system-control.control-model.ts.html +121 -0
- package/coverage/lcov-report/_modules/ai/_models/ai-input-interfaces.ts.html +436 -0
- package/coverage/lcov-report/_modules/ai/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +1993 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +340 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/index.html +131 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +523 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +571 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +382 -0
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/index.html +146 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/index.html +131 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +331 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +310 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/index.html +161 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +958 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +1801 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +1390 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +1915 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/index.html +146 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +334 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +1822 -0
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +2584 -0
- package/coverage/lcov-report/_modules/ai/_services/ai-embedding.service-base.ts.html +208 -0
- package/coverage/lcov-report/_modules/ai/_services/ai-llm-chat.service-base.ts.html +289 -0
- package/coverage/lcov-report/_modules/ai/_services/ai-llm.service-base.ts.html +1060 -0
- package/coverage/lcov-report/_modules/ai/_services/ai-provider.service-base.ts.html +172 -0
- package/coverage/lcov-report/_modules/ai/_services/index.html +161 -0
- package/coverage/lcov-report/_modules/assistant/_collections/ass.util.ts.html +235 -0
- package/coverage/lcov-report/_modules/assistant/_collections/index.html +116 -0
- package/coverage/lcov-report/_modules/assistant/_services/ass-io.control-service.ts.html +307 -0
- package/coverage/lcov-report/_modules/assistant/_services/ass-main.control-service.ts.html +406 -0
- package/coverage/lcov-report/_modules/assistant/_services/index.html +131 -0
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +112 -0
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +1978 -0
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +250 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +130 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +1414 -0
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +112 -0
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +664 -0
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +112 -0
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/index.html +116 -0
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +664 -0
- package/coverage/lcov-report/_modules/bot/_services/bot-commands.control-service.ts.html +559 -0
- package/coverage/lcov-report/_modules/bot/_services/bot-io.control-service.ts.html +1072 -0
- package/coverage/lcov-report/_modules/bot/_services/bot-main.control-service.ts.html +1552 -0
- package/coverage/lcov-report/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +556 -0
- package/coverage/lcov-report/_modules/bot/_services/bot-routines.control-service.ts.html +319 -0
- package/coverage/lcov-report/_modules/bot/_services/index.html +176 -0
- package/coverage/lcov-report/_modules/custom-data/custom-data.controller.ts.html +292 -0
- package/coverage/lcov-report/_modules/custom-data/custom-data.data-service.ts.html +148 -0
- package/coverage/lcov-report/_modules/custom-data/get-custom-data-routing-module.util.ts.html +157 -0
- package/coverage/lcov-report/_modules/custom-data/index.html +146 -0
- package/coverage/lcov-report/_modules/defaults/_models/default-user.data-model.ts.html +301 -0
- package/coverage/lcov-report/_modules/defaults/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/defaults/_services/default-auth.service.ts.html +616 -0
- package/coverage/lcov-report/_modules/defaults/_services/default-socket-events.service.ts.html +268 -0
- package/coverage/lcov-report/_modules/defaults/_services/default-user.data-service.ts.html +379 -0
- package/coverage/lcov-report/_modules/defaults/_services/index.html +146 -0
- package/coverage/lcov-report/_modules/discord-assistant/_collections/dias.util.ts.html +481 -0
- package/coverage/lcov-report/_modules/discord-assistant/_collections/index.html +116 -0
- package/coverage/lcov-report/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +241 -0
- package/coverage/lcov-report/_modules/discord-assistant/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +616 -0
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-io.control-service.ts.html +292 -0
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-main.control-service.ts.html +166 -0
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias.service-base.ts.html +313 -0
- package/coverage/lcov-report/_modules/discord-assistant/_services/index.html +161 -0
- package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +118 -0
- package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/index.html +116 -0
- package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +250 -0
- package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-operations.util.ts.html +1246 -0
- package/coverage/lcov-report/_modules/discord-bot/_collections/index.html +131 -0
- package/coverage/lcov-report/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +106 -0
- package/coverage/lcov-report/_modules/discord-bot/_models/index.html +116 -0
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +544 -0
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-io.control-service.ts.html +1003 -0
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-main.control-service.ts.html +1546 -0
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +376 -0
- package/coverage/lcov-report/_modules/discord-bot/_services/index.html +161 -0
- package/coverage/lcov-report/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +163 -0
- package/coverage/lcov-report/_modules/messaging/_collections/index.html +131 -0
- package/coverage/lcov-report/_modules/messaging/_collections/msg.util.ts.html +334 -0
- package/coverage/lcov-report/_modules/messaging/_services/index.html +191 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg-conversation.data-service.ts.html +523 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg-events.service.ts.html +886 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg-integration.control-service.ts.html +622 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg-main.control-service.ts.html +1738 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg-message.data-service.ts.html +472 -0
- package/coverage/lcov-report/_modules/messaging/_services/msg.controller.ts.html +1195 -0
- package/coverage/lcov-report/_modules/mock/app-extended-server.mock.ts.html +688 -0
- package/coverage/lcov-report/_modules/mock/app-params.mock.ts.html +112 -0
- package/coverage/lcov-report/_modules/mock/app-server.mock.ts.html +649 -0
- package/coverage/lcov-report/_modules/mock/auth-service.mock.ts.html +169 -0
- package/coverage/lcov-report/_modules/mock/controller.mock.ts.html +133 -0
- package/coverage/lcov-report/_modules/mock/data-model.mock.ts.html +331 -0
- package/coverage/lcov-report/_modules/mock/email-service-collection.mock.ts.html +130 -0
- package/coverage/lcov-report/_modules/mock/email-service.mock.ts.html +145 -0
- package/coverage/lcov-report/_modules/mock/endpoint.mock.ts.html +358 -0
- package/coverage/lcov-report/_modules/mock/index.html +266 -0
- package/coverage/lcov-report/_modules/mock/socket-client.mock.ts.html +220 -0
- package/coverage/lcov-report/_modules/mock/socket-server.mock.ts.html +247 -0
- package/coverage/lcov-report/_modules/oauth2/_routes/index.html +116 -0
- package/coverage/lcov-report/_modules/oauth2/_routes/oauth2.controller.ts.html +379 -0
- package/coverage/lcov-report/_modules/oauth2/_services/index.html +131 -0
- package/coverage/lcov-report/_modules/oauth2/_services/oauth2.auth-service.ts.html +781 -0
- package/coverage/lcov-report/_modules/oauth2/_services/oauth2.control-service.ts.html +2044 -0
- package/coverage/lcov-report/_modules/server/errors/errors.control-service.ts.html +292 -0
- package/coverage/lcov-report/_modules/server/errors/errors.controller.ts.html +895 -0
- package/coverage/lcov-report/_modules/server/errors/errors.data-service.ts.html +1666 -0
- package/coverage/lcov-report/_modules/server/errors/index.html +146 -0
- package/coverage/lcov-report/_modules/server/server-status/index.html +161 -0
- package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.control-service.ts.html +136 -0
- package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.data-service.ts.html +196 -0
- package/coverage/lcov-report/_modules/server/server-status/server-status.control-service.ts.html +1093 -0
- package/coverage/lcov-report/_modules/server/server-status/server-status.controller.ts.html +478 -0
- package/coverage/lcov-report/_modules/socket/_models/index.html +146 -0
- package/coverage/lcov-report/_modules/socket/_models/socket-client-service-params.control-model.ts.html +151 -0
- package/coverage/lcov-report/_modules/socket/_models/socket-presence.control-model.ts.html +715 -0
- package/coverage/lcov-report/_modules/socket/_models/socket-server-service-params.control-model.ts.html +145 -0
- package/coverage/lcov-report/_modules/socket/_services/index.html +131 -0
- package/coverage/lcov-report/_modules/socket/_services/socket-client.service.ts.html +862 -0
- package/coverage/lcov-report/_modules/socket/_services/socket-server.service.ts.html +3196 -0
- package/coverage/lcov-report/_modules/socket/app-extended.server.ts.html +1954 -0
- package/coverage/lcov-report/_modules/socket/index.html +116 -0
- package/coverage/lcov-report/_modules/test/get-test-routing-module.util.ts.html +154 -0
- package/coverage/lcov-report/_modules/test/index.html +131 -0
- package/coverage/lcov-report/_modules/test/test.controller.ts.html +430 -0
- package/coverage/lcov-report/_modules/usage/get-usage-routing-module.util.ts.html +151 -0
- package/coverage/lcov-report/_modules/usage/index.html +146 -0
- package/coverage/lcov-report/_modules/usage/usage.controller.ts.html +463 -0
- package/coverage/lcov-report/_modules/usage/usage.data-service.ts.html +640 -0
- package/coverage/lcov-report/_services/base/api.service-base.ts.html +307 -0
- package/coverage/lcov-report/_services/base/archive-data.service.ts.html +727 -0
- package/coverage/lcov-report/_services/base/data.service.ts.html +7033 -0
- package/coverage/lcov-report/_services/base/db.service.ts.html +4786 -0
- package/coverage/lcov-report/_services/base/index.html +191 -0
- package/coverage/lcov-report/_services/base/singleton.service-base.ts.html +157 -0
- package/coverage/lcov-report/_services/base/singleton.service.ts.html +190 -0
- package/coverage/lcov-report/_services/core/api.service.ts.html +1900 -0
- package/coverage/lcov-report/_services/core/auth.service.ts.html +607 -0
- package/coverage/lcov-report/_services/core/email.service.ts.html +2302 -0
- package/coverage/lcov-report/_services/core/global.service.ts.html +1363 -0
- package/coverage/lcov-report/_services/core/index.html +176 -0
- package/coverage/lcov-report/_services/core/service-collection.service.ts.html +103 -0
- package/coverage/lcov-report/_services/index.html +116 -0
- package/coverage/lcov-report/_services/route/controller.service.ts.html +475 -0
- package/coverage/lcov-report/_services/route/index.html +131 -0
- package/coverage/lcov-report/_services/route/routing-module.service.ts.html +1075 -0
- package/coverage/lcov-report/_services/server/app.server.ts.html +4408 -0
- package/coverage/lcov-report/_services/server/index.html +116 -0
- package/coverage/lcov-report/_services/shared.static-service.ts.html +319 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +821 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +29957 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/tmp/coverage-111712-1762988673351-0.json +1 -0
- package/coverage/tmp/coverage-112308-1762988673527-0.json +1 -0
- package/coverage/tmp/coverage-112324-1762988615026-0.json +1 -0
- package/coverage/tmp/coverage-112436-1762988615438-0.json +1 -0
- package/coverage/tmp/coverage-112512-1762988673477-0.json +1 -0
- package/eslint.config.js +3 -3
- package/logs/cicd-job.json +3 -0
- package/logs/cicd-output.log +31 -0
- package/logs/cicd-report.json +148 -0
- package/logs/cicd-status.json +70 -0
- package/nodemon.json +24 -24
- package/package.json +2 -2
- package/pnpm-workspace.yaml +5 -5
- package/scripts/run-coverage-tests.js +28 -28
- package/spec/support/helpers/spec-reporter-loader.js +359 -359
- package/spec/support/helpers/ts-node-helper.js +93 -93
- package/spec/support/jasmine.coverage.json +24 -24
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/archive.util.spec.ts +57 -57
- package/src/_collections/archive.util.ts +18 -18
- package/src/_collections/atlas-default-db-options.const.ts +9 -9
- package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
- package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
- package/src/_collections/default-not-found-page.const.spec.ts +19 -19
- package/src/_collections/default-not-found-page.const.ts +22 -22
- package/src/_collections/default-socket-path.const.spec.ts +12 -12
- package/src/_collections/default-socket-path.const.ts +2 -2
- package/src/_collections/get-environment-settings.util.spec.ts +210 -210
- package/src/_collections/get-environment-settings.util.ts +48 -48
- package/src/_collections/global-settings.const.ts +126 -126
- package/src/_collections/sample.env +21 -21
- package/src/_collections/signed-url.util.spec.ts +198 -198
- package/src/_collections/signed-url.util.ts +170 -170
- package/src/_collections/star.controller.spec.ts +224 -224
- package/src/_collections/star.controller.ts +129 -129
- package/src/_enums/data-model-type.enum.ts +14 -14
- package/src/_enums/data-service-function.enum.ts +24 -24
- package/src/_enums/predefined-data-types.enum.ts +16 -16
- package/src/_enums/route-security.enum.ts +12 -12
- package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
- package/src/_models/control-models/api-call-params.control-model.ts +142 -142
- package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
- package/src/_models/control-models/app-params.control-model.ts +136 -136
- package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
- package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/endpoint-params.control-model.spec.ts +669 -669
- package/src/_models/control-models/endpoint-params.control-model.ts +664 -664
- package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
- package/src/_models/control-models/http-settings.control-model.ts +37 -37
- package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
- package/src/_models/control-models/system-control.control-model.ts +12 -12
- package/src/_models/interfaces/certification-settings.interface.ts +7 -7
- package/src/_models/interfaces/environment-settings.interface.ts +59 -59
- package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
- package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
- package/src/_models/interfaces/global-settings.interface.ts +294 -294
- package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
- package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
- package/src/_models/interfaces/static-client-settings.interface.ts +36 -36
- package/src/_models/types/db-update.type.ts +100 -100
- package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
- package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +115 -115
- package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +233 -233
- package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
- package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +518 -518
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
- package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
- package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
- package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
- package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
- package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
- package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1085 -1085
- package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
- package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
- package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
- package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
- package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
- package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
- package/src/_modules/ai/_services/ai-llm.service-base.ts +599 -599
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
- package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +371 -371
- package/src/_modules/ai/index.ts +33 -33
- package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
- package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
- package/src/_modules/assistant/_collections/ass.util.ts +50 -50
- package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
- package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
- package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
- package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
- package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
- package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
- package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
- package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
- package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
- package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
- package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
- package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
- package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
- package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
- package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
- package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
- package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
- package/src/_modules/custom-data/custom-data.controller.ts +67 -67
- package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
- package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
- package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
- package/src/_modules/custom-data/index.ts +9 -9
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +161 -161
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
- package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
- package/src/_modules/data-readers/index.ts +11 -11
- package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
- package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
- package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
- package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
- package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
- package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
- package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
- package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
- package/src/_modules/defaults/index.ts +17 -17
- package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
- package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
- package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
- package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
- package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
- package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
- package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
- package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
- package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
- package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
- package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
- package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
- package/src/_modules/discord-assistant/index.ts +38 -38
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
- package/src/_modules/discord-assistant-voiced/index.ts +36 -36
- package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
- package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
- package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
- package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
- package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
- package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
- package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
- package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
- package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
- package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
- package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
- package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
- package/src/_modules/discord-bot/index.ts +36 -36
- package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
- package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +59 -59
- package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +214 -214
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +186 -186
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +130 -130
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +509 -509
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +323 -323
- package/src/_modules/local-vector-search/index.ts +16 -16
- package/src/_modules/logs/index.ts +11 -11
- package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +142 -142
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +120 -120
- package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
- package/src/_modules/mcp/index.ts +13 -13
- package/src/_modules/messaging/README.md +354 -354
- package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
- package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
- package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
- package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
- package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
- package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
- package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
- package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
- package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
- package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
- package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
- package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
- package/src/_modules/messaging/index.ts +30 -30
- package/src/_modules/mock/app-extended-server.mock.ts +201 -201
- package/src/_modules/mock/app-integration-test.mock.ts +51 -51
- package/src/_modules/mock/app-params.mock.spec.ts +21 -21
- package/src/_modules/mock/app-params.mock.ts +9 -9
- package/src/_modules/mock/app-server.mock.ts +188 -188
- package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
- package/src/_modules/mock/auth-service.mock.ts +28 -28
- package/src/_modules/mock/controller.mock.spec.ts +26 -26
- package/src/_modules/mock/controller.mock.ts +16 -16
- package/src/_modules/mock/data-model.mock.spec.ts +111 -111
- package/src/_modules/mock/data-model.mock.ts +82 -82
- package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
- package/src/_modules/mock/email-service-collection.mock.ts +15 -15
- package/src/_modules/mock/email-service.mock.spec.ts +17 -17
- package/src/_modules/mock/email-service.mock.ts +20 -20
- package/src/_modules/mock/email-template.mock.html +14 -14
- package/src/_modules/mock/endpoint.mock.ts +91 -91
- package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
- package/src/_modules/mock/socket-client.mock.ts +45 -45
- package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
- package/src/_modules/mock/socket-server.mock.ts +46 -46
- package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
- package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
- package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
- package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
- package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
- package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
- package/src/_modules/oauth2/index.ts +17 -17
- package/src/_modules/scheduler/_models/scheduler-job.interface.ts +35 -35
- package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +33 -33
- package/src/_modules/scheduler/index.ts +8 -8
- package/src/_modules/scheduler/scheduler.controller.spec.ts +42 -42
- package/src/_modules/scheduler/scheduler.controller.ts +69 -69
- package/src/_modules/scheduler/scheduler.service.spec.ts +141 -141
- package/src/_modules/scheduler/scheduler.service.ts +176 -176
- package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
- package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +81 -81
- package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +306 -306
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +295 -295
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +118 -118
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +105 -105
- package/src/_modules/scoped-config/index.ts +17 -17
- package/src/_modules/server/errors/errors.control-service.spec.ts +238 -238
- package/src/_modules/server/errors/errors.control-service.ts +100 -100
- package/src/_modules/server/errors/errors.controller.ts +559 -559
- package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
- package/src/_modules/server/index.ts +30 -30
- package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
- package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
- package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
- package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +672 -672
- package/src/_modules/server/server-status/server-status.control-service.ts +490 -490
- package/src/_modules/server/server-status/server-status.controller.spec.ts +276 -276
- package/src/_modules/server/server-status/server-status.controller.ts +336 -336
- package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
- package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
- package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +159 -158
- package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -209
- package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +69 -69
- package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
- package/src/_modules/socket/_services/socket-client.service.ts +260 -260
- package/src/_modules/socket/_services/socket-server.service.spec.ts +264 -3
- package/src/_modules/socket/_services/socket-server.service.ts +41 -74
- package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
- package/src/_modules/socket/app-extended.server.ts +648 -648
- package/src/_modules/socket/index.ts +42 -42
- package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
- package/src/_modules/test/get-test-routing-module.util.ts +23 -23
- package/src/_modules/test/index.ts +11 -11
- package/src/_modules/test/test.controller.spec.ts +72 -72
- package/src/_modules/test/test.controller.ts +115 -115
- package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
- package/src/_modules/usage/index.ts +15 -15
- package/src/_modules/usage/usage.controller.spec.ts +106 -106
- package/src/_modules/usage/usage.controller.ts +140 -140
- package/src/_modules/usage/usage.data-service.spec.ts +332 -332
- package/src/_modules/usage/usage.data-service.ts +185 -185
- package/src/_services/base/api.service-base.spec.ts +125 -125
- package/src/_services/base/api.service-base.ts +74 -74
- package/src/_services/base/archive-data.service.spec.ts +209 -209
- package/src/_services/base/archive-data.service.ts +223 -223
- package/src/_services/base/data.service.spec.ts +784 -784
- package/src/_services/base/data.service.ts +2792 -2792
- package/src/_services/base/db.service.spec.ts +160 -160
- package/src/_services/base/db.service.ts +1698 -1698
- package/src/_services/base/singleton.service-base.spec.ts +28 -28
- package/src/_services/base/singleton.service-base.ts +24 -24
- package/src/_services/base/singleton.service.spec.ts +114 -114
- package/src/_services/base/singleton.service.ts +38 -38
- package/src/_services/core/api.service.spec.ts +140 -140
- package/src/_services/core/auth.service.spec.ts +159 -159
- package/src/_services/core/auth.service.ts +174 -174
- package/src/_services/core/email.service.spec.ts +85 -85
- package/src/_services/core/email.service.ts +757 -757
- package/src/_services/core/global.service.spec.ts +292 -292
- package/src/_services/core/global.service.ts +487 -487
- package/src/_services/core/memory-guard.service.spec.ts +245 -245
- package/src/_services/core/memory-guard.service.ts +481 -481
- package/src/_services/core/service-collection.service.spec.ts +46 -46
- package/src/_services/core/service-collection.service.ts +6 -6
- package/src/_services/route/controller.service.spec.ts +53 -53
- package/src/_services/route/controller.service.ts +148 -148
- package/src/_services/route/routing-module.service.spec.ts +98 -98
- package/src/_services/route/routing-module.service.ts +330 -330
- package/src/_services/server/app.server.ts +2012 -2012
- package/src/_services/shared.static-service.spec.ts +99 -99
- package/src/_services/shared.static-service.ts +78 -78
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +42 -42
- package/.dynamo/logs/cicd-pipeline/output.log +0 -2862
- package/.dynamo/logs/cicd-pipeline/status.json +0 -74
- package/__documentations/2026-04-28-logs-module.md +0 -49
- package/__documentations/2026-05-17-oai-compatible-providers.md +0 -229
- package/__documentations/2026-05-17-static-client-serving-howto.md +0 -144
- package/__documentations/2026-06-01-fr041-cors-middleware.md +0 -96
- package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +0 -81
- package/__documentations/2026-06-15-fr193-memory-guard.md +0 -73
- package/__documentations/2026-08-08-fr292-app-version-header.md +0 -38
- package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +0 -124
- package/__documentations/nts-integration-tests-2026-03-17.md +0 -26
- package/__documentations/plans/BEDROCK-HYPERPLAN.md +0 -95
|
@@ -0,0 +1,4408 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for _services/server/app.server.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">_services/server</a> app.server.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">50.86% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>733/1441</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">36.63% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>37/101</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">62.96% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>17/27</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">50.86% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>733/1441</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
+
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
+
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
+
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
+
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
+
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
+
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
+
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
+
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
+
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
+
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
+
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
+
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
+
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
+
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
+
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
+
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
+
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
+
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
+
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
+
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
+
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
+
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
+
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
+
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
+
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
+
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
+
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
+
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
+
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
+
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
+
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
+
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
+
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
+
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
+
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
+
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
+
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
+
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
+
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
+
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
+
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
+
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
+
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
+
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
+
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
+
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
+
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
+
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
+
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
+
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
+
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
+
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
+
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
+
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
+
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
+
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
+
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
+
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
+
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
+
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
+
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
+
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
+
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
+
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
+
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
+
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
+
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
+
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
+
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
+
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
+
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
+
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
+
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
+
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
+
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
+
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
+
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
+
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
+
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
+
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
+
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
+
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
+
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
+
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
+
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
+
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
+
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
+
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
+
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
+
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
+
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
+
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
+
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
+
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
+
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
+
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
+
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
+
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
+
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
+
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
+
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
+
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
+
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
+
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
+
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
+
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
+
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
+
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
+
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
+
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
+
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
+
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
+
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
+
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
+
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
+
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
+
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
+
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
+
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
+
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
+
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
+
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
+
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
+
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
+
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
+
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
+
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
+
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
+
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
+
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
+
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
+
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
+
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
+
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
+
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
+
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
+
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
+
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
+
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
+
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
+
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
+
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
+
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
+
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
+
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
+
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
+
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
+
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
+
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
+
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
+
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
+
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
+
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
+
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
+
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
+
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
+
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
+
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
+
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
+
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
+
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
+
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
+
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
+
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
+
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
+
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
+
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
+
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
+
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
+
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
+
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
+
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
+
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
+
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
+
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
+
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
+
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
+
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
+
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
+
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
+
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
+
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
+
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
+
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
+
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
+
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
+
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
+
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
+
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
+
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
+
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
+
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
+
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
+
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
+
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
+
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
+
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
+
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
+
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
+
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
+
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
+
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
+
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
+
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
+
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
+
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
+
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
+
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
+
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
+
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
+
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
+
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
+
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
+
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
+
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
+
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
+
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
+
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
+
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
+
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
+
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
+
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
+
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
+
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
+
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
+
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
+
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
+
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
+
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
+
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
+
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
+
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
+
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
+
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
+
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
+
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
+
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
+
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
+
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
+
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
+
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
+
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
+
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
+
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
+
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
+
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
+
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
+
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
+
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
+
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
+
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
+
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
+
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
+
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
+
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
+
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
+
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
+
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
+
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
+
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
+
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
+
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
+
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
+
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
+
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
+
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
+
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
+
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
+
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
+
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
+
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
+
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
+
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
+
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
+
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
+
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
+
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
+
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
+
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
+
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
+
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
+
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
+
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
+
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
+
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
+
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
+
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
+
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
+
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
+
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
+
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
+
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
+
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
+
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
+
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
+
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
+
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
+
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
+
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
+
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
+
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
+
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
+
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
+
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
+
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
+
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
+
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
+
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
+
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
+
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
+
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
+
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
+
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
+
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
+
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
+
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
+
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
+
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
+
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
+
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
+
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
+
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
+
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
+
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
+
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
+
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
+
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
+
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
+
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
+
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
+
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
+
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
+
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
+
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
+
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
+
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
+
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
+
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
+
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
+
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
+
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
+
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
+
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
+
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
+
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
+
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
+
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
+
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
+
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
+
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
+
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
+
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
+
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
+
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
+
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
+
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
+
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
+
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
+
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
+
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
+
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
+
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
+
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
+
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
+
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
+
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
+
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
+
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
+
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
+
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
+
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
+
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
+
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
+
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
+
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
+
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
+
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
+
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
+
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
+
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
+
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
+
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
+
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
+
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
+
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
+
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
+
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
+
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
+
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
+
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
+
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
+
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
+
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
+
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
+
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
+
<a name='L1127'></a><a href='#L1127'>1127</a>
|
|
1193
|
+
<a name='L1128'></a><a href='#L1128'>1128</a>
|
|
1194
|
+
<a name='L1129'></a><a href='#L1129'>1129</a>
|
|
1195
|
+
<a name='L1130'></a><a href='#L1130'>1130</a>
|
|
1196
|
+
<a name='L1131'></a><a href='#L1131'>1131</a>
|
|
1197
|
+
<a name='L1132'></a><a href='#L1132'>1132</a>
|
|
1198
|
+
<a name='L1133'></a><a href='#L1133'>1133</a>
|
|
1199
|
+
<a name='L1134'></a><a href='#L1134'>1134</a>
|
|
1200
|
+
<a name='L1135'></a><a href='#L1135'>1135</a>
|
|
1201
|
+
<a name='L1136'></a><a href='#L1136'>1136</a>
|
|
1202
|
+
<a name='L1137'></a><a href='#L1137'>1137</a>
|
|
1203
|
+
<a name='L1138'></a><a href='#L1138'>1138</a>
|
|
1204
|
+
<a name='L1139'></a><a href='#L1139'>1139</a>
|
|
1205
|
+
<a name='L1140'></a><a href='#L1140'>1140</a>
|
|
1206
|
+
<a name='L1141'></a><a href='#L1141'>1141</a>
|
|
1207
|
+
<a name='L1142'></a><a href='#L1142'>1142</a>
|
|
1208
|
+
<a name='L1143'></a><a href='#L1143'>1143</a>
|
|
1209
|
+
<a name='L1144'></a><a href='#L1144'>1144</a>
|
|
1210
|
+
<a name='L1145'></a><a href='#L1145'>1145</a>
|
|
1211
|
+
<a name='L1146'></a><a href='#L1146'>1146</a>
|
|
1212
|
+
<a name='L1147'></a><a href='#L1147'>1147</a>
|
|
1213
|
+
<a name='L1148'></a><a href='#L1148'>1148</a>
|
|
1214
|
+
<a name='L1149'></a><a href='#L1149'>1149</a>
|
|
1215
|
+
<a name='L1150'></a><a href='#L1150'>1150</a>
|
|
1216
|
+
<a name='L1151'></a><a href='#L1151'>1151</a>
|
|
1217
|
+
<a name='L1152'></a><a href='#L1152'>1152</a>
|
|
1218
|
+
<a name='L1153'></a><a href='#L1153'>1153</a>
|
|
1219
|
+
<a name='L1154'></a><a href='#L1154'>1154</a>
|
|
1220
|
+
<a name='L1155'></a><a href='#L1155'>1155</a>
|
|
1221
|
+
<a name='L1156'></a><a href='#L1156'>1156</a>
|
|
1222
|
+
<a name='L1157'></a><a href='#L1157'>1157</a>
|
|
1223
|
+
<a name='L1158'></a><a href='#L1158'>1158</a>
|
|
1224
|
+
<a name='L1159'></a><a href='#L1159'>1159</a>
|
|
1225
|
+
<a name='L1160'></a><a href='#L1160'>1160</a>
|
|
1226
|
+
<a name='L1161'></a><a href='#L1161'>1161</a>
|
|
1227
|
+
<a name='L1162'></a><a href='#L1162'>1162</a>
|
|
1228
|
+
<a name='L1163'></a><a href='#L1163'>1163</a>
|
|
1229
|
+
<a name='L1164'></a><a href='#L1164'>1164</a>
|
|
1230
|
+
<a name='L1165'></a><a href='#L1165'>1165</a>
|
|
1231
|
+
<a name='L1166'></a><a href='#L1166'>1166</a>
|
|
1232
|
+
<a name='L1167'></a><a href='#L1167'>1167</a>
|
|
1233
|
+
<a name='L1168'></a><a href='#L1168'>1168</a>
|
|
1234
|
+
<a name='L1169'></a><a href='#L1169'>1169</a>
|
|
1235
|
+
<a name='L1170'></a><a href='#L1170'>1170</a>
|
|
1236
|
+
<a name='L1171'></a><a href='#L1171'>1171</a>
|
|
1237
|
+
<a name='L1172'></a><a href='#L1172'>1172</a>
|
|
1238
|
+
<a name='L1173'></a><a href='#L1173'>1173</a>
|
|
1239
|
+
<a name='L1174'></a><a href='#L1174'>1174</a>
|
|
1240
|
+
<a name='L1175'></a><a href='#L1175'>1175</a>
|
|
1241
|
+
<a name='L1176'></a><a href='#L1176'>1176</a>
|
|
1242
|
+
<a name='L1177'></a><a href='#L1177'>1177</a>
|
|
1243
|
+
<a name='L1178'></a><a href='#L1178'>1178</a>
|
|
1244
|
+
<a name='L1179'></a><a href='#L1179'>1179</a>
|
|
1245
|
+
<a name='L1180'></a><a href='#L1180'>1180</a>
|
|
1246
|
+
<a name='L1181'></a><a href='#L1181'>1181</a>
|
|
1247
|
+
<a name='L1182'></a><a href='#L1182'>1182</a>
|
|
1248
|
+
<a name='L1183'></a><a href='#L1183'>1183</a>
|
|
1249
|
+
<a name='L1184'></a><a href='#L1184'>1184</a>
|
|
1250
|
+
<a name='L1185'></a><a href='#L1185'>1185</a>
|
|
1251
|
+
<a name='L1186'></a><a href='#L1186'>1186</a>
|
|
1252
|
+
<a name='L1187'></a><a href='#L1187'>1187</a>
|
|
1253
|
+
<a name='L1188'></a><a href='#L1188'>1188</a>
|
|
1254
|
+
<a name='L1189'></a><a href='#L1189'>1189</a>
|
|
1255
|
+
<a name='L1190'></a><a href='#L1190'>1190</a>
|
|
1256
|
+
<a name='L1191'></a><a href='#L1191'>1191</a>
|
|
1257
|
+
<a name='L1192'></a><a href='#L1192'>1192</a>
|
|
1258
|
+
<a name='L1193'></a><a href='#L1193'>1193</a>
|
|
1259
|
+
<a name='L1194'></a><a href='#L1194'>1194</a>
|
|
1260
|
+
<a name='L1195'></a><a href='#L1195'>1195</a>
|
|
1261
|
+
<a name='L1196'></a><a href='#L1196'>1196</a>
|
|
1262
|
+
<a name='L1197'></a><a href='#L1197'>1197</a>
|
|
1263
|
+
<a name='L1198'></a><a href='#L1198'>1198</a>
|
|
1264
|
+
<a name='L1199'></a><a href='#L1199'>1199</a>
|
|
1265
|
+
<a name='L1200'></a><a href='#L1200'>1200</a>
|
|
1266
|
+
<a name='L1201'></a><a href='#L1201'>1201</a>
|
|
1267
|
+
<a name='L1202'></a><a href='#L1202'>1202</a>
|
|
1268
|
+
<a name='L1203'></a><a href='#L1203'>1203</a>
|
|
1269
|
+
<a name='L1204'></a><a href='#L1204'>1204</a>
|
|
1270
|
+
<a name='L1205'></a><a href='#L1205'>1205</a>
|
|
1271
|
+
<a name='L1206'></a><a href='#L1206'>1206</a>
|
|
1272
|
+
<a name='L1207'></a><a href='#L1207'>1207</a>
|
|
1273
|
+
<a name='L1208'></a><a href='#L1208'>1208</a>
|
|
1274
|
+
<a name='L1209'></a><a href='#L1209'>1209</a>
|
|
1275
|
+
<a name='L1210'></a><a href='#L1210'>1210</a>
|
|
1276
|
+
<a name='L1211'></a><a href='#L1211'>1211</a>
|
|
1277
|
+
<a name='L1212'></a><a href='#L1212'>1212</a>
|
|
1278
|
+
<a name='L1213'></a><a href='#L1213'>1213</a>
|
|
1279
|
+
<a name='L1214'></a><a href='#L1214'>1214</a>
|
|
1280
|
+
<a name='L1215'></a><a href='#L1215'>1215</a>
|
|
1281
|
+
<a name='L1216'></a><a href='#L1216'>1216</a>
|
|
1282
|
+
<a name='L1217'></a><a href='#L1217'>1217</a>
|
|
1283
|
+
<a name='L1218'></a><a href='#L1218'>1218</a>
|
|
1284
|
+
<a name='L1219'></a><a href='#L1219'>1219</a>
|
|
1285
|
+
<a name='L1220'></a><a href='#L1220'>1220</a>
|
|
1286
|
+
<a name='L1221'></a><a href='#L1221'>1221</a>
|
|
1287
|
+
<a name='L1222'></a><a href='#L1222'>1222</a>
|
|
1288
|
+
<a name='L1223'></a><a href='#L1223'>1223</a>
|
|
1289
|
+
<a name='L1224'></a><a href='#L1224'>1224</a>
|
|
1290
|
+
<a name='L1225'></a><a href='#L1225'>1225</a>
|
|
1291
|
+
<a name='L1226'></a><a href='#L1226'>1226</a>
|
|
1292
|
+
<a name='L1227'></a><a href='#L1227'>1227</a>
|
|
1293
|
+
<a name='L1228'></a><a href='#L1228'>1228</a>
|
|
1294
|
+
<a name='L1229'></a><a href='#L1229'>1229</a>
|
|
1295
|
+
<a name='L1230'></a><a href='#L1230'>1230</a>
|
|
1296
|
+
<a name='L1231'></a><a href='#L1231'>1231</a>
|
|
1297
|
+
<a name='L1232'></a><a href='#L1232'>1232</a>
|
|
1298
|
+
<a name='L1233'></a><a href='#L1233'>1233</a>
|
|
1299
|
+
<a name='L1234'></a><a href='#L1234'>1234</a>
|
|
1300
|
+
<a name='L1235'></a><a href='#L1235'>1235</a>
|
|
1301
|
+
<a name='L1236'></a><a href='#L1236'>1236</a>
|
|
1302
|
+
<a name='L1237'></a><a href='#L1237'>1237</a>
|
|
1303
|
+
<a name='L1238'></a><a href='#L1238'>1238</a>
|
|
1304
|
+
<a name='L1239'></a><a href='#L1239'>1239</a>
|
|
1305
|
+
<a name='L1240'></a><a href='#L1240'>1240</a>
|
|
1306
|
+
<a name='L1241'></a><a href='#L1241'>1241</a>
|
|
1307
|
+
<a name='L1242'></a><a href='#L1242'>1242</a>
|
|
1308
|
+
<a name='L1243'></a><a href='#L1243'>1243</a>
|
|
1309
|
+
<a name='L1244'></a><a href='#L1244'>1244</a>
|
|
1310
|
+
<a name='L1245'></a><a href='#L1245'>1245</a>
|
|
1311
|
+
<a name='L1246'></a><a href='#L1246'>1246</a>
|
|
1312
|
+
<a name='L1247'></a><a href='#L1247'>1247</a>
|
|
1313
|
+
<a name='L1248'></a><a href='#L1248'>1248</a>
|
|
1314
|
+
<a name='L1249'></a><a href='#L1249'>1249</a>
|
|
1315
|
+
<a name='L1250'></a><a href='#L1250'>1250</a>
|
|
1316
|
+
<a name='L1251'></a><a href='#L1251'>1251</a>
|
|
1317
|
+
<a name='L1252'></a><a href='#L1252'>1252</a>
|
|
1318
|
+
<a name='L1253'></a><a href='#L1253'>1253</a>
|
|
1319
|
+
<a name='L1254'></a><a href='#L1254'>1254</a>
|
|
1320
|
+
<a name='L1255'></a><a href='#L1255'>1255</a>
|
|
1321
|
+
<a name='L1256'></a><a href='#L1256'>1256</a>
|
|
1322
|
+
<a name='L1257'></a><a href='#L1257'>1257</a>
|
|
1323
|
+
<a name='L1258'></a><a href='#L1258'>1258</a>
|
|
1324
|
+
<a name='L1259'></a><a href='#L1259'>1259</a>
|
|
1325
|
+
<a name='L1260'></a><a href='#L1260'>1260</a>
|
|
1326
|
+
<a name='L1261'></a><a href='#L1261'>1261</a>
|
|
1327
|
+
<a name='L1262'></a><a href='#L1262'>1262</a>
|
|
1328
|
+
<a name='L1263'></a><a href='#L1263'>1263</a>
|
|
1329
|
+
<a name='L1264'></a><a href='#L1264'>1264</a>
|
|
1330
|
+
<a name='L1265'></a><a href='#L1265'>1265</a>
|
|
1331
|
+
<a name='L1266'></a><a href='#L1266'>1266</a>
|
|
1332
|
+
<a name='L1267'></a><a href='#L1267'>1267</a>
|
|
1333
|
+
<a name='L1268'></a><a href='#L1268'>1268</a>
|
|
1334
|
+
<a name='L1269'></a><a href='#L1269'>1269</a>
|
|
1335
|
+
<a name='L1270'></a><a href='#L1270'>1270</a>
|
|
1336
|
+
<a name='L1271'></a><a href='#L1271'>1271</a>
|
|
1337
|
+
<a name='L1272'></a><a href='#L1272'>1272</a>
|
|
1338
|
+
<a name='L1273'></a><a href='#L1273'>1273</a>
|
|
1339
|
+
<a name='L1274'></a><a href='#L1274'>1274</a>
|
|
1340
|
+
<a name='L1275'></a><a href='#L1275'>1275</a>
|
|
1341
|
+
<a name='L1276'></a><a href='#L1276'>1276</a>
|
|
1342
|
+
<a name='L1277'></a><a href='#L1277'>1277</a>
|
|
1343
|
+
<a name='L1278'></a><a href='#L1278'>1278</a>
|
|
1344
|
+
<a name='L1279'></a><a href='#L1279'>1279</a>
|
|
1345
|
+
<a name='L1280'></a><a href='#L1280'>1280</a>
|
|
1346
|
+
<a name='L1281'></a><a href='#L1281'>1281</a>
|
|
1347
|
+
<a name='L1282'></a><a href='#L1282'>1282</a>
|
|
1348
|
+
<a name='L1283'></a><a href='#L1283'>1283</a>
|
|
1349
|
+
<a name='L1284'></a><a href='#L1284'>1284</a>
|
|
1350
|
+
<a name='L1285'></a><a href='#L1285'>1285</a>
|
|
1351
|
+
<a name='L1286'></a><a href='#L1286'>1286</a>
|
|
1352
|
+
<a name='L1287'></a><a href='#L1287'>1287</a>
|
|
1353
|
+
<a name='L1288'></a><a href='#L1288'>1288</a>
|
|
1354
|
+
<a name='L1289'></a><a href='#L1289'>1289</a>
|
|
1355
|
+
<a name='L1290'></a><a href='#L1290'>1290</a>
|
|
1356
|
+
<a name='L1291'></a><a href='#L1291'>1291</a>
|
|
1357
|
+
<a name='L1292'></a><a href='#L1292'>1292</a>
|
|
1358
|
+
<a name='L1293'></a><a href='#L1293'>1293</a>
|
|
1359
|
+
<a name='L1294'></a><a href='#L1294'>1294</a>
|
|
1360
|
+
<a name='L1295'></a><a href='#L1295'>1295</a>
|
|
1361
|
+
<a name='L1296'></a><a href='#L1296'>1296</a>
|
|
1362
|
+
<a name='L1297'></a><a href='#L1297'>1297</a>
|
|
1363
|
+
<a name='L1298'></a><a href='#L1298'>1298</a>
|
|
1364
|
+
<a name='L1299'></a><a href='#L1299'>1299</a>
|
|
1365
|
+
<a name='L1300'></a><a href='#L1300'>1300</a>
|
|
1366
|
+
<a name='L1301'></a><a href='#L1301'>1301</a>
|
|
1367
|
+
<a name='L1302'></a><a href='#L1302'>1302</a>
|
|
1368
|
+
<a name='L1303'></a><a href='#L1303'>1303</a>
|
|
1369
|
+
<a name='L1304'></a><a href='#L1304'>1304</a>
|
|
1370
|
+
<a name='L1305'></a><a href='#L1305'>1305</a>
|
|
1371
|
+
<a name='L1306'></a><a href='#L1306'>1306</a>
|
|
1372
|
+
<a name='L1307'></a><a href='#L1307'>1307</a>
|
|
1373
|
+
<a name='L1308'></a><a href='#L1308'>1308</a>
|
|
1374
|
+
<a name='L1309'></a><a href='#L1309'>1309</a>
|
|
1375
|
+
<a name='L1310'></a><a href='#L1310'>1310</a>
|
|
1376
|
+
<a name='L1311'></a><a href='#L1311'>1311</a>
|
|
1377
|
+
<a name='L1312'></a><a href='#L1312'>1312</a>
|
|
1378
|
+
<a name='L1313'></a><a href='#L1313'>1313</a>
|
|
1379
|
+
<a name='L1314'></a><a href='#L1314'>1314</a>
|
|
1380
|
+
<a name='L1315'></a><a href='#L1315'>1315</a>
|
|
1381
|
+
<a name='L1316'></a><a href='#L1316'>1316</a>
|
|
1382
|
+
<a name='L1317'></a><a href='#L1317'>1317</a>
|
|
1383
|
+
<a name='L1318'></a><a href='#L1318'>1318</a>
|
|
1384
|
+
<a name='L1319'></a><a href='#L1319'>1319</a>
|
|
1385
|
+
<a name='L1320'></a><a href='#L1320'>1320</a>
|
|
1386
|
+
<a name='L1321'></a><a href='#L1321'>1321</a>
|
|
1387
|
+
<a name='L1322'></a><a href='#L1322'>1322</a>
|
|
1388
|
+
<a name='L1323'></a><a href='#L1323'>1323</a>
|
|
1389
|
+
<a name='L1324'></a><a href='#L1324'>1324</a>
|
|
1390
|
+
<a name='L1325'></a><a href='#L1325'>1325</a>
|
|
1391
|
+
<a name='L1326'></a><a href='#L1326'>1326</a>
|
|
1392
|
+
<a name='L1327'></a><a href='#L1327'>1327</a>
|
|
1393
|
+
<a name='L1328'></a><a href='#L1328'>1328</a>
|
|
1394
|
+
<a name='L1329'></a><a href='#L1329'>1329</a>
|
|
1395
|
+
<a name='L1330'></a><a href='#L1330'>1330</a>
|
|
1396
|
+
<a name='L1331'></a><a href='#L1331'>1331</a>
|
|
1397
|
+
<a name='L1332'></a><a href='#L1332'>1332</a>
|
|
1398
|
+
<a name='L1333'></a><a href='#L1333'>1333</a>
|
|
1399
|
+
<a name='L1334'></a><a href='#L1334'>1334</a>
|
|
1400
|
+
<a name='L1335'></a><a href='#L1335'>1335</a>
|
|
1401
|
+
<a name='L1336'></a><a href='#L1336'>1336</a>
|
|
1402
|
+
<a name='L1337'></a><a href='#L1337'>1337</a>
|
|
1403
|
+
<a name='L1338'></a><a href='#L1338'>1338</a>
|
|
1404
|
+
<a name='L1339'></a><a href='#L1339'>1339</a>
|
|
1405
|
+
<a name='L1340'></a><a href='#L1340'>1340</a>
|
|
1406
|
+
<a name='L1341'></a><a href='#L1341'>1341</a>
|
|
1407
|
+
<a name='L1342'></a><a href='#L1342'>1342</a>
|
|
1408
|
+
<a name='L1343'></a><a href='#L1343'>1343</a>
|
|
1409
|
+
<a name='L1344'></a><a href='#L1344'>1344</a>
|
|
1410
|
+
<a name='L1345'></a><a href='#L1345'>1345</a>
|
|
1411
|
+
<a name='L1346'></a><a href='#L1346'>1346</a>
|
|
1412
|
+
<a name='L1347'></a><a href='#L1347'>1347</a>
|
|
1413
|
+
<a name='L1348'></a><a href='#L1348'>1348</a>
|
|
1414
|
+
<a name='L1349'></a><a href='#L1349'>1349</a>
|
|
1415
|
+
<a name='L1350'></a><a href='#L1350'>1350</a>
|
|
1416
|
+
<a name='L1351'></a><a href='#L1351'>1351</a>
|
|
1417
|
+
<a name='L1352'></a><a href='#L1352'>1352</a>
|
|
1418
|
+
<a name='L1353'></a><a href='#L1353'>1353</a>
|
|
1419
|
+
<a name='L1354'></a><a href='#L1354'>1354</a>
|
|
1420
|
+
<a name='L1355'></a><a href='#L1355'>1355</a>
|
|
1421
|
+
<a name='L1356'></a><a href='#L1356'>1356</a>
|
|
1422
|
+
<a name='L1357'></a><a href='#L1357'>1357</a>
|
|
1423
|
+
<a name='L1358'></a><a href='#L1358'>1358</a>
|
|
1424
|
+
<a name='L1359'></a><a href='#L1359'>1359</a>
|
|
1425
|
+
<a name='L1360'></a><a href='#L1360'>1360</a>
|
|
1426
|
+
<a name='L1361'></a><a href='#L1361'>1361</a>
|
|
1427
|
+
<a name='L1362'></a><a href='#L1362'>1362</a>
|
|
1428
|
+
<a name='L1363'></a><a href='#L1363'>1363</a>
|
|
1429
|
+
<a name='L1364'></a><a href='#L1364'>1364</a>
|
|
1430
|
+
<a name='L1365'></a><a href='#L1365'>1365</a>
|
|
1431
|
+
<a name='L1366'></a><a href='#L1366'>1366</a>
|
|
1432
|
+
<a name='L1367'></a><a href='#L1367'>1367</a>
|
|
1433
|
+
<a name='L1368'></a><a href='#L1368'>1368</a>
|
|
1434
|
+
<a name='L1369'></a><a href='#L1369'>1369</a>
|
|
1435
|
+
<a name='L1370'></a><a href='#L1370'>1370</a>
|
|
1436
|
+
<a name='L1371'></a><a href='#L1371'>1371</a>
|
|
1437
|
+
<a name='L1372'></a><a href='#L1372'>1372</a>
|
|
1438
|
+
<a name='L1373'></a><a href='#L1373'>1373</a>
|
|
1439
|
+
<a name='L1374'></a><a href='#L1374'>1374</a>
|
|
1440
|
+
<a name='L1375'></a><a href='#L1375'>1375</a>
|
|
1441
|
+
<a name='L1376'></a><a href='#L1376'>1376</a>
|
|
1442
|
+
<a name='L1377'></a><a href='#L1377'>1377</a>
|
|
1443
|
+
<a name='L1378'></a><a href='#L1378'>1378</a>
|
|
1444
|
+
<a name='L1379'></a><a href='#L1379'>1379</a>
|
|
1445
|
+
<a name='L1380'></a><a href='#L1380'>1380</a>
|
|
1446
|
+
<a name='L1381'></a><a href='#L1381'>1381</a>
|
|
1447
|
+
<a name='L1382'></a><a href='#L1382'>1382</a>
|
|
1448
|
+
<a name='L1383'></a><a href='#L1383'>1383</a>
|
|
1449
|
+
<a name='L1384'></a><a href='#L1384'>1384</a>
|
|
1450
|
+
<a name='L1385'></a><a href='#L1385'>1385</a>
|
|
1451
|
+
<a name='L1386'></a><a href='#L1386'>1386</a>
|
|
1452
|
+
<a name='L1387'></a><a href='#L1387'>1387</a>
|
|
1453
|
+
<a name='L1388'></a><a href='#L1388'>1388</a>
|
|
1454
|
+
<a name='L1389'></a><a href='#L1389'>1389</a>
|
|
1455
|
+
<a name='L1390'></a><a href='#L1390'>1390</a>
|
|
1456
|
+
<a name='L1391'></a><a href='#L1391'>1391</a>
|
|
1457
|
+
<a name='L1392'></a><a href='#L1392'>1392</a>
|
|
1458
|
+
<a name='L1393'></a><a href='#L1393'>1393</a>
|
|
1459
|
+
<a name='L1394'></a><a href='#L1394'>1394</a>
|
|
1460
|
+
<a name='L1395'></a><a href='#L1395'>1395</a>
|
|
1461
|
+
<a name='L1396'></a><a href='#L1396'>1396</a>
|
|
1462
|
+
<a name='L1397'></a><a href='#L1397'>1397</a>
|
|
1463
|
+
<a name='L1398'></a><a href='#L1398'>1398</a>
|
|
1464
|
+
<a name='L1399'></a><a href='#L1399'>1399</a>
|
|
1465
|
+
<a name='L1400'></a><a href='#L1400'>1400</a>
|
|
1466
|
+
<a name='L1401'></a><a href='#L1401'>1401</a>
|
|
1467
|
+
<a name='L1402'></a><a href='#L1402'>1402</a>
|
|
1468
|
+
<a name='L1403'></a><a href='#L1403'>1403</a>
|
|
1469
|
+
<a name='L1404'></a><a href='#L1404'>1404</a>
|
|
1470
|
+
<a name='L1405'></a><a href='#L1405'>1405</a>
|
|
1471
|
+
<a name='L1406'></a><a href='#L1406'>1406</a>
|
|
1472
|
+
<a name='L1407'></a><a href='#L1407'>1407</a>
|
|
1473
|
+
<a name='L1408'></a><a href='#L1408'>1408</a>
|
|
1474
|
+
<a name='L1409'></a><a href='#L1409'>1409</a>
|
|
1475
|
+
<a name='L1410'></a><a href='#L1410'>1410</a>
|
|
1476
|
+
<a name='L1411'></a><a href='#L1411'>1411</a>
|
|
1477
|
+
<a name='L1412'></a><a href='#L1412'>1412</a>
|
|
1478
|
+
<a name='L1413'></a><a href='#L1413'>1413</a>
|
|
1479
|
+
<a name='L1414'></a><a href='#L1414'>1414</a>
|
|
1480
|
+
<a name='L1415'></a><a href='#L1415'>1415</a>
|
|
1481
|
+
<a name='L1416'></a><a href='#L1416'>1416</a>
|
|
1482
|
+
<a name='L1417'></a><a href='#L1417'>1417</a>
|
|
1483
|
+
<a name='L1418'></a><a href='#L1418'>1418</a>
|
|
1484
|
+
<a name='L1419'></a><a href='#L1419'>1419</a>
|
|
1485
|
+
<a name='L1420'></a><a href='#L1420'>1420</a>
|
|
1486
|
+
<a name='L1421'></a><a href='#L1421'>1421</a>
|
|
1487
|
+
<a name='L1422'></a><a href='#L1422'>1422</a>
|
|
1488
|
+
<a name='L1423'></a><a href='#L1423'>1423</a>
|
|
1489
|
+
<a name='L1424'></a><a href='#L1424'>1424</a>
|
|
1490
|
+
<a name='L1425'></a><a href='#L1425'>1425</a>
|
|
1491
|
+
<a name='L1426'></a><a href='#L1426'>1426</a>
|
|
1492
|
+
<a name='L1427'></a><a href='#L1427'>1427</a>
|
|
1493
|
+
<a name='L1428'></a><a href='#L1428'>1428</a>
|
|
1494
|
+
<a name='L1429'></a><a href='#L1429'>1429</a>
|
|
1495
|
+
<a name='L1430'></a><a href='#L1430'>1430</a>
|
|
1496
|
+
<a name='L1431'></a><a href='#L1431'>1431</a>
|
|
1497
|
+
<a name='L1432'></a><a href='#L1432'>1432</a>
|
|
1498
|
+
<a name='L1433'></a><a href='#L1433'>1433</a>
|
|
1499
|
+
<a name='L1434'></a><a href='#L1434'>1434</a>
|
|
1500
|
+
<a name='L1435'></a><a href='#L1435'>1435</a>
|
|
1501
|
+
<a name='L1436'></a><a href='#L1436'>1436</a>
|
|
1502
|
+
<a name='L1437'></a><a href='#L1437'>1437</a>
|
|
1503
|
+
<a name='L1438'></a><a href='#L1438'>1438</a>
|
|
1504
|
+
<a name='L1439'></a><a href='#L1439'>1439</a>
|
|
1505
|
+
<a name='L1440'></a><a href='#L1440'>1440</a>
|
|
1506
|
+
<a name='L1441'></a><a href='#L1441'>1441</a>
|
|
1507
|
+
<a name='L1442'></a><a href='#L1442'>1442</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
1508
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1509
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1510
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1511
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1512
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1513
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1514
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1515
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1516
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1517
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1518
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1519
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1520
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1521
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1522
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1523
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1524
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1525
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1526
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1527
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1528
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1529
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1530
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1531
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1532
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1533
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1534
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1535
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1536
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1537
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1538
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1539
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1540
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1541
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1542
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1543
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1546
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1547
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1548
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1549
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1550
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1551
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1552
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1553
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1554
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1555
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1556
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1557
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1558
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1559
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1560
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1561
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1562
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1563
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1564
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1565
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1566
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1567
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1568
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1569
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1570
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1571
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1572
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1573
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1574
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1575
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1576
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1577
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1578
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1579
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1580
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1581
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1582
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1583
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1584
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1585
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1586
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1587
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1588
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1589
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1590
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1591
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1592
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1593
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1594
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1595
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1596
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1597
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1598
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1599
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1600
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1601
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1602
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1603
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1604
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1605
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1606
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1607
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1608
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1609
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1610
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1611
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1612
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1613
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1615
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1616
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1617
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1618
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1619
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1620
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1621
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1622
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1623
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1624
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1625
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1626
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1627
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1628
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1629
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1630
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1631
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1632
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1633
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1634
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1635
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1636
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1637
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1638
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1639
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1640
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1641
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1642
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1643
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1644
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1645
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1646
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1647
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1648
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1649
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1650
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1651
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1652
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1653
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1654
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1655
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1656
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1657
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1658
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1659
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1660
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1661
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1662
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1663
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1664
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1665
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1666
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1667
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1668
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1669
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1670
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1671
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1672
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1673
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1674
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1675
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1676
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1677
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1678
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1679
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1680
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1681
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1682
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1683
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1684
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1685
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1686
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1687
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1688
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1689
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1690
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1691
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1692
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1693
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1694
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1695
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1696
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1697
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1698
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1699
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1700
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1701
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1702
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1703
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1704
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1705
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1706
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1707
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1709
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1710
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1711
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1712
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1713
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1714
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1715
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1716
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1717
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1718
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1719
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1720
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1721
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1722
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1723
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1724
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1725
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1726
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1727
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1728
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1729
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1730
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1731
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1732
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1733
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1734
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1735
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1736
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1737
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1738
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1739
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1740
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1741
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1742
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1743
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1744
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1745
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1746
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1747
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1748
|
+
<span class="cline-any cline-no"> </span>
|
|
1749
|
+
<span class="cline-any cline-no"> </span>
|
|
1750
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1751
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1752
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1753
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1754
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1755
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1756
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1757
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1758
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1759
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1760
|
+
<span class="cline-any cline-no"> </span>
|
|
1761
|
+
<span class="cline-any cline-no"> </span>
|
|
1762
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1763
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1764
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1765
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1766
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1767
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1768
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1769
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1770
|
+
<span class="cline-any cline-no"> </span>
|
|
1771
|
+
<span class="cline-any cline-no"> </span>
|
|
1772
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1773
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1774
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1775
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1776
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1777
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1778
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1779
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1780
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1781
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1782
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1783
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1784
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1785
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1786
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1787
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1788
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1789
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1790
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1791
|
+
<span class="cline-any cline-yes">58x</span>
|
|
1792
|
+
<span class="cline-any cline-yes">58x</span>
|
|
1793
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1794
|
+
<span class="cline-any cline-no"> </span>
|
|
1795
|
+
<span class="cline-any cline-no"> </span>
|
|
1796
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1797
|
+
<span class="cline-any cline-yes">166x</span>
|
|
1798
|
+
<span class="cline-any cline-yes">166x</span>
|
|
1799
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1800
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1801
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1802
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1803
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1804
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1805
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1806
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1807
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1808
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1809
|
+
<span class="cline-any cline-no"> </span>
|
|
1810
|
+
<span class="cline-any cline-no"> </span>
|
|
1811
|
+
<span class="cline-any cline-no"> </span>
|
|
1812
|
+
<span class="cline-any cline-no"> </span>
|
|
1813
|
+
<span class="cline-any cline-no"> </span>
|
|
1814
|
+
<span class="cline-any cline-no"> </span>
|
|
1815
|
+
<span class="cline-any cline-no"> </span>
|
|
1816
|
+
<span class="cline-any cline-no"> </span>
|
|
1817
|
+
<span class="cline-any cline-no"> </span>
|
|
1818
|
+
<span class="cline-any cline-no"> </span>
|
|
1819
|
+
<span class="cline-any cline-no"> </span>
|
|
1820
|
+
<span class="cline-any cline-no"> </span>
|
|
1821
|
+
<span class="cline-any cline-no"> </span>
|
|
1822
|
+
<span class="cline-any cline-no"> </span>
|
|
1823
|
+
<span class="cline-any cline-no"> </span>
|
|
1824
|
+
<span class="cline-any cline-no"> </span>
|
|
1825
|
+
<span class="cline-any cline-no"> </span>
|
|
1826
|
+
<span class="cline-any cline-no"> </span>
|
|
1827
|
+
<span class="cline-any cline-no"> </span>
|
|
1828
|
+
<span class="cline-any cline-no"> </span>
|
|
1829
|
+
<span class="cline-any cline-no"> </span>
|
|
1830
|
+
<span class="cline-any cline-no"> </span>
|
|
1831
|
+
<span class="cline-any cline-no"> </span>
|
|
1832
|
+
<span class="cline-any cline-no"> </span>
|
|
1833
|
+
<span class="cline-any cline-no"> </span>
|
|
1834
|
+
<span class="cline-any cline-no"> </span>
|
|
1835
|
+
<span class="cline-any cline-no"> </span>
|
|
1836
|
+
<span class="cline-any cline-no"> </span>
|
|
1837
|
+
<span class="cline-any cline-no"> </span>
|
|
1838
|
+
<span class="cline-any cline-no"> </span>
|
|
1839
|
+
<span class="cline-any cline-no"> </span>
|
|
1840
|
+
<span class="cline-any cline-no"> </span>
|
|
1841
|
+
<span class="cline-any cline-no"> </span>
|
|
1842
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1843
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1844
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1845
|
+
<span class="cline-any cline-no"> </span>
|
|
1846
|
+
<span class="cline-any cline-no"> </span>
|
|
1847
|
+
<span class="cline-any cline-no"> </span>
|
|
1848
|
+
<span class="cline-any cline-no"> </span>
|
|
1849
|
+
<span class="cline-any cline-no"> </span>
|
|
1850
|
+
<span class="cline-any cline-no"> </span>
|
|
1851
|
+
<span class="cline-any cline-no"> </span>
|
|
1852
|
+
<span class="cline-any cline-no"> </span>
|
|
1853
|
+
<span class="cline-any cline-no"> </span>
|
|
1854
|
+
<span class="cline-any cline-no"> </span>
|
|
1855
|
+
<span class="cline-any cline-no"> </span>
|
|
1856
|
+
<span class="cline-any cline-no"> </span>
|
|
1857
|
+
<span class="cline-any cline-no"> </span>
|
|
1858
|
+
<span class="cline-any cline-no"> </span>
|
|
1859
|
+
<span class="cline-any cline-no"> </span>
|
|
1860
|
+
<span class="cline-any cline-no"> </span>
|
|
1861
|
+
<span class="cline-any cline-no"> </span>
|
|
1862
|
+
<span class="cline-any cline-no"> </span>
|
|
1863
|
+
<span class="cline-any cline-no"> </span>
|
|
1864
|
+
<span class="cline-any cline-no"> </span>
|
|
1865
|
+
<span class="cline-any cline-no"> </span>
|
|
1866
|
+
<span class="cline-any cline-no"> </span>
|
|
1867
|
+
<span class="cline-any cline-no"> </span>
|
|
1868
|
+
<span class="cline-any cline-no"> </span>
|
|
1869
|
+
<span class="cline-any cline-no"> </span>
|
|
1870
|
+
<span class="cline-any cline-no"> </span>
|
|
1871
|
+
<span class="cline-any cline-no"> </span>
|
|
1872
|
+
<span class="cline-any cline-no"> </span>
|
|
1873
|
+
<span class="cline-any cline-no"> </span>
|
|
1874
|
+
<span class="cline-any cline-no"> </span>
|
|
1875
|
+
<span class="cline-any cline-no"> </span>
|
|
1876
|
+
<span class="cline-any cline-no"> </span>
|
|
1877
|
+
<span class="cline-any cline-no"> </span>
|
|
1878
|
+
<span class="cline-any cline-no"> </span>
|
|
1879
|
+
<span class="cline-any cline-no"> </span>
|
|
1880
|
+
<span class="cline-any cline-no"> </span>
|
|
1881
|
+
<span class="cline-any cline-no"> </span>
|
|
1882
|
+
<span class="cline-any cline-no"> </span>
|
|
1883
|
+
<span class="cline-any cline-no"> </span>
|
|
1884
|
+
<span class="cline-any cline-no"> </span>
|
|
1885
|
+
<span class="cline-any cline-no"> </span>
|
|
1886
|
+
<span class="cline-any cline-no"> </span>
|
|
1887
|
+
<span class="cline-any cline-no"> </span>
|
|
1888
|
+
<span class="cline-any cline-no"> </span>
|
|
1889
|
+
<span class="cline-any cline-no"> </span>
|
|
1890
|
+
<span class="cline-any cline-no"> </span>
|
|
1891
|
+
<span class="cline-any cline-no"> </span>
|
|
1892
|
+
<span class="cline-any cline-no"> </span>
|
|
1893
|
+
<span class="cline-any cline-no"> </span>
|
|
1894
|
+
<span class="cline-any cline-no"> </span>
|
|
1895
|
+
<span class="cline-any cline-no"> </span>
|
|
1896
|
+
<span class="cline-any cline-no"> </span>
|
|
1897
|
+
<span class="cline-any cline-no"> </span>
|
|
1898
|
+
<span class="cline-any cline-no"> </span>
|
|
1899
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1900
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1901
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1902
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1903
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1904
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1905
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1906
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1907
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1908
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1909
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1910
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1911
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1912
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1913
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1914
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1915
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1916
|
+
<span class="cline-any cline-no"> </span>
|
|
1917
|
+
<span class="cline-any cline-no"> </span>
|
|
1918
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1919
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1920
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1921
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1922
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1923
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1924
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1925
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1926
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1927
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1928
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1929
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1930
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1931
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1932
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1933
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1934
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1935
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1936
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1937
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1938
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1939
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1940
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1941
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1942
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1943
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1944
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1945
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1946
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1947
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1948
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1949
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1950
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1951
|
+
<span class="cline-any cline-no"> </span>
|
|
1952
|
+
<span class="cline-any cline-no"> </span>
|
|
1953
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1954
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1955
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1956
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1957
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1958
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1959
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1960
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1961
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1962
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1963
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1964
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1965
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1966
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1967
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1968
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1969
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1970
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1971
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1972
|
+
<span class="cline-any cline-no"> </span>
|
|
1973
|
+
<span class="cline-any cline-no"> </span>
|
|
1974
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1975
|
+
<span class="cline-any cline-no"> </span>
|
|
1976
|
+
<span class="cline-any cline-no"> </span>
|
|
1977
|
+
<span class="cline-any cline-no"> </span>
|
|
1978
|
+
<span class="cline-any cline-no"> </span>
|
|
1979
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1980
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1981
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1982
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1983
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1984
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1985
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1986
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1987
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1988
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1989
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1990
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1991
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1992
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1993
|
+
<span class="cline-any cline-no"> </span>
|
|
1994
|
+
<span class="cline-any cline-no"> </span>
|
|
1995
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1996
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1997
|
+
<span class="cline-any cline-no"> </span>
|
|
1998
|
+
<span class="cline-any cline-no"> </span>
|
|
1999
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2000
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2001
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2002
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2003
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2004
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2005
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2006
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2007
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2008
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2009
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2010
|
+
<span class="cline-any cline-no"> </span>
|
|
2011
|
+
<span class="cline-any cline-no"> </span>
|
|
2012
|
+
<span class="cline-any cline-no"> </span>
|
|
2013
|
+
<span class="cline-any cline-no"> </span>
|
|
2014
|
+
<span class="cline-any cline-no"> </span>
|
|
2015
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2016
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2017
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2018
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2019
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2020
|
+
<span class="cline-any cline-no"> </span>
|
|
2021
|
+
<span class="cline-any cline-no"> </span>
|
|
2022
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2023
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2024
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2025
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2026
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2027
|
+
<span class="cline-any cline-no"> </span>
|
|
2028
|
+
<span class="cline-any cline-no"> </span>
|
|
2029
|
+
<span class="cline-any cline-no"> </span>
|
|
2030
|
+
<span class="cline-any cline-no"> </span>
|
|
2031
|
+
<span class="cline-any cline-no"> </span>
|
|
2032
|
+
<span class="cline-any cline-no"> </span>
|
|
2033
|
+
<span class="cline-any cline-no"> </span>
|
|
2034
|
+
<span class="cline-any cline-no"> </span>
|
|
2035
|
+
<span class="cline-any cline-no"> </span>
|
|
2036
|
+
<span class="cline-any cline-no"> </span>
|
|
2037
|
+
<span class="cline-any cline-no"> </span>
|
|
2038
|
+
<span class="cline-any cline-no"> </span>
|
|
2039
|
+
<span class="cline-any cline-no"> </span>
|
|
2040
|
+
<span class="cline-any cline-no"> </span>
|
|
2041
|
+
<span class="cline-any cline-no"> </span>
|
|
2042
|
+
<span class="cline-any cline-no"> </span>
|
|
2043
|
+
<span class="cline-any cline-no"> </span>
|
|
2044
|
+
<span class="cline-any cline-no"> </span>
|
|
2045
|
+
<span class="cline-any cline-no"> </span>
|
|
2046
|
+
<span class="cline-any cline-no"> </span>
|
|
2047
|
+
<span class="cline-any cline-no"> </span>
|
|
2048
|
+
<span class="cline-any cline-no"> </span>
|
|
2049
|
+
<span class="cline-any cline-no"> </span>
|
|
2050
|
+
<span class="cline-any cline-no"> </span>
|
|
2051
|
+
<span class="cline-any cline-no"> </span>
|
|
2052
|
+
<span class="cline-any cline-no"> </span>
|
|
2053
|
+
<span class="cline-any cline-no"> </span>
|
|
2054
|
+
<span class="cline-any cline-no"> </span>
|
|
2055
|
+
<span class="cline-any cline-no"> </span>
|
|
2056
|
+
<span class="cline-any cline-no"> </span>
|
|
2057
|
+
<span class="cline-any cline-no"> </span>
|
|
2058
|
+
<span class="cline-any cline-no"> </span>
|
|
2059
|
+
<span class="cline-any cline-no"> </span>
|
|
2060
|
+
<span class="cline-any cline-no"> </span>
|
|
2061
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2062
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2063
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2064
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2065
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2066
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2067
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2068
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2069
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2070
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2071
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2072
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2073
|
+
<span class="cline-any cline-no"> </span>
|
|
2074
|
+
<span class="cline-any cline-no"> </span>
|
|
2075
|
+
<span class="cline-any cline-no"> </span>
|
|
2076
|
+
<span class="cline-any cline-no"> </span>
|
|
2077
|
+
<span class="cline-any cline-no"> </span>
|
|
2078
|
+
<span class="cline-any cline-no"> </span>
|
|
2079
|
+
<span class="cline-any cline-no"> </span>
|
|
2080
|
+
<span class="cline-any cline-no"> </span>
|
|
2081
|
+
<span class="cline-any cline-no"> </span>
|
|
2082
|
+
<span class="cline-any cline-no"> </span>
|
|
2083
|
+
<span class="cline-any cline-no"> </span>
|
|
2084
|
+
<span class="cline-any cline-no"> </span>
|
|
2085
|
+
<span class="cline-any cline-no"> </span>
|
|
2086
|
+
<span class="cline-any cline-no"> </span>
|
|
2087
|
+
<span class="cline-any cline-no"> </span>
|
|
2088
|
+
<span class="cline-any cline-no"> </span>
|
|
2089
|
+
<span class="cline-any cline-no"> </span>
|
|
2090
|
+
<span class="cline-any cline-no"> </span>
|
|
2091
|
+
<span class="cline-any cline-no"> </span>
|
|
2092
|
+
<span class="cline-any cline-no"> </span>
|
|
2093
|
+
<span class="cline-any cline-no"> </span>
|
|
2094
|
+
<span class="cline-any cline-no"> </span>
|
|
2095
|
+
<span class="cline-any cline-no"> </span>
|
|
2096
|
+
<span class="cline-any cline-no"> </span>
|
|
2097
|
+
<span class="cline-any cline-no"> </span>
|
|
2098
|
+
<span class="cline-any cline-no"> </span>
|
|
2099
|
+
<span class="cline-any cline-no"> </span>
|
|
2100
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2101
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2102
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2103
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2104
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2105
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2106
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2107
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2108
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2109
|
+
<span class="cline-any cline-no"> </span>
|
|
2110
|
+
<span class="cline-any cline-no"> </span>
|
|
2111
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2112
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2113
|
+
<span class="cline-any cline-no"> </span>
|
|
2114
|
+
<span class="cline-any cline-no"> </span>
|
|
2115
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2116
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2117
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2118
|
+
<span class="cline-any cline-no"> </span>
|
|
2119
|
+
<span class="cline-any cline-no"> </span>
|
|
2120
|
+
<span class="cline-any cline-no"> </span>
|
|
2121
|
+
<span class="cline-any cline-no"> </span>
|
|
2122
|
+
<span class="cline-any cline-no"> </span>
|
|
2123
|
+
<span class="cline-any cline-no"> </span>
|
|
2124
|
+
<span class="cline-any cline-no"> </span>
|
|
2125
|
+
<span class="cline-any cline-no"> </span>
|
|
2126
|
+
<span class="cline-any cline-no"> </span>
|
|
2127
|
+
<span class="cline-any cline-no"> </span>
|
|
2128
|
+
<span class="cline-any cline-no"> </span>
|
|
2129
|
+
<span class="cline-any cline-no"> </span>
|
|
2130
|
+
<span class="cline-any cline-no"> </span>
|
|
2131
|
+
<span class="cline-any cline-no"> </span>
|
|
2132
|
+
<span class="cline-any cline-no"> </span>
|
|
2133
|
+
<span class="cline-any cline-no"> </span>
|
|
2134
|
+
<span class="cline-any cline-no"> </span>
|
|
2135
|
+
<span class="cline-any cline-no"> </span>
|
|
2136
|
+
<span class="cline-any cline-no"> </span>
|
|
2137
|
+
<span class="cline-any cline-no"> </span>
|
|
2138
|
+
<span class="cline-any cline-no"> </span>
|
|
2139
|
+
<span class="cline-any cline-no"> </span>
|
|
2140
|
+
<span class="cline-any cline-no"> </span>
|
|
2141
|
+
<span class="cline-any cline-no"> </span>
|
|
2142
|
+
<span class="cline-any cline-no"> </span>
|
|
2143
|
+
<span class="cline-any cline-no"> </span>
|
|
2144
|
+
<span class="cline-any cline-no"> </span>
|
|
2145
|
+
<span class="cline-any cline-no"> </span>
|
|
2146
|
+
<span class="cline-any cline-no"> </span>
|
|
2147
|
+
<span class="cline-any cline-no"> </span>
|
|
2148
|
+
<span class="cline-any cline-no"> </span>
|
|
2149
|
+
<span class="cline-any cline-no"> </span>
|
|
2150
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2151
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2152
|
+
<span class="cline-any cline-no"> </span>
|
|
2153
|
+
<span class="cline-any cline-no"> </span>
|
|
2154
|
+
<span class="cline-any cline-no"> </span>
|
|
2155
|
+
<span class="cline-any cline-no"> </span>
|
|
2156
|
+
<span class="cline-any cline-no"> </span>
|
|
2157
|
+
<span class="cline-any cline-no"> </span>
|
|
2158
|
+
<span class="cline-any cline-no"> </span>
|
|
2159
|
+
<span class="cline-any cline-no"> </span>
|
|
2160
|
+
<span class="cline-any cline-no"> </span>
|
|
2161
|
+
<span class="cline-any cline-no"> </span>
|
|
2162
|
+
<span class="cline-any cline-no"> </span>
|
|
2163
|
+
<span class="cline-any cline-no"> </span>
|
|
2164
|
+
<span class="cline-any cline-no"> </span>
|
|
2165
|
+
<span class="cline-any cline-no"> </span>
|
|
2166
|
+
<span class="cline-any cline-no"> </span>
|
|
2167
|
+
<span class="cline-any cline-no"> </span>
|
|
2168
|
+
<span class="cline-any cline-no"> </span>
|
|
2169
|
+
<span class="cline-any cline-no"> </span>
|
|
2170
|
+
<span class="cline-any cline-no"> </span>
|
|
2171
|
+
<span class="cline-any cline-no"> </span>
|
|
2172
|
+
<span class="cline-any cline-no"> </span>
|
|
2173
|
+
<span class="cline-any cline-no"> </span>
|
|
2174
|
+
<span class="cline-any cline-no"> </span>
|
|
2175
|
+
<span class="cline-any cline-no"> </span>
|
|
2176
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2177
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2178
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2179
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2180
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2181
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2182
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2183
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2184
|
+
<span class="cline-any cline-no"> </span>
|
|
2185
|
+
<span class="cline-any cline-no"> </span>
|
|
2186
|
+
<span class="cline-any cline-no"> </span>
|
|
2187
|
+
<span class="cline-any cline-no"> </span>
|
|
2188
|
+
<span class="cline-any cline-no"> </span>
|
|
2189
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2190
|
+
<span class="cline-any cline-no"> </span>
|
|
2191
|
+
<span class="cline-any cline-no"> </span>
|
|
2192
|
+
<span class="cline-any cline-no"> </span>
|
|
2193
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2194
|
+
<span class="cline-any cline-no"> </span>
|
|
2195
|
+
<span class="cline-any cline-no"> </span>
|
|
2196
|
+
<span class="cline-any cline-no"> </span>
|
|
2197
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2198
|
+
<span class="cline-any cline-no"> </span>
|
|
2199
|
+
<span class="cline-any cline-no"> </span>
|
|
2200
|
+
<span class="cline-any cline-no"> </span>
|
|
2201
|
+
<span class="cline-any cline-no"> </span>
|
|
2202
|
+
<span class="cline-any cline-no"> </span>
|
|
2203
|
+
<span class="cline-any cline-no"> </span>
|
|
2204
|
+
<span class="cline-any cline-no"> </span>
|
|
2205
|
+
<span class="cline-any cline-no"> </span>
|
|
2206
|
+
<span class="cline-any cline-no"> </span>
|
|
2207
|
+
<span class="cline-any cline-no"> </span>
|
|
2208
|
+
<span class="cline-any cline-no"> </span>
|
|
2209
|
+
<span class="cline-any cline-no"> </span>
|
|
2210
|
+
<span class="cline-any cline-no"> </span>
|
|
2211
|
+
<span class="cline-any cline-no"> </span>
|
|
2212
|
+
<span class="cline-any cline-no"> </span>
|
|
2213
|
+
<span class="cline-any cline-no"> </span>
|
|
2214
|
+
<span class="cline-any cline-no"> </span>
|
|
2215
|
+
<span class="cline-any cline-no"> </span>
|
|
2216
|
+
<span class="cline-any cline-no"> </span>
|
|
2217
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2218
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2219
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2220
|
+
<span class="cline-any cline-no"> </span>
|
|
2221
|
+
<span class="cline-any cline-no"> </span>
|
|
2222
|
+
<span class="cline-any cline-no"> </span>
|
|
2223
|
+
<span class="cline-any cline-no"> </span>
|
|
2224
|
+
<span class="cline-any cline-no"> </span>
|
|
2225
|
+
<span class="cline-any cline-no"> </span>
|
|
2226
|
+
<span class="cline-any cline-yes">30x</span>
|
|
2227
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2228
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2229
|
+
<span class="cline-any cline-no"> </span>
|
|
2230
|
+
<span class="cline-any cline-no"> </span>
|
|
2231
|
+
<span class="cline-any cline-no"> </span>
|
|
2232
|
+
<span class="cline-any cline-no"> </span>
|
|
2233
|
+
<span class="cline-any cline-no"> </span>
|
|
2234
|
+
<span class="cline-any cline-no"> </span>
|
|
2235
|
+
<span class="cline-any cline-no"> </span>
|
|
2236
|
+
<span class="cline-any cline-no"> </span>
|
|
2237
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2238
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2239
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2240
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2241
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2242
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2243
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2244
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2245
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2246
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2247
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2248
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2249
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2250
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2251
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2252
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2253
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2254
|
+
<span class="cline-any cline-no"> </span>
|
|
2255
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2256
|
+
<span class="cline-any cline-no"> </span>
|
|
2257
|
+
<span class="cline-any cline-no"> </span>
|
|
2258
|
+
<span class="cline-any cline-no"> </span>
|
|
2259
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2260
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2261
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2262
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2263
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2264
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2265
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2266
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2267
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2268
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2269
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2270
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2271
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2272
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2273
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2274
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2275
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2276
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2277
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2278
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2279
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2280
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2281
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2282
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2283
|
+
<span class="cline-any cline-no"> </span>
|
|
2284
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2285
|
+
<span class="cline-any cline-no"> </span>
|
|
2286
|
+
<span class="cline-any cline-no"> </span>
|
|
2287
|
+
<span class="cline-any cline-no"> </span>
|
|
2288
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2289
|
+
<span class="cline-any cline-no"> </span>
|
|
2290
|
+
<span class="cline-any cline-no"> </span>
|
|
2291
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2292
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2293
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2294
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2295
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2296
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2297
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2298
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2299
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2300
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2301
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2302
|
+
<span class="cline-any cline-no"> </span>
|
|
2303
|
+
<span class="cline-any cline-no"> </span>
|
|
2304
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2305
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2306
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2307
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2308
|
+
<span class="cline-any cline-no"> </span>
|
|
2309
|
+
<span class="cline-any cline-no"> </span>
|
|
2310
|
+
<span class="cline-any cline-no"> </span>
|
|
2311
|
+
<span class="cline-any cline-no"> </span>
|
|
2312
|
+
<span class="cline-any cline-no"> </span>
|
|
2313
|
+
<span class="cline-any cline-no"> </span>
|
|
2314
|
+
<span class="cline-any cline-no"> </span>
|
|
2315
|
+
<span class="cline-any cline-no"> </span>
|
|
2316
|
+
<span class="cline-any cline-no"> </span>
|
|
2317
|
+
<span class="cline-any cline-no"> </span>
|
|
2318
|
+
<span class="cline-any cline-no"> </span>
|
|
2319
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2320
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2321
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2322
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2323
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2324
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2325
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2326
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2327
|
+
<span class="cline-any cline-no"> </span>
|
|
2328
|
+
<span class="cline-any cline-no"> </span>
|
|
2329
|
+
<span class="cline-any cline-no"> </span>
|
|
2330
|
+
<span class="cline-any cline-no"> </span>
|
|
2331
|
+
<span class="cline-any cline-no"> </span>
|
|
2332
|
+
<span class="cline-any cline-no"> </span>
|
|
2333
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2334
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2335
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2336
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2337
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2338
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2339
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2340
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2341
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2342
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2343
|
+
<span class="cline-any cline-no"> </span>
|
|
2344
|
+
<span class="cline-any cline-no"> </span>
|
|
2345
|
+
<span class="cline-any cline-no"> </span>
|
|
2346
|
+
<span class="cline-any cline-no"> </span>
|
|
2347
|
+
<span class="cline-any cline-no"> </span>
|
|
2348
|
+
<span class="cline-any cline-no"> </span>
|
|
2349
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2350
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2351
|
+
<span class="cline-any cline-no"> </span>
|
|
2352
|
+
<span class="cline-any cline-no"> </span>
|
|
2353
|
+
<span class="cline-any cline-no"> </span>
|
|
2354
|
+
<span class="cline-any cline-no"> </span>
|
|
2355
|
+
<span class="cline-any cline-no"> </span>
|
|
2356
|
+
<span class="cline-any cline-no"> </span>
|
|
2357
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2358
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2359
|
+
<span class="cline-any cline-no"> </span>
|
|
2360
|
+
<span class="cline-any cline-no"> </span>
|
|
2361
|
+
<span class="cline-any cline-no"> </span>
|
|
2362
|
+
<span class="cline-any cline-no"> </span>
|
|
2363
|
+
<span class="cline-any cline-no"> </span>
|
|
2364
|
+
<span class="cline-any cline-no"> </span>
|
|
2365
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2366
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2367
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2368
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2369
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2370
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2371
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2372
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2373
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2374
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2375
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2376
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2377
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2378
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2379
|
+
<span class="cline-any cline-no"> </span>
|
|
2380
|
+
<span class="cline-any cline-no"> </span>
|
|
2381
|
+
<span class="cline-any cline-no"> </span>
|
|
2382
|
+
<span class="cline-any cline-no"> </span>
|
|
2383
|
+
<span class="cline-any cline-no"> </span>
|
|
2384
|
+
<span class="cline-any cline-no"> </span>
|
|
2385
|
+
<span class="cline-any cline-no"> </span>
|
|
2386
|
+
<span class="cline-any cline-no"> </span>
|
|
2387
|
+
<span class="cline-any cline-no"> </span>
|
|
2388
|
+
<span class="cline-any cline-no"> </span>
|
|
2389
|
+
<span class="cline-any cline-no"> </span>
|
|
2390
|
+
<span class="cline-any cline-no"> </span>
|
|
2391
|
+
<span class="cline-any cline-no"> </span>
|
|
2392
|
+
<span class="cline-any cline-no"> </span>
|
|
2393
|
+
<span class="cline-any cline-no"> </span>
|
|
2394
|
+
<span class="cline-any cline-no"> </span>
|
|
2395
|
+
<span class="cline-any cline-no"> </span>
|
|
2396
|
+
<span class="cline-any cline-no"> </span>
|
|
2397
|
+
<span class="cline-any cline-no"> </span>
|
|
2398
|
+
<span class="cline-any cline-no"> </span>
|
|
2399
|
+
<span class="cline-any cline-no"> </span>
|
|
2400
|
+
<span class="cline-any cline-no"> </span>
|
|
2401
|
+
<span class="cline-any cline-no"> </span>
|
|
2402
|
+
<span class="cline-any cline-no"> </span>
|
|
2403
|
+
<span class="cline-any cline-no"> </span>
|
|
2404
|
+
<span class="cline-any cline-no"> </span>
|
|
2405
|
+
<span class="cline-any cline-no"> </span>
|
|
2406
|
+
<span class="cline-any cline-no"> </span>
|
|
2407
|
+
<span class="cline-any cline-no"> </span>
|
|
2408
|
+
<span class="cline-any cline-no"> </span>
|
|
2409
|
+
<span class="cline-any cline-no"> </span>
|
|
2410
|
+
<span class="cline-any cline-no"> </span>
|
|
2411
|
+
<span class="cline-any cline-no"> </span>
|
|
2412
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2413
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2414
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2415
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2416
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2417
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2418
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2419
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2420
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2421
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2422
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2423
|
+
<span class="cline-any cline-no"> </span>
|
|
2424
|
+
<span class="cline-any cline-no"> </span>
|
|
2425
|
+
<span class="cline-any cline-no"> </span>
|
|
2426
|
+
<span class="cline-any cline-no"> </span>
|
|
2427
|
+
<span class="cline-any cline-no"> </span>
|
|
2428
|
+
<span class="cline-any cline-no"> </span>
|
|
2429
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2430
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2431
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2432
|
+
<span class="cline-any cline-no"> </span>
|
|
2433
|
+
<span class="cline-any cline-no"> </span>
|
|
2434
|
+
<span class="cline-any cline-no"> </span>
|
|
2435
|
+
<span class="cline-any cline-no"> </span>
|
|
2436
|
+
<span class="cline-any cline-no"> </span>
|
|
2437
|
+
<span class="cline-any cline-no"> </span>
|
|
2438
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2439
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2440
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2441
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2442
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2443
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2444
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2445
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2446
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2447
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2448
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2449
|
+
<span class="cline-any cline-no"> </span>
|
|
2450
|
+
<span class="cline-any cline-no"> </span>
|
|
2451
|
+
<span class="cline-any cline-no"> </span>
|
|
2452
|
+
<span class="cline-any cline-no"> </span>
|
|
2453
|
+
<span class="cline-any cline-no"> </span>
|
|
2454
|
+
<span class="cline-any cline-no"> </span>
|
|
2455
|
+
<span class="cline-any cline-no"> </span>
|
|
2456
|
+
<span class="cline-any cline-no"> </span>
|
|
2457
|
+
<span class="cline-any cline-no"> </span>
|
|
2458
|
+
<span class="cline-any cline-no"> </span>
|
|
2459
|
+
<span class="cline-any cline-no"> </span>
|
|
2460
|
+
<span class="cline-any cline-no"> </span>
|
|
2461
|
+
<span class="cline-any cline-no"> </span>
|
|
2462
|
+
<span class="cline-any cline-no"> </span>
|
|
2463
|
+
<span class="cline-any cline-no"> </span>
|
|
2464
|
+
<span class="cline-any cline-no"> </span>
|
|
2465
|
+
<span class="cline-any cline-no"> </span>
|
|
2466
|
+
<span class="cline-any cline-no"> </span>
|
|
2467
|
+
<span class="cline-any cline-no"> </span>
|
|
2468
|
+
<span class="cline-any cline-no"> </span>
|
|
2469
|
+
<span class="cline-any cline-no"> </span>
|
|
2470
|
+
<span class="cline-any cline-no"> </span>
|
|
2471
|
+
<span class="cline-any cline-no"> </span>
|
|
2472
|
+
<span class="cline-any cline-no"> </span>
|
|
2473
|
+
<span class="cline-any cline-no"> </span>
|
|
2474
|
+
<span class="cline-any cline-no"> </span>
|
|
2475
|
+
<span class="cline-any cline-no"> </span>
|
|
2476
|
+
<span class="cline-any cline-no"> </span>
|
|
2477
|
+
<span class="cline-any cline-no"> </span>
|
|
2478
|
+
<span class="cline-any cline-no"> </span>
|
|
2479
|
+
<span class="cline-any cline-no"> </span>
|
|
2480
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2481
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2482
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2483
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2484
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2485
|
+
<span class="cline-any cline-no"> </span>
|
|
2486
|
+
<span class="cline-any cline-no"> </span>
|
|
2487
|
+
<span class="cline-any cline-no"> </span>
|
|
2488
|
+
<span class="cline-any cline-no"> </span>
|
|
2489
|
+
<span class="cline-any cline-no"> </span>
|
|
2490
|
+
<span class="cline-any cline-no"> </span>
|
|
2491
|
+
<span class="cline-any cline-no"> </span>
|
|
2492
|
+
<span class="cline-any cline-no"> </span>
|
|
2493
|
+
<span class="cline-any cline-no"> </span>
|
|
2494
|
+
<span class="cline-any cline-no"> </span>
|
|
2495
|
+
<span class="cline-any cline-no"> </span>
|
|
2496
|
+
<span class="cline-any cline-no"> </span>
|
|
2497
|
+
<span class="cline-any cline-no"> </span>
|
|
2498
|
+
<span class="cline-any cline-no"> </span>
|
|
2499
|
+
<span class="cline-any cline-no"> </span>
|
|
2500
|
+
<span class="cline-any cline-no"> </span>
|
|
2501
|
+
<span class="cline-any cline-no"> </span>
|
|
2502
|
+
<span class="cline-any cline-no"> </span>
|
|
2503
|
+
<span class="cline-any cline-no"> </span>
|
|
2504
|
+
<span class="cline-any cline-no"> </span>
|
|
2505
|
+
<span class="cline-any cline-no"> </span>
|
|
2506
|
+
<span class="cline-any cline-no"> </span>
|
|
2507
|
+
<span class="cline-any cline-no"> </span>
|
|
2508
|
+
<span class="cline-any cline-no"> </span>
|
|
2509
|
+
<span class="cline-any cline-no"> </span>
|
|
2510
|
+
<span class="cline-any cline-no"> </span>
|
|
2511
|
+
<span class="cline-any cline-no"> </span>
|
|
2512
|
+
<span class="cline-any cline-no"> </span>
|
|
2513
|
+
<span class="cline-any cline-no"> </span>
|
|
2514
|
+
<span class="cline-any cline-no"> </span>
|
|
2515
|
+
<span class="cline-any cline-no"> </span>
|
|
2516
|
+
<span class="cline-any cline-no"> </span>
|
|
2517
|
+
<span class="cline-any cline-no"> </span>
|
|
2518
|
+
<span class="cline-any cline-no"> </span>
|
|
2519
|
+
<span class="cline-any cline-no"> </span>
|
|
2520
|
+
<span class="cline-any cline-no"> </span>
|
|
2521
|
+
<span class="cline-any cline-no"> </span>
|
|
2522
|
+
<span class="cline-any cline-no"> </span>
|
|
2523
|
+
<span class="cline-any cline-no"> </span>
|
|
2524
|
+
<span class="cline-any cline-no"> </span>
|
|
2525
|
+
<span class="cline-any cline-no"> </span>
|
|
2526
|
+
<span class="cline-any cline-no"> </span>
|
|
2527
|
+
<span class="cline-any cline-no"> </span>
|
|
2528
|
+
<span class="cline-any cline-no"> </span>
|
|
2529
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2530
|
+
<span class="cline-any cline-no"> </span>
|
|
2531
|
+
<span class="cline-any cline-no"> </span>
|
|
2532
|
+
<span class="cline-any cline-no"> </span>
|
|
2533
|
+
<span class="cline-any cline-no"> </span>
|
|
2534
|
+
<span class="cline-any cline-no"> </span>
|
|
2535
|
+
<span class="cline-any cline-no"> </span>
|
|
2536
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2537
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2538
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2539
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2540
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2541
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2542
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2543
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2544
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2545
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2546
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2547
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2548
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2549
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2550
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2551
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2552
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2553
|
+
<span class="cline-any cline-no"> </span>
|
|
2554
|
+
<span class="cline-any cline-no"> </span>
|
|
2555
|
+
<span class="cline-any cline-no"> </span>
|
|
2556
|
+
<span class="cline-any cline-no"> </span>
|
|
2557
|
+
<span class="cline-any cline-no"> </span>
|
|
2558
|
+
<span class="cline-any cline-no"> </span>
|
|
2559
|
+
<span class="cline-any cline-no"> </span>
|
|
2560
|
+
<span class="cline-any cline-no"> </span>
|
|
2561
|
+
<span class="cline-any cline-no"> </span>
|
|
2562
|
+
<span class="cline-any cline-no"> </span>
|
|
2563
|
+
<span class="cline-any cline-no"> </span>
|
|
2564
|
+
<span class="cline-any cline-no"> </span>
|
|
2565
|
+
<span class="cline-any cline-no"> </span>
|
|
2566
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2567
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2568
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2569
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2570
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2571
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2572
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2573
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2574
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2575
|
+
<span class="cline-any cline-no"> </span>
|
|
2576
|
+
<span class="cline-any cline-no"> </span>
|
|
2577
|
+
<span class="cline-any cline-no"> </span>
|
|
2578
|
+
<span class="cline-any cline-no"> </span>
|
|
2579
|
+
<span class="cline-any cline-no"> </span>
|
|
2580
|
+
<span class="cline-any cline-no"> </span>
|
|
2581
|
+
<span class="cline-any cline-no"> </span>
|
|
2582
|
+
<span class="cline-any cline-no"> </span>
|
|
2583
|
+
<span class="cline-any cline-no"> </span>
|
|
2584
|
+
<span class="cline-any cline-no"> </span>
|
|
2585
|
+
<span class="cline-any cline-no"> </span>
|
|
2586
|
+
<span class="cline-any cline-no"> </span>
|
|
2587
|
+
<span class="cline-any cline-no"> </span>
|
|
2588
|
+
<span class="cline-any cline-no"> </span>
|
|
2589
|
+
<span class="cline-any cline-no"> </span>
|
|
2590
|
+
<span class="cline-any cline-no"> </span>
|
|
2591
|
+
<span class="cline-any cline-no"> </span>
|
|
2592
|
+
<span class="cline-any cline-no"> </span>
|
|
2593
|
+
<span class="cline-any cline-no"> </span>
|
|
2594
|
+
<span class="cline-any cline-no"> </span>
|
|
2595
|
+
<span class="cline-any cline-no"> </span>
|
|
2596
|
+
<span class="cline-any cline-no"> </span>
|
|
2597
|
+
<span class="cline-any cline-no"> </span>
|
|
2598
|
+
<span class="cline-any cline-no"> </span>
|
|
2599
|
+
<span class="cline-any cline-no"> </span>
|
|
2600
|
+
<span class="cline-any cline-no"> </span>
|
|
2601
|
+
<span class="cline-any cline-no"> </span>
|
|
2602
|
+
<span class="cline-any cline-no"> </span>
|
|
2603
|
+
<span class="cline-any cline-no"> </span>
|
|
2604
|
+
<span class="cline-any cline-no"> </span>
|
|
2605
|
+
<span class="cline-any cline-no"> </span>
|
|
2606
|
+
<span class="cline-any cline-no"> </span>
|
|
2607
|
+
<span class="cline-any cline-no"> </span>
|
|
2608
|
+
<span class="cline-any cline-no"> </span>
|
|
2609
|
+
<span class="cline-any cline-no"> </span>
|
|
2610
|
+
<span class="cline-any cline-no"> </span>
|
|
2611
|
+
<span class="cline-any cline-no"> </span>
|
|
2612
|
+
<span class="cline-any cline-no"> </span>
|
|
2613
|
+
<span class="cline-any cline-no"> </span>
|
|
2614
|
+
<span class="cline-any cline-no"> </span>
|
|
2615
|
+
<span class="cline-any cline-no"> </span>
|
|
2616
|
+
<span class="cline-any cline-no"> </span>
|
|
2617
|
+
<span class="cline-any cline-no"> </span>
|
|
2618
|
+
<span class="cline-any cline-no"> </span>
|
|
2619
|
+
<span class="cline-any cline-no"> </span>
|
|
2620
|
+
<span class="cline-any cline-no"> </span>
|
|
2621
|
+
<span class="cline-any cline-no"> </span>
|
|
2622
|
+
<span class="cline-any cline-no"> </span>
|
|
2623
|
+
<span class="cline-any cline-no"> </span>
|
|
2624
|
+
<span class="cline-any cline-no"> </span>
|
|
2625
|
+
<span class="cline-any cline-no"> </span>
|
|
2626
|
+
<span class="cline-any cline-no"> </span>
|
|
2627
|
+
<span class="cline-any cline-no"> </span>
|
|
2628
|
+
<span class="cline-any cline-no"> </span>
|
|
2629
|
+
<span class="cline-any cline-no"> </span>
|
|
2630
|
+
<span class="cline-any cline-no"> </span>
|
|
2631
|
+
<span class="cline-any cline-no"> </span>
|
|
2632
|
+
<span class="cline-any cline-no"> </span>
|
|
2633
|
+
<span class="cline-any cline-no"> </span>
|
|
2634
|
+
<span class="cline-any cline-no"> </span>
|
|
2635
|
+
<span class="cline-any cline-no"> </span>
|
|
2636
|
+
<span class="cline-any cline-no"> </span>
|
|
2637
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2638
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2639
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2640
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2641
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2642
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2643
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2644
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2645
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2646
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2647
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2648
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2649
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2650
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2651
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2652
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2653
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2654
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2655
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2656
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2657
|
+
<span class="cline-any cline-no"> </span>
|
|
2658
|
+
<span class="cline-any cline-no"> </span>
|
|
2659
|
+
<span class="cline-any cline-no"> </span>
|
|
2660
|
+
<span class="cline-any cline-no"> </span>
|
|
2661
|
+
<span class="cline-any cline-no"> </span>
|
|
2662
|
+
<span class="cline-any cline-no"> </span>
|
|
2663
|
+
<span class="cline-any cline-no"> </span>
|
|
2664
|
+
<span class="cline-any cline-no"> </span>
|
|
2665
|
+
<span class="cline-any cline-no"> </span>
|
|
2666
|
+
<span class="cline-any cline-no"> </span>
|
|
2667
|
+
<span class="cline-any cline-no"> </span>
|
|
2668
|
+
<span class="cline-any cline-no"> </span>
|
|
2669
|
+
<span class="cline-any cline-no"> </span>
|
|
2670
|
+
<span class="cline-any cline-no"> </span>
|
|
2671
|
+
<span class="cline-any cline-no"> </span>
|
|
2672
|
+
<span class="cline-any cline-no"> </span>
|
|
2673
|
+
<span class="cline-any cline-no"> </span>
|
|
2674
|
+
<span class="cline-any cline-no"> </span>
|
|
2675
|
+
<span class="cline-any cline-no"> </span>
|
|
2676
|
+
<span class="cline-any cline-no"> </span>
|
|
2677
|
+
<span class="cline-any cline-no"> </span>
|
|
2678
|
+
<span class="cline-any cline-no"> </span>
|
|
2679
|
+
<span class="cline-any cline-no"> </span>
|
|
2680
|
+
<span class="cline-any cline-no"> </span>
|
|
2681
|
+
<span class="cline-any cline-no"> </span>
|
|
2682
|
+
<span class="cline-any cline-no"> </span>
|
|
2683
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2684
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2685
|
+
<span class="cline-any cline-no"> </span>
|
|
2686
|
+
<span class="cline-any cline-no"> </span>
|
|
2687
|
+
<span class="cline-any cline-no"> </span>
|
|
2688
|
+
<span class="cline-any cline-no"> </span>
|
|
2689
|
+
<span class="cline-any cline-no"> </span>
|
|
2690
|
+
<span class="cline-any cline-no"> </span>
|
|
2691
|
+
<span class="cline-any cline-no"> </span>
|
|
2692
|
+
<span class="cline-any cline-no"> </span>
|
|
2693
|
+
<span class="cline-any cline-no"> </span>
|
|
2694
|
+
<span class="cline-any cline-no"> </span>
|
|
2695
|
+
<span class="cline-any cline-no"> </span>
|
|
2696
|
+
<span class="cline-any cline-no"> </span>
|
|
2697
|
+
<span class="cline-any cline-no"> </span>
|
|
2698
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2699
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2700
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2701
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2702
|
+
<span class="cline-any cline-no"> </span>
|
|
2703
|
+
<span class="cline-any cline-no"> </span>
|
|
2704
|
+
<span class="cline-any cline-no"> </span>
|
|
2705
|
+
<span class="cline-any cline-no"> </span>
|
|
2706
|
+
<span class="cline-any cline-no"> </span>
|
|
2707
|
+
<span class="cline-any cline-no"> </span>
|
|
2708
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2709
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2710
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2711
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2712
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2713
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2714
|
+
<span class="cline-any cline-no"> </span>
|
|
2715
|
+
<span class="cline-any cline-no"> </span>
|
|
2716
|
+
<span class="cline-any cline-no"> </span>
|
|
2717
|
+
<span class="cline-any cline-no"> </span>
|
|
2718
|
+
<span class="cline-any cline-no"> </span>
|
|
2719
|
+
<span class="cline-any cline-no"> </span>
|
|
2720
|
+
<span class="cline-any cline-no"> </span>
|
|
2721
|
+
<span class="cline-any cline-no"> </span>
|
|
2722
|
+
<span class="cline-any cline-no"> </span>
|
|
2723
|
+
<span class="cline-any cline-no"> </span>
|
|
2724
|
+
<span class="cline-any cline-no"> </span>
|
|
2725
|
+
<span class="cline-any cline-no"> </span>
|
|
2726
|
+
<span class="cline-any cline-no"> </span>
|
|
2727
|
+
<span class="cline-any cline-no"> </span>
|
|
2728
|
+
<span class="cline-any cline-no"> </span>
|
|
2729
|
+
<span class="cline-any cline-no"> </span>
|
|
2730
|
+
<span class="cline-any cline-no"> </span>
|
|
2731
|
+
<span class="cline-any cline-no"> </span>
|
|
2732
|
+
<span class="cline-any cline-no"> </span>
|
|
2733
|
+
<span class="cline-any cline-no"> </span>
|
|
2734
|
+
<span class="cline-any cline-no"> </span>
|
|
2735
|
+
<span class="cline-any cline-no"> </span>
|
|
2736
|
+
<span class="cline-any cline-no"> </span>
|
|
2737
|
+
<span class="cline-any cline-no"> </span>
|
|
2738
|
+
<span class="cline-any cline-no"> </span>
|
|
2739
|
+
<span class="cline-any cline-no"> </span>
|
|
2740
|
+
<span class="cline-any cline-no"> </span>
|
|
2741
|
+
<span class="cline-any cline-no"> </span>
|
|
2742
|
+
<span class="cline-any cline-no"> </span>
|
|
2743
|
+
<span class="cline-any cline-no"> </span>
|
|
2744
|
+
<span class="cline-any cline-no"> </span>
|
|
2745
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2746
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2747
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2748
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2749
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2750
|
+
<span class="cline-any cline-no"> </span>
|
|
2751
|
+
<span class="cline-any cline-no"> </span>
|
|
2752
|
+
<span class="cline-any cline-no"> </span>
|
|
2753
|
+
<span class="cline-any cline-no"> </span>
|
|
2754
|
+
<span class="cline-any cline-no"> </span>
|
|
2755
|
+
<span class="cline-any cline-no"> </span>
|
|
2756
|
+
<span class="cline-any cline-no"> </span>
|
|
2757
|
+
<span class="cline-any cline-no"> </span>
|
|
2758
|
+
<span class="cline-any cline-no"> </span>
|
|
2759
|
+
<span class="cline-any cline-no"> </span>
|
|
2760
|
+
<span class="cline-any cline-no"> </span>
|
|
2761
|
+
<span class="cline-any cline-no"> </span>
|
|
2762
|
+
<span class="cline-any cline-no"> </span>
|
|
2763
|
+
<span class="cline-any cline-no"> </span>
|
|
2764
|
+
<span class="cline-any cline-no"> </span>
|
|
2765
|
+
<span class="cline-any cline-no"> </span>
|
|
2766
|
+
<span class="cline-any cline-no"> </span>
|
|
2767
|
+
<span class="cline-any cline-no"> </span>
|
|
2768
|
+
<span class="cline-any cline-no"> </span>
|
|
2769
|
+
<span class="cline-any cline-no"> </span>
|
|
2770
|
+
<span class="cline-any cline-no"> </span>
|
|
2771
|
+
<span class="cline-any cline-no"> </span>
|
|
2772
|
+
<span class="cline-any cline-no"> </span>
|
|
2773
|
+
<span class="cline-any cline-no"> </span>
|
|
2774
|
+
<span class="cline-any cline-no"> </span>
|
|
2775
|
+
<span class="cline-any cline-no"> </span>
|
|
2776
|
+
<span class="cline-any cline-no"> </span>
|
|
2777
|
+
<span class="cline-any cline-no"> </span>
|
|
2778
|
+
<span class="cline-any cline-no"> </span>
|
|
2779
|
+
<span class="cline-any cline-no"> </span>
|
|
2780
|
+
<span class="cline-any cline-no"> </span>
|
|
2781
|
+
<span class="cline-any cline-no"> </span>
|
|
2782
|
+
<span class="cline-any cline-no"> </span>
|
|
2783
|
+
<span class="cline-any cline-no"> </span>
|
|
2784
|
+
<span class="cline-any cline-no"> </span>
|
|
2785
|
+
<span class="cline-any cline-no"> </span>
|
|
2786
|
+
<span class="cline-any cline-no"> </span>
|
|
2787
|
+
<span class="cline-any cline-no"> </span>
|
|
2788
|
+
<span class="cline-any cline-no"> </span>
|
|
2789
|
+
<span class="cline-any cline-no"> </span>
|
|
2790
|
+
<span class="cline-any cline-no"> </span>
|
|
2791
|
+
<span class="cline-any cline-no"> </span>
|
|
2792
|
+
<span class="cline-any cline-no"> </span>
|
|
2793
|
+
<span class="cline-any cline-no"> </span>
|
|
2794
|
+
<span class="cline-any cline-no"> </span>
|
|
2795
|
+
<span class="cline-any cline-no"> </span>
|
|
2796
|
+
<span class="cline-any cline-no"> </span>
|
|
2797
|
+
<span class="cline-any cline-no"> </span>
|
|
2798
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2799
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2800
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2801
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2802
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2803
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2804
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2805
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2806
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2807
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2808
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2809
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2810
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2811
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2812
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2813
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2814
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2815
|
+
<span class="cline-any cline-no"> </span>
|
|
2816
|
+
<span class="cline-any cline-no"> </span>
|
|
2817
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2818
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2819
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2820
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2821
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2822
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2823
|
+
<span class="cline-any cline-no"> </span>
|
|
2824
|
+
<span class="cline-any cline-no"> </span>
|
|
2825
|
+
<span class="cline-any cline-no"> </span>
|
|
2826
|
+
<span class="cline-any cline-no"> </span>
|
|
2827
|
+
<span class="cline-any cline-no"> </span>
|
|
2828
|
+
<span class="cline-any cline-no"> </span>
|
|
2829
|
+
<span class="cline-any cline-no"> </span>
|
|
2830
|
+
<span class="cline-any cline-no"> </span>
|
|
2831
|
+
<span class="cline-any cline-no"> </span>
|
|
2832
|
+
<span class="cline-any cline-no"> </span>
|
|
2833
|
+
<span class="cline-any cline-no"> </span>
|
|
2834
|
+
<span class="cline-any cline-no"> </span>
|
|
2835
|
+
<span class="cline-any cline-no"> </span>
|
|
2836
|
+
<span class="cline-any cline-no"> </span>
|
|
2837
|
+
<span class="cline-any cline-no"> </span>
|
|
2838
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2839
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2840
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2841
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2842
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2843
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2844
|
+
<span class="cline-any cline-no"> </span>
|
|
2845
|
+
<span class="cline-any cline-no"> </span>
|
|
2846
|
+
<span class="cline-any cline-no"> </span>
|
|
2847
|
+
<span class="cline-any cline-no"> </span>
|
|
2848
|
+
<span class="cline-any cline-no"> </span>
|
|
2849
|
+
<span class="cline-any cline-no"> </span>
|
|
2850
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2851
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2852
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2853
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2854
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2855
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2856
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2857
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2858
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2859
|
+
<span class="cline-any cline-no"> </span>
|
|
2860
|
+
<span class="cline-any cline-no"> </span>
|
|
2861
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2862
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2863
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2864
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2865
|
+
<span class="cline-any cline-no"> </span>
|
|
2866
|
+
<span class="cline-any cline-no"> </span>
|
|
2867
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2868
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2869
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2870
|
+
<span class="cline-any cline-no"> </span>
|
|
2871
|
+
<span class="cline-any cline-no"> </span>
|
|
2872
|
+
<span class="cline-any cline-no"> </span>
|
|
2873
|
+
<span class="cline-any cline-no"> </span>
|
|
2874
|
+
<span class="cline-any cline-no"> </span>
|
|
2875
|
+
<span class="cline-any cline-no"> </span>
|
|
2876
|
+
<span class="cline-any cline-no"> </span>
|
|
2877
|
+
<span class="cline-any cline-no"> </span>
|
|
2878
|
+
<span class="cline-any cline-no"> </span>
|
|
2879
|
+
<span class="cline-any cline-no"> </span>
|
|
2880
|
+
<span class="cline-any cline-no"> </span>
|
|
2881
|
+
<span class="cline-any cline-no"> </span>
|
|
2882
|
+
<span class="cline-any cline-yes">6x</span>
|
|
2883
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2884
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2885
|
+
<span class="cline-any cline-no"> </span>
|
|
2886
|
+
<span class="cline-any cline-no"> </span>
|
|
2887
|
+
<span class="cline-any cline-no"> </span>
|
|
2888
|
+
<span class="cline-any cline-no"> </span>
|
|
2889
|
+
<span class="cline-any cline-no"> </span>
|
|
2890
|
+
<span class="cline-any cline-no"> </span>
|
|
2891
|
+
<span class="cline-any cline-no"> </span>
|
|
2892
|
+
<span class="cline-any cline-no"> </span>
|
|
2893
|
+
<span class="cline-any cline-no"> </span>
|
|
2894
|
+
<span class="cline-any cline-no"> </span>
|
|
2895
|
+
<span class="cline-any cline-no"> </span>
|
|
2896
|
+
<span class="cline-any cline-no"> </span>
|
|
2897
|
+
<span class="cline-any cline-no"> </span>
|
|
2898
|
+
<span class="cline-any cline-no"> </span>
|
|
2899
|
+
<span class="cline-any cline-no"> </span>
|
|
2900
|
+
<span class="cline-any cline-no"> </span>
|
|
2901
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2902
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2903
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2904
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2905
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2906
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2907
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2908
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2909
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2910
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2911
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2912
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2913
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2914
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2915
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2916
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2917
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2918
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2919
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2920
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2921
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2922
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2923
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2924
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2925
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2926
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2927
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2928
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2929
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2930
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2931
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2932
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2933
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2934
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2935
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2936
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2937
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2938
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2939
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2940
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2941
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2942
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2943
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2944
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2945
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2946
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2947
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2948
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
2949
|
+
import Mongoose = require('mongoose');
|
|
2950
|
+
import Express = require('express');
|
|
2951
|
+
/* import Mongoose from 'mongoose';
|
|
2952
|
+
import Express from 'express'; */
|
|
2953
|
+
|
|
2954
|
+
import * as BodyParser from 'body-parser';
|
|
2955
|
+
import * as FileSystem from 'fs';
|
|
2956
|
+
import * as Http from 'http';
|
|
2957
|
+
import * as Https from 'https';
|
|
2958
|
+
import * as dotenv from 'dotenv'
|
|
2959
|
+
|
|
2960
|
+
/* import { version } from '../../../package.json'; */
|
|
2961
|
+
|
|
2962
|
+
import {
|
|
2963
|
+
DyFM_AnyError,
|
|
2964
|
+
DyFM_Array,
|
|
2965
|
+
DyFM_Async,
|
|
2966
|
+
DyFM_Error,
|
|
2967
|
+
DyFM_error_defaults,
|
|
2968
|
+
DyFM_Error_Settings,
|
|
2969
|
+
DyFM_ErrorLevel,
|
|
2970
|
+
DyFM_Log,
|
|
2971
|
+
megabyte,
|
|
2972
|
+
second
|
|
2973
|
+
} from '@futdevpro/fsm-dynamo';
|
|
2974
|
+
|
|
2975
|
+
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
2976
|
+
import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
2977
|
+
import { DyNTS_App_Params } from '../../_models/control-models/app-params.control-model';
|
|
2978
|
+
import {
|
|
2979
|
+
DyNTS_AppSystemControls
|
|
2980
|
+
} from '../../_models/control-models/app-system-controls.control-model';
|
|
2981
|
+
import {
|
|
2982
|
+
DyNTS_Endpoint_Params
|
|
2983
|
+
} from '../../_models/control-models/endpoint-params.control-model';
|
|
2984
|
+
import { DyNTS_Http_Settings } from '../../_models/control-models/http-settings.control-model';
|
|
2985
|
+
import {
|
|
2986
|
+
DyNTS_Certification_Settings
|
|
2987
|
+
} from '../../_models/interfaces/certification-settings.interface';
|
|
2988
|
+
import {
|
|
2989
|
+
DyNTS_GlobalService_Settings
|
|
2990
|
+
} from '../../_models/interfaces/global-service-settings.interface';
|
|
2991
|
+
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
2992
|
+
import { DyNTS_GlobalService } from '../core/global.service';
|
|
2993
|
+
import { DyNTS_RoutingModule } from '../route/routing-module.service';
|
|
2994
|
+
import { DyNTS_getStarRoute } from '../../_collections/star.controller';
|
|
2995
|
+
|
|
2996
|
+
/**
|
|
2997
|
+
*
|
|
2998
|
+
* function MyDecorator(config: any) {
|
|
2999
|
+
return function (target: Function) {
|
|
3000
|
+
// attach metadata or modify target
|
|
3001
|
+
target.prototype.myMeta = config;
|
|
3002
|
+
};
|
|
3003
|
+
}
|
|
3004
|
+
|
|
3005
|
+
@MyDecorator({ role: 'admin' })
|
|
3006
|
+
class User {
|
|
3007
|
+
printRole() {
|
|
3008
|
+
console.log((this as any).myMeta.role); // → "admin"
|
|
3009
|
+
}
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
*/
|
|
3013
|
+
|
|
3014
|
+
/**
|
|
3015
|
+
* This will be the MAIN service of our server project,
|
|
3016
|
+
* follow the types and type instructions while setting up your project
|
|
3017
|
+
*
|
|
3018
|
+
* In this service, there are abstract functions that you will need to implement,
|
|
3019
|
+
* where you need to set up the main params for your application.
|
|
3020
|
+
*
|
|
3021
|
+
* (after the example, you can find the list of services you can/should setup)
|
|
3022
|
+
*
|
|
3023
|
+
* @example
|
|
3024
|
+
* export class App extends DyNTS_AppExtended {
|
|
3025
|
+
*
|
|
3026
|
+
* ...
|
|
3027
|
+
*
|
|
3028
|
+
* // Setting up App params, and preparing project global settings
|
|
3029
|
+
* setupAppParams(): void {
|
|
3030
|
+
* this.params = new DyNTS_AppParams({
|
|
3031
|
+
* name: 'Warbots Server',
|
|
3032
|
+
* title: warbotsTitleLog,
|
|
3033
|
+
* version: version,
|
|
3034
|
+
* dbName: 'warbots',
|
|
3035
|
+
* });
|
|
3036
|
+
*
|
|
3037
|
+
* // dynamoNTS_GlobalSettings.logRequestsContent = false;
|
|
3038
|
+
* }
|
|
3039
|
+
*
|
|
3040
|
+
* ...
|
|
3041
|
+
*
|
|
3042
|
+
* // Setting up DBServices
|
|
3043
|
+
* setGlobalServiceCollection(): void {
|
|
3044
|
+
* DyNTS_GlobalService.setServices({
|
|
3045
|
+
* authService: AuthService.getInstance(),
|
|
3046
|
+
* emailServiceCollection: EmailServiceCollectionService.getInstance(),
|
|
3047
|
+
* dbModels: [
|
|
3048
|
+
* userModelParams,
|
|
3049
|
+
* userDataModelParams,
|
|
3050
|
+
* userOptionsModelParams,
|
|
3051
|
+
* userStatisticsModelParams,
|
|
3052
|
+
* userAchievementsModelParams,
|
|
3053
|
+
* userNotificationsModelParams,
|
|
3054
|
+
*
|
|
3055
|
+
* matchStatisticsModelParams,
|
|
3056
|
+
* matchDataModelParams,
|
|
3057
|
+
|
|
3058
|
+
* DyFM_usageSession_dataParams,
|
|
3059
|
+
* DyFM_customData_dataParams,
|
|
3060
|
+
* ]
|
|
3061
|
+
* });
|
|
3062
|
+
* }
|
|
3063
|
+
*
|
|
3064
|
+
* ...
|
|
3065
|
+
*
|
|
3066
|
+
* // Setting up Routes
|
|
3067
|
+
* setupRoutingModules(): void {
|
|
3068
|
+
* this.httpPort = env.port;
|
|
3069
|
+
|
|
3070
|
+
* this.routingModules = [
|
|
3071
|
+
* new DyNTS_RoutingModule({
|
|
3072
|
+
* route: '/user',
|
|
3073
|
+
* controllers: [
|
|
3074
|
+
* UserController.getInstance(),
|
|
3075
|
+
* UserDataController.getInstance(),
|
|
3076
|
+
* UserOptionsController.getInstance(),
|
|
3077
|
+
* UserStatisticsController.getInstance(),
|
|
3078
|
+
* UserAchievementsController.getInstance(),
|
|
3079
|
+
* UserNotificationsController.getInstance()
|
|
3080
|
+
* ]
|
|
3081
|
+
* }),
|
|
3082
|
+
* new DyNTS_RoutingModule({
|
|
3083
|
+
* route: '/match',
|
|
3084
|
+
* controllers: [
|
|
3085
|
+
* MatchController.getInstance(),
|
|
3086
|
+
* MatchDistributionController.getInstance(),
|
|
3087
|
+
* MatchStatisticsController.getInstance(),
|
|
3088
|
+
* ]
|
|
3089
|
+
* }),
|
|
3090
|
+
* new DyNTS_RoutingModule({
|
|
3091
|
+
* route: '/server',
|
|
3092
|
+
* controllers: [
|
|
3093
|
+
* ServerController.getInstance(),
|
|
3094
|
+
* ]
|
|
3095
|
+
* }),
|
|
3096
|
+
|
|
3097
|
+
* getTestRoutingModule(),
|
|
3098
|
+
* getUsageRoutingModule()
|
|
3099
|
+
* ];
|
|
3100
|
+
* }
|
|
3101
|
+
* }
|
|
3102
|
+
*
|
|
3103
|
+
* //
|
|
3104
|
+
* // The Services available
|
|
3105
|
+
* //
|
|
3106
|
+
* // Authentication Service
|
|
3107
|
+
* // A commonly used basic service,
|
|
3108
|
+
* // which is necessary fur certain functions (such as registering call issuers)
|
|
3109
|
+
* //
|
|
3110
|
+
* // This will handle Authentication Token checking/refreshing,
|
|
3111
|
+
* // checking issuer's identifier and routeParams,
|
|
3112
|
+
* // handling JWT Token, or maybe with OAuth2 or other commonly used security procedures
|
|
3113
|
+
* //
|
|
3114
|
+
* // You can create one with this Dynamo Object:
|
|
3115
|
+
* //
|
|
3116
|
+
*
|
|
3117
|
+
* @example
|
|
3118
|
+
* // follow the instructions on the abstract class (DyNTS_AuthService)
|
|
3119
|
+
* export class AuthService extends DyNTS_AuthService {}
|
|
3120
|
+
*
|
|
3121
|
+
*
|
|
3122
|
+
*
|
|
3123
|
+
* //
|
|
3124
|
+
*/
|
|
3125
|
+
|
|
3126
|
+
/**
|
|
3127
|
+
* This will be the MAIN service of our server project,
|
|
3128
|
+
* follow the types and type instructions while setting up your project
|
|
3129
|
+
*
|
|
3130
|
+
* In this service, there are abstract functions that you will need to implement,
|
|
3131
|
+
* where you need to set up the main params for your application.
|
|
3132
|
+
*
|
|
3133
|
+
* (after the example, you can find the list of services you can/should setup)
|
|
3134
|
+
*
|
|
3135
|
+
* You need to setup the following functions:
|
|
3136
|
+
* ```ts
|
|
3137
|
+
* // this is where you set up the main params for your application
|
|
3138
|
+
* getAppParams(): DyNTS_AppParams
|
|
3139
|
+
*
|
|
3140
|
+
* // this is where you connect your main services
|
|
3141
|
+
* getGlobalServiceSettings(): DyNTS_GlobalService_Settings
|
|
3142
|
+
*
|
|
3143
|
+
* // this is where you set up your ports
|
|
3144
|
+
* getPorts(): DyNTS_PortSettings
|
|
3145
|
+
*
|
|
3146
|
+
* // this is where you set up your routes
|
|
3147
|
+
* getRoutingModules(): DyNTS_RoutingModule[]
|
|
3148
|
+
*
|
|
3149
|
+
*
|
|
3150
|
+
*
|
|
3151
|
+
* ```
|
|
3152
|
+
* optionally you can setup the following functions:
|
|
3153
|
+
* ```ts
|
|
3154
|
+
* // this is where you set up your certifications
|
|
3155
|
+
* getCertificationSettings(): DyNTS_CertificationSettings
|
|
3156
|
+
*
|
|
3157
|
+
* // this is where you set up additional root services
|
|
3158
|
+
* getRootServices(): DyNTS_SingletonService[]
|
|
3159
|
+
*
|
|
3160
|
+
* // this is where you set up your initial db entries
|
|
3161
|
+
* createEntries(): void
|
|
3162
|
+
*
|
|
3163
|
+
* // this is where you can define post setup processes
|
|
3164
|
+
* postProcess(): void
|
|
3165
|
+
*
|
|
3166
|
+
*
|
|
3167
|
+
*
|
|
3168
|
+
* ```
|
|
3169
|
+
*
|
|
3170
|
+
*/
|
|
3171
|
+
export abstract class DyNTS_App extends DyNTS_SingletonService {
|
|
3172
|
+
|
|
3173
|
+
protected systemControls: DyNTS_AppSystemControls = new DyNTS_AppSystemControls();
|
|
3174
|
+
get started(): boolean {
|
|
3175
|
+
return this.systemControls.app.started;
|
|
3176
|
+
}
|
|
3177
|
+
protected get superStarted(): boolean {
|
|
3178
|
+
return this.systemControls.app.started;
|
|
3179
|
+
}
|
|
3180
|
+
protected constructErrors: (Error | DyFM_Error)[] = [];
|
|
3181
|
+
|
|
3182
|
+
/* removed since cant use version from package.json
|
|
3183
|
+
private readonly _ntsVersion: string = 'v01.07.18';
|
|
3184
|
+
protected get ntsVersion(): string {
|
|
3185
|
+
return this._ntsVersion;
|
|
3186
|
+
} */
|
|
3187
|
+
|
|
3188
|
+
<span class="fstat-no" title="function not covered" > get serverName(): string { </span>
|
|
3189
|
+
<span class="cstat-no" title="statement not covered" > return this.params.name; </span>
|
|
3190
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3191
|
+
|
|
3192
|
+
private _params: DyNTS_App_Params;
|
|
3193
|
+
protected get params(): DyNTS_App_Params {
|
|
3194
|
+
return this._params;
|
|
3195
|
+
}
|
|
3196
|
+
|
|
3197
|
+
protected mongoose = Mongoose;
|
|
3198
|
+
|
|
3199
|
+
private _security: DyNTS_RouteSecurity;
|
|
3200
|
+
<span class="fstat-no" title="function not covered" > protected get security(): DyNTS_RouteSecurity { </span>
|
|
3201
|
+
<span class="cstat-no" title="statement not covered" > return this._security; </span>
|
|
3202
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3203
|
+
|
|
3204
|
+
protected _portSettings: DyNTS_Http_Settings = new DyNTS_Http_Settings();
|
|
3205
|
+
protected get portSettings(): DyNTS_Http_Settings {
|
|
3206
|
+
return this._portSettings;
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3209
|
+
private _cert?: DyNTS_Certification_Settings;
|
|
3210
|
+
<span class="fstat-no" title="function not covered" > protected get cert(): DyNTS_Certification_Settings { </span>
|
|
3211
|
+
<span class="cstat-no" title="statement not covered" > return this._cert; </span>
|
|
3212
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3213
|
+
|
|
3214
|
+
protected openExpress: Express.Application;
|
|
3215
|
+
private secureExpress: Express.Application;
|
|
3216
|
+
protected httpsServer: Https.Server;
|
|
3217
|
+
protected httpServer: Http.Server;
|
|
3218
|
+
|
|
3219
|
+
private globalService: DyNTS_GlobalService;
|
|
3220
|
+
private _rootServices: DyNTS_SingletonService[] = [];
|
|
3221
|
+
|
|
3222
|
+
private _routingModules: DyNTS_RoutingModule[] = [];
|
|
3223
|
+
|
|
3224
|
+
protected readonly defaultReadyTimeout: number = 30 * second;
|
|
3225
|
+
|
|
3226
|
+
override readonly defaultErrorUserMsg =
|
|
3227
|
+
`We encountered an unhandled Server Error, ` +
|
|
3228
|
+
`\nplease contact the responsible development team.` +
|
|
3229
|
+
`\n(Internal Server error)`;
|
|
3230
|
+
|
|
3231
|
+
get logSetup(): boolean {
|
|
3232
|
+
return DyNTS_global_settings.log_settings.setup;
|
|
3233
|
+
}
|
|
3234
|
+
<span class="fstat-no" title="function not covered" > get deepLog(): boolean {</span>
|
|
3235
|
+
<span class="cstat-no" title="statement not covered" > return DyNTS_global_settings.log_settings.deep;</span>
|
|
3236
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3237
|
+
get fnLogs(): boolean {
|
|
3238
|
+
return DyNTS_global_settings.log_settings.functions;
|
|
3239
|
+
}
|
|
3240
|
+
debugLog: boolean = DyNTS_global_settings.log_settings.server_debug;
|
|
3241
|
+
|
|
3242
|
+
constructor(/* extended?: boolean */){
|
|
3243
|
+
super();
|
|
3244
|
+
|
|
3245
|
+
/* dotenv.config() */
|
|
3246
|
+
|
|
3247
|
+
process.on(
|
|
3248
|
+
'unhandledRejection',
|
|
3249
|
+
(reason_theError: object, p_passWhatIsThis_maybeThePromise: any): void => {
|
|
3250
|
+
<span class="cstat-no" title="statement not covered" > if (reason_theError instanceof DyFM_Error) {</span>
|
|
3251
|
+
<span class="cstat-no" title="statement not covered" > reason_theError.logSimple('Unhandled Rejection');</span>
|
|
3252
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3253
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3254
|
+
<span class="cstat-no" title="statement not covered" > 'Unhandled Rejection:', (p_passWhatIsThis_maybeThePromise as Promise<any>)?.toString(), </span>
|
|
3255
|
+
<span class="cstat-no" title="statement not covered" > '\n Rejection reason:', (reason_theError as Error)?.stack?.split('at')?.[0],</span>
|
|
3256
|
+
<span class="cstat-no" title="statement not covered" > /* '\n ErrorCode:', (reason as any)?.code, */</span>
|
|
3257
|
+
<span class="cstat-no" title="statement not covered" > '\n\n Stack:', </span>
|
|
3258
|
+
<span class="cstat-no" title="statement not covered" > (reason_theError as Error)?.stack?.replaceAll?.('\n at', '\n at'),</span>
|
|
3259
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3260
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3261
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3262
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
3263
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(</span>
|
|
3264
|
+
<span class="cstat-no" title="statement not covered" > new DyFM_Error({</span>
|
|
3265
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-BASE-UR`,</span>
|
|
3266
|
+
<span class="cstat-no" title="statement not covered" > message: </span>
|
|
3267
|
+
<span class="cstat-no" title="statement not covered" > `Unhandled Rejection!: "${(reason_theError as Error)?.stack?.split('at')?.[0]}"`,</span>
|
|
3268
|
+
<span class="cstat-no" title="statement not covered" > userMessage: this.defaultErrorUserMsg,</span>
|
|
3269
|
+
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
3270
|
+
<span class="cstat-no" title="statement not covered" > error: reason_theError as Error,</span>
|
|
3271
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: { </span>
|
|
3272
|
+
<span class="cstat-no" title="statement not covered" > reason: reason_theError, </span>
|
|
3273
|
+
<span class="cstat-no" title="statement not covered" > rejectedPromise: p_passWhatIsThis_maybeThePromise,</span>
|
|
3274
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3275
|
+
<span class="cstat-no" title="statement not covered" > systemVersion: DyNTS_global_settings.systemVersion,</span>
|
|
3276
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.critical,</span>
|
|
3277
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
3278
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3279
|
+
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
3280
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error('globalErrorHandler (MULTILEVEL) ERROR:', error);</span>
|
|
3281
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3282
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3283
|
+
);
|
|
3284
|
+
|
|
3285
|
+
this.asyncConstruct(/* extended */).catch((error: any): void => {
|
|
3286
|
+
<span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
|
|
3287
|
+
<span class="cstat-no" title="statement not covered" > if (error.additionalContent?.constructErrors?.length) {</span>
|
|
3288
|
+
<span class="cstat-no" title="statement not covered" > error.additionalContent.constructErrors.forEach((errorItem: DyFM_Error): void => {</span>
|
|
3289
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Error.logSimple('(constructor asyncConstruct.catch) error:', errorItem);</span>
|
|
3290
|
+
<span class="cstat-no" title="statement not covered" > /* if (errorItem instanceof DyFM_Error) {</span>
|
|
3291
|
+
<span class="cstat-no" title="statement not covered" > errorItem.logSimple(`(constructor asyncConstruct.catch) error:\n`);</span>
|
|
3292
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3293
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_warn(</span>
|
|
3294
|
+
<span class="cstat-no" title="statement not covered" > '(constructor asyncConstruct.catch) additional error content:\n', </span>
|
|
3295
|
+
<span class="cstat-no" title="statement not covered" > errorItem</span>
|
|
3296
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3297
|
+
<span class="cstat-no" title="statement not covered" > } */</span>
|
|
3298
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3299
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3300
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_warn(</span>
|
|
3301
|
+
<span class="cstat-no" title="statement not covered" > '(constructor asyncConstruct.catch) additional error content:\n', </span>
|
|
3302
|
+
<span class="cstat-no" title="statement not covered" > error?.additionalContent</span>
|
|
3303
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3304
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3305
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3306
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3307
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Error.logSimple('(constructor asyncConstruct.catch) error:', error);</span>
|
|
3308
|
+
<span class="cstat-no" title="statement not covered" > /* if (</span>
|
|
3309
|
+
<span class="cstat-no" title="statement not covered" > !DyNTS_global_settings.log_settings.highDetailedLogs &&</span>
|
|
3310
|
+
<span class="cstat-no" title="statement not covered" > (error instanceof DyFM_Error)</span>
|
|
3311
|
+
<span class="cstat-no" title="statement not covered" > ) {</span>
|
|
3312
|
+
<span class="cstat-no" title="statement not covered" > error.logSimple(</span>
|
|
3313
|
+
<span class="cstat-no" title="statement not covered" > `Application: "${this.params?.name}" start failed. (constructor asyncConstruct.catch)` +</span>
|
|
3314
|
+
<span class="cstat-no" title="statement not covered" > '\n all error messages (from this stack):\n\n"' + </span>
|
|
3315
|
+
<span class="cstat-no" title="statement not covered" > error._messages.join('"\n\n"') + '"\n\n'</span>
|
|
3316
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3317
|
+
<span class="cstat-no" title="statement not covered" > } else if (error instanceof DyFM_Error) {</span>
|
|
3318
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3319
|
+
<span class="cstat-no" title="statement not covered" > `Application: "${this.params?.name}" start failed. (constructor asyncConstruct.catch)`,</span>
|
|
3320
|
+
<span class="cstat-no" title="statement not covered" > `\n ERROR:`, error</span>
|
|
3321
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3322
|
+
<span class="cstat-no" title="statement not covered" > } */</span>
|
|
3323
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3324
|
+
<span class="cstat-no" title="statement not covered" > const message: string = </span>
|
|
3325
|
+
<span class="cstat-no" title="statement not covered" > (error as DyFM_Error)?.additionalContent?.constructErrors?.flatMap(</span>
|
|
3326
|
+
<span class="cstat-no" title="statement not covered" > (errorItem: DyFM_Error): string[] => {</span>
|
|
3327
|
+
<span class="cstat-no" title="statement not covered" > return errorItem?._messages ?? [];</span>
|
|
3328
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3329
|
+
<span class="cstat-no" title="statement not covered" > )?.join?.('\n') ?? </span>
|
|
3330
|
+
<span class="cstat-no" title="statement not covered" > (error as DyFM_Error)?.errors?.flatMap(</span>
|
|
3331
|
+
<span class="cstat-no" title="statement not covered" > (errorItem: DyFM_AnyError): string[] => </span>
|
|
3332
|
+
<span class="cstat-no" title="statement not covered" > (errorItem as DyFM_Error)?._messages ?? [ (errorItem as Error)?.message ]</span>
|
|
3333
|
+
<span class="cstat-no" title="statement not covered" > )?.join?.('\n') ?? </span>
|
|
3334
|
+
<span class="cstat-no" title="statement not covered" > error?.message ?? </span>
|
|
3335
|
+
<span class="cstat-no" title="statement not covered" > 'UNKNOWN';</span>
|
|
3336
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3337
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.testError('Application start failed:\n', message);</span>
|
|
3338
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3339
|
+
<span class="cstat-no" title="statement not covered" > process.exit(1);</span>
|
|
3340
|
+
});
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3343
|
+
protected async asyncConstruct(extended?: boolean): Promise<void> {
|
|
3344
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. asyncConstruct');</span>
|
|
3345
|
+
|
|
3346
|
+
try {
|
|
3347
|
+
this.systemControls.app.init = true;
|
|
3348
|
+
this._params = this.getAppParams();
|
|
3349
|
+
DyFM_Log.log(
|
|
3350
|
+
`\n\n\n\n\n\n\n\n\n\n` +
|
|
3351
|
+
`Starting ${this._params?.name}... ` +
|
|
3352
|
+
/* `v${version}` + */
|
|
3353
|
+
`\n\n\n\n\n\n\n\n\n\n`
|
|
3354
|
+
);
|
|
3355
|
+
|
|
3356
|
+
if (!this._params) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3357
|
+
<span class="cstat-no" title="statement not covered" > throw new Error('getAppParams() must return a DyNTS_AppParams object!');</span>
|
|
3358
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3359
|
+
|
|
3360
|
+
if (this.params.systemShortCodeName) {
|
|
3361
|
+
DyNTS_global_settings.systemShortCodeName = this.params.systemShortCodeName;
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
if (this.params.systemName) {
|
|
3365
|
+
DyFM_error_defaults.issuerSystem = this.params.systemName;
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
if (this.params.version) {
|
|
3369
|
+
DyNTS_global_settings.systemVersion = this.params.version;
|
|
3370
|
+
DyFM_error_defaults.systemVersion = this.params.version;
|
|
3371
|
+
}
|
|
3372
|
+
|
|
3373
|
+
process.stdout.write(
|
|
3374
|
+
String.fromCharCode(27) + ']0;' +
|
|
3375
|
+
this._params?.name +
|
|
3376
|
+
String.fromCharCode(7)
|
|
3377
|
+
);
|
|
3378
|
+
|
|
3379
|
+
DyFM_error_defaults.issuerSystem = this._params.systemName;
|
|
3380
|
+
|
|
3381
|
+
this.overrideDynamoNTSGlobalSettings?.();
|
|
3382
|
+
|
|
3383
|
+
this.globalService = DyNTS_GlobalService.getInstance();
|
|
3384
|
+
await DyNTS_GlobalService.setServices(this.getGlobalServiceCollection());
|
|
3385
|
+
DyNTS_GlobalService.setParams(this.params);
|
|
3386
|
+
|
|
3387
|
+
if (this.getPortSettings) {
|
|
3388
|
+
this._portSettings = this.getPortSettings();
|
|
3389
|
+
}
|
|
3390
|
+
|
|
3391
|
+
if (this.getCertificationSettings) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3392
|
+
<span class="cstat-no" title="statement not covered" > this._cert = this.getCertificationSettings();</span>
|
|
3393
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3394
|
+
|
|
3395
|
+
if (this.getRoutingModules) {
|
|
3396
|
+
this._routingModules = this.getRoutingModules();
|
|
3397
|
+
|
|
3398
|
+
// ezt egyelőre csak tesztelem, nem kerül be
|
|
3399
|
+
/* if (
|
|
3400
|
+
!DyNTS_global_settings.dontCreateDefaultRoute &&
|
|
3401
|
+
!this._routingModules.some((routingModule: DyNTS_RoutingModule): boolean => routingModule.route === '/*')
|
|
3402
|
+
) {
|
|
3403
|
+
this._routingModules.push(
|
|
3404
|
+
DyNTS_getStarRoute()
|
|
3405
|
+
);
|
|
3406
|
+
} */
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
if (this._params.dbUri) {
|
|
3410
|
+
await this.startDB();
|
|
3411
|
+
|
|
3412
|
+
if (this.createEntries) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3413
|
+
<span class="cstat-no" title="statement not covered" > await this.createEntries();</span>
|
|
3414
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3415
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
3416
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
|
|
3417
|
+
<span class="cstat-no" title="statement not covered" > `\nNo database connection created.`,</span>
|
|
3418
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3419
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3420
|
+
|
|
3421
|
+
if (this._routingModules?.length) {
|
|
3422
|
+
if (this.logSetup) <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nsetting up express routes...');</span>
|
|
3423
|
+
|
|
3424
|
+
this.setSecurity();
|
|
3425
|
+
|
|
3426
|
+
await this.initExpresses();
|
|
3427
|
+
await this.startExpresses();
|
|
3428
|
+
|
|
3429
|
+
if (this._security !== DyNTS_RouteSecurity.secure) {
|
|
3430
|
+
await this.mountOpenRoutes();
|
|
3431
|
+
}
|
|
3432
|
+
|
|
3433
|
+
if (this._security !== DyNTS_RouteSecurity.open<span class="branch-0 cbranch-no" title="branch not covered" > && this._cert)</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3434
|
+
<span class="cstat-no" title="statement not covered" > await this.mountSecureRoutes();</span>
|
|
3435
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3436
|
+
|
|
3437
|
+
if (this.logSetup) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3438
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.log(`\nRoutes mounted.... server using security: ${this._security}`);</span>
|
|
3439
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3440
|
+
} else {
|
|
3441
|
+
DyFM_Log.warn(
|
|
3442
|
+
`\nNo routes mounted!`,
|
|
3443
|
+
);
|
|
3444
|
+
}
|
|
3445
|
+
|
|
3446
|
+
if (this.getRootServices) {
|
|
3447
|
+
this._rootServices = await this.getRootServices();
|
|
3448
|
+
}
|
|
3449
|
+
|
|
3450
|
+
if (this.postProcess) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3451
|
+
<span class="cstat-no" title="statement not covered" > await this.postProcess().catch((error: any): void => {</span>
|
|
3452
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Error.logSimple(`"${this._params.name}" postProcess failed:`, error);</span>
|
|
3453
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(error);</span>
|
|
3454
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3455
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3456
|
+
|
|
3457
|
+
if (!extended) {
|
|
3458
|
+
await this.ready();
|
|
3459
|
+
|
|
3460
|
+
if (this.params.title) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3461
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.success(this.params.title);</span>
|
|
3462
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3463
|
+
DyFM_Log.info(`Version: ${this.params.version}`);
|
|
3464
|
+
/* DyFM_Log.info(`NTS Version: ${this.ntsVersion}`); */
|
|
3465
|
+
DyFM_Log.H_success(`${this.params.name} started successfully.`);
|
|
3466
|
+
}
|
|
3467
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3468
|
+
<span class="cstat-no" title="statement not covered" > this.constructErrors.push(error);</span>
|
|
3469
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3470
|
+
<span class="cstat-no" title="statement not covered" > if (this.deepLog) {</span>
|
|
3471
|
+
<span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.highDetailedLogs) {</span>
|
|
3472
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3473
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed (in asyncConstruct (highDetailedLog)). `,</span>
|
|
3474
|
+
<span class="cstat-no" title="statement not covered" > `\n\n construct ERRORS:`, this.constructErrors,</span>
|
|
3475
|
+
<span class="cstat-no" title="statement not covered" > '\n\nlast error:', error</span>
|
|
3476
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3477
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3478
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3479
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed (in asyncConstruct). `,</span>
|
|
3480
|
+
<span class="cstat-no" title="statement not covered" > `\n\n construct ERRORS:`, this.getSimplifiedConstructErrors(),</span>
|
|
3481
|
+
<span class="cstat-no" title="statement not covered" > '\n\nlast error:', error instanceof DyFM_Error ? error.getErrorSimplified() : error</span>
|
|
3482
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3483
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3484
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3485
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3486
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3487
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('asyncConstruct', error),</span>
|
|
3488
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3489
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-001`,</span>
|
|
3490
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: {</span>
|
|
3491
|
+
<span class="cstat-no" title="statement not covered" > constructErrors: this.constructErrors,</span>
|
|
3492
|
+
<span class="cstat-no" title="statement not covered" > systemControls: this.systemControls,</span>
|
|
3493
|
+
<span class="cstat-no" title="statement not covered" > systemReadies: {</span>
|
|
3494
|
+
<span class="cstat-no" title="statement not covered" > app: this.systemControls.app.getIsReady(),</span>
|
|
3495
|
+
<span class="cstat-no" title="statement not covered" > mongoose: this.systemControls.mongoose.getIsReady(),</span>
|
|
3496
|
+
<span class="cstat-no" title="statement not covered" > httpServer: this.systemControls.httpServer.getIsReady(),</span>
|
|
3497
|
+
<span class="cstat-no" title="statement not covered" > httpsServer: this.systemControls.httpsServer.getIsReady(),</span>
|
|
3498
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3499
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3500
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3501
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3502
|
+
}
|
|
3503
|
+
|
|
3504
|
+
async ready(timeout: number = this.defaultReadyTimeout): Promise<void> {
|
|
3505
|
+
try {
|
|
3506
|
+
if (this.fnLogs) <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. ready');</span>
|
|
3507
|
+
|
|
3508
|
+
await DyFM_Async.delay(100);
|
|
3509
|
+
|
|
3510
|
+
let ready: boolean = false;
|
|
3511
|
+
const start: number = +new Date();
|
|
3512
|
+
|
|
3513
|
+
if (this.constructErrors.length) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3514
|
+
<span class="cstat-no" title="statement not covered" > if (this.deepLog) {</span>
|
|
3515
|
+
<span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.highDetailedLogs) {</span>
|
|
3516
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3517
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; constructErrors check 1)`,</span>
|
|
3518
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.constructErrors</span>
|
|
3519
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3520
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3521
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3522
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; constructErrors check 1)`,</span>
|
|
3523
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.getSimplifiedConstructErrors(),</span>
|
|
3524
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3525
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3526
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3527
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3528
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
|
|
3529
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
|
|
3530
|
+
<span class="cstat-no" title="statement not covered" > 'ready',</span>
|
|
3531
|
+
<span class="cstat-no" title="statement not covered" > new Error(`"${this._params.name}" start failed.`)</span>
|
|
3532
|
+
<span class="cstat-no" title="statement not covered" > ),</span>
|
|
3533
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3534
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R01`,</span>
|
|
3535
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: </span>
|
|
3536
|
+
<span class="cstat-no" title="statement not covered" > this.constructErrors.length === 1 ? </span>
|
|
3537
|
+
<span class="cstat-no" title="statement not covered" > { error: this.constructErrors[0] } : </span>
|
|
3538
|
+
<span class="cstat-no" title="statement not covered" > { errors: this.constructErrors },</span>
|
|
3539
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3540
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3541
|
+
|
|
3542
|
+
while (!ready && +new Date() - start < timeout) {
|
|
3543
|
+
if (this.systemControls.app.init) {
|
|
3544
|
+
ready = (
|
|
3545
|
+
this.systemControls.mongoose.getIsReady() &&
|
|
3546
|
+
this.systemControls.httpServer.getIsReady() &&
|
|
3547
|
+
this.systemControls.httpsServer.getIsReady()
|
|
3548
|
+
);
|
|
3549
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
3550
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`"${this._params.name}" APP NOT INITIALIZED while trying to get ready.`);</span>
|
|
3551
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3552
|
+
|
|
3553
|
+
if (!ready) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3554
|
+
<span class="cstat-no" title="statement not covered" > await DyFM_Async.wait(100);</span>
|
|
3555
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3556
|
+
}
|
|
3557
|
+
|
|
3558
|
+
if (timeout < +new Date() - start) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3559
|
+
<span class="cstat-no" title="statement not covered" > if (this.deepLog) {</span>
|
|
3560
|
+
<span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.highDetailedLogs) {</span>
|
|
3561
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3562
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; TIMEOUT check)`,</span>
|
|
3563
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.constructErrors</span>
|
|
3564
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3565
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3566
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3567
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; TIMEOUT check)`, </span>
|
|
3568
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.getSimplifiedConstructErrors(),</span>
|
|
3569
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3570
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3571
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3572
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3573
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3574
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
|
|
3575
|
+
<span class="cstat-no" title="statement not covered" > 'ready',</span>
|
|
3576
|
+
<span class="cstat-no" title="statement not covered" > new Error(`"${this._params.name}" start failed. TIMEOUT`)</span>
|
|
3577
|
+
<span class="cstat-no" title="statement not covered" > ),</span>
|
|
3578
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3579
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R02`,</span>
|
|
3580
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: {</span>
|
|
3581
|
+
<span class="cstat-no" title="statement not covered" > constructErrors: this.constructErrors,</span>
|
|
3582
|
+
<span class="cstat-no" title="statement not covered" > systemControls: this.systemControls,</span>
|
|
3583
|
+
<span class="cstat-no" title="statement not covered" > systemReadies: {</span>
|
|
3584
|
+
<span class="cstat-no" title="statement not covered" > mongoose: this.systemControls.mongoose.getIsReady(),</span>
|
|
3585
|
+
<span class="cstat-no" title="statement not covered" > httpServer: this.systemControls.httpServer.getIsReady(),</span>
|
|
3586
|
+
<span class="cstat-no" title="statement not covered" > httpsServer: this.systemControls.httpsServer.getIsReady(),</span>
|
|
3587
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3588
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3589
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3590
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3591
|
+
|
|
3592
|
+
if (this.constructErrors.length) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3593
|
+
<span class="cstat-no" title="statement not covered" > if (this.deepLog) {</span>
|
|
3594
|
+
<span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.highDetailedLogs) {</span>
|
|
3595
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3596
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; constructErrors check 2)`,</span>
|
|
3597
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.constructErrors</span>
|
|
3598
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3599
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3600
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
3601
|
+
<span class="cstat-no" title="statement not covered" > `"${this._params.name}" start failed. (ready; constructErrors check 2)`,</span>
|
|
3602
|
+
<span class="cstat-no" title="statement not covered" > `\n construct ERRORS:`, this.getSimplifiedConstructErrors(),</span>
|
|
3603
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3604
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3605
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3606
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3607
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3608
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
|
|
3609
|
+
<span class="cstat-no" title="statement not covered" > 'ready',</span>
|
|
3610
|
+
<span class="cstat-no" title="statement not covered" > new Error(`"${this._params.name}" start failed.`)</span>
|
|
3611
|
+
<span class="cstat-no" title="statement not covered" > ),</span>
|
|
3612
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3613
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R03`,</span>
|
|
3614
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: this.constructErrors,</span>
|
|
3615
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3616
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3617
|
+
|
|
3618
|
+
if (ready) {
|
|
3619
|
+
this.systemControls.app.started = true;
|
|
3620
|
+
|
|
3621
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. ready: return');</span>
|
|
3622
|
+
|
|
3623
|
+
return;
|
|
3624
|
+
}
|
|
3625
|
+
<span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span>
|
|
3626
|
+
<span class="cstat-no" title="statement not covered" > this.systemControls.app.started = false;</span>
|
|
3627
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3628
|
+
<span class="cstat-no" title="statement not covered" > let msg: string = `"${this._params.name}" start failed. UNKNOWN`;</span>
|
|
3629
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3630
|
+
if (this.systemControls.mongoose.init && !this.systemControls.mongoose.started) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3631
|
+
<span class="cstat-no" title="statement not covered" > msg += `\nMongoose start failed.`;</span>
|
|
3632
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3633
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3634
|
+
if (this.systemControls.httpServer.init && !this.systemControls.httpServer.started) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3635
|
+
<span class="cstat-no" title="statement not covered" > msg += `\nHTTP Server start failed.`;</span>
|
|
3636
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3637
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3638
|
+
if (this.systemControls.httpsServer.init && !this.systemControls.httpsServer.started) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3639
|
+
<span class="cstat-no" title="statement not covered" > msg += `\nHTTPS Server start failed.`;</span>
|
|
3640
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3641
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3642
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(msg, this.constructErrors);</span>
|
|
3643
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3644
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
|
|
3645
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('ready', new Error(msg)),</span>
|
|
3646
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3647
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-R04`,</span>
|
|
3648
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: {</span>
|
|
3649
|
+
<span class="cstat-no" title="statement not covered" > constructErrors: this.constructErrors,</span>
|
|
3650
|
+
<span class="cstat-no" title="statement not covered" > systemControls: this.systemControls,</span>
|
|
3651
|
+
<span class="cstat-no" title="statement not covered" > systemReadies: {</span>
|
|
3652
|
+
<span class="cstat-no" title="statement not covered" > app: this.systemControls.app.getIsReady(),</span>
|
|
3653
|
+
<span class="cstat-no" title="statement not covered" > mongoose: this.systemControls.mongoose.getIsReady(),</span>
|
|
3654
|
+
<span class="cstat-no" title="statement not covered" > httpServer: this.systemControls.httpServer.getIsReady(),</span>
|
|
3655
|
+
<span class="cstat-no" title="statement not covered" > httpsServer: this.systemControls.httpsServer.getIsReady(),</span>
|
|
3656
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3657
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
3658
|
+
error: this.constructErrors?.[0]<span class="branch-0 cbranch-no" title="branch not covered" > ?? new Error(),</span>
|
|
3659
|
+
});
|
|
3660
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3661
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3662
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('ready', error),</span>
|
|
3663
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3664
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-READY0`,</span>
|
|
3665
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3666
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3667
|
+
}
|
|
3668
|
+
|
|
3669
|
+
protected <span class="fstat-no" title="function not covered" >getSimplifiedConstructErrors(): string[] {</span>
|
|
3670
|
+
<span class="cstat-no" title="statement not covered" > return this.constructErrors.map((error: any): any => {</span>
|
|
3671
|
+
<span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
|
|
3672
|
+
<span class="cstat-no" title="statement not covered" > return error.getErrorSimplified();</span>
|
|
3673
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3674
|
+
<span class="cstat-no" title="statement not covered" > return error;</span>
|
|
3675
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3676
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3677
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3678
|
+
|
|
3679
|
+
async stop(dontLog?: boolean): Promise<void> {
|
|
3680
|
+
try {
|
|
3681
|
+
DyFM_Log.info('\nstopping server...\n');
|
|
3682
|
+
|
|
3683
|
+
await this.ready();
|
|
3684
|
+
|
|
3685
|
+
if (this.started) {
|
|
3686
|
+
|
|
3687
|
+
if (this.systemControls.mongoose.init) {
|
|
3688
|
+
DyFM_Log.info(`\nstopping Mongoose....`);
|
|
3689
|
+
|
|
3690
|
+
let tryCount: number = 0;
|
|
3691
|
+
|
|
3692
|
+
while (
|
|
3693
|
+
!this.systemControls.mongoose.started<span class="branch-0 cbranch-no" title="branch not covered" > && </span>
|
|
3694
|
+
!this.constructErrors.length<span class="branch-0 cbranch-no" title="branch not covered" > &&</span>
|
|
3695
|
+
<span class="cstat-no" title="statement not covered" > tryCount++ < 10</span>
|
|
3696
|
+
) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3697
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.warn(`Mongoose not even started yet....`);</span>
|
|
3698
|
+
<span class="cstat-no" title="statement not covered" > await DyFM_Async.wait(second);</span>
|
|
3699
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3700
|
+
this.systemControls.mongoose.started = false;
|
|
3701
|
+
|
|
3702
|
+
if (this.mongoose) {
|
|
3703
|
+
await DyFM_Array.asyncForEach(
|
|
3704
|
+
Object.keys(this.mongoose.models),
|
|
3705
|
+
async (modelName): Promise<void> => {
|
|
3706
|
+
this.mongoose.deleteModel(modelName);
|
|
3707
|
+
}
|
|
3708
|
+
);
|
|
3709
|
+
|
|
3710
|
+
const disconnect: Promise<void> = new Promise((resolve): void => {
|
|
3711
|
+
this.mongoose.connection.on('disconnecting', (): void => {
|
|
3712
|
+
resolve();
|
|
3713
|
+
});
|
|
3714
|
+
});
|
|
3715
|
+
|
|
3716
|
+
await this.mongoose.disconnect();
|
|
3717
|
+
await this.mongoose.connection.close();
|
|
3718
|
+
await disconnect;
|
|
3719
|
+
|
|
3720
|
+
this.mongoose.connection.removeAllListeners();
|
|
3721
|
+
|
|
3722
|
+
while (
|
|
3723
|
+
this.mongoose.connection.readyState !== 0<span class="branch-0 cbranch-no" title="branch not covered" > && </span>
|
|
3724
|
+
<span class="cstat-no" title="statement not covered" > !this.constructErrors.length</span>
|
|
3725
|
+
) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3726
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.warn(`\nMongoose still not disconnected....`);</span>
|
|
3727
|
+
<span class="cstat-no" title="statement not covered" > await DyFM_Async.wait(second);</span>
|
|
3728
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3729
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
3730
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`\nMongoose not found.`);</span>
|
|
3731
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3732
|
+
this.systemControls.mongoose.init = false;
|
|
3733
|
+
}
|
|
3734
|
+
|
|
3735
|
+
if (this.systemControls.httpServer.init) {
|
|
3736
|
+
this.systemControls.httpServer.started = false;
|
|
3737
|
+
|
|
3738
|
+
if (this.httpServer) {
|
|
3739
|
+
await new Promise((resolve): void => {
|
|
3740
|
+
this.httpServer.close(resolve);
|
|
3741
|
+
});
|
|
3742
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
3743
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`\nHTTP Server not found.`);</span>
|
|
3744
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3745
|
+
this.systemControls.httpServer.init = false;
|
|
3746
|
+
}
|
|
3747
|
+
|
|
3748
|
+
if (this.systemControls.httpsServer.init) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3749
|
+
<span class="cstat-no" title="statement not covered" > this.systemControls.httpsServer.started = false;</span>
|
|
3750
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3751
|
+
<span class="cstat-no" title="statement not covered" > if (this.httpsServer) {</span>
|
|
3752
|
+
<span class="cstat-no" title="statement not covered" > await new Promise((resolve): void => {</span>
|
|
3753
|
+
<span class="cstat-no" title="statement not covered" > this.httpsServer.close(resolve);</span>
|
|
3754
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3755
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
3756
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`\nHTTPS Server not found.`);</span>
|
|
3757
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3758
|
+
<span class="cstat-no" title="statement not covered" > this.systemControls.httpsServer.init = false;</span>
|
|
3759
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3760
|
+
|
|
3761
|
+
await DyFM_Async.wait(second);
|
|
3762
|
+
|
|
3763
|
+
if (!dontLog) {
|
|
3764
|
+
DyFM_Log.H_log(`"${this._params.name}" stopped successfully.`);
|
|
3765
|
+
}
|
|
3766
|
+
}
|
|
3767
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3768
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3769
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('stop', error),</span>
|
|
3770
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3771
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-STOP0`,</span>
|
|
3772
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3773
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3774
|
+
}
|
|
3775
|
+
|
|
3776
|
+
/**
|
|
3777
|
+
*
|
|
3778
|
+
*/
|
|
3779
|
+
private async startDB(): Promise<void> {
|
|
3780
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. startDB');</span>
|
|
3781
|
+
else if (this.logSetup) <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nstarting DB connection...');</span>
|
|
3782
|
+
|
|
3783
|
+
if (!this._params.dbUri) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3784
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3785
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', new Error('DB URI is not set.')),</span>
|
|
3786
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3787
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,</span>
|
|
3788
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3789
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3790
|
+
|
|
3791
|
+
if (!this._params.dbOptions) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3792
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3793
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', new Error('DB OPTIONS are not set.')),</span>
|
|
3794
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3795
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,</span>
|
|
3796
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3797
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3798
|
+
|
|
3799
|
+
if (this.systemControls.mongoose.init || this.systemControls.mongoose.started) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3800
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3801
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', new Error('Mongoose is already initialized.')),</span>
|
|
3802
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3803
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,</span>
|
|
3804
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3805
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3806
|
+
|
|
3807
|
+
try {
|
|
3808
|
+
await new Promise<void>(
|
|
3809
|
+
(resolve, reject): void => {
|
|
3810
|
+
this.systemControls.mongoose.init = true;
|
|
3811
|
+
|
|
3812
|
+
this.mongoose.connection
|
|
3813
|
+
.once('open', (): void => {
|
|
3814
|
+
this.systemControls.mongoose.started = true;
|
|
3815
|
+
DyFM_Log.success(`\nConnected to MongoDB (${this._params.dbUri})\n`);
|
|
3816
|
+
|
|
3817
|
+
resolve();
|
|
3818
|
+
})
|
|
3819
|
+
.on('error', (error): void => {
|
|
3820
|
+
<span class="cstat-no" title="statement not covered" > if (!this.systemControls.mongoose.started) {</span>
|
|
3821
|
+
<span class="cstat-no" title="statement not covered" > this.constructErrors.push(error);</span>
|
|
3822
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3823
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) DyFM_Log.error(</span>
|
|
3824
|
+
<span class="cstat-no" title="statement not covered" > `\nUnable to connect to MongoDB server (${this._params.dbUri}), ERROR: `, </span>
|
|
3825
|
+
<span class="cstat-no" title="statement not covered" > error</span>
|
|
3826
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
3827
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3828
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
3829
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', error),</span>
|
|
3830
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3831
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB1`,</span>
|
|
3832
|
+
<span class="cstat-no" title="statement not covered" > message: `Unable to start connection to MongoDB server (${this._params.dbUri}), ` +</span>
|
|
3833
|
+
<span class="cstat-no" title="statement not covered" > `ERROR: ${error}`,</span>
|
|
3834
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3835
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3836
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
3837
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3838
|
+
<span class="cstat-no" title="statement not covered" > reject(d_error);</span>
|
|
3839
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3840
|
+
<span class="cstat-no" title="statement not covered" > } else { </span>
|
|
3841
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) DyFM_Log.error('\nMongoDB ERROR: ', error);</span>
|
|
3842
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3843
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
3844
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('mongoose.connection.on(error)', error),</span>
|
|
3845
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3846
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB2`,</span>
|
|
3847
|
+
<span class="cstat-no" title="statement not covered" > message: `MongoDB ERROR: ${error}`,</span>
|
|
3848
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.critical,</span>
|
|
3849
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3850
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3851
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
3852
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3853
|
+
});
|
|
3854
|
+
|
|
3855
|
+
try {
|
|
3856
|
+
this.mongoose.connect(
|
|
3857
|
+
this._params.dbUri,
|
|
3858
|
+
this._params.dbOptions
|
|
3859
|
+
/* {
|
|
3860
|
+
directConnection: true,
|
|
3861
|
+
} */
|
|
3862
|
+
);
|
|
3863
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3864
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3865
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', error),</span>
|
|
3866
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3867
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB3`,</span>
|
|
3868
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3869
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3870
|
+
}
|
|
3871
|
+
);
|
|
3872
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3873
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3874
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startDB', error),</span>
|
|
3875
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3876
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,</span>
|
|
3877
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3878
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
/**
|
|
3882
|
+
*
|
|
3883
|
+
*/
|
|
3884
|
+
private async initExpresses(): Promise<void> {
|
|
3885
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. initExpresses');</span>
|
|
3886
|
+
|
|
3887
|
+
try {
|
|
3888
|
+
if (this._security && this._security !== DyNTS_RouteSecurity.secure) {
|
|
3889
|
+
if (!this._portSettings.httpPort) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3890
|
+
<span class="cstat-no" title="statement not covered" > let errorMsg: string =</span>
|
|
3891
|
+
<span class="cstat-no" title="statement not covered" > `\nYou have open routes, but httpPort is not set!` +</span>
|
|
3892
|
+
<span class="cstat-no" title="statement not covered" > `\nThere are ${this._routingModules.filter(</span>
|
|
3893
|
+
<span class="cstat-no" title="statement not covered" > m => m.security != DyNTS_RouteSecurity.secure</span>
|
|
3894
|
+
<span class="cstat-no" title="statement not covered" > ).length} open/both routes` +</span>
|
|
3895
|
+
<span class="cstat-no" title="statement not covered" > `\nroot security: ${this._security}` +</span>
|
|
3896
|
+
<span class="cstat-no" title="statement not covered" > `\nset httpPort in DynamoBEServer - setupRoutingModules() to enable secure routes.`;</span>
|
|
3897
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3898
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += '\n\nThe routes setted to use open server:';</span>
|
|
3899
|
+
<span class="cstat-no" title="statement not covered" > this._routingModules.forEach((module: DyNTS_RoutingModule): void => {</span>
|
|
3900
|
+
<span class="cstat-no" title="statement not covered" > if (module.security != DyNTS_RouteSecurity.secure) {</span>
|
|
3901
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n ${module.route} (security: ${module.security})`;</span>
|
|
3902
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n subroutes using open sever:`;</span>
|
|
3903
|
+
<span class="cstat-no" title="statement not covered" > module.endpoints.forEach((endpoint: DyNTS_Endpoint_Params): void => {</span>
|
|
3904
|
+
<span class="cstat-no" title="statement not covered" > if (endpoint.security != DyNTS_RouteSecurity.secure) {</span>
|
|
3905
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n ${endpoint.endpoint} (security: ${endpoint.security})`;</span>
|
|
3906
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3907
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3908
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3909
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3910
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3911
|
+
<span class="cstat-no" title="statement not covered" > const error = new Error(`Open routes cannot be established!\n${errorMsg}`);</span>
|
|
3912
|
+
<span class="cstat-no" title="statement not covered" > const errorStack: string[] = error.stack.split('\n');</span>
|
|
3913
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3914
|
+
<span class="cstat-no" title="statement not covered" > errorStack.splice(1, 2);</span>
|
|
3915
|
+
<span class="cstat-no" title="statement not covered" > error.stack = errorStack.join('\n');</span>
|
|
3916
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3917
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(errorMsg);</span>
|
|
3918
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3919
|
+
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
3920
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3921
|
+
|
|
3922
|
+
await this.initOpenExpress();
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
if (this._security && this._security !== DyNTS_RouteSecurity.open) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
3926
|
+
<span class="cstat-no" title="statement not covered" > if (!this._cert || !this._portSettings.httpsPort) {</span>
|
|
3927
|
+
<span class="cstat-no" title="statement not covered" > let errorMsg: string =</span>
|
|
3928
|
+
<span class="cstat-no" title="statement not covered" > `\nYou have secure routes, but the certification paths or httpsPort are not set!` +</span>
|
|
3929
|
+
<span class="cstat-no" title="statement not covered" > `\nThere are ${this._routingModules.filter(</span>
|
|
3930
|
+
<span class="cstat-no" title="statement not covered" > m => m.security && m.security !== DyNTS_RouteSecurity.open</span>
|
|
3931
|
+
<span class="cstat-no" title="statement not covered" > ).length} secure routes` +</span>
|
|
3932
|
+
<span class="cstat-no" title="statement not covered" > `\nroot security: ${this._security}` +</span>
|
|
3933
|
+
<span class="cstat-no" title="statement not covered" > `\nset...` +</span>
|
|
3934
|
+
<span class="cstat-no" title="statement not covered" > `\n(missing exact howto...)` +</span>
|
|
3935
|
+
<span class="cstat-no" title="statement not covered" > /* `\n httpsPort and` +</span>
|
|
3936
|
+
<span class="cstat-no" title="statement not covered" > `\n cert: {` +</span>
|
|
3937
|
+
<span class="cstat-no" title="statement not covered" > `\n keyPath: FileSystem.PathLike,` +</span>
|
|
3938
|
+
<span class="cstat-no" title="statement not covered" > `\n certPath: FileSystem.PathLike,` +</span>
|
|
3939
|
+
<span class="cstat-no" title="statement not covered" > `\n }` + */</span>
|
|
3940
|
+
<span class="cstat-no" title="statement not covered" > `\nin DynamoBEServer - getRoutingModules() to enable secure routes.`; </span>
|
|
3941
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3942
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += '\n\nThe routes setted to use secure server:';</span>
|
|
3943
|
+
<span class="cstat-no" title="statement not covered" > this._routingModules.forEach((module: DyNTS_RoutingModule): void => {</span>
|
|
3944
|
+
<span class="cstat-no" title="statement not covered" > if (module.security && module.security !== DyNTS_RouteSecurity.open) {</span>
|
|
3945
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n ${module.route} (security: ${module.security})`;</span>
|
|
3946
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n location: ${module.stackLocation}`;</span>
|
|
3947
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n subroutes using secure sever:`;</span>
|
|
3948
|
+
<span class="cstat-no" title="statement not covered" > module.endpoints.forEach((endpoint: DyNTS_Endpoint_Params): void => {</span>
|
|
3949
|
+
<span class="cstat-no" title="statement not covered" > if (endpoint.security && endpoint.security !== DyNTS_RouteSecurity.open) {</span>
|
|
3950
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n ${endpoint.endpoint} (security: ${endpoint.security})`;</span>
|
|
3951
|
+
<span class="cstat-no" title="statement not covered" > errorMsg += `\n location: ${endpoint.stackLocation}`;</span>
|
|
3952
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3953
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3954
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3955
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3956
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3957
|
+
<span class="cstat-no" title="statement not covered" > const error = new Error(`Secure routes cannot be established!\n${errorMsg}`);</span>
|
|
3958
|
+
<span class="cstat-no" title="statement not covered" > const errorStack: string[] = error.stack.split('\n');</span>
|
|
3959
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3960
|
+
<span class="cstat-no" title="statement not covered" > errorStack.splice(1, 2);</span>
|
|
3961
|
+
<span class="cstat-no" title="statement not covered" > error.stack = errorStack.join('\n');</span>
|
|
3962
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3963
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(errorMsg);</span>
|
|
3964
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3965
|
+
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
3966
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3967
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3968
|
+
<span class="cstat-no" title="statement not covered" > await this.initSecureExpress();</span>
|
|
3969
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3970
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
3971
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
3972
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('initExpresses', error),</span>
|
|
3973
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
3974
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-IE0`,</span>
|
|
3975
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
3976
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
3977
|
+
}
|
|
3978
|
+
|
|
3979
|
+
/**
|
|
3980
|
+
*
|
|
3981
|
+
*/
|
|
3982
|
+
protected async initOpenExpress(): Promise<void> {
|
|
3983
|
+
if (this.fnLogs) <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. initOpenExpress');</span>
|
|
3984
|
+
this.openExpress = Express();
|
|
3985
|
+
this.openExpress.set('maxHeaderSize', 10 * megabyte); // 1024 * 1024 * 10, // 10MB
|
|
3986
|
+
this.openExpress.use(BodyParser.urlencoded(this._portSettings.httpUrlencoded));
|
|
3987
|
+
this.openExpress.use(BodyParser.json(this._portSettings.httpJson));
|
|
3988
|
+
}
|
|
3989
|
+
|
|
3990
|
+
/**
|
|
3991
|
+
*
|
|
3992
|
+
*/
|
|
3993
|
+
protected <span class="fstat-no" title="function not covered" >async initSecureExpress(): Promise<void> {</span>
|
|
3994
|
+
<span class="cstat-no" title="statement not covered" > if (this.fnLogs) DyFM_Log.log('\nfn:. initSecureExpress');</span>
|
|
3995
|
+
<span class="cstat-no" title="statement not covered" > this.secureExpress = Express(); </span>
|
|
3996
|
+
<span class="cstat-no" title="statement not covered" > this.secureExpress.use(BodyParser.urlencoded(this._portSettings.httpsUrlencoded));</span>
|
|
3997
|
+
<span class="cstat-no" title="statement not covered" > this.secureExpress.use(BodyParser.json(this._portSettings.httpsJson));</span>
|
|
3998
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
3999
|
+
<span class="cstat-no" title="statement not covered" > const options = {</span>
|
|
4000
|
+
<span class="cstat-no" title="statement not covered" > key: FileSystem.readFileSync(this._cert.keyPath),</span>
|
|
4001
|
+
<span class="cstat-no" title="statement not covered" > cert: FileSystem.readFileSync(this._cert.certPath),</span>
|
|
4002
|
+
<span class="cstat-no" title="statement not covered" > maxHeaderSize: 10 * megabyte, // 1024 * 1024 * 10, // 10MB</span>
|
|
4003
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
4004
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4005
|
+
<span class="cstat-no" title="statement not covered" > this.httpsServer = Https.createServer(options, this.secureExpress);</span>
|
|
4006
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4007
|
+
|
|
4008
|
+
/**
|
|
4009
|
+
*
|
|
4010
|
+
*/
|
|
4011
|
+
private async startExpresses(): Promise<void> {
|
|
4012
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. startExpresses');</span>
|
|
4013
|
+
|
|
4014
|
+
try {
|
|
4015
|
+
if (this._security && this._security !== DyNTS_RouteSecurity.open) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4016
|
+
<span class="cstat-no" title="statement not covered" > await new Promise<void>(<span class="fstat-no" title="function not covered" >(resolve, reject): void => {</span></span>
|
|
4017
|
+
<span class="cstat-no" title="statement not covered" > this.systemControls.httpsServer.init = true;</span>
|
|
4018
|
+
<span class="cstat-no" title="statement not covered" > this.httpsServer</span>
|
|
4019
|
+
<span class="cstat-no" title="statement not covered" > .listen(</span>
|
|
4020
|
+
<span class="cstat-no" title="statement not covered" > this._portSettings.httpsPort, </span>
|
|
4021
|
+
<span class="cstat-no" title="statement not covered" > this.params.secureHost, </span>
|
|
4022
|
+
<span class="cstat-no" title="statement not covered" > this.params.expressBacklog, </span>
|
|
4023
|
+
<span class="cstat-no" title="statement not covered" > (): void => {</span>
|
|
4024
|
+
<span class="cstat-no" title="statement not covered" > this.systemControls.httpsServer.started = true;</span>
|
|
4025
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.success(</span>
|
|
4026
|
+
<span class="cstat-no" title="statement not covered" > `\nHTTPS (secure) server is listening on port: ` +</span>
|
|
4027
|
+
<span class="cstat-no" title="statement not covered" > `${this.params.secureHost}:${this._portSettings.httpsPort}`</span>
|
|
4028
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4029
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4030
|
+
<span class="cstat-no" title="statement not covered" > resolve();</span>
|
|
4031
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
4032
|
+
<span class="cstat-no" title="statement not covered" > .on('error', (error): void => {</span>
|
|
4033
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) DyFM_Log.error(`\nHTTPS (secure) server ERROR`, error);</span>
|
|
4034
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4035
|
+
<span class="cstat-no" title="statement not covered" > if (!this.systemControls.httpsServer.started) {</span>
|
|
4036
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4037
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startExpresses', error),</span>
|
|
4038
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4039
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE1`,</span>
|
|
4040
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTPS (secure) start server ERROR`,</span>
|
|
4041
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4042
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4043
|
+
<span class="cstat-no" title="statement not covered" > this.constructErrors.push(d_error);</span>
|
|
4044
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4045
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4046
|
+
<span class="cstat-no" title="statement not covered" > reject(d_error);</span>
|
|
4047
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4048
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
4049
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4050
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('httpsServer.on(error)', error),</span>
|
|
4051
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4052
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE2`,</span>
|
|
4053
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTPS (secure) server ERROR`,</span>
|
|
4054
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.serious,</span>
|
|
4055
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4056
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4057
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4058
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4059
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
4060
|
+
<span class="cstat-no" title="statement not covered" > .on('uncaughtException', (exception): void => {</span>
|
|
4061
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4062
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('httpsServer.on(uncaughtException)', exception),</span>
|
|
4063
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4064
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE3`,</span>
|
|
4065
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTPS (secure) server uncaughtException`,</span>
|
|
4066
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.critical,</span>
|
|
4067
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4068
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4069
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) DyFM_Log.warn(</span>
|
|
4070
|
+
<span class="cstat-no" title="statement not covered" > `\nHTTPS (secure) server uncaughtException`, </span>
|
|
4071
|
+
<span class="cstat-no" title="statement not covered" > d_error</span>
|
|
4072
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4073
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4074
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4075
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4076
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4077
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4078
|
+
|
|
4079
|
+
if (this._security && this._security !== DyNTS_RouteSecurity.secure) {
|
|
4080
|
+
this.systemControls.httpServer.init = true;
|
|
4081
|
+
await new Promise<void>((resolve, reject): void => {
|
|
4082
|
+
this.httpServer = this.openExpress
|
|
4083
|
+
.listen(
|
|
4084
|
+
this._portSettings.httpPort,
|
|
4085
|
+
this.params.openHost,
|
|
4086
|
+
this.params.expressBacklog,
|
|
4087
|
+
(): void => {
|
|
4088
|
+
this.systemControls.httpServer.started = true;
|
|
4089
|
+
DyFM_Log.success(
|
|
4090
|
+
`\nHTTP (open) server is listening on port: ` +
|
|
4091
|
+
`${this.params.openHost}:${this._portSettings.httpPort}`
|
|
4092
|
+
);
|
|
4093
|
+
|
|
4094
|
+
resolve();
|
|
4095
|
+
}
|
|
4096
|
+
)
|
|
4097
|
+
.on('error', (error): void => {
|
|
4098
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) DyFM_Log.error(`\nHTTP (open) server ERROR`, error);</span>
|
|
4099
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4100
|
+
<span class="cstat-no" title="statement not covered" > if (!this.systemControls.httpServer.started) {</span>
|
|
4101
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4102
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startExpresses', error),</span>
|
|
4103
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4104
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE3`,</span>
|
|
4105
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTP (open) start server ERROR`,</span>
|
|
4106
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4107
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4108
|
+
<span class="cstat-no" title="statement not covered" > this.constructErrors.push(d_error);</span>
|
|
4109
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4110
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4111
|
+
<span class="cstat-no" title="statement not covered" > reject(d_error);</span>
|
|
4112
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4113
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
4114
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4115
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('httpServer.on(error)', error),</span>
|
|
4116
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4117
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE4`,</span>
|
|
4118
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTP (open) server ERROR`,</span>
|
|
4119
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.serious,</span>
|
|
4120
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4121
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4122
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4123
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4124
|
+
})
|
|
4125
|
+
.on('uncaughtException', (exception): void => {
|
|
4126
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4127
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('httpServer.on(uncaughtException)', exception),</span>
|
|
4128
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4129
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE5`,</span>
|
|
4130
|
+
<span class="cstat-no" title="statement not covered" > message: `HTTP (open) server uncaughtException`,</span>
|
|
4131
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.critical,</span>
|
|
4132
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4133
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4134
|
+
<span class="cstat-no" title="statement not covered" > if (this.debugLog) {</span>
|
|
4135
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.warn(`\nHTTP (open) server uncaughtException`, d_error);</span>
|
|
4136
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4137
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4138
|
+
<span class="cstat-no" title="statement not covered" > DyNTS_GlobalService.globalErrorHandler?.(d_error);</span>
|
|
4139
|
+
});
|
|
4140
|
+
});
|
|
4141
|
+
}
|
|
4142
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
4143
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
4144
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('startExpresses', error),</span>
|
|
4145
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4146
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SE0`,</span>
|
|
4147
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4148
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4149
|
+
}
|
|
4150
|
+
|
|
4151
|
+
/**
|
|
4152
|
+
*
|
|
4153
|
+
*/
|
|
4154
|
+
private <span class="fstat-no" title="function not covered" >async expressErrorHandling(error, req, res, next): Promise<void> {</span>
|
|
4155
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
4156
|
+
<span class="cstat-no" title="statement not covered" > if (error) {</span>
|
|
4157
|
+
<span class="cstat-no" title="statement not covered" > const d_error: DyFM_Error = new DyFM_Error({</span>
|
|
4158
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('expressErrorHandling', error),</span>
|
|
4159
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4160
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-EEH1`,</span>
|
|
4161
|
+
<span class="cstat-no" title="statement not covered" > message: `Express ERROR`,</span>
|
|
4162
|
+
<span class="cstat-no" title="statement not covered" > additionalContent: {</span>
|
|
4163
|
+
<span class="cstat-no" title="statement not covered" > req,</span>
|
|
4164
|
+
<span class="cstat-no" title="statement not covered" > res,</span>
|
|
4165
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
4166
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.error,</span>
|
|
4167
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4168
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4169
|
+
<span class="cstat-no" title="statement not covered" > await DyNTS_GlobalService.globalErrorHandler?.(d_error, req, res);</span>
|
|
4170
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4171
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
4172
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
4173
|
+
<span class="cstat-no" title="statement not covered" > 'WTF??? express error; without error?...' + </span>
|
|
4174
|
+
<span class="cstat-no" title="statement not covered" > '\nerr:', error,</span>
|
|
4175
|
+
<span class="cstat-no" title="statement not covered" > '\nreq:', req,</span>
|
|
4176
|
+
<span class="cstat-no" title="statement not covered" > '\nres:', res</span>
|
|
4177
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4178
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4179
|
+
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
4180
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.H_error(</span>
|
|
4181
|
+
<span class="cstat-no" title="statement not covered" > 'MULTILEVEL ERROR (expressErrorHandling)....' +</span>
|
|
4182
|
+
<span class="cstat-no" title="statement not covered" > '\n', error</span>
|
|
4183
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4184
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4185
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4186
|
+
|
|
4187
|
+
/**
|
|
4188
|
+
*
|
|
4189
|
+
*/
|
|
4190
|
+
private <span class="fstat-no" title="function not covered" >async mountSecureRoutes (): Promise<void> {</span>
|
|
4191
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
4192
|
+
<span class="cstat-no" title="statement not covered" > if (this.fnLogs && this.deepLog) DyFM_Log.log('\nfn:. mountSecureRoutes');</span>
|
|
4193
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4194
|
+
<span class="cstat-no" title="statement not covered" > this.openExpress.use(</span>
|
|
4195
|
+
<span class="cstat-no" title="statement not covered" > (error, req, res, next): Promise<void> => this.expressErrorHandling(error, req, res, next)</span>
|
|
4196
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4197
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4198
|
+
<span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
|
|
4199
|
+
<span class="cstat-no" title="statement not covered" > this._routingModules, </span>
|
|
4200
|
+
<span class="cstat-no" title="statement not covered" > async (module: DyNTS_RoutingModule): Promise<void> => {</span>
|
|
4201
|
+
<span class="cstat-no" title="statement not covered" > if (module.security !== DyNTS_RouteSecurity.open) {</span>
|
|
4202
|
+
<span class="cstat-no" title="statement not covered" > if (this.logSetup) { </span>
|
|
4203
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.log(`route mount (secure): ${module.route}`);</span>
|
|
4204
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4205
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4206
|
+
<span class="cstat-no" title="statement not covered" > const existingRoutes: DyNTS_RoutingModule[] = this._routingModules.filter(</span>
|
|
4207
|
+
<span class="cstat-no" title="statement not covered" > (mod: DyNTS_RoutingModule): boolean => mod.route === module.route</span>
|
|
4208
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4209
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4210
|
+
<span class="cstat-no" title="statement not covered" > if (1 < existingRoutes.length) {</span>
|
|
4211
|
+
<span class="cstat-no" title="statement not covered" > const error: Error = new Error(`ROUTE DUPLICATION: ${module.route}`);</span>
|
|
4212
|
+
<span class="cstat-no" title="statement not covered" > const errorStack: string[] = error.stack.split('\n');</span>
|
|
4213
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4214
|
+
<span class="cstat-no" title="statement not covered" > errorStack.splice(1, 4);</span>
|
|
4215
|
+
<span class="cstat-no" title="statement not covered" > error.stack = errorStack.join('\n');</span>
|
|
4216
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4217
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`ROUTE DUPLICATION: ${module.route}`, error);</span>
|
|
4218
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4219
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
4220
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('mountSecureRoutes', error),</span>
|
|
4221
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4222
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MSR1`,</span>
|
|
4223
|
+
<span class="cstat-no" title="statement not covered" > message: `ROUTE DUPLICATION: ${module.route}`,</span>
|
|
4224
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4225
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4226
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4227
|
+
<span class="cstat-no" title="statement not covered" > this.secureExpress.use(module.route, module.secureRouter);</span>
|
|
4228
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4229
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4230
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
4231
|
+
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
4232
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
4233
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('mountSecureRoutes', error),</span>
|
|
4234
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4235
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MSR0`,</span>
|
|
4236
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4237
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4238
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4239
|
+
|
|
4240
|
+
/**
|
|
4241
|
+
*
|
|
4242
|
+
*/
|
|
4243
|
+
private async mountOpenRoutes(): Promise<void> {
|
|
4244
|
+
try {
|
|
4245
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. mountOpenRoutes');</span>
|
|
4246
|
+
|
|
4247
|
+
this.openExpress.use(
|
|
4248
|
+
(error, req, res, next): Promise<void> => this.expressErrorHandling(error, req, res, next)
|
|
4249
|
+
);
|
|
4250
|
+
|
|
4251
|
+
await DyFM_Array.asyncForEach(
|
|
4252
|
+
this._routingModules,
|
|
4253
|
+
async (module: DyNTS_RoutingModule): Promise<void> => {
|
|
4254
|
+
if (module.security !== DyNTS_RouteSecurity.secure) {
|
|
4255
|
+
if (this.logSetup) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4256
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.log(`route mount (open): ${module.route}`);</span>
|
|
4257
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4258
|
+
|
|
4259
|
+
const existingRoutes: DyNTS_RoutingModule[] = this._routingModules.filter(
|
|
4260
|
+
(mod: DyNTS_RoutingModule): boolean => mod.route === module.route
|
|
4261
|
+
);
|
|
4262
|
+
|
|
4263
|
+
if (1 < existingRoutes.length) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4264
|
+
<span class="cstat-no" title="statement not covered" > const error: Error = new Error(`ROUTE DUPLICATION: ${module.route}`);</span>
|
|
4265
|
+
<span class="cstat-no" title="statement not covered" > const errorStack: string[] = error.stack.split('\n');</span>
|
|
4266
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4267
|
+
<span class="cstat-no" title="statement not covered" > errorStack.splice(1, 4);</span>
|
|
4268
|
+
<span class="cstat-no" title="statement not covered" > error.stack = errorStack.join('\n');</span>
|
|
4269
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4270
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.error(`ROUTE DUPLICATION: ${module.route}`, error);</span>
|
|
4271
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4272
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
4273
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('mountOpenRoutes', error),</span>
|
|
4274
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4275
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MOR1`,</span>
|
|
4276
|
+
<span class="cstat-no" title="statement not covered" > message: `ROUTE DUPLICATION: ${module.route}`,</span>
|
|
4277
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4278
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4279
|
+
|
|
4280
|
+
this.openExpress.use(module.route, module.openRouter);
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4283
|
+
);
|
|
4284
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
4285
|
+
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
4286
|
+
<span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('mountOpenRoutes', error),</span>
|
|
4287
|
+
<span class="cstat-no" title="statement not covered" > </span>
|
|
4288
|
+
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-MOR0`,</span>
|
|
4289
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4290
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4291
|
+
}
|
|
4292
|
+
|
|
4293
|
+
/**
|
|
4294
|
+
*
|
|
4295
|
+
*/
|
|
4296
|
+
private setSecurity(): void {
|
|
4297
|
+
if (this.fnLogs<span class="branch-0 cbranch-no" title="branch not covered" > && this.deepLog)</span> <span class="branch-0 cbranch-no" title="branch not covered" >DyFM_Log.log('\nfn:. setSecurity');</span>
|
|
4298
|
+
this._routingModules.forEach((module: DyNTS_RoutingModule): void => {
|
|
4299
|
+
if (!module.security) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4300
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.warn(`RoutingModule security is not set for ${module.route}\n`);</span>
|
|
4301
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4302
|
+
} else if (!this._security) {
|
|
4303
|
+
this._security = module.security;
|
|
4304
|
+
|
|
4305
|
+
} else if (this._security !== module.security) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4306
|
+
<span class="cstat-no" title="statement not covered" > this._security = DyNTS_RouteSecurity.both;</span>
|
|
4307
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4308
|
+
});
|
|
4309
|
+
|
|
4310
|
+
if (!this._security) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
4311
|
+
<span class="cstat-no" title="statement not covered" > let msg = `Could not set security for the server! (${this.security})`;</span>
|
|
4312
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4313
|
+
<span class="cstat-no" title="statement not covered" > msg += '\n RoutingModules:';</span>
|
|
4314
|
+
<span class="cstat-no" title="statement not covered" > this._routingModules.forEach((module: DyNTS_RoutingModule): void => {</span>
|
|
4315
|
+
<span class="cstat-no" title="statement not covered" > msg += `\n ${module.route} (security: ${module.security})`;</span>
|
|
4316
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
4317
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
4318
|
+
<span class="cstat-no" title="statement not covered" > if (this._routingModules.length === 0) {</span>
|
|
4319
|
+
<span class="cstat-no" title="statement not covered" > msg += '\n - no RoutingModule found -\n';</span>
|
|
4320
|
+
<span class="cstat-no" title="statement not covered" > } </span>
|
|
4321
|
+
<span class="cstat-no" title="statement not covered" > DyFM_Log.warn(msg);</span>
|
|
4322
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4325
|
+
private <span class="fstat-no" title="function not covered" >_getDefaultErrorSettings(</span>
|
|
4326
|
+
<span class="cstat-no" title="statement not covered" > fnName: string, </span>
|
|
4327
|
+
<span class="cstat-no" title="statement not covered" > error: DyFM_AnyError</span>
|
|
4328
|
+
<span class="cstat-no" title="statement not covered" > ): DyFM_Error_Settings {</span>
|
|
4329
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
4330
|
+
<span class="cstat-no" title="statement not covered" > status: (error as DyFM_Error)?.___status ?? 500,</span>
|
|
4331
|
+
<span class="cstat-no" title="statement not covered" > message: (error as Error)?.message ?? </span>
|
|
4332
|
+
<span class="cstat-no" title="statement not covered" > (error as DyFM_Error)?._message ??</span>
|
|
4333
|
+
<span class="cstat-no" title="statement not covered" > `${fnName} was UNSUCCESSFUL (NTS)`,</span>
|
|
4334
|
+
<span class="cstat-no" title="statement not covered" > userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,</span>
|
|
4335
|
+
<span class="cstat-no" title="statement not covered" > addECToUserMsg: !(error as DyFM_Error)?.__userMessage,</span>
|
|
4336
|
+
<span class="cstat-no" title="statement not covered" > issuerService: `${this?.constructor?.name}-DyNTS_App`,</span>
|
|
4337
|
+
<span class="cstat-no" title="statement not covered" > level: DyFM_ErrorLevel.fatal,</span>
|
|
4338
|
+
<span class="cstat-no" title="statement not covered" > error: error,</span>
|
|
4339
|
+
<span class="cstat-no" title="statement not covered" > systemVersion: DyNTS_global_settings.systemVersion,</span>
|
|
4340
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
4341
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
4342
|
+
|
|
4343
|
+
/**
|
|
4344
|
+
* MISSING Description (TODO)
|
|
4345
|
+
*/
|
|
4346
|
+
abstract getAppParams(): DyNTS_App_Params;
|
|
4347
|
+
|
|
4348
|
+
/**
|
|
4349
|
+
* MISSING Description (TODO)
|
|
4350
|
+
*/
|
|
4351
|
+
abstract getGlobalServiceCollection(): DyNTS_GlobalService_Settings;
|
|
4352
|
+
|
|
4353
|
+
/**
|
|
4354
|
+
* MISSING Description (TODO)
|
|
4355
|
+
*/
|
|
4356
|
+
abstract getPortSettings(): DyNTS_Http_Settings;
|
|
4357
|
+
|
|
4358
|
+
/**
|
|
4359
|
+
* MISSING Description (TODO)
|
|
4360
|
+
*/
|
|
4361
|
+
overrideDynamoNTSGlobalSettings?(): void;
|
|
4362
|
+
|
|
4363
|
+
/**
|
|
4364
|
+
* MISSING Description (TODO)
|
|
4365
|
+
*/
|
|
4366
|
+
getRoutingModules?(): DyNTS_RoutingModule[];
|
|
4367
|
+
|
|
4368
|
+
/**
|
|
4369
|
+
* MISSING Description (TODO)
|
|
4370
|
+
*/
|
|
4371
|
+
getRootServices?(): Promise<any[]>;
|
|
4372
|
+
|
|
4373
|
+
/**
|
|
4374
|
+
* MISSING Description (TODO)
|
|
4375
|
+
*/
|
|
4376
|
+
getCertificationSettings?(): DyNTS_Certification_Settings;
|
|
4377
|
+
|
|
4378
|
+
/**
|
|
4379
|
+
* MISSING Description (TODO)
|
|
4380
|
+
*/
|
|
4381
|
+
createEntries?(): Promise<void>;
|
|
4382
|
+
|
|
4383
|
+
/**
|
|
4384
|
+
* MISSING Description (TODO)
|
|
4385
|
+
*/
|
|
4386
|
+
postProcess?(): Promise<void>;
|
|
4387
|
+
|
|
4388
|
+
}
|
|
4389
|
+
</pre></td></tr></table></pre>
|
|
4390
|
+
|
|
4391
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
4392
|
+
</div><!-- /wrapper -->
|
|
4393
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
4394
|
+
Code coverage generated by
|
|
4395
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
4396
|
+
at 2025-11-12T23:04:34.838Z
|
|
4397
|
+
</div>
|
|
4398
|
+
<script src="../../prettify.js"></script>
|
|
4399
|
+
<script>
|
|
4400
|
+
window.onload = function () {
|
|
4401
|
+
prettyPrint();
|
|
4402
|
+
};
|
|
4403
|
+
</script>
|
|
4404
|
+
<script src="../../sorter.js"></script>
|
|
4405
|
+
<script src="../../block-navigation.js"></script>
|
|
4406
|
+
</body>
|
|
4407
|
+
</html>
|
|
4408
|
+
|