@microsoft/teamsfx-core 1.2.0 → 1.2.2-alpha.eb4575da.0
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/build/common/armInterface.d.ts +0 -20
- package/build/common/armInterface.d.ts.map +1 -1
- package/build/common/deps-checker/depsChecker.d.ts +1 -0
- package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
- package/build/common/deps-checker/depsChecker.js.map +1 -1
- package/build/common/deps-checker/depsManager.d.ts +2 -1
- package/build/common/deps-checker/depsManager.d.ts.map +1 -1
- package/build/common/deps-checker/depsManager.js +12 -7
- package/build/common/deps-checker/depsManager.js.map +1 -1
- package/build/common/deps-checker/index.d.ts +1 -0
- package/build/common/deps-checker/index.d.ts.map +1 -1
- package/build/common/deps-checker/index.js +1 -0
- package/build/common/deps-checker/index.js.map +1 -1
- package/build/common/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/dotnetChecker.js +2 -1
- package/build/common/deps-checker/internal/dotnetChecker.js.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.js +2 -1
- package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/ngrokChecker.d.ts +1 -1
- package/build/common/deps-checker/internal/ngrokChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/ngrokChecker.js +2 -4
- package/build/common/deps-checker/internal/ngrokChecker.js.map +1 -1
- package/build/common/deps-checker/internal/nodeChecker.d.ts +1 -0
- package/build/common/deps-checker/internal/nodeChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/nodeChecker.js +9 -1
- package/build/common/deps-checker/internal/nodeChecker.js.map +1 -1
- package/build/common/deps-checker/util/extensionInstaller.d.ts +3 -0
- package/build/common/deps-checker/util/extensionInstaller.d.ts.map +1 -0
- package/build/common/deps-checker/util/extensionInstaller.js +47 -0
- package/build/common/deps-checker/util/extensionInstaller.js.map +1 -0
- package/build/common/deps-checker/util/index.d.ts +5 -0
- package/build/common/deps-checker/util/index.d.ts.map +1 -0
- package/build/common/deps-checker/util/index.js +10 -0
- package/build/common/deps-checker/util/index.js.map +1 -0
- package/build/common/index.d.ts +1 -3
- package/build/common/index.d.ts.map +1 -1
- package/build/common/index.js +1 -3
- package/build/common/index.js.map +1 -1
- package/build/common/local/constants.d.ts +5 -0
- package/build/common/local/constants.d.ts.map +1 -1
- package/build/common/local/constants.js +7 -1
- package/build/common/local/constants.js.map +1 -1
- package/build/common/local/index.d.ts +5 -0
- package/build/common/local/index.d.ts.map +1 -0
- package/build/common/local/index.js +10 -0
- package/build/common/local/index.js.map +1 -0
- package/build/{plugins/solution/fx-solution/debug/util/certificate.d.ts → common/local/localCertificateManager.d.ts} +4 -6
- package/build/common/local/localCertificateManager.d.ts.map +1 -0
- package/build/{plugins/solution/fx-solution/debug/util/certificate.js → common/local/localCertificateManager.js} +37 -47
- package/build/common/local/localCertificateManager.js.map +1 -0
- package/build/common/local/localEnvManager.d.ts +6 -2
- package/build/common/local/localEnvManager.d.ts.map +1 -1
- package/build/common/local/localEnvManager.js +41 -1
- package/build/common/local/localEnvManager.js.map +1 -1
- package/build/{plugins/solution/fx-solution/debug/util → common/local}/process.d.ts +0 -0
- package/build/common/local/process.d.ts.map +1 -0
- package/build/{plugins/solution/fx-solution/debug/util → common/local}/process.js +0 -0
- package/build/common/local/process.js.map +1 -0
- package/build/common/local/projectSettingsHelper.d.ts +5 -5
- package/build/common/local/projectSettingsHelper.d.ts.map +1 -1
- package/build/common/local/projectSettingsHelper.js +28 -21
- package/build/common/local/projectSettingsHelper.js.map +1 -1
- package/build/common/local/taskDefinition.d.ts +1 -1
- package/build/common/local/taskDefinition.d.ts.map +1 -1
- package/build/common/local/taskDefinition.js +6 -4
- package/build/common/local/taskDefinition.js.map +1 -1
- package/build/common/localSettingsConstants.d.ts +1 -0
- package/build/common/localSettingsConstants.d.ts.map +1 -1
- package/build/common/localSettingsConstants.js +1 -0
- package/build/common/localSettingsConstants.js.map +1 -1
- package/build/common/localSettingsProvider.d.ts.map +1 -1
- package/build/common/localSettingsProvider.js +1 -0
- package/build/common/localSettingsProvider.js.map +1 -1
- package/build/common/permissionInterface.d.ts +1 -0
- package/build/common/permissionInterface.d.ts.map +1 -1
- package/build/common/permissionInterface.js +1 -0
- package/build/common/permissionInterface.js.map +1 -1
- package/build/common/telemetry.d.ts +7 -2
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +10 -4
- package/build/common/telemetry.js.map +1 -1
- package/build/common/{templates.d.ts → template-utils/templates.d.ts} +0 -0
- package/build/common/template-utils/templates.d.ts.map +1 -0
- package/build/common/{templates.js → template-utils/templates.js} +1 -1
- package/build/common/template-utils/templates.js.map +1 -0
- package/build/common/{templatesActions.d.ts → template-utils/templatesActions.d.ts} +0 -0
- package/build/common/template-utils/templatesActions.d.ts.map +1 -0
- package/build/common/{templatesActions.js → template-utils/templatesActions.js} +3 -3
- package/build/common/template-utils/templatesActions.js.map +1 -0
- package/build/common/{templatesUtils.d.ts → template-utils/templatesUtils.d.ts} +0 -0
- package/build/common/template-utils/templatesUtils.d.ts.map +1 -0
- package/build/common/{templatesUtils.js → template-utils/templatesUtils.js} +1 -1
- package/build/common/template-utils/templatesUtils.js.map +1 -0
- package/build/common/tools.d.ts +1 -4
- package/build/common/tools.d.ts.map +1 -1
- package/build/common/tools.js +41 -12
- package/build/common/tools.js.map +1 -1
- package/build/core/index.d.ts +2 -2
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +14 -6
- package/build/core/index.js.map +1 -1
- package/build/core/middleware/index.d.ts +0 -1
- package/build/core/middleware/index.d.ts.map +1 -1
- package/build/core/middleware/index.js +0 -1
- package/build/core/middleware/index.js.map +1 -1
- package/build/core/middleware/projectMigrator.d.ts.map +1 -1
- package/build/core/middleware/projectMigrator.js +0 -9
- package/build/core/middleware/projectMigrator.js.map +1 -1
- package/build/core/permissionRequest.js +2 -2
- package/build/core/permissionRequest.js.map +1 -1
- package/build/core/question.d.ts.map +1 -1
- package/build/core/question.js +7 -4
- package/build/core/question.js.map +1 -1
- package/build/plugins/resource/aad/aadAppClient.d.ts +2 -2
- package/build/plugins/resource/aad/aadAppClient.d.ts.map +1 -1
- package/build/plugins/resource/aad/aadAppClient.js +3 -4
- package/build/plugins/resource/aad/aadAppClient.js.map +1 -1
- package/build/plugins/resource/aad/errors.d.ts.map +1 -1
- package/build/plugins/resource/aad/errors.js +1 -2
- package/build/plugins/resource/aad/errors.js.map +1 -1
- package/build/plugins/resource/aad/interfaces/IAADDefinition.d.ts +4 -0
- package/build/plugins/resource/aad/interfaces/IAADDefinition.d.ts.map +1 -1
- package/build/plugins/resource/aad/plugin.d.ts.map +1 -1
- package/build/plugins/resource/aad/plugin.js +33 -46
- package/build/plugins/resource/aad/plugin.js.map +1 -1
- package/build/plugins/resource/aad/utils/common.d.ts +2 -0
- package/build/plugins/resource/aad/utils/common.d.ts.map +1 -1
- package/build/plugins/resource/aad/utils/common.js +14 -14
- package/build/plugins/resource/aad/utils/common.js.map +1 -1
- package/build/plugins/resource/aad/utils/configs.d.ts +1 -0
- package/build/plugins/resource/aad/utils/configs.d.ts.map +1 -1
- package/build/plugins/resource/aad/utils/configs.js +20 -38
- package/build/plugins/resource/aad/utils/configs.js.map +1 -1
- package/build/plugins/resource/apim/error.d.ts.map +1 -1
- package/build/plugins/resource/apim/error.js +1 -4
- package/build/plugins/resource/apim/error.js.map +1 -1
- package/build/plugins/resource/apim/managers/apimManager.d.ts.map +1 -1
- package/build/plugins/resource/apim/managers/apimManager.js +21 -58
- package/build/plugins/resource/apim/managers/apimManager.js.map +1 -1
- package/build/plugins/resource/apim/managers/questionManager.d.ts.map +1 -1
- package/build/plugins/resource/apim/managers/questionManager.js +0 -7
- package/build/plugins/resource/apim/managers/questionManager.js.map +1 -1
- package/build/plugins/resource/apim/questions/vscodeQuestion.d.ts.map +1 -1
- package/build/plugins/resource/apim/questions/vscodeQuestion.js +6 -13
- package/build/plugins/resource/apim/questions/vscodeQuestion.js.map +1 -1
- package/build/plugins/resource/appstudio/constants.d.ts +3 -2
- package/build/plugins/resource/appstudio/constants.d.ts.map +1 -1
- package/build/plugins/resource/appstudio/constants.js +12 -11
- package/build/plugins/resource/appstudio/constants.js.map +1 -1
- package/build/plugins/resource/appstudio/index.d.ts +2 -36
- package/build/plugins/resource/appstudio/index.d.ts.map +1 -1
- package/build/plugins/resource/appstudio/index.js +1 -31
- package/build/plugins/resource/appstudio/index.js.map +1 -1
- package/build/plugins/resource/appstudio/manifestTemplate.d.ts +1 -1
- package/build/plugins/resource/appstudio/manifestTemplate.d.ts.map +1 -1
- package/build/plugins/resource/appstudio/manifestTemplate.js +16 -8
- package/build/plugins/resource/appstudio/manifestTemplate.js.map +1 -1
- package/build/plugins/resource/appstudio/plugin.d.ts +1 -0
- package/build/plugins/resource/appstudio/plugin.d.ts.map +1 -1
- package/build/plugins/resource/appstudio/plugin.js +14 -1
- package/build/plugins/resource/appstudio/plugin.js.map +1 -1
- package/build/plugins/resource/appstudio/v3/index.d.ts +1 -3
- package/build/plugins/resource/appstudio/v3/index.d.ts.map +1 -1
- package/build/plugins/resource/appstudio/v3/index.js +28 -16
- package/build/plugins/resource/appstudio/v3/index.js.map +1 -1
- package/build/plugins/resource/bot/configs/provisionConfig.d.ts.map +1 -1
- package/build/plugins/resource/bot/configs/provisionConfig.js +0 -10
- package/build/plugins/resource/bot/configs/provisionConfig.js.map +1 -1
- package/build/plugins/resource/bot/languageStrategy.d.ts +1 -1
- package/build/plugins/resource/bot/languageStrategy.d.ts.map +1 -1
- package/build/plugins/resource/bot/languageStrategy.js +1 -1
- package/build/plugins/resource/bot/languageStrategy.js.map +1 -1
- package/build/plugins/resource/bot/plugin.d.ts.map +1 -1
- package/build/plugins/resource/bot/plugin.js +14 -131
- package/build/plugins/resource/bot/plugin.js.map +1 -1
- package/build/plugins/resource/frontend/configs.d.ts +1 -1
- package/build/plugins/resource/frontend/configs.d.ts.map +1 -1
- package/build/plugins/resource/frontend/configs.js +3 -9
- package/build/plugins/resource/frontend/configs.js.map +1 -1
- package/build/plugins/resource/frontend/constants.d.ts +2 -8
- package/build/plugins/resource/frontend/constants.d.ts.map +1 -1
- package/build/plugins/resource/frontend/constants.js +3 -11
- package/build/plugins/resource/frontend/constants.js.map +1 -1
- package/build/plugins/resource/frontend/dotnet/constants.d.ts +52 -0
- package/build/plugins/resource/frontend/dotnet/constants.d.ts.map +1 -0
- package/build/plugins/resource/frontend/dotnet/constants.js +69 -0
- package/build/plugins/resource/frontend/dotnet/constants.js.map +1 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/enum.d.ts +1 -1
- package/build/plugins/resource/frontend/{blazor → dotnet}/enum.d.ts.map +1 -1
- package/build/plugins/resource/frontend/dotnet/enum.js +39 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/enum.js.map +1 -1
- package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.d.ts +0 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.d.ts.map +1 -1
- package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.js +3 -3
- package/build/plugins/resource/frontend/{blazor → dotnet}/error-factory.js.map +1 -1
- package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.d.ts +0 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.d.ts.map +1 -1
- package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.js +3 -3
- package/build/plugins/resource/frontend/{blazor → dotnet}/ops/deploy.js.map +1 -1
- package/build/plugins/resource/frontend/dotnet/plugin.d.ts +34 -0
- package/build/plugins/resource/frontend/dotnet/plugin.d.ts.map +1 -0
- package/build/plugins/resource/frontend/dotnet/plugin.js +126 -0
- package/build/plugins/resource/frontend/dotnet/plugin.js.map +1 -0
- package/build/plugins/resource/frontend/dotnet/resources/errors.d.ts +35 -0
- package/build/plugins/resource/frontend/dotnet/resources/errors.d.ts.map +1 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/resources/errors.js +10 -22
- package/build/plugins/resource/frontend/dotnet/resources/errors.js.map +1 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/resources/messages.d.ts +0 -4
- package/build/plugins/resource/frontend/dotnet/resources/messages.d.ts.map +1 -0
- package/build/plugins/resource/frontend/{blazor → dotnet}/resources/messages.js +0 -4
- package/build/plugins/resource/frontend/dotnet/resources/messages.js.map +1 -0
- package/build/plugins/resource/frontend/dotnet/utils/azure-client.d.ts +6 -0
- package/build/plugins/resource/frontend/dotnet/utils/azure-client.d.ts.map +1 -0
- package/build/plugins/resource/frontend/dotnet/utils/azure-client.js +11 -0
- package/build/plugins/resource/frontend/dotnet/utils/azure-client.js.map +1 -0
- package/build/plugins/resource/frontend/index.d.ts +6 -3
- package/build/plugins/resource/frontend/index.d.ts.map +1 -1
- package/build/plugins/resource/frontend/index.js +27 -45
- package/build/plugins/resource/frontend/index.js.map +1 -1
- package/build/plugins/resource/frontend/interface.d.ts +13 -0
- package/build/plugins/resource/frontend/interface.d.ts.map +1 -0
- package/build/plugins/resource/frontend/interface.js +3 -0
- package/build/plugins/resource/frontend/interface.js.map +1 -0
- package/build/plugins/resource/frontend/ops/deploy.d.ts +3 -0
- package/build/plugins/resource/frontend/ops/deploy.d.ts.map +1 -1
- package/build/plugins/resource/frontend/ops/deploy.js +43 -0
- package/build/plugins/resource/frontend/ops/deploy.js.map +1 -1
- package/build/plugins/resource/frontend/ops/scaffold.d.ts.map +1 -1
- package/build/plugins/resource/frontend/ops/scaffold.js +1 -1
- package/build/plugins/resource/frontend/ops/scaffold.js.map +1 -1
- package/build/plugins/resource/frontend/plugin.d.ts +3 -3
- package/build/plugins/resource/frontend/plugin.d.ts.map +1 -1
- package/build/plugins/resource/frontend/plugin.js +13 -44
- package/build/plugins/resource/frontend/plugin.js.map +1 -1
- package/build/plugins/resource/frontend/resources/errors.d.ts +23 -20
- package/build/plugins/resource/frontend/resources/errors.d.ts.map +1 -1
- package/build/plugins/resource/frontend/resources/errors.js +31 -67
- package/build/plugins/resource/frontend/resources/errors.js.map +1 -1
- package/build/plugins/resource/frontend/resources/templateInfo.js +1 -1
- package/build/plugins/resource/frontend/resources/templateInfo.js.map +1 -1
- package/build/plugins/resource/frontend/utils/logger.d.ts +3 -1
- package/build/plugins/resource/frontend/utils/logger.d.ts.map +1 -1
- package/build/plugins/resource/frontend/utils/logger.js +9 -6
- package/build/plugins/resource/frontend/utils/logger.js.map +1 -1
- package/build/plugins/resource/frontend/utils/progress-helper.d.ts +0 -8
- package/build/plugins/resource/frontend/utils/progress-helper.d.ts.map +1 -1
- package/build/plugins/resource/frontend/utils/progress-helper.js +1 -19
- package/build/plugins/resource/frontend/utils/progress-helper.js.map +1 -1
- package/build/plugins/resource/frontend/v2/index.d.ts +1 -0
- package/build/plugins/resource/frontend/v2/index.d.ts.map +1 -1
- package/build/plugins/resource/frontend/v2/index.js +3 -0
- package/build/plugins/resource/frontend/v2/index.js.map +1 -1
- package/build/plugins/resource/frontend/v3/AzureStoragePlugin.d.ts +15 -0
- package/build/plugins/resource/frontend/v3/AzureStoragePlugin.d.ts.map +1 -0
- package/build/plugins/resource/frontend/v3/AzureStoragePlugin.js +149 -0
- package/build/plugins/resource/frontend/v3/AzureStoragePlugin.js.map +1 -0
- package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.d.ts +8 -0
- package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.d.ts.map +1 -0
- package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.js +95 -0
- package/build/plugins/resource/frontend/v3/ReactTabScaffoldPlugin.js.map +1 -0
- package/build/plugins/resource/frontend/v3/error.d.ts +23 -0
- package/build/plugins/resource/frontend/v3/error.d.ts.map +1 -0
- package/build/plugins/resource/frontend/v3/error.js +66 -0
- package/build/plugins/resource/frontend/v3/error.js.map +1 -0
- package/build/plugins/resource/frontend/v3/index.d.ts +3 -0
- package/build/plugins/resource/frontend/v3/index.d.ts.map +1 -0
- package/build/plugins/resource/frontend/v3/index.js +7 -0
- package/build/plugins/resource/frontend/v3/index.js.map +1 -0
- package/build/plugins/resource/function/index.d.ts +1 -1
- package/build/plugins/resource/function/index.d.ts.map +1 -1
- package/build/plugins/resource/function/index.js +8 -21
- package/build/plugins/resource/function/index.js.map +1 -1
- package/build/plugins/resource/function/ops/deploy.d.ts.map +1 -1
- package/build/plugins/resource/function/ops/deploy.js +8 -9
- package/build/plugins/resource/function/ops/deploy.js.map +1 -1
- package/build/plugins/resource/function/ops/scaffold.js +1 -1
- package/build/plugins/resource/function/ops/scaffold.js.map +1 -1
- package/build/plugins/resource/function/plugin.d.ts.map +1 -1
- package/build/plugins/resource/function/plugin.js +33 -134
- package/build/plugins/resource/function/plugin.js.map +1 -1
- package/build/plugins/resource/function/resources/message.d.ts +0 -1
- package/build/plugins/resource/function/resources/message.d.ts.map +1 -1
- package/build/plugins/resource/function/resources/message.js +0 -1
- package/build/plugins/resource/function/resources/message.js.map +1 -1
- package/build/plugins/resource/function/utils/depsChecker/funcHelper.d.ts +11 -0
- package/build/plugins/resource/function/utils/depsChecker/funcHelper.d.ts.map +1 -0
- package/build/plugins/resource/function/utils/depsChecker/funcHelper.js +48 -0
- package/build/plugins/resource/function/utils/depsChecker/funcHelper.js.map +1 -0
- package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.d.ts +6 -4
- package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.d.ts.map +1 -1
- package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.js +15 -8
- package/build/plugins/resource/function/utils/depsChecker/funcPluginLogger.js.map +1 -1
- package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.d.ts +4 -3
- package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.d.ts.map +1 -1
- package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.js +5 -4
- package/build/plugins/resource/function/utils/depsChecker/funcPluginTelemetry.js.map +1 -1
- package/build/plugins/resource/function/utils/telemetry-helper.d.ts +1 -1
- package/build/plugins/resource/function/utils/telemetry-helper.d.ts.map +1 -1
- package/build/plugins/resource/identity/index.d.ts +0 -1
- package/build/plugins/resource/identity/index.d.ts.map +1 -1
- package/build/plugins/resource/identity/index.js +2 -20
- package/build/plugins/resource/identity/index.js.map +1 -1
- package/build/plugins/resource/simpleauth/index.d.ts.map +1 -1
- package/build/plugins/resource/simpleauth/index.js +1 -6
- package/build/plugins/resource/simpleauth/index.js.map +1 -1
- package/build/plugins/resource/simpleauth/plugin.d.ts.map +1 -1
- package/build/plugins/resource/simpleauth/plugin.js +0 -3
- package/build/plugins/resource/simpleauth/plugin.js.map +1 -1
- package/build/plugins/resource/spfx/plugin.d.ts.map +1 -1
- package/build/plugins/resource/spfx/plugin.js +14 -9
- package/build/plugins/resource/spfx/plugin.js.map +1 -1
- package/build/plugins/resource/spfx/utils/constants.d.ts +5 -4
- package/build/plugins/resource/spfx/utils/constants.d.ts.map +1 -1
- package/build/plugins/resource/spfx/utils/constants.js +5 -4
- package/build/plugins/resource/spfx/utils/constants.js.map +1 -1
- package/build/plugins/resource/spfx/utils/progress-helper.d.ts.map +1 -1
- package/build/plugins/resource/spfx/utils/progress-helper.js +1 -1
- package/build/plugins/resource/spfx/utils/progress-helper.js.map +1 -1
- package/build/plugins/resource/sql/index.d.ts.map +1 -1
- package/build/plugins/resource/sql/index.js +1 -9
- package/build/plugins/resource/sql/index.js.map +1 -1
- package/build/plugins/resource/sql/plugin.d.ts.map +1 -1
- package/build/plugins/resource/sql/plugin.js +26 -58
- package/build/plugins/resource/sql/plugin.js.map +1 -1
- package/build/plugins/resource/utils4v2.d.ts +1 -1
- package/build/plugins/resource/utils4v2.d.ts.map +1 -1
- package/build/plugins/resource/utils4v2.js +3 -3
- package/build/plugins/resource/utils4v2.js.map +1 -1
- package/build/plugins/solution/fx-solution/arm.d.ts +9 -2
- package/build/plugins/solution/fx-solution/arm.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/arm.js +45 -11
- package/build/plugins/solution/fx-solution/arm.js.map +1 -1
- package/build/plugins/solution/fx-solution/commonQuestions.d.ts +4 -3
- package/build/plugins/solution/fx-solution/commonQuestions.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/commonQuestions.js +11 -10
- package/build/plugins/solution/fx-solution/commonQuestions.js.map +1 -1
- package/build/plugins/solution/fx-solution/constants.d.ts +1 -0
- package/build/plugins/solution/fx-solution/constants.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/constants.js +1 -0
- package/build/plugins/solution/fx-solution/constants.js.map +1 -1
- package/build/plugins/solution/fx-solution/debug/constants.d.ts +0 -5
- package/build/plugins/solution/fx-solution/debug/constants.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/debug/constants.js +1 -7
- package/build/plugins/solution/fx-solution/debug/constants.js.map +1 -1
- package/build/plugins/solution/fx-solution/debug/provisionLocal.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/debug/provisionLocal.js +2 -2
- package/build/plugins/solution/fx-solution/debug/provisionLocal.js.map +1 -1
- package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts +2 -2
- package/build/plugins/solution/fx-solution/debug/scaffolding.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/debug/scaffolding.js +5 -3
- package/build/plugins/solution/fx-solution/debug/scaffolding.js.map +1 -1
- package/build/plugins/solution/fx-solution/question.d.ts +2 -2
- package/build/plugins/solution/fx-solution/question.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/question.js +32 -22
- package/build/plugins/solution/fx-solution/question.js.map +1 -1
- package/build/plugins/solution/fx-solution/solution.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/solution.js +15 -15
- package/build/plugins/solution/fx-solution/solution.js.map +1 -1
- package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.d.ts +31 -0
- package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.d.ts.map +1 -0
- package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.js +222 -0
- package/build/plugins/solution/fx-solution/utils/ResourceGroupHelper.js.map +1 -0
- package/build/plugins/solution/fx-solution/v2/adaptor.js +1 -1
- package/build/plugins/solution/fx-solution/v2/adaptor.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/createEnv.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/createEnv.js +1 -3
- package/build/plugins/solution/fx-solution/v2/createEnv.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts +2 -2
- package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/executeUserTask.js +196 -122
- package/build/plugins/solution/fx-solution/v2/executeUserTask.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.d.ts +2 -2
- package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.js +9 -14
- package/build/plugins/solution/fx-solution/v2/generateResourceTemplate.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/getQuestions.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/getQuestions.js +81 -96
- package/build/plugins/solution/fx-solution/v2/getQuestions.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/provision.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/provision.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/scaffolding.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v2/scaffolding.js +6 -0
- package/build/plugins/solution/fx-solution/v2/scaffolding.js.map +1 -1
- package/build/plugins/solution/fx-solution/v2/utils.js +1 -1
- package/build/plugins/solution/fx-solution/v2/utils.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/addModule.d.ts +2 -4
- package/build/plugins/solution/fx-solution/v3/addModule.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/addModule.js +29 -6
- package/build/plugins/solution/fx-solution/v3/addModule.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/addResource.d.ts +6 -14
- package/build/plugins/solution/fx-solution/v3/addResource.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/addResource.js +23 -51
- package/build/plugins/solution/fx-solution/v3/addResource.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/constants.d.ts +2 -0
- package/build/plugins/solution/fx-solution/v3/constants.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/constants.js +2 -0
- package/build/plugins/solution/fx-solution/v3/constants.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/deploy.d.ts +1 -3
- package/build/plugins/solution/fx-solution/v3/deploy.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/deploy.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/init.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/init.js +9 -0
- package/build/plugins/solution/fx-solution/v3/init.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/provision.d.ts +8 -1
- package/build/plugins/solution/fx-solution/v3/provision.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/provision.js +219 -16
- package/build/plugins/solution/fx-solution/v3/provision.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/provisionLocal.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/provisionLocal.js +96 -1
- package/build/plugins/solution/fx-solution/v3/provisionLocal.js.map +1 -1
- package/build/plugins/solution/fx-solution/v3/scaffold.d.ts +8 -13
- package/build/plugins/solution/fx-solution/v3/scaffold.d.ts.map +1 -1
- package/build/plugins/solution/fx-solution/v3/scaffold.js +30 -52
- package/build/plugins/solution/fx-solution/v3/scaffold.js.map +1 -1
- package/build/plugins/solution/spfx-solution/addModule.d.ts +2 -4
- package/build/plugins/solution/spfx-solution/addModule.d.ts.map +1 -1
- package/build/plugins/solution/spfx-solution/addModule.js +1 -1
- package/build/plugins/solution/spfx-solution/addModule.js.map +1 -1
- package/build/plugins/solution/spfx-solution/scaffold.d.ts +2 -10
- package/build/plugins/solution/spfx-solution/scaffold.d.ts.map +1 -1
- package/build/plugins/solution/spfx-solution/scaffold.js +3 -39
- package/build/plugins/solution/spfx-solution/scaffold.js.map +1 -1
- package/build/plugins/solution/spfx-solution/solution.d.ts +12 -17
- package/build/plugins/solution/spfx-solution/solution.d.ts.map +1 -1
- package/build/plugins/solution/spfx-solution/solution.js +7 -7
- package/build/plugins/solution/spfx-solution/solution.js.map +1 -1
- package/package.json +6 -7
- package/resource/strings.json +17 -7
- package/templates/plugins/resource/apim/bicep/apimConfiguration.bicep +1 -0
- package/templates/plugins/resource/apim/bicep/apimProvision.bicep +7 -5
- package/templates/plugins/resource/apim/bicep/config.template.bicep +1 -0
- package/templates/plugins/resource/bot/bicep/botConfiguration.template.bicep +12 -12
- package/templates/plugins/resource/bot/bicep/botProvision.template.bicep +15 -11
- package/templates/plugins/resource/bot/bicep/config.template.bicep +2 -0
- package/templates/plugins/resource/frontend/bicep/frontendHostingProvision.bicep +4 -2
- package/templates/plugins/resource/frontend/bicep/provision.template.bicep +1 -0
- package/templates/plugins/resource/function/bicep/config.template.bicep +2 -0
- package/templates/plugins/resource/function/bicep/functionConfiguration.template.bicep +15 -15
- package/templates/plugins/resource/function/bicep/functionProvision.template.bicep +17 -14
- package/templates/plugins/resource/identity/bicep/identityProvision.template.bicep +2 -1
- package/templates/plugins/resource/keyvault/bicep/keyVaultProvision.template.bicep +9 -7
- package/templates/plugins/resource/simpleauth/bicep/config.template.bicep +2 -0
- package/templates/plugins/resource/simpleauth/bicep/simpleAuthConfiguration.template.bicep +7 -7
- package/templates/plugins/resource/simpleauth/bicep/simpleAuthProvision.template.bicep +9 -6
- package/templates/plugins/resource/sql/bicep/sqlProvision.template.bicep +8 -5
- package/templates/plugins/resource/webapp/bicep/config.template.bicep +10 -0
- package/templates/plugins/resource/webapp/bicep/provision.template.bicep +16 -0
- package/templates/plugins/resource/webapp/bicep/webappConfiguration.template.bicep +74 -0
- package/templates/plugins/resource/webapp/bicep/webappProvision.template.bicep +48 -0
- package/build/common/templates.d.ts.map +0 -1
- package/build/common/templates.js.map +0 -1
- package/build/common/templatesActions.d.ts.map +0 -1
- package/build/common/templatesActions.js.map +0 -1
- package/build/common/templatesUtils.d.ts.map +0 -1
- package/build/common/templatesUtils.js.map +0 -1
- package/build/core/middleware/projectUpgrader.d.ts +0 -6
- package/build/core/middleware/projectUpgrader.d.ts.map +0 -1
- package/build/core/middleware/projectUpgrader.js +0 -224
- package/build/core/middleware/projectUpgrader.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/constants.d.ts +0 -75
- package/build/plugins/resource/frontend/blazor/constants.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/constants.js +0 -98
- package/build/plugins/resource/frontend/blazor/constants.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/enum.js +0 -39
- package/build/plugins/resource/frontend/blazor/ops/provision.d.ts +0 -8
- package/build/plugins/resource/frontend/blazor/ops/provision.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/ops/provision.js +0 -42
- package/build/plugins/resource/frontend/blazor/ops/provision.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/plugin.d.ts +0 -35
- package/build/plugins/resource/frontend/blazor/plugin.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/plugin.js +0 -190
- package/build/plugins/resource/frontend/blazor/plugin.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/resources/errors.d.ts +0 -41
- package/build/plugins/resource/frontend/blazor/resources/errors.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/resources/errors.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/resources/messages.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/resources/messages.js.map +0 -1
- package/build/plugins/resource/frontend/blazor/utils/azure-client.d.ts +0 -21
- package/build/plugins/resource/frontend/blazor/utils/azure-client.d.ts.map +0 -1
- package/build/plugins/resource/frontend/blazor/utils/azure-client.js +0 -47
- package/build/plugins/resource/frontend/blazor/utils/azure-client.js.map +0 -1
- package/build/plugins/resource/frontend/utils/azure-client.d.ts +0 -12
- package/build/plugins/resource/frontend/utils/azure-client.d.ts.map +0 -1
- package/build/plugins/resource/frontend/utils/azure-client.js +0 -29
- package/build/plugins/resource/frontend/utils/azure-client.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.d.ts +0 -9
- package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.js +0 -55
- package/build/plugins/resource/function/utils/depsChecker/backendExtensionsInstall.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/checker.d.ts +0 -54
- package/build/plugins/resource/function/utils/depsChecker/checker.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/checker.js +0 -104
- package/build/plugins/resource/function/utils/depsChecker/checker.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/common.d.ts +0 -84
- package/build/plugins/resource/function/utils/depsChecker/common.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/common.js +0 -136
- package/build/plugins/resource/function/utils/depsChecker/common.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/cpUtils.d.ts +0 -22
- package/build/plugins/resource/function/utils/depsChecker/cpUtils.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/cpUtils.js +0 -105
- package/build/plugins/resource/function/utils/depsChecker/cpUtils.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.d.ts +0 -53
- package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.js +0 -387
- package/build/plugins/resource/function/utils/depsChecker/dotnetChecker.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/errors.d.ts +0 -14
- package/build/plugins/resource/function/utils/depsChecker/errors.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/errors.js +0 -41
- package/build/plugins/resource/function/utils/depsChecker/errors.js.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.d.ts +0 -26
- package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.d.ts.map +0 -1
- package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.js +0 -111
- package/build/plugins/resource/function/utils/depsChecker/funcPluginAdapter.js.map +0 -1
- package/build/plugins/solution/fx-solution/debug/util/certificate.d.ts.map +0 -1
- package/build/plugins/solution/fx-solution/debug/util/certificate.js.map +0 -1
- package/build/plugins/solution/fx-solution/debug/util/process.d.ts.map +0 -1
- package/build/plugins/solution/fx-solution/debug/util/process.js.map +0 -1
- package/resource/plugins/resource/function/dotnet-install.ps1 +0 -1095
- package/resource/plugins/resource/function/dotnet-install.sh +0 -1222
|
@@ -1,1095 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
3
|
-
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
<#
|
|
7
|
-
.SYNOPSIS
|
|
8
|
-
Installs dotnet cli
|
|
9
|
-
.DESCRIPTION
|
|
10
|
-
Installs dotnet cli. If dotnet installation already exists in the given directory
|
|
11
|
-
it will update it only if the requested version differs from the one already installed.
|
|
12
|
-
.PARAMETER Channel
|
|
13
|
-
Default: LTS
|
|
14
|
-
Download from the Channel specified. Possible values:
|
|
15
|
-
- Current - most current release
|
|
16
|
-
- LTS - most current supported release
|
|
17
|
-
- 2-part version in a format A.B - represents a specific release
|
|
18
|
-
examples: 2.0, 1.0
|
|
19
|
-
- Branch name
|
|
20
|
-
examples: release/2.0.0, Master
|
|
21
|
-
Note: The version parameter overrides the channel parameter.
|
|
22
|
-
.PARAMETER Version
|
|
23
|
-
Default: latest
|
|
24
|
-
Represents a build version on specific channel. Possible values:
|
|
25
|
-
- latest - most latest build on specific channel
|
|
26
|
-
- 3-part version in a format A.B.C - represents specific version of build
|
|
27
|
-
examples: 2.0.0-preview2-006120, 1.1.0
|
|
28
|
-
.PARAMETER InstallDir
|
|
29
|
-
Default: %LocalAppData%\Microsoft\dotnet
|
|
30
|
-
Path to where to install dotnet. Note that binaries will be placed directly in a given directory.
|
|
31
|
-
.PARAMETER Architecture
|
|
32
|
-
Default: <auto> - this value represents currently running OS architecture
|
|
33
|
-
Architecture of dotnet binaries to be installed.
|
|
34
|
-
Possible values are: <auto>, amd64, x64, x86, arm64, arm
|
|
35
|
-
.PARAMETER SharedRuntime
|
|
36
|
-
This parameter is obsolete and may be removed in a future version of this script.
|
|
37
|
-
The recommended alternative is '-Runtime dotnet'.
|
|
38
|
-
Installs just the shared runtime bits, not the entire SDK.
|
|
39
|
-
.PARAMETER Runtime
|
|
40
|
-
Installs just a shared runtime, not the entire SDK.
|
|
41
|
-
Possible values:
|
|
42
|
-
- dotnet - the Microsoft.NETCore.App shared runtime
|
|
43
|
-
- aspnetcore - the Microsoft.AspNetCore.App shared runtime
|
|
44
|
-
- windowsdesktop - the Microsoft.WindowsDesktop.App shared runtime
|
|
45
|
-
.PARAMETER DryRun
|
|
46
|
-
If set it will not perform installation but instead display what command line to use to consistently install
|
|
47
|
-
currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link
|
|
48
|
-
with specific version so that this command can be used deterministicly in a build script.
|
|
49
|
-
It also displays binaries location if you prefer to install or download it yourself.
|
|
50
|
-
.PARAMETER NoPath
|
|
51
|
-
By default this script will set environment variable PATH for the current process to the binaries folder inside installation folder.
|
|
52
|
-
If set it will display binaries location but not set any environment variable.
|
|
53
|
-
.PARAMETER Verbose
|
|
54
|
-
Displays diagnostics information.
|
|
55
|
-
.PARAMETER AzureFeed
|
|
56
|
-
Default: https://dotnetcli.azureedge.net/dotnet
|
|
57
|
-
This parameter typically is not changed by the user.
|
|
58
|
-
It allows changing the URL for the Azure feed used by this installer.
|
|
59
|
-
.PARAMETER UncachedFeed
|
|
60
|
-
This parameter typically is not changed by the user.
|
|
61
|
-
It allows changing the URL for the Uncached feed used by this installer.
|
|
62
|
-
.PARAMETER FeedCredential
|
|
63
|
-
Used as a query string to append to the Azure feed.
|
|
64
|
-
It allows changing the URL to use non-public blob storage accounts.
|
|
65
|
-
.PARAMETER ProxyAddress
|
|
66
|
-
If set, the installer will use the proxy when making web requests
|
|
67
|
-
.PARAMETER ProxyUseDefaultCredentials
|
|
68
|
-
Default: false
|
|
69
|
-
Use default credentials, when using proxy address.
|
|
70
|
-
.PARAMETER ProxyBypassList
|
|
71
|
-
If set with ProxyAddress, will provide the list of comma separated urls that will bypass the proxy
|
|
72
|
-
.PARAMETER SkipNonVersionedFiles
|
|
73
|
-
Default: false
|
|
74
|
-
Skips installing non-versioned files if they already exist, such as dotnet.exe.
|
|
75
|
-
.PARAMETER NoCdn
|
|
76
|
-
Disable downloading from the Azure CDN, and use the uncached feed directly.
|
|
77
|
-
.PARAMETER JSonFile
|
|
78
|
-
Determines the SDK version from a user specified global.json file
|
|
79
|
-
Note: global.json must have a value for 'SDK:Version'
|
|
80
|
-
#>
|
|
81
|
-
[cmdletbinding()]
|
|
82
|
-
param(
|
|
83
|
-
[string]$Channel="LTS",
|
|
84
|
-
[string]$Version="Latest",
|
|
85
|
-
[string]$JSonFile,
|
|
86
|
-
[string]$InstallDir="<auto>",
|
|
87
|
-
[string]$Architecture="<auto>",
|
|
88
|
-
[ValidateSet("dotnet", "aspnetcore", "windowsdesktop", IgnoreCase = $false)]
|
|
89
|
-
[string]$Runtime,
|
|
90
|
-
[Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")]
|
|
91
|
-
[switch]$SharedRuntime,
|
|
92
|
-
[switch]$DryRun,
|
|
93
|
-
[switch]$NoPath,
|
|
94
|
-
[string]$AzureFeed="https://dotnetcli.azureedge.net/dotnet",
|
|
95
|
-
[string]$UncachedFeed="https://dotnetcli.blob.core.windows.net/dotnet",
|
|
96
|
-
[string]$FeedCredential,
|
|
97
|
-
[string]$ProxyAddress,
|
|
98
|
-
[switch]$ProxyUseDefaultCredentials,
|
|
99
|
-
[string[]]$ProxyBypassList=@(),
|
|
100
|
-
[switch]$SkipNonVersionedFiles,
|
|
101
|
-
[switch]$NoCdn
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
Set-StrictMode -Version Latest
|
|
105
|
-
$ErrorActionPreference="Stop"
|
|
106
|
-
$ProgressPreference="SilentlyContinue"
|
|
107
|
-
|
|
108
|
-
if ($NoCdn) {
|
|
109
|
-
$AzureFeed = $UncachedFeed
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
$BinFolderRelativePath=""
|
|
113
|
-
|
|
114
|
-
if ($SharedRuntime -and (-not $Runtime)) {
|
|
115
|
-
$Runtime = "dotnet"
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
# example path with regex: shared/1.0.0-beta-12345/somepath
|
|
119
|
-
$VersionRegEx="/\d+\.\d+[^/]+/"
|
|
120
|
-
$OverrideNonVersionedFiles = !$SkipNonVersionedFiles
|
|
121
|
-
|
|
122
|
-
function Say($str) {
|
|
123
|
-
try {
|
|
124
|
-
Write-Host "dotnet-install: $str"
|
|
125
|
-
}
|
|
126
|
-
catch {
|
|
127
|
-
# Some platforms cannot utilize Write-Host (Azure Functions, for instance). Fall back to Write-Output
|
|
128
|
-
Write-Output "dotnet-install: $str"
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function Say-Warning($str) {
|
|
133
|
-
try {
|
|
134
|
-
Write-Warning "dotnet-install: $str"
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
# Some platforms cannot utilize Write-Warning (Azure Functions, for instance). Fall back to Write-Output
|
|
138
|
-
Write-Output "dotnet-install: Warning: $str"
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
# Writes a line with error style settings.
|
|
143
|
-
# Use this function to show a human-readable comment along with an exception.
|
|
144
|
-
function Say-Error($str) {
|
|
145
|
-
try {
|
|
146
|
-
# Write-Error is quite oververbose for the purpose of the function, let's write one line with error style settings.
|
|
147
|
-
$Host.UI.WriteErrorLine("dotnet-install: $str")
|
|
148
|
-
}
|
|
149
|
-
catch {
|
|
150
|
-
Write-Output "dotnet-install: Error: $str"
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function Say-Verbose($str) {
|
|
155
|
-
try {
|
|
156
|
-
Write-Verbose "dotnet-install: $str"
|
|
157
|
-
}
|
|
158
|
-
catch {
|
|
159
|
-
# Some platforms cannot utilize Write-Verbose (Azure Functions, for instance). Fall back to Write-Output
|
|
160
|
-
Write-Output "dotnet-install: $str"
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
function Say-Invocation($Invocation) {
|
|
165
|
-
$command = $Invocation.MyCommand;
|
|
166
|
-
$args = (($Invocation.BoundParameters.Keys | foreach { "-$_ `"$($Invocation.BoundParameters[$_])`"" }) -join " ")
|
|
167
|
-
Say-Verbose "$command $args"
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function Invoke-With-Retry([ScriptBlock]$ScriptBlock, [int]$MaxAttempts = 3, [int]$SecondsBetweenAttempts = 1) {
|
|
171
|
-
$Attempts = 0
|
|
172
|
-
|
|
173
|
-
while ($true) {
|
|
174
|
-
try {
|
|
175
|
-
return & $ScriptBlock
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
$Attempts++
|
|
179
|
-
if ($Attempts -lt $MaxAttempts) {
|
|
180
|
-
Start-Sleep $SecondsBetweenAttempts
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
throw
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
function Get-Machine-Architecture() {
|
|
190
|
-
Say-Invocation $MyInvocation
|
|
191
|
-
|
|
192
|
-
# On PS x86, PROCESSOR_ARCHITECTURE reports x86 even on x64 systems.
|
|
193
|
-
# To get the correct architecture, we need to use PROCESSOR_ARCHITEW6432.
|
|
194
|
-
# PS x64 doesn't define this, so we fall back to PROCESSOR_ARCHITECTURE.
|
|
195
|
-
# Possible values: amd64, x64, x86, arm64, arm
|
|
196
|
-
|
|
197
|
-
if( $ENV:PROCESSOR_ARCHITEW6432 -ne $null )
|
|
198
|
-
{
|
|
199
|
-
return $ENV:PROCESSOR_ARCHITEW6432
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
return $ENV:PROCESSOR_ARCHITECTURE
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function Get-CLIArchitecture-From-Architecture([string]$Architecture) {
|
|
206
|
-
Say-Invocation $MyInvocation
|
|
207
|
-
|
|
208
|
-
switch ($Architecture.ToLower()) {
|
|
209
|
-
{ $_ -eq "<auto>" } { return Get-CLIArchitecture-From-Architecture $(Get-Machine-Architecture) }
|
|
210
|
-
{ ($_ -eq "amd64") -or ($_ -eq "x64") } { return "x64" }
|
|
211
|
-
{ $_ -eq "x86" } { return "x86" }
|
|
212
|
-
{ $_ -eq "arm" } { return "arm" }
|
|
213
|
-
{ $_ -eq "arm64" } { return "arm64" }
|
|
214
|
-
default { throw "Architecture '$Architecture' not supported. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues" }
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
# The version text returned from the feeds is a 1-line or 2-line string:
|
|
219
|
-
# For the SDK and the dotnet runtime (2 lines):
|
|
220
|
-
# Line 1: # commit_hash
|
|
221
|
-
# Line 2: # 4-part version
|
|
222
|
-
# For the aspnetcore runtime (1 line):
|
|
223
|
-
# Line 1: # 4-part version
|
|
224
|
-
function Get-Version-Info-From-Version-Text([string]$VersionText) {
|
|
225
|
-
Say-Invocation $MyInvocation
|
|
226
|
-
|
|
227
|
-
$Data = -split $VersionText
|
|
228
|
-
|
|
229
|
-
$VersionInfo = @{
|
|
230
|
-
CommitHash = $(if ($Data.Count -gt 1) { $Data[0] })
|
|
231
|
-
Version = $Data[-1] # last line is always the version number.
|
|
232
|
-
}
|
|
233
|
-
return $VersionInfo
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
function Load-Assembly([string] $Assembly) {
|
|
237
|
-
try {
|
|
238
|
-
Add-Type -Assembly $Assembly | Out-Null
|
|
239
|
-
}
|
|
240
|
-
catch {
|
|
241
|
-
# On Nano Server, Powershell Core Edition is used. Add-Type is unable to resolve base class assemblies because they are not GAC'd.
|
|
242
|
-
# Loading the base class assemblies is not unnecessary as the types will automatically get resolved.
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
function GetHTTPResponse([Uri] $Uri)
|
|
247
|
-
{
|
|
248
|
-
Invoke-With-Retry(
|
|
249
|
-
{
|
|
250
|
-
|
|
251
|
-
$HttpClient = $null
|
|
252
|
-
|
|
253
|
-
try {
|
|
254
|
-
# HttpClient is used vs Invoke-WebRequest in order to support Nano Server which doesn't support the Invoke-WebRequest cmdlet.
|
|
255
|
-
Load-Assembly -Assembly System.Net.Http
|
|
256
|
-
|
|
257
|
-
if(-not $ProxyAddress) {
|
|
258
|
-
try {
|
|
259
|
-
# Despite no proxy being explicitly specified, we may still be behind a default proxy
|
|
260
|
-
$DefaultProxy = [System.Net.WebRequest]::DefaultWebProxy;
|
|
261
|
-
if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))) {
|
|
262
|
-
$ProxyAddress = $DefaultProxy.GetProxy($Uri).OriginalString
|
|
263
|
-
$ProxyUseDefaultCredentials = $true
|
|
264
|
-
}
|
|
265
|
-
} catch {
|
|
266
|
-
# Eat the exception and move forward as the above code is an attempt
|
|
267
|
-
# at resolving the DefaultProxy that may not have been a problem.
|
|
268
|
-
$ProxyAddress = $null
|
|
269
|
-
Say-Verbose("Exception ignored: $_.Exception.Message - moving forward...")
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
if($ProxyAddress) {
|
|
274
|
-
$HttpClientHandler = New-Object System.Net.Http.HttpClientHandler
|
|
275
|
-
$HttpClientHandler.Proxy = New-Object System.Net.WebProxy -Property @{
|
|
276
|
-
Address=$ProxyAddress;
|
|
277
|
-
UseDefaultCredentials=$ProxyUseDefaultCredentials;
|
|
278
|
-
BypassList = $ProxyBypassList;
|
|
279
|
-
}
|
|
280
|
-
$HttpClient = New-Object System.Net.Http.HttpClient -ArgumentList $HttpClientHandler
|
|
281
|
-
}
|
|
282
|
-
else {
|
|
283
|
-
|
|
284
|
-
$HttpClient = New-Object System.Net.Http.HttpClient
|
|
285
|
-
}
|
|
286
|
-
# Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out
|
|
287
|
-
# 20 minutes allows it to work over much slower connections.
|
|
288
|
-
$HttpClient.Timeout = New-TimeSpan -Minutes 20
|
|
289
|
-
$Task = $HttpClient.GetAsync("${Uri}${FeedCredential}").ConfigureAwait("false");
|
|
290
|
-
$Response = $Task.GetAwaiter().GetResult();
|
|
291
|
-
|
|
292
|
-
if (($null -eq $Response) -or (-not ($Response.IsSuccessStatusCode))) {
|
|
293
|
-
# The feed credential is potentially sensitive info. Do not log FeedCredential to console output.
|
|
294
|
-
$DownloadException = [System.Exception] "Unable to download $Uri."
|
|
295
|
-
|
|
296
|
-
if ($null -ne $Response) {
|
|
297
|
-
$DownloadException.Data["StatusCode"] = [int] $Response.StatusCode
|
|
298
|
-
$DownloadException.Data["ErrorMessage"] = "Unable to download $Uri. Returned HTTP status code: " + $DownloadException.Data["StatusCode"]
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
throw $DownloadException
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
return $Response
|
|
305
|
-
}
|
|
306
|
-
catch [System.Net.Http.HttpRequestException] {
|
|
307
|
-
$DownloadException = [System.Exception] "Unable to download $Uri."
|
|
308
|
-
|
|
309
|
-
# Pick up the exception message and inner exceptions' messages if they exist
|
|
310
|
-
$CurrentException = $PSItem.Exception
|
|
311
|
-
$ErrorMsg = $CurrentException.Message + "`r`n"
|
|
312
|
-
while ($CurrentException.InnerException) {
|
|
313
|
-
$CurrentException = $CurrentException.InnerException
|
|
314
|
-
$ErrorMsg += $CurrentException.Message + "`r`n"
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
# Check if there is an issue concerning TLS.
|
|
318
|
-
if ($ErrorMsg -like "*SSL/TLS*") {
|
|
319
|
-
$ErrorMsg += "Ensure that TLS 1.2 or higher is enabled to use this script.`r`n"
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
$DownloadException.Data["ErrorMessage"] = $ErrorMsg
|
|
323
|
-
throw $DownloadException
|
|
324
|
-
}
|
|
325
|
-
finally {
|
|
326
|
-
if ($HttpClient -ne $null) {
|
|
327
|
-
$HttpClient.Dispose()
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
})
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel) {
|
|
334
|
-
Say-Invocation $MyInvocation
|
|
335
|
-
|
|
336
|
-
$VersionFileUrl = $null
|
|
337
|
-
if ($Runtime -eq "dotnet") {
|
|
338
|
-
$VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version"
|
|
339
|
-
}
|
|
340
|
-
elseif ($Runtime -eq "aspnetcore") {
|
|
341
|
-
$VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$Channel/latest.version"
|
|
342
|
-
}
|
|
343
|
-
elseif ($Runtime -eq "windowsdesktop") {
|
|
344
|
-
$VersionFileUrl = "$UncachedFeed/WindowsDesktop/$Channel/latest.version"
|
|
345
|
-
}
|
|
346
|
-
elseif (-not $Runtime) {
|
|
347
|
-
$VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.version"
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
throw "Invalid value for `$Runtime"
|
|
351
|
-
}
|
|
352
|
-
try {
|
|
353
|
-
$Response = GetHTTPResponse -Uri $VersionFileUrl
|
|
354
|
-
}
|
|
355
|
-
catch {
|
|
356
|
-
Say-Error "Could not resolve version information."
|
|
357
|
-
throw
|
|
358
|
-
}
|
|
359
|
-
$StringContent = $Response.Content.ReadAsStringAsync().Result
|
|
360
|
-
|
|
361
|
-
switch ($Response.Content.Headers.ContentType) {
|
|
362
|
-
{ ($_ -eq "application/octet-stream") } { $VersionText = $StringContent }
|
|
363
|
-
{ ($_ -eq "text/plain") } { $VersionText = $StringContent }
|
|
364
|
-
{ ($_ -eq "text/plain; charset=UTF-8") } { $VersionText = $StringContent }
|
|
365
|
-
default { throw "``$Response.Content.Headers.ContentType`` is an unknown .version file content type." }
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
$VersionInfo = Get-Version-Info-From-Version-Text $VersionText
|
|
369
|
-
|
|
370
|
-
return $VersionInfo
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
function Parse-Jsonfile-For-Version([string]$JSonFile) {
|
|
374
|
-
Say-Invocation $MyInvocation
|
|
375
|
-
|
|
376
|
-
If (-Not (Test-Path $JSonFile)) {
|
|
377
|
-
throw "Unable to find '$JSonFile'"
|
|
378
|
-
}
|
|
379
|
-
try {
|
|
380
|
-
$JSonContent = Get-Content($JSonFile) -Raw | ConvertFrom-Json | Select-Object -expand "sdk" -ErrorAction SilentlyContinue
|
|
381
|
-
}
|
|
382
|
-
catch {
|
|
383
|
-
Say-Error "Json file unreadable: '$JSonFile'"
|
|
384
|
-
throw
|
|
385
|
-
}
|
|
386
|
-
if ($JSonContent) {
|
|
387
|
-
try {
|
|
388
|
-
$JSonContent.PSObject.Properties | ForEach-Object {
|
|
389
|
-
$PropertyName = $_.Name
|
|
390
|
-
if ($PropertyName -eq "version") {
|
|
391
|
-
$Version = $_.Value
|
|
392
|
-
Say-Verbose "Version = $Version"
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
catch {
|
|
397
|
-
Say-Error "Unable to parse the SDK node in '$JSonFile'"
|
|
398
|
-
throw
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
throw "Unable to find the SDK node in '$JSonFile'"
|
|
403
|
-
}
|
|
404
|
-
If ($Version -eq $null) {
|
|
405
|
-
throw "Unable to find the SDK:version node in '$JSonFile'"
|
|
406
|
-
}
|
|
407
|
-
return $Version
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel, [string]$Version, [string]$JSonFile) {
|
|
411
|
-
Say-Invocation $MyInvocation
|
|
412
|
-
|
|
413
|
-
if (-not $JSonFile) {
|
|
414
|
-
if ($Version.ToLower() -eq "latest") {
|
|
415
|
-
$LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel
|
|
416
|
-
return $LatestVersionInfo.Version
|
|
417
|
-
}
|
|
418
|
-
else {
|
|
419
|
-
return $Version
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
return Parse-Jsonfile-For-Version $JSonFile
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
|
428
|
-
Say-Invocation $MyInvocation
|
|
429
|
-
|
|
430
|
-
# If anything fails in this lookup it will default to $SpecificVersion
|
|
431
|
-
$SpecificProductVersion = Get-Product-Version -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion
|
|
432
|
-
|
|
433
|
-
if ($Runtime -eq "dotnet") {
|
|
434
|
-
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip"
|
|
435
|
-
}
|
|
436
|
-
elseif ($Runtime -eq "aspnetcore") {
|
|
437
|
-
$PayloadURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/aspnetcore-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip"
|
|
438
|
-
}
|
|
439
|
-
elseif ($Runtime -eq "windowsdesktop") {
|
|
440
|
-
# The windows desktop runtime is part of the core runtime layout prior to 5.0
|
|
441
|
-
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/windowsdesktop-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip"
|
|
442
|
-
if ($SpecificVersion -match '^(\d+)\.(.*)$')
|
|
443
|
-
{
|
|
444
|
-
$majorVersion = [int]$Matches[1]
|
|
445
|
-
if ($majorVersion -ge 5)
|
|
446
|
-
{
|
|
447
|
-
$PayloadURL = "$AzureFeed/WindowsDesktop/$SpecificVersion/windowsdesktop-runtime-$SpecificProductVersion-win-$CLIArchitecture.zip"
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
elseif (-not $Runtime) {
|
|
452
|
-
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-sdk-$SpecificProductVersion-win-$CLIArchitecture.zip"
|
|
453
|
-
}
|
|
454
|
-
else {
|
|
455
|
-
throw "Invalid value for `$Runtime"
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
Say-Verbose "Constructed primary named payload URL: $PayloadURL"
|
|
459
|
-
|
|
460
|
-
return $PayloadURL, $SpecificProductVersion
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
function Get-LegacyDownload-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
|
464
|
-
Say-Invocation $MyInvocation
|
|
465
|
-
|
|
466
|
-
if (-not $Runtime) {
|
|
467
|
-
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-dev-win-$CLIArchitecture.$SpecificVersion.zip"
|
|
468
|
-
}
|
|
469
|
-
elseif ($Runtime -eq "dotnet") {
|
|
470
|
-
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-win-$CLIArchitecture.$SpecificVersion.zip"
|
|
471
|
-
}
|
|
472
|
-
else {
|
|
473
|
-
return $null
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
Say-Verbose "Constructed legacy named payload URL: $PayloadURL"
|
|
477
|
-
|
|
478
|
-
return $PayloadURL
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
function Get-Product-Version([string]$AzureFeed, [string]$SpecificVersion) {
|
|
482
|
-
Say-Invocation $MyInvocation
|
|
483
|
-
|
|
484
|
-
if ($Runtime -eq "dotnet") {
|
|
485
|
-
$ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt"
|
|
486
|
-
}
|
|
487
|
-
elseif ($Runtime -eq "aspnetcore") {
|
|
488
|
-
$ProductVersionTxtURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/productVersion.txt"
|
|
489
|
-
}
|
|
490
|
-
elseif ($Runtime -eq "windowsdesktop") {
|
|
491
|
-
# The windows desktop runtime is part of the core runtime layout prior to 5.0
|
|
492
|
-
$ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt"
|
|
493
|
-
if ($SpecificVersion -match '^(\d+)\.(.*)')
|
|
494
|
-
{
|
|
495
|
-
$majorVersion = [int]$Matches[1]
|
|
496
|
-
if ($majorVersion -ge 5)
|
|
497
|
-
{
|
|
498
|
-
$ProductVersionTxtURL = "$AzureFeed/WindowsDesktop/$SpecificVersion/productVersion.txt"
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
elseif (-not $Runtime) {
|
|
503
|
-
$ProductVersionTxtURL = "$AzureFeed/Sdk/$SpecificVersion/productVersion.txt"
|
|
504
|
-
}
|
|
505
|
-
else {
|
|
506
|
-
throw "Invalid value '$Runtime' specified for `$Runtime"
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
Say-Verbose "Checking for existence of $ProductVersionTxtURL"
|
|
510
|
-
|
|
511
|
-
try {
|
|
512
|
-
$productVersionResponse = GetHTTPResponse($productVersionTxtUrl)
|
|
513
|
-
|
|
514
|
-
if ($productVersionResponse.StatusCode -eq 200) {
|
|
515
|
-
$productVersion = $productVersionResponse.Content.ReadAsStringAsync().Result.Trim()
|
|
516
|
-
if ($productVersion -ne $SpecificVersion)
|
|
517
|
-
{
|
|
518
|
-
Say "Using alternate version $productVersion found in $ProductVersionTxtURL"
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
return $productVersion
|
|
522
|
-
}
|
|
523
|
-
else {
|
|
524
|
-
Say-Verbose "Got StatusCode $($productVersionResponse.StatusCode) trying to get productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion"
|
|
525
|
-
$productVersion = $SpecificVersion
|
|
526
|
-
}
|
|
527
|
-
} catch {
|
|
528
|
-
Say-Verbose "Could not read productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion (Exception: '$($_.Exception.Message)' )"
|
|
529
|
-
$productVersion = $SpecificVersion
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
return $productVersion
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
function Get-User-Share-Path() {
|
|
536
|
-
Say-Invocation $MyInvocation
|
|
537
|
-
|
|
538
|
-
$InstallRoot = $env:DOTNET_INSTALL_DIR
|
|
539
|
-
if (!$InstallRoot) {
|
|
540
|
-
$InstallRoot = "$env:LocalAppData\Microsoft\dotnet"
|
|
541
|
-
}
|
|
542
|
-
return $InstallRoot
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
function Resolve-Installation-Path([string]$InstallDir) {
|
|
546
|
-
Say-Invocation $MyInvocation
|
|
547
|
-
|
|
548
|
-
if ($InstallDir -eq "<auto>") {
|
|
549
|
-
return Get-User-Share-Path
|
|
550
|
-
}
|
|
551
|
-
return $InstallDir
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) {
|
|
555
|
-
Say-Invocation $MyInvocation
|
|
556
|
-
|
|
557
|
-
$DotnetPackagePath = Join-Path -Path $InstallRoot -ChildPath $RelativePathToPackage | Join-Path -ChildPath $SpecificVersion
|
|
558
|
-
Say-Verbose "Is-Dotnet-Package-Installed: DotnetPackagePath=$DotnetPackagePath"
|
|
559
|
-
return Test-Path $DotnetPackagePath -PathType Container
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
function Get-Absolute-Path([string]$RelativeOrAbsolutePath) {
|
|
563
|
-
# Too much spam
|
|
564
|
-
# Say-Invocation $MyInvocation
|
|
565
|
-
|
|
566
|
-
return $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($RelativeOrAbsolutePath)
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
function Get-Path-Prefix-With-Version($path) {
|
|
570
|
-
$match = [regex]::match($path, $VersionRegEx)
|
|
571
|
-
if ($match.Success) {
|
|
572
|
-
return $entry.FullName.Substring(0, $match.Index + $match.Length)
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
return $null
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
function Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package([System.IO.Compression.ZipArchive]$Zip, [string]$OutPath) {
|
|
579
|
-
Say-Invocation $MyInvocation
|
|
580
|
-
|
|
581
|
-
$ret = @()
|
|
582
|
-
foreach ($entry in $Zip.Entries) {
|
|
583
|
-
$dir = Get-Path-Prefix-With-Version $entry.FullName
|
|
584
|
-
if ($dir -ne $null) {
|
|
585
|
-
$path = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $dir)
|
|
586
|
-
if (-Not (Test-Path $path -PathType Container)) {
|
|
587
|
-
$ret += $dir
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
$ret = $ret | Sort-Object | Get-Unique
|
|
593
|
-
|
|
594
|
-
$values = ($ret | foreach { "$_" }) -join ";"
|
|
595
|
-
Say-Verbose "Directories to unpack: $values"
|
|
596
|
-
|
|
597
|
-
return $ret
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
# Example zip content and extraction algorithm:
|
|
601
|
-
# Rule: files if extracted are always being extracted to the same relative path locally
|
|
602
|
-
# .\
|
|
603
|
-
# a.exe # file does not exist locally, extract
|
|
604
|
-
# b.dll # file exists locally, override only if $OverrideFiles set
|
|
605
|
-
# aaa\ # same rules as for files
|
|
606
|
-
# ...
|
|
607
|
-
# abc\1.0.0\ # directory contains version and exists locally
|
|
608
|
-
# ... # do not extract content under versioned part
|
|
609
|
-
# abc\asd\ # same rules as for files
|
|
610
|
-
# ...
|
|
611
|
-
# def\ghi\1.0.1\ # directory contains version and does not exist locally
|
|
612
|
-
# ... # extract content
|
|
613
|
-
function Extract-Dotnet-Package([string]$ZipPath, [string]$OutPath) {
|
|
614
|
-
Say-Invocation $MyInvocation
|
|
615
|
-
|
|
616
|
-
Load-Assembly -Assembly System.IO.Compression.FileSystem
|
|
617
|
-
Set-Variable -Name Zip
|
|
618
|
-
try {
|
|
619
|
-
$Zip = [System.IO.Compression.ZipFile]::OpenRead($ZipPath)
|
|
620
|
-
|
|
621
|
-
$DirectoriesToUnpack = Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package -Zip $Zip -OutPath $OutPath
|
|
622
|
-
|
|
623
|
-
foreach ($entry in $Zip.Entries) {
|
|
624
|
-
$PathWithVersion = Get-Path-Prefix-With-Version $entry.FullName
|
|
625
|
-
if (($PathWithVersion -eq $null) -Or ($DirectoriesToUnpack -contains $PathWithVersion)) {
|
|
626
|
-
$DestinationPath = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $entry.FullName)
|
|
627
|
-
$DestinationDir = Split-Path -Parent $DestinationPath
|
|
628
|
-
$OverrideFiles=$OverrideNonVersionedFiles -Or (-Not (Test-Path $DestinationPath))
|
|
629
|
-
if ((-Not $DestinationPath.EndsWith("\")) -And $OverrideFiles) {
|
|
630
|
-
New-Item -ItemType Directory -Force -Path $DestinationDir | Out-Null
|
|
631
|
-
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $DestinationPath, $OverrideNonVersionedFiles)
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
finally {
|
|
637
|
-
if ($Zip -ne $null) {
|
|
638
|
-
$Zip.Dispose()
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
function DownloadFile($Source, [string]$OutPath) {
|
|
644
|
-
if ($Source -notlike "http*") {
|
|
645
|
-
# Using System.IO.Path.GetFullPath to get the current directory
|
|
646
|
-
# does not work in this context - $pwd gives the current directory
|
|
647
|
-
if (![System.IO.Path]::IsPathRooted($Source)) {
|
|
648
|
-
$Source = $(Join-Path -Path $pwd -ChildPath $Source)
|
|
649
|
-
}
|
|
650
|
-
$Source = Get-Absolute-Path $Source
|
|
651
|
-
Say "Copying file from $Source to $OutPath"
|
|
652
|
-
Copy-Item $Source $OutPath
|
|
653
|
-
return
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
$Stream = $null
|
|
657
|
-
|
|
658
|
-
try {
|
|
659
|
-
$Response = GetHTTPResponse -Uri $Source
|
|
660
|
-
$Stream = $Response.Content.ReadAsStreamAsync().Result
|
|
661
|
-
$File = [System.IO.File]::Create($OutPath)
|
|
662
|
-
$Stream.CopyTo($File)
|
|
663
|
-
$File.Close()
|
|
664
|
-
}
|
|
665
|
-
finally {
|
|
666
|
-
if ($Stream -ne $null) {
|
|
667
|
-
$Stream.Dispose()
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
function SafeRemoveFile($Path) {
|
|
673
|
-
try {
|
|
674
|
-
if (Test-Path $Path) {
|
|
675
|
-
Remove-Item $Path
|
|
676
|
-
Say-Verbose "The temporary file `"$Path`" was removed."
|
|
677
|
-
}
|
|
678
|
-
else
|
|
679
|
-
{
|
|
680
|
-
Say-Verbose "The temporary file `"$Path`" does not exist, therefore is not removed."
|
|
681
|
-
}
|
|
682
|
-
}
|
|
683
|
-
catch
|
|
684
|
-
{
|
|
685
|
-
Say-Warning "Failed to remove the temporary file: `"$Path`", remove it manually."
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot, [string]$BinFolderRelativePath) {
|
|
690
|
-
$BinPath = Get-Absolute-Path $(Join-Path -Path $InstallRoot -ChildPath $BinFolderRelativePath)
|
|
691
|
-
if (-Not $NoPath) {
|
|
692
|
-
$SuffixedBinPath = "$BinPath;"
|
|
693
|
-
if (-Not $env:path.Contains($SuffixedBinPath)) {
|
|
694
|
-
Say "Adding to current process PATH: `"$BinPath`". Note: This change will not be visible if PowerShell was run as a child process."
|
|
695
|
-
$env:path = $SuffixedBinPath + $env:path
|
|
696
|
-
} else {
|
|
697
|
-
Say-Verbose "Current process PATH already contains `"$BinPath`""
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
else {
|
|
701
|
-
Say "Binaries of dotnet can be found in $BinPath"
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
Say "Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:"
|
|
706
|
-
Say "- The SDK needs to be installed without user interaction and without admin rights."
|
|
707
|
-
Say "- The SDK installation doesn't need to persist across multiple CI runs."
|
|
708
|
-
Say "To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.`r`n"
|
|
709
|
-
|
|
710
|
-
$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
|
|
711
|
-
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version -JSonFile $JSonFile
|
|
712
|
-
$DownloadLink, $EffectiveVersion = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
|
713
|
-
$LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
|
714
|
-
|
|
715
|
-
$InstallRoot = Resolve-Installation-Path $InstallDir
|
|
716
|
-
Say-Verbose "InstallRoot: $InstallRoot"
|
|
717
|
-
$ScriptName = $MyInvocation.MyCommand.Name
|
|
718
|
-
|
|
719
|
-
if ($DryRun) {
|
|
720
|
-
Say "Payload URLs:"
|
|
721
|
-
Say "Primary named payload URL: $DownloadLink"
|
|
722
|
-
if ($LegacyDownloadLink) {
|
|
723
|
-
Say "Legacy named payload URL: $LegacyDownloadLink"
|
|
724
|
-
}
|
|
725
|
-
$RepeatableCommand = ".\$ScriptName -Version `"$SpecificVersion`" -InstallDir `"$InstallRoot`" -Architecture `"$CLIArchitecture`""
|
|
726
|
-
if ($Runtime -eq "dotnet") {
|
|
727
|
-
$RepeatableCommand+=" -Runtime `"dotnet`""
|
|
728
|
-
}
|
|
729
|
-
elseif ($Runtime -eq "aspnetcore") {
|
|
730
|
-
$RepeatableCommand+=" -Runtime `"aspnetcore`""
|
|
731
|
-
}
|
|
732
|
-
foreach ($key in $MyInvocation.BoundParameters.Keys) {
|
|
733
|
-
if (-not (@("Architecture","Channel","DryRun","InstallDir","Runtime","SharedRuntime","Version") -contains $key)) {
|
|
734
|
-
$RepeatableCommand+=" -$key `"$($MyInvocation.BoundParameters[$key])`""
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
Say "Repeatable invocation: $RepeatableCommand"
|
|
738
|
-
if ($SpecificVersion -ne $EffectiveVersion)
|
|
739
|
-
{
|
|
740
|
-
Say "NOTE: Due to finding a version manifest with this runtime, it would actually install with version '$EffectiveVersion'"
|
|
741
|
-
}
|
|
742
|
-
|
|
743
|
-
return
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
if ($Runtime -eq "dotnet") {
|
|
747
|
-
$assetName = ".NET Core Runtime"
|
|
748
|
-
$dotnetPackageRelativePath = "shared\Microsoft.NETCore.App"
|
|
749
|
-
}
|
|
750
|
-
elseif ($Runtime -eq "aspnetcore") {
|
|
751
|
-
$assetName = "ASP.NET Core Runtime"
|
|
752
|
-
$dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App"
|
|
753
|
-
}
|
|
754
|
-
elseif ($Runtime -eq "windowsdesktop") {
|
|
755
|
-
$assetName = ".NET Core Windows Desktop Runtime"
|
|
756
|
-
$dotnetPackageRelativePath = "shared\Microsoft.WindowsDesktop.App"
|
|
757
|
-
}
|
|
758
|
-
elseif (-not $Runtime) {
|
|
759
|
-
$assetName = ".NET Core SDK"
|
|
760
|
-
$dotnetPackageRelativePath = "sdk"
|
|
761
|
-
}
|
|
762
|
-
else {
|
|
763
|
-
throw "Invalid value for `$Runtime"
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
if ($SpecificVersion -ne $EffectiveVersion)
|
|
767
|
-
{
|
|
768
|
-
Say "Performing installation checks for effective version: $EffectiveVersion"
|
|
769
|
-
$SpecificVersion = $EffectiveVersion
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
# Check if the SDK version is already installed.
|
|
773
|
-
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
|
|
774
|
-
if ($isAssetInstalled) {
|
|
775
|
-
Say "$assetName version $SpecificVersion is already installed."
|
|
776
|
-
Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath
|
|
777
|
-
return
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
New-Item -ItemType Directory -Force -Path $InstallRoot | Out-Null
|
|
781
|
-
|
|
782
|
-
$installDrive = $((Get-Item $InstallRoot).PSDrive.Name);
|
|
783
|
-
$diskInfo = Get-PSDrive -Name $installDrive
|
|
784
|
-
if ($diskInfo.Free / 1MB -le 100) {
|
|
785
|
-
throw "There is not enough disk space on drive ${installDrive}:"
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
$ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
|
|
789
|
-
Say-Verbose "Zip path: $ZipPath"
|
|
790
|
-
|
|
791
|
-
$DownloadFailed = $false
|
|
792
|
-
|
|
793
|
-
$PrimaryDownloadStatusCode = 0
|
|
794
|
-
$LegacyDownloadStatusCode = 0
|
|
795
|
-
|
|
796
|
-
$PrimaryDownloadFailedMsg = ""
|
|
797
|
-
$LegacyDownloadFailedMsg = ""
|
|
798
|
-
|
|
799
|
-
Say "Downloading primary link $DownloadLink"
|
|
800
|
-
try {
|
|
801
|
-
DownloadFile -Source $DownloadLink -OutPath $ZipPath
|
|
802
|
-
}
|
|
803
|
-
catch {
|
|
804
|
-
if ($PSItem.Exception.Data.Contains("StatusCode")) {
|
|
805
|
-
$PrimaryDownloadStatusCode = $PSItem.Exception.Data["StatusCode"]
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
if ($PSItem.Exception.Data.Contains("ErrorMessage")) {
|
|
809
|
-
$PrimaryDownloadFailedMsg = $PSItem.Exception.Data["ErrorMessage"]
|
|
810
|
-
} else {
|
|
811
|
-
$PrimaryDownloadFailedMsg = $PSItem.Exception.Message
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
if ($PrimaryDownloadStatusCode -eq 404) {
|
|
815
|
-
Say "The resource at $DownloadLink is not available."
|
|
816
|
-
} else {
|
|
817
|
-
Say $PSItem.Exception.Message
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
SafeRemoveFile -Path $ZipPath
|
|
821
|
-
|
|
822
|
-
if ($LegacyDownloadLink) {
|
|
823
|
-
$DownloadLink = $LegacyDownloadLink
|
|
824
|
-
$ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
|
|
825
|
-
Say-Verbose "Legacy zip path: $ZipPath"
|
|
826
|
-
Say "Downloading legacy link $DownloadLink"
|
|
827
|
-
try {
|
|
828
|
-
DownloadFile -Source $DownloadLink -OutPath $ZipPath
|
|
829
|
-
}
|
|
830
|
-
catch {
|
|
831
|
-
if ($PSItem.Exception.Data.Contains("StatusCode")) {
|
|
832
|
-
$LegacyDownloadStatusCode = $PSItem.Exception.Data["StatusCode"]
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
if ($PSItem.Exception.Data.Contains("ErrorMessage")) {
|
|
836
|
-
$LegacyDownloadFailedMsg = $PSItem.Exception.Data["ErrorMessage"]
|
|
837
|
-
} else {
|
|
838
|
-
$LegacyDownloadFailedMsg = $PSItem.Exception.Message
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
if ($LegacyDownloadStatusCode -eq 404) {
|
|
842
|
-
Say "The resource at $DownloadLink is not available."
|
|
843
|
-
} else {
|
|
844
|
-
Say $PSItem.Exception.Message
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
SafeRemoveFile -Path $ZipPath
|
|
848
|
-
$DownloadFailed = $true
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
else {
|
|
852
|
-
$DownloadFailed = $true
|
|
853
|
-
}
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
if ($DownloadFailed) {
|
|
857
|
-
if (($PrimaryDownloadStatusCode -eq 404) -and ((-not $LegacyDownloadLink) -or ($LegacyDownloadStatusCode -eq 404))) {
|
|
858
|
-
throw "Could not find `"$assetName`" with version = $SpecificVersion`nRefer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support"
|
|
859
|
-
} else {
|
|
860
|
-
# 404-NotFound is an expected response if it goes from only one of the links, do not show that error.
|
|
861
|
-
# If primary path is available (not 404-NotFound) then show the primary error else show the legacy error.
|
|
862
|
-
if ($PrimaryDownloadStatusCode -ne 404) {
|
|
863
|
-
throw "Could not download `"$assetName`" with version = $SpecificVersion`r`n$PrimaryDownloadFailedMsg"
|
|
864
|
-
}
|
|
865
|
-
if (($LegacyDownloadLink) -and ($LegacyDownloadStatusCode -ne 404)) {
|
|
866
|
-
throw "Could not download `"$assetName`" with version = $SpecificVersion`r`n$LegacyDownloadFailedMsg"
|
|
867
|
-
}
|
|
868
|
-
throw "Could not download `"$assetName`" with version = $SpecificVersion"
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
Say "Extracting zip from $DownloadLink"
|
|
873
|
-
Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot
|
|
874
|
-
|
|
875
|
-
# Check if the SDK version is installed; if not, fail the installation.
|
|
876
|
-
$isAssetInstalled = $false
|
|
877
|
-
|
|
878
|
-
# if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed.
|
|
879
|
-
if ($SpecificVersion -Match "rtm" -or $SpecificVersion -Match "servicing") {
|
|
880
|
-
$ReleaseVersion = $SpecificVersion.Split("-")[0]
|
|
881
|
-
Say-Verbose "Checking installation: version = $ReleaseVersion"
|
|
882
|
-
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $ReleaseVersion
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
# Check if the SDK version is installed.
|
|
886
|
-
if (!$isAssetInstalled) {
|
|
887
|
-
Say-Verbose "Checking installation: version = $SpecificVersion"
|
|
888
|
-
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
|
|
889
|
-
}
|
|
890
|
-
|
|
891
|
-
# Version verification failed. More likely something is wrong either with the downloaded content or with the verification algorithm.
|
|
892
|
-
if (!$isAssetInstalled) {
|
|
893
|
-
Say-Error "Failed to verify the version of installed `"$assetName`".`nInstallation source: $DownloadLink.`nInstallation location: $InstallRoot.`nReport the bug at https://github.com/dotnet/install-scripts/issues."
|
|
894
|
-
throw "`"$assetName`" with version = $SpecificVersion failed to install with an unknown error."
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
SafeRemoveFile -Path $ZipPath
|
|
898
|
-
|
|
899
|
-
Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath
|
|
900
|
-
|
|
901
|
-
Say "Note that the script does not resolve dependencies during installation."
|
|
902
|
-
Say "To check the list of dependencies, go to https://docs.microsoft.com/dotnet/core/install/windows#dependencies"
|
|
903
|
-
Say "Installation finished"
|
|
904
|
-
# SIG # Begin signature block
|
|
905
|
-
# MIIjjwYJKoZIhvcNAQcCoIIjgDCCI3wCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
|
906
|
-
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
|
907
|
-
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCNsnhcJvx/hXmM
|
|
908
|
-
# w8KjuvvIMDBFonhg9XJFc1QwfTyH4aCCDYEwggX/MIID56ADAgECAhMzAAABh3IX
|
|
909
|
-
# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
|
|
910
|
-
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
|
|
911
|
-
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
|
|
912
|
-
# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw
|
|
913
|
-
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
|
|
914
|
-
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
|
|
915
|
-
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
|
916
|
-
# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB
|
|
917
|
-
# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH
|
|
918
|
-
# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d
|
|
919
|
-
# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ
|
|
920
|
-
# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV
|
|
921
|
-
# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
|
|
922
|
-
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw
|
|
923
|
-
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
|
|
924
|
-
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu
|
|
925
|
-
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
|
|
926
|
-
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
|
|
927
|
-
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
|
|
928
|
-
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
|
|
929
|
-
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy
|
|
930
|
-
# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K
|
|
931
|
-
# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV
|
|
932
|
-
# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr
|
|
933
|
-
# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx
|
|
934
|
-
# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe
|
|
935
|
-
# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g
|
|
936
|
-
# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf
|
|
937
|
-
# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI
|
|
938
|
-
# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5
|
|
939
|
-
# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea
|
|
940
|
-
# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS
|
|
941
|
-
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
|
|
942
|
-
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
|
|
943
|
-
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
|
|
944
|
-
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
|
|
945
|
-
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
|
|
946
|
-
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
|
|
947
|
-
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
|
|
948
|
-
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
|
|
949
|
-
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
|
|
950
|
-
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
|
|
951
|
-
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
|
|
952
|
-
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
|
|
953
|
-
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
|
|
954
|
-
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
|
|
955
|
-
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
|
|
956
|
-
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
|
|
957
|
-
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
|
|
958
|
-
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
|
|
959
|
-
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
|
|
960
|
-
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
|
|
961
|
-
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
|
|
962
|
-
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
|
|
963
|
-
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
|
|
964
|
-
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
|
|
965
|
-
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
|
|
966
|
-
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
|
|
967
|
-
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
|
|
968
|
-
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
|
|
969
|
-
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
|
|
970
|
-
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
|
|
971
|
-
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
|
|
972
|
-
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
|
|
973
|
-
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
|
|
974
|
-
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
|
|
975
|
-
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
|
|
976
|
-
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
|
|
977
|
-
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
|
|
978
|
-
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
|
|
979
|
-
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
|
|
980
|
-
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZDCCFWACAQEwgZUwfjELMAkG
|
|
981
|
-
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
|
|
982
|
-
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
|
|
983
|
-
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN
|
|
984
|
-
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
|
|
985
|
-
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgpT/bxWwe
|
|
986
|
-
# aW0EinKMWCAzDXUjwXkIHldYzR6lw4/1Pc0wQgYKKwYBBAGCNwIBDDE0MDKgFIAS
|
|
987
|
-
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
|
|
988
|
-
# BgkqhkiG9w0BAQEFAASCAQCHd7sSQVq0YDg8QDx6/kLWn3s6jtvvIDCCgsO9spHM
|
|
989
|
-
# quPd4FPbG67DCsKDClekQs52qrtRO3Zo+JMnCw4j3bS+gZHzeJr2shbftOrpsFoD
|
|
990
|
-
# l7OPcUmtrqul9dkQCOp8t0MP3ls0n96/YyNy6lz4BAlTdkdDx957uAxalKaCIBzb
|
|
991
|
-
# R9QyppOKIfNFvwD4EI5KI6tpmSy/uH8SrRg7ZExAYZl6J6R18WkL7KHn649lPoAQ
|
|
992
|
-
# ujwrIXH10xOJops45ILGzKWQcHmCzLJGYapL4VHUuK+73nT+9ZROGHdk/PyvIcdw
|
|
993
|
-
# iERa+C06v305t3DA+CuHFy1tvyw7IFF6RVbLZPwxrJjToYIS7jCCEuoGCisGAQQB
|
|
994
|
-
# gjcDAwExghLaMIIS1gYJKoZIhvcNAQcCoIISxzCCEsMCAQMxDzANBglghkgBZQME
|
|
995
|
-
# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB
|
|
996
|
-
# MDEwDQYJYIZIAWUDBAIBBQAEIOCaTmvM1AP0WaEVqzKaaCu/R+bTlR4kCrM/ZXsb
|
|
997
|
-
# /eNOAgZgGeLsMwsYEzIwMjEwMjAzMjExNzQ5LjU5MVowBIACAfSggdSkgdEwgc4x
|
|
998
|
-
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
|
|
999
|
-
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p
|
|
1000
|
-
# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg
|
|
1001
|
-
# VFNTIEVTTjo4OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
|
|
1002
|
-
# U3RhbXAgU2VydmljZaCCDkEwggT1MIID3aADAgECAhMzAAABLCKvRZd1+RvuAAAA
|
|
1003
|
-
# AAEsMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
|
|
1004
|
-
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
|
|
1005
|
-
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
|
|
1006
|
-
# MB4XDTE5MTIxOTAxMTUwM1oXDTIxMDMxNzAxMTUwM1owgc4xCzAJBgNVBAYTAlVT
|
|
1007
|
-
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
|
|
1008
|
-
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy
|
|
1009
|
-
# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4OTdB
|
|
1010
|
-
# LUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
|
|
1011
|
-
# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPK1zgSSq+MxAYo3qpCt
|
|
1012
|
-
# QDxSMPPJy6mm/wfEJNjNUnYtLFBwl1BUS5trEk/t41ldxITKehs+ABxYqo4Qxsg3
|
|
1013
|
-
# Gy1ugKiwHAnYiiekfC+ZhptNFgtnDZIn45zC0AlVr/6UfLtsLcHCh1XElLUHfEC0
|
|
1014
|
-
# nBuQcM/SpYo9e3l1qY5NdMgDGxCsmCKdiZfYXIu+U0UYIBhdzmSHnB3fxZOBVcr5
|
|
1015
|
-
# htFHEBBNt/rFJlm/A4yb8oBsp+Uf0p5QwmO/bCcdqB15JpylOhZmWs0sUfJKlK9E
|
|
1016
|
-
# rAhBwGki2eIRFKsQBdkXS9PWpF1w2gIJRvSkDEaCf+lbGTPdSzHSbfREWOF9wY3i
|
|
1017
|
-
# Yj8CAwEAAaOCARswggEXMB0GA1UdDgQWBBRRahZSGfrCQhCyIyGH9DkiaW7L0zAf
|
|
1018
|
-
# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH
|
|
1019
|
-
# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU
|
|
1020
|
-
# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
|
|
1021
|
-
# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0
|
|
1022
|
-
# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
|
|
1023
|
-
# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBPFxHIwi4vAH49w9Svmz6K3tM55RlW
|
|
1024
|
-
# 5pPeULXdut2Rqy6Ys0+VpZsbuaEoxs6Z1C3hMbkiqZFxxyltxJpuHTyGTg61zfNI
|
|
1025
|
-
# F5n6RsYF3s7IElDXNfZznF1/2iWc6uRPZK8rxxUJ/7emYXZCYwuUY0XjsCpP9pbR
|
|
1026
|
-
# RKeJi6r5arSyI+NfKxvgoM21JNt1BcdlXuAecdd/k8UjxCscffanoK2n6LFw1PcZ
|
|
1027
|
-
# lEO7NId7o+soM2C0QY5BYdghpn7uqopB6ixyFIIkDXFub+1E7GmAEwfU6VwEHL7y
|
|
1028
|
-
# 9rNE8bd+JrQs+yAtkkHy9FmXg/PsGq1daVzX1So7CJ6nyphpuHSN3VfTMIIGcTCC
|
|
1029
|
-
# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
|
|
1030
|
-
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
|
|
1031
|
-
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
|
|
1032
|
-
# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN
|
|
1033
|
-
# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
|
|
1034
|
-
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
|
|
1035
|
-
# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw
|
|
1036
|
-
# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0
|
|
1037
|
-
# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw
|
|
1038
|
-
# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe
|
|
1039
|
-
# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx
|
|
1040
|
-
# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G
|
|
1041
|
-
# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA
|
|
1042
|
-
# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7
|
|
1043
|
-
# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
|
|
1044
|
-
# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
|
|
1045
|
-
# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
|
|
1046
|
-
# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI
|
|
1047
|
-
# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
|
|
1048
|
-
# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g
|
|
1049
|
-
# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93
|
|
1050
|
-
# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB
|
|
1051
|
-
# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA
|
|
1052
|
-
# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh
|
|
1053
|
-
# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS
|
|
1054
|
-
# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK
|
|
1055
|
-
# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon
|
|
1056
|
-
# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi
|
|
1057
|
-
# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/
|
|
1058
|
-
# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII
|
|
1059
|
-
# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0
|
|
1060
|
-
# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a
|
|
1061
|
-
# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ
|
|
1062
|
-
# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+
|
|
1063
|
-
# NR4Iuto229Nfj950iEkSoYICzzCCAjgCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT
|
|
1064
|
-
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
|
|
1065
|
-
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP
|
|
1066
|
-
# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4
|
|
1067
|
-
# OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
|
|
1068
|
-
# dmljZaIjCgEBMAcGBSsOAwIaAxUADE5OKSMoNx/mYxYWap1RTOohbJ2ggYMwgYCk
|
|
1069
|
-
# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
|
|
1070
|
-
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
|
|
1071
|
-
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF
|
|
1072
|
-
# AOPFChkwIhgPMjAyMTAyMDMxNTQwMDlaGA8yMDIxMDIwNDE1NDAwOVowdDA6Bgor
|
|
1073
|
-
# BgEEAYRZCgQBMSwwKjAKAgUA48UKGQIBADAHAgEAAgIXmDAHAgEAAgIRyTAKAgUA
|
|
1074
|
-
# 48ZbmQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAID
|
|
1075
|
-
# B6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAHeeznL2n6HWCjHH94Fl
|
|
1076
|
-
# hcdW6TEXzq4XNgp1Gx1W9F8gJ4x+SwoV7elJZkwgGffcpHomLvIY/VSuzsl1NgtJ
|
|
1077
|
-
# TWM2UxoqSv58BBOrl4eGhH6kkg8Ucy2tdeK5T8cHa8pMkq2j9pFd2mRG/6VMk0dl
|
|
1078
|
-
# Xz7Uy3Z6bZqkcABMyAfuAaGbMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMx
|
|
1079
|
-
# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
|
|
1080
|
-
# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt
|
|
1081
|
-
# U3RhbXAgUENBIDIwMTACEzMAAAEsIq9Fl3X5G+4AAAAAASwwDQYJYIZIAWUDBAIB
|
|
1082
|
-
# BQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQx
|
|
1083
|
-
# IgQg/QYv7yp+354WTjWUIsXWndTEzXjaYjqwYjcBxCJKjdUwgfoGCyqGSIb3DQEJ
|
|
1084
|
-
# EAIvMYHqMIHnMIHkMIG9BCBbn/0uFFh42hTM5XOoKdXevBaiSxmYK9Ilcn9nu5ZH
|
|
1085
|
-
# 4TCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
|
|
1086
|
-
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
|
|
1087
|
-
# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABLCKv
|
|
1088
|
-
# RZd1+RvuAAAAAAEsMCIEIIfIM3YbzHswb/Kj/qq1l1cHA6QBl+gEXYanUNJomrpT
|
|
1089
|
-
# MA0GCSqGSIb3DQEBCwUABIIBAAwdcXssUZGO7ho5+NHLjIxLtQk543aKGo+lrRMY
|
|
1090
|
-
# Q9abE1h/AaaNJl0iGxX4IihNWyfovSfYL3L4eODUBAu68tWSxeceRfWNsb/ZZfUi
|
|
1091
|
-
# v89hpLssI/Gf1BEgNMA4zCuIGQiC8okusVumEpAhhvCEbSiTTTtBdolTnU/CAKui
|
|
1092
|
-
# oxaU3R9XkKh1F4oAM26+dJ1J2BLQXPs5afNvvedDsZWNQUPK1sFF3JRfzxiTrwBW
|
|
1093
|
-
# EJRyflev9gyDoqCHzippgb+6+eti1WTkcA9Q49GIT11S6LOAVqkSC9N7Nqf8ksh8
|
|
1094
|
-
# ARdwT8jigpsm+mj7lrVU9upDkhVYhKeO8oiZq95Q53Zkteo=
|
|
1095
|
-
# SIG # End signature block
|