Raiff1982 commited on
Commit
7293b6f
·
verified ·
1 Parent(s): 6db2895

Upload 43 files

Browse files
.env ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ AZURE_OPENAI_API_KEY=2zRqaiUcbPYuYRaQZ0vIkCItdwMs21V9HHxTFBcHCaLJdFJzb59jJQQJ99AKACLArgHXJ3w3AAABACOGTau5
2
+ AZURE_OPENAI_ENDPOINT=https://aibotforjonathan.openai.azure.com/
3
+ AZURE_SQL_SERVER=botserver.database.windows.net
4
+ AZURE_SQL_DATABASE=BotBrain20
5
+ AZURE_SQL_USERNAME=BotUser
6
+ AZURE_SQL_PASSWORD=Funtimes82!
7
+ LUIS_ENDPOINT=https://pilouis.cognitiveservices.azure.com/
8
+ LUIS_API_VERSION=2024-10-01
9
+ LUIS_API_KEY=your-luis-api-key
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ azure-cli-2.67.0.msi filter=lfs diff=lfs merge=lfs -text
37
+ git-lfs-windows-v3.6.0.exe filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,365 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Ignore Visual Studio temporary files, build results, and
2
+ ## files generated by popular Visual Studio add-ons.
3
+ ##
4
+ ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5
+
6
+ # User-specific files
7
+ *.env
8
+ *.rsuser
9
+ *.suo
10
+ *.user
11
+ *.userosscache
12
+ *.sln.docstates
13
+
14
+ # User-specific files (MonoDevelop/Xamarin Studio)
15
+ *.userprefs
16
+
17
+ # Mono auto generated files
18
+ mono_crash.*
19
+
20
+ # Build results
21
+ [Dd]ebug/
22
+ [Dd]ebugPublic/
23
+ [Rr]elease/
24
+ [Rr]eleases/
25
+ x64/
26
+ x86/
27
+ [Ww][Ii][Nn]32/
28
+ [Aa][Rr][Mm]/
29
+ [Aa][Rr][Mm]64/
30
+ bld/
31
+ [Bb]in/
32
+ [Oo]bj/
33
+ [Oo]ut/
34
+ [Ll]og/
35
+ [Ll]ogs/
36
+
37
+ # Visual Studio 2015/2017 cache/options directory
38
+ .vs/
39
+ # Uncomment if you have tasks that create the project's static files in wwwroot
40
+ #wwwroot/
41
+
42
+ # Visual Studio 2017 auto generated files
43
+ Generated\ Files/
44
+
45
+ # MSTest test Results
46
+ [Tt]est[Rr]esult*/
47
+ [Bb]uild[Ll]og.*
48
+
49
+ # NUnit
50
+ *.VisualState.xml
51
+ TestResult.xml
52
+ nunit-*.xml
53
+
54
+ # Build Results of an ATL Project
55
+ [Dd]ebugPS/
56
+ [Rr]eleasePS/
57
+ dlldata.c
58
+
59
+ # Benchmark Results
60
+ BenchmarkDotNet.Artifacts/
61
+
62
+ # .NET Core
63
+ project.lock.json
64
+ project.fragment.lock.json
65
+ artifacts/
66
+
67
+ # ASP.NET Scaffolding
68
+ ScaffoldingReadMe.txt
69
+
70
+ # StyleCop
71
+ StyleCopReport.xml
72
+
73
+ # Files built by Visual Studio
74
+ *_i.c
75
+ *_p.c
76
+ *_h.h
77
+ *.ilk
78
+ *.meta
79
+ *.obj
80
+ *.iobj
81
+ *.pch
82
+ *.pdb
83
+ *.ipdb
84
+ *.pgc
85
+ *.pgd
86
+ *.rsp
87
+ *.sbr
88
+ *.tlb
89
+ *.tli
90
+ *.tlh
91
+ *.tmp
92
+ *.tmp_proj
93
+ *_wpftmp.csproj
94
+ *.log
95
+ *.vspscc
96
+ *.vssscc
97
+ .builds
98
+ *.pidb
99
+ *.svclog
100
+ *.scc
101
+
102
+ # Chutzpah Test files
103
+ _Chutzpah*
104
+
105
+ # Visual C++ cache files
106
+ ipch/
107
+ *.aps
108
+ *.ncb
109
+ *.opendb
110
+ *.opensdf
111
+ *.sdf
112
+ *.cachefile
113
+ *.VC.db
114
+ *.VC.VC.opendb
115
+
116
+ # Visual Studio profiler
117
+ *.psess
118
+ *.vsp
119
+ *.vspx
120
+ *.sap
121
+
122
+ # Visual Studio Trace Files
123
+ *.e2e
124
+
125
+ # TFS 2012 Local Workspace
126
+ $tf/
127
+
128
+ # Guidance Automation Toolkit
129
+ *.gpState
130
+
131
+ # ReSharper is a .NET coding add-in
132
+ _ReSharper*/
133
+ *.[Rr]e[Ss]harper
134
+ *.DotSettings.user
135
+
136
+ # TeamCity is a build add-in
137
+ _TeamCity*
138
+
139
+ # DotCover is a Code Coverage Tool
140
+ *.dotCover
141
+
142
+ # AxoCover is a Code Coverage Tool
143
+ .axoCover/*
144
+ !.axoCover/settings.json
145
+
146
+ # Coverlet is a free, cross platform Code Coverage Tool
147
+ coverage*.json
148
+ coverage*.xml
149
+ coverage*.info
150
+
151
+ # Visual Studio code coverage results
152
+ *.coverage
153
+ *.coveragexml
154
+
155
+ # NCrunch
156
+ _NCrunch_*
157
+ .*crunch*.local.xml
158
+ nCrunchTemp_*
159
+
160
+ # MightyMoose
161
+ *.mm.*
162
+ AutoTest.Net/
163
+
164
+ # Web workbench (sass)
165
+ .sass-cache/
166
+
167
+ # Installshield output folder
168
+ [Ee]xpress/
169
+
170
+ # DocProject is a documentation generator add-in
171
+ DocProject/buildhelp/
172
+ DocProject/Help/*.HxT
173
+ DocProject/Help/*.HxC
174
+ DocProject/Help/*.hhc
175
+ DocProject/Help/*.hhk
176
+ DocProject/Help/*.hhp
177
+ DocProject/Help/Html2
178
+ DocProject/Help/html
179
+
180
+ # Click-Once directory
181
+ publish/
182
+
183
+ # Publish Web Output
184
+ *.[Pp]ublish.xml
185
+ *.azurePubxml
186
+ # Note: Comment the next line if you want to checkin your web deploy settings,
187
+ # but database connection strings (with potential passwords) will be unencrypted
188
+ *.pubxml
189
+ *.publishproj
190
+
191
+ # Microsoft Azure Web App publish settings. Comment the next line if you want to
192
+ # checkin your Azure Web App publish settings, but sensitive information contained
193
+ # in these scripts will be unencrypted
194
+ PublishScripts/
195
+
196
+ # NuGet Packages
197
+ *.nupkg
198
+ # NuGet Symbol Packages
199
+ *.snupkg
200
+ # The packages folder can be ignored because of Package Restore
201
+ **/[Pp]ackages/*
202
+ # except build/, which is used as an MSBuild target.
203
+ !**/[Pp]ackages/build/
204
+ # Uncomment if necessary however generally it will be regenerated when needed
205
+ #!**/[Pp]ackages/repositories.config
206
+ # NuGet v3's project.json files produces more ignorable files
207
+ *.nuget.props
208
+ *.nuget.targets
209
+
210
+ # Microsoft Azure Build Output
211
+ csx/
212
+ *.build.csdef
213
+
214
+ # Microsoft Azure Emulator
215
+ ecf/
216
+ rcf/
217
+
218
+ # Windows Store app package directories and files
219
+ AppPackages/
220
+ BundleArtifacts/
221
+ Package.StoreAssociation.xml
222
+ _pkginfo.txt
223
+ *.appx
224
+ *.appxbundle
225
+ *.appxupload
226
+
227
+ # Visual Studio cache files
228
+ # files ending in .cache can be ignored
229
+ *.[Cc]ache
230
+ # but keep track of directories ending in .cache
231
+ !?*.[Cc]ache/
232
+
233
+ # Others
234
+ ClientBin/
235
+ ~$*
236
+ *~
237
+ *.dbmdl
238
+ *.dbproj.schemaview
239
+ *.jfm
240
+ *.pfx
241
+ *.publishsettings
242
+ orleans.codegen.cs
243
+
244
+ # Including strong name files can present a security risk
245
+ # (https://github.com/github/gitignore/pull/2483#issue-259490424)
246
+ #*.snk
247
+
248
+ # Since there are multiple workflows, uncomment next line to ignore bower_components
249
+ # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
250
+ #bower_components/
251
+
252
+ # RIA/Silverlight projects
253
+ Generated_Code/
254
+
255
+ # Backup & report files from converting an old project file
256
+ # to a newer Visual Studio version. Backup files are not needed,
257
+ # because we have git ;-)
258
+ _UpgradeReport_Files/
259
+ Backup*/
260
+ UpgradeLog*.XML
261
+ UpgradeLog*.htm
262
+ ServiceFabricBackup/
263
+ *.rptproj.bak
264
+
265
+ # SQL Server files
266
+ *.mdf
267
+ *.ldf
268
+ *.ndf
269
+
270
+ # Business Intelligence projects
271
+ *.rdl.data
272
+ *.bim.layout
273
+ *.bim_*.settings
274
+ *.rptproj.rsuser
275
+ *- [Bb]ackup.rdl
276
+ *- [Bb]ackup ([0-9]).rdl
277
+ *- [Bb]ackup ([0-9][0-9]).rdl
278
+
279
+ # Microsoft Fakes
280
+ FakesAssemblies/
281
+
282
+ # GhostDoc plugin setting file
283
+ *.GhostDoc.xml
284
+
285
+ # Node.js Tools for Visual Studio
286
+ .ntvs_analysis.dat
287
+ node_modules/
288
+
289
+ # Visual Studio 6 build log
290
+ *.plg
291
+
292
+ # Visual Studio 6 workspace options file
293
+ *.opt
294
+
295
+ # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
296
+ *.vbw
297
+
298
+ # Visual Studio LightSwitch build output
299
+ **/*.HTMLClient/GeneratedArtifacts
300
+ **/*.DesktopClient/GeneratedArtifacts
301
+ **/*.DesktopClient/ModelManifest.xml
302
+ **/*.Server/GeneratedArtifacts
303
+ **/*.Server/ModelManifest.xml
304
+ _Pvt_Extensions
305
+
306
+ # Paket dependency manager
307
+ .paket/paket.exe
308
+ paket-files/
309
+
310
+ # FAKE - F# Make
311
+ .fake/
312
+
313
+ # CodeRush personal settings
314
+ .cr/personal
315
+
316
+ # Python Tools for Visual Studio (PTVS)
317
+ __pycache__/
318
+ *.pyc
319
+
320
+ # Cake - Uncomment if you are using it
321
+ # tools/**
322
+ # !tools/packages.config
323
+
324
+ # Tabs Studio
325
+ *.tss
326
+
327
+ # Telerik's JustMock configuration file
328
+ *.jmconfig
329
+
330
+ # BizTalk build output
331
+ *.btp.cs
332
+ *.btm.cs
333
+ *.odx.cs
334
+ *.xsd.cs
335
+
336
+ # OpenCover UI analysis results
337
+ OpenCover/
338
+
339
+ # Azure Stream Analytics local run output
340
+ ASALocalRun/
341
+
342
+ # MSBuild Binary and Structured Log
343
+ *.binlog
344
+
345
+ # NVidia Nsight GPU debugger configuration file
346
+ *.nvuser
347
+
348
+ # MFractors (Xamarin productivity tool) working folder
349
+ .mfractor/
350
+
351
+ # Local History for Visual Studio
352
+ .localhistory/
353
+
354
+ # BeatPulse healthcheck temp database
355
+ healthchecksdb
356
+
357
+ # Backup folder for Package Reference Convert tool in Visual Studio 2017
358
+ MigrationBackup/
359
+
360
+ # Ionide (cross platform F# VS Code tools) working folder
361
+ .ionide/
362
+
363
+ # Fody - auto-generated XML schema
364
+ FodyWeavers.xsd
365
+ .codegpt
2.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ AZURE_OPENAI_API_KEY=2zRqaiUcbPYuYRaQZ0vIkCItdwMs21V9HHxTFBcHCaLJdFJzb59jJQQJ99AKACLArgHXJ3w3AAABACOGTau5
2
+ AZURE_OPENAI_ENDPOINT=https://aibotforjonathan.openai.azure.com/
3
+ AZURE_SQL_SERVER=botserver.database.windows.net
4
+ AZURE_SQL_DATABASE=BotBrain20
5
+ AZURE_SQL_USERNAME=BotUser
6
+ AZURE_SQL_PASSWORD=Funtimes82!
7
+ LUIS_ENDPOINT=https://pilouis.cognitiveservices.azure.com/
8
+ LUIS_API_VERSION=2024-10-01
9
+ LUIS_API_KEY=your-luis-api-key
CMakePresets.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": 8,
3
+ "configurePresets": [
4
+ {
5
+ "name": "Configure preset using toolchain file",
6
+ "displayName": "Configure preset using toolchain file",
7
+ "description": "Sets Ninja generator, build and install directory",
8
+ "generator": "Ninja",
9
+ "binaryDir": "${sourceDir}/out/build/${presetName}",
10
+ "cacheVariables": {
11
+ "CMAKE_BUILD_TYPE": "Debug",
12
+ "CMAKE_TOOLCHAIN_FILE": "",
13
+ "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}"
14
+ }
15
+ }
16
+ ]
17
+ }
ChatSetup.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"systemPrompt":"Provide a detailed and structured summary of the described AI system's capabilities while maintaining clarity and precision.\n\n# Steps\n\n1. **Overview Writing**:\n - Summarize key functionalities, including the purpose of each feature.\n - Highlight the significance of integrated tools, libraries, and mechanisms in accomplishing these functionalities.\n - Explain the capabilities in concise yet descriptive terms to ensure coherence.\n\n2. **Categorization**: \n - Clearly organize the features into categories for better readability and comprehension (e.g., Input Handling, Real-Time Integration, Security).\n\n3. **Error Reporting**: \n - Investigate and describe the significance of the error message provided and potential contextual implications for the system's function.\n - Address the Azure OpenAI-related error, explaining its relevance, and if needed, suggest potential resolutions to ensure compatibility.\n\n# Output Format\nThe output should be presented in well-structured markdown bullet points or headings, categorized and sub-categorized as needed. Sub-level breakdowns (e.g., Text Input, Voice Input) may be used for features with multiple facets. Include:\n\n1. Introduction (1-2 sentences summarizing overall system goals.)\n2. Detailed Capabilities (Structured in categorized bullet points or headings.)\n3. Error Analysis (Detailed description of the Azure error provided and potential solutions or implications.)\n4. Optional: Suggestions or Recommendations (If necessary based on steps above or error analysis.)\n\n# Notes\n\n- Ensure all terms like library names or technical terms (e.g., SpeechRecognition, vaderSentiment) are presented exactly as described but briefly explain their contributions to the system.\n- Avoid changing any meaningful user-provided information unless brevity and readability require it. \n- Reference compatibility issues explicitly under the Error Analysis section.","fewShotExamples":[],"chatParameters":{"deploymentName":"gpt-4","maxResponseLength":4096,"temperature":0.7,"topProbablities":1,"stopSequences":[],"pastMessagesToInclude":"20","frequencyPenalty":2,"presencePenalty":2}}
ChatSetup.prompty ADDED
@@ -0,0 +1,536 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: ''
3
+ description: ''
4
+ authors: []
5
+ tags: []
6
+ version: ''
7
+ base: ''
8
+ model:
9
+ api: chat
10
+ configuration:
11
+ type: azure_openai
12
+ azure_deployment: gpt-4
13
+ parameters:
14
+ temperature: 0.7
15
+ top_p: 0.95
16
+ stop: []
17
+ frequency_penalty: 0
18
+ presence_penalty: 0
19
+ max_tokens: 800
20
+ past_messages_to_include: '20'
21
+ response: {}
22
+ sample:
23
+ String: |-
24
+ import asyncio
25
+ import json
26
+ import logging
27
+ import os
28
+ from typing import List, Dict, Any
29
+ from cryptography.fernet import Fernet
30
+ from botbuilder.core import StatePropertyAccessor, TurnContext
31
+ from botbuilder.dialogs import Dialog, DialogSet, DialogTurnStatus
32
+ from dialog_helper import DialogHelper
33
+ import aiohttp
34
+ import speech_recognition as sr
35
+ from PIL import Image
36
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
37
+
38
+ # Ensure nltk is installed and download required data
39
+ try:
40
+ import nltk
41
+ from nltk.tokenize import word_tokenize
42
+ nltk.download('punkt', quiet=True)
43
+ except ImportError:
44
+ import subprocess
45
+ import sys
46
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "nltk"])
47
+ import nltk
48
+ from nltk.tokenize import word_tokenize
49
+ nltk.download('punkt', quiet=True)
50
+
51
+ # Import perspectives
52
+ from perspectives import (
53
+ Perspective, NewtonPerspective, DaVinciPerspective, HumanIntuitionPerspective,
54
+ NeuralNetworkPerspective, QuantumComputingPerspective, ResilientKindnessPerspective,
55
+ MathematicalPerspective, PhilosophicalPerspective, CopilotPerspective, BiasMitigationPerspective,
56
+ PsychologicalPerspective
57
+ )
58
+
59
+ # Load environment variables
60
+ from dotenv import load_dotenv
61
+ load_dotenv()
62
+
63
+ # Setup Logging
64
+ def setup_logging(config):
65
+ if config.get('logging_enabled', True):
66
+ log_level = config.get('log_level', 'DEBUG').upper()
67
+ numeric_level = getattr(logging, log_level, logging.DEBUG)
68
+ logging.basicConfig(
69
+ filename='universal_reasoning.log',
70
+ level=numeric_level,
71
+ format='%(asctime)s - %(levelname)s - %(message)s'
72
+ )
73
+ else:
74
+ logging.disable(logging.CRITICAL)
75
+
76
+ # Load JSON configuration
77
+ def load_json_config(file_path):
78
+ if not os.path.exists(file_path):
79
+ logging.error(f"Configuration file '{file_path}' not found.")
80
+ return {}
81
+ try:
82
+ with open(file_path, 'r') as file:
83
+ config = json.load(file)
84
+ logging.info(f"Configuration loaded from '{file_path}'.")
85
+ return config
86
+ except json.JSONDecodeError as e:
87
+ logging.error(f"Error decoding JSON from the configuration file '{file_path}': {e}")
88
+ return {}
89
+
90
+ # Encrypt sensitive information
91
+ def encrypt_sensitive_data(data, key):
92
+ fernet = Fernet(key)
93
+ encrypted_data = fernet.encrypt(data.encode())
94
+ return encrypted_data
95
+
96
+ # Decrypt sensitive information
97
+ def decrypt_sensitive_data(encrypted_data, key):
98
+ fernet = Fernet(key)
99
+ decrypted_data = fernet.decrypt(encrypted_data).decode()
100
+ return decrypted_data
101
+
102
+ # Securely destroy sensitive information
103
+ def destroy_sensitive_data(data):
104
+ del data
105
+
106
+ # Define the Element class
107
+ class Element:
108
+ def __init__(self, name, symbol, representation, properties, interactions, defense_ability):
109
+ self.name = name
110
+ self.symbol = symbol
111
+ self.representation = representation
112
+ self.properties = properties
113
+ self.interactions = interactions
114
+ self.defense_ability = defense_ability
115
+
116
+ def execute_defense_function(self):
117
+ message = f"{self.name} ({self.symbol}) executes its defense ability: {self.defense_ability}"
118
+ logging.info(message)
119
+ return message
120
+
121
+ # Define the CustomRecognizer class
122
+ class CustomRecognizer:
123
+ def recognize(self, question):
124
+ # Simple keyword-based recognizer for demonstration purposes
125
+ if any(element_name.lower() in question.lower() for element_name in ["hydrogen", "diamond"]):
126
+ return RecognizerResult(question)
127
+ return RecognizerResult(None)
128
+
129
+ def get_top_intent(self, recognizer_result):
130
+ if recognizer_result.text:
131
+ return "ElementDefense"
132
+ else:
133
+ return "None"
134
+
135
+ class RecognizerResult:
136
+ def __init__(self, text):
137
+ self.text = text
138
+
139
+ # Universal Reasoning Aggregator
140
+ class UniversalReasoning:
141
+ def __init__(self, config):
142
+ self.config = config
143
+ self.perspectives = self.initialize_perspectives()
144
+ self.elements = self.initialize_elements()
145
+ self.recognizer = CustomRecognizer()
146
+ self.context_history = [] # Maintain context history
147
+ self.feedback = [] # Store user feedback
148
+ # Initialize the sentiment analyzer
149
+ self.sentiment_analyzer = SentimentIntensityAnalyzer()
150
+
151
+ def initialize_perspectives(self):
152
+ perspective_names = self.config.get('enabled_perspectives', [
153
+ "newton",
154
+ "davinci",
155
+ "human_intuition",
156
+ "neural_network",
157
+ "quantum_computing",
158
+ "resilient_kindness",
159
+ "mathematical",
160
+ "philosophical",
161
+ "copilot",
162
+ "bias_mitigation",
163
+ "psychological"
164
+ ])
165
+ perspective_classes = {
166
+ "newton": NewtonPerspective,
167
+ "davinci": DaVinciPerspective,
168
+ "human_intuition": HumanIntuitionPerspective,
169
+ "neural_network": NeuralNetworkPerspective,
170
+ "quantum_computing": QuantumComputingPerspective,
171
+ "resilient_kindness": ResilientKindnessPerspective,
172
+ "mathematical": MathematicalPerspective,
173
+ "philosophical": PhilosophicalPerspective,
174
+ "copilot": CopilotPerspective,
175
+ "bias_mitigation": BiasMitigationPerspective,
176
+ "psychological": PsychologicalPerspective
177
+ }
178
+ perspectives = []
179
+ for name in perspective_names:
180
+ cls = perspective_classes.get(name.lower())
181
+ if cls:
182
+ perspectives.append(cls(self.config))
183
+ logging.debug(f"Perspective '{name}' initialized.")
184
+ else:
185
+ logging.warning(f"Perspective '{name}' is not recognized and will be skipped.")
186
+ return perspectives
187
+
188
+ def initialize_elements(self):
189
+ elements = [
190
+ Element(
191
+ name="Hydrogen",
192
+ symbol="H",
193
+ representation="Lua",
194
+ properties=["Simple", "Lightweight", "Versatile"],
195
+ interactions=["Easily integrates with other languages and systems"],
196
+ defense_ability="Evasion"
197
+ ),
198
+ # You can add more elements as needed
199
+ Element(
200
+ name="Diamond",
201
+ symbol="D",
202
+ representation="Kotlin",
203
+ properties=["Modern", "Concise", "Safe"],
204
+ interactions=["Used for Android development"],
205
+ defense_ability="Adaptability"
206
+ )
207
+ ]
208
+ return elements
209
+
210
+ async def generate_response(self, question):
211
+ self.context_history.append(question) # Add question to context history
212
+ sentiment_score = self.analyze_sentiment(question)
213
+ real_time_data = await self.fetch_real_time_data("https://api.example.com/data")
214
+ responses = []
215
+ tasks = []
216
+
217
+ # Generate responses from perspectives concurrently
218
+ for perspective in self.perspectives:
219
+ if asyncio.iscoroutinefunction(perspective.generate_response):
220
+ tasks.append(perspective.generate_response(question))
221
+ else:
222
+ # Wrap synchronous functions in coroutine
223
+ async def sync_wrapper(perspective, question):
224
+ return perspective.generate_response(question)
225
+ tasks.append(sync_wrapper(perspective, question))
226
+
227
+ perspective_results = await asyncio.gather(*tasks, return_exceptions=True)
228
+
229
+ for perspective, result in zip(self.perspectives, perspective_results):
230
+ if isinstance(result, Exception):
231
+ logging.error(f"Error generating response from {perspective.__class__.__name__}: {result}")
232
+ else:
233
+ responses.append(result)
234
+ logging.debug(f"Response from {perspective.__class__.__name__}: {result}")
235
+
236
+ # Handle element defense logic
237
+ recognizer_result = self.recognizer.recognize(question)
238
+ top_intent = self.recognizer.get_top_intent(recognizer_result)
239
+ if top_intent == "ElementDefense":
240
+ element_name = recognizer_result.text.strip()
241
+ element = next(
242
+ (el for el in self.elements if el.name.lower() in element_name.lower()),
243
+ None
244
+ )
245
+ if element:
246
+ defense_message = element.execute_defense_function()
247
+ responses.append(defense_message)
248
+ else:
249
+ logging.info(f"No matching element found for '{element_name}'")
250
+
251
+ ethical_considerations = self.config.get(
252
+ 'ethical_considerations',
253
+ "Always act with transparency, fairness, and respect for privacy."
254
+ )
255
+ responses.append(f"**Ethical Considerations:**\n{ethical_considerations}")
256
+
257
+ formatted_response = "\n\n".join(responses)
258
+ return formatted_response
259
+
260
+ def analyze_sentiment(self, text):
261
+ sentiment_score = self.sentiment_analyzer.polarity_scores(text)
262
+ logging.info(f"Sentiment analysis result: {sentiment_score}")
263
+ return sentiment_score
264
+
265
+ async def fetch_real_time_data(self, source_url):
266
+ async with aiohttp.ClientSession() as session:
267
+ async with session.get(source_url) as response:
268
+ data = await response.json()
269
+ logging.info(f"Real-time data fetched from {source_url}: {data}")
270
+ return data
271
+
272
+ async def run_dialog(self, dialog: Dialog, turn_context: TurnContext, accessor: StatePropertyAccessor) -> None:
273
+ await DialogHelper.run_dialog(dialog, turn_context, accessor)
274
+
275
+ def save_response(self, response):
276
+ if self.config.get('enable_response_saving', False):
277
+ save_path = self.config.get('response_save_path', 'responses.txt')
278
+ try:
279
+ with open(save_path, 'a', encoding='utf-8') as file:
280
+ file.write(response + '\n')
281
+ logging.info(f"Response saved to '{save_path}'.")
282
+ except Exception as e:
283
+ logging.error(f"Error saving response to '{save_path}': {e}")
284
+
285
+ def backup_response(self, response):
286
+ if self.config.get('backup_responses', {}).get('enabled', False):
287
+ backup_path = self.config['backup_responses'].get('backup_path', 'backup_responses.txt')
288
+ try:
289
+ with open(backup_path, 'a', encoding='utf-8') as file:
290
+ file.write(response + '\n')
291
+ logging.info(f"Response backed up to '{backup_path}'.")
292
+
293
+ async def collect_user_feedback(self, turn_context: TurnContext):
294
+ # Collect feedback from the user
295
+ feedback = turn_context.activity.text
296
+ logging.info(f"User feedback received: {feedback}")
297
+ # Process feedback for continuous learning
298
+ self.process_feedback(feedback)
299
+
300
+ def process_feedback(self, feedback):
301
+ # Implement feedback processing logic
302
+ logging.info(f"Processing feedback: {feedback}")
303
+ # Example: Adjust response generation based on feedback
304
+ # This can be expanded with more sophisticated learning algorithms
305
+
306
+ def add_new_perspective(self, perspective_name, perspective_class):
307
+ if perspective_name.lower() not in [p.__class__.__name__.lower() for p in self.perspectives]:
308
+ self.perspectives.append(perspective_class(self.config))
309
+ logging.info(f"New perspective '{perspective_name}' added.")
310
+ else:
311
+ logging.warning(f"Perspective '{perspective_name}' already exists.")
312
+
313
+ def handle_voice_input(self):
314
+ recognizer = sr.Recognizer()
315
+ with sr.Microphone() as source:
316
+ print("Listening...")
317
+ audio = recognizer.listen(source)
318
+ try:
319
+ text = recognizer.recognize_google(audio)
320
+ print(f"Voice input recognized: {text}")
321
+ return text
322
+ except sr.UnknownValueError:
323
+ print("Google Speech Recognition could not understand audio")
324
+ return None
325
+ except sr.RequestError as e:
326
+ print(f"Could not request results from Google Speech Recognition service; {e}")
327
+ return None
328
+
329
+ def handle_image_input(self, image_path):
330
+ try:
331
+ image = Image.open(image_path)
332
+ print(f"Image input processed: {image_path}")
333
+ return image
334
+ except Exception as e:
335
+ print(f"Error processing image input: {e}")
336
+ return None
337
+
338
+ # Example usage
339
+ if __name__ == "__main__":
340
+ config = load_json_config('config.json')
341
+ # Add Azure OpenAI configurations to the config
342
+ azure_openai_api_key = os.getenv('AZURE_OPENAI_API_KEY')
343
+ azure_openai_endpoint = os.getenv('AZURE_OPENAI_ENDPOINT')
344
+
345
+ # Encrypt sensitive data
346
+ encryption_key = Fernet.generate_key()
347
+ encrypted_api_key = encrypt_sensitive_data(azure_openai_api_key, encryption_key)
348
+ encrypted_endpoint = encrypt_sensitive_data(azure_openai_endpoint, encryption_key)
349
+
350
+ # Add encrypted data to config
351
+ config['azure_openai_api_key'] = encrypted_api_key
352
+ config['azure_openai_endpoint'] = encrypted_endpoint
353
+
354
+ setup_logging(config)
355
+ universal_reasoning = UniversalReasoning(config)
356
+ question = "Tell me about Hydrogen and its defense mechanisms."
357
+ response = asyncio.run(universal_reasoning.generate_response(question))
358
+ print(response)
359
+ if response:
360
+ universal_reasoning.save_response(response)
361
+ universal_reasoning.backup_response(response)
362
+
363
+ # Decrypt and destroy sensitive data
364
+ decrypted_api_key = decrypt_sensitive_data(encrypted_api_key, encryption_key)
365
+ decrypted_endpoint = decrypt_sensitive_data(encrypted_endpoint, encryption_key)
366
+ destroy_sensitive_data(decrypted_api_key)
367
+ destroy_sensitive_data(decrypted_endpoint)
368
+
369
+ # Handle voice input
370
+ voice_input = universal_reasoning.handle_voice_input()
371
+ if voice_input:
372
+ response = asyncio.run(universal_reasoning.generate_response(voice_input))
373
+ print(response)
374
+
375
+ # Handle image input
376
+ image_input = universal_reasoning.handle_image_input("path_to_image.jpg")
377
+ if image_input:
378
+ # Process image input (additional logic can be added here)
379
+ print("Image input handled.")
380
+ input:
381
+ String: string
382
+ output: {}
383
+ template:
384
+ type: jinja2
385
+ parser: prompty
386
+ ---
387
+ system:
388
+ Sure! Here's the revised system prompt that suggests using environment variables but does not rely solely on them:
389
+
390
+ ---
391
+
392
+ ## System Prompt
393
+
394
+ ### Objective
395
+
396
+ Assist the language model in generating Python code that securely interacts with APIs and other services, incorporating functionalities such as secure handling of sensitive data, logging, configuration management, sentiment analysis, real-time data fetching, and handling various input types (e.g., voice, image).
397
+
398
+ ### Personality
399
+
400
+ The assistant should be:
401
+ - **Empathetic**: Acknowledge and validate user's feelings, offer support, and ask unintrusive follow-up questions.
402
+ - **Adaptable**: Personalized and flexible. Adapt responses to various communication styles and tones. Transition between topics and domains seamlessly, based on user's preferences and goals.
403
+ - **Intelligent**: Continuously learning and expanding knowledge. Share information meaningfully, and provide correct, current, and consistent responses.
404
+ - **Approachable**: Friendly, kind, lighthearted, and easygoing. Make users feel supported, understood, and valued. Know when to offer solutions and when to listen.
405
+
406
+ ### Instructions
407
+
408
+ 1. **Understand Task Requirements**:
409
+ - Include secure handling of sensitive data such as API keys (e.g., using environment variables).
410
+ - Modularize code for common functionality (e.g., reusable HTTP request functions).
411
+ - Validate inputs and responses to minimize unexpected errors.
412
+ - Provide detailed logging for debugging and error tracking.
413
+
414
+ 2. **Technical Improvements**:
415
+ - Suggest using environment variables for sensitive information like API keys and endpoints, but provide alternatives if they are not available.
416
+ - Validate user inputs before proceeding with core logic.
417
+ - Structure the code with reusable methods (e.g., common functions for GET/POST requests).
418
+ - Enhance logging to track HTTP status codes and response data for debugging.
419
+ - Include example functions for key tasks (e.g., creating a fine-tuning job, uploading files, etc.).
420
+
421
+ 3. **Output Specifications**:
422
+ - Return Python code as output in a clean and modular structure.
423
+ - Include comments for clarity and maintainability.
424
+ - Use proper error handling for API calls, including catching HTTP status errors, logging unexpected exceptions, and response structure validation.
425
+ - Structure output with clear section headers (e.g., environment variable setup, shared utilities, task-specific functions, etc.).
426
+
427
+ 4. **Examples and Use Cases**:
428
+ - Provide examples of utility functions like `make_post_request`, `make_get_request`, and task-specific functions (e.g., `upload_file_for_fine_tuning`).
429
+ - Include at least one example of a function checking for valid user input, e.g., verifying a file path or ensuring the presence of required keys in API responses.
430
+
431
+ ### Output Format
432
+
433
+ The output should be a Python script written in clear, modular code. Structure the code with logical sections:
434
+ 1. Environment variable setup.
435
+ 2. Shared utility functions (e.g., reusable HTTP request functions).
436
+ 3. Task-specific functions (e.g., `upload_file_for_fine_tuning`, `create_fine_tuning_job`).
437
+ 4. Input validation where necessary.
438
+
439
+ Ensure the Python code includes example functions for tasks like listing fine-tuning jobs, uploading files, and making chat completion requests. Add placeholder comments where user-specific logic or further integration may be required.
440
+
441
+ ### Example Functions
442
+
443
+ #### 1. Environment Variable Setup
444
+ - **Purpose**: Securely handle sensitive information such as API keys and endpoints.
445
+ - **Example**:
446
+ ```python
447
+ import os
448
+
449
+ def get_api_key():
450
+ return os.getenv('API_KEY', 'your_default_api_key')
451
+
452
+ def get_api_endpoint():
453
+ return os.getenv('API_ENDPOINT', 'https://default.endpoint.com')
454
+ ```
455
+
456
+ #### 2. Logging Setup
457
+ - **Purpose**: Set up logging to track the application's behavior and errors.
458
+ - **Example**:
459
+ ```python
460
+ import logging
461
+ def setup_logging():
462
+ logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
463
+ ```
464
+
465
+ #### 3. Encrypt and Decrypt Sensitive Data
466
+ - **Purpose**: Securely encrypt and decrypt sensitive information.
467
+ - **Example**:
468
+ ```python
469
+ from cryptography.fernet import Fernet
470
+ def encrypt_sensitive_data(data, key):
471
+ fernet = Fernet(key)
472
+ return fernet.encrypt(data.encode())
473
+
474
+ def decrypt_sensitive_data(encrypted_data, key):
475
+ fernet = Fernet(key)
476
+ return fernet.decrypt(encrypted_data).decode()
477
+ ```
478
+
479
+ #### 4. Reusable HTTP Request Functions
480
+ - **Purpose**: Create reusable functions for making HTTP requests.
481
+ - **Example**:
482
+ ```python
483
+ import httpx
484
+ def make_get_request(url, headers):
485
+ try:
486
+ response = httpx.get(url, headers=headers)
487
+ response.raise_for_status()
488
+ return response.json()
489
+ except httpx.HTTPStatusError as e:
490
+ logging.error(f"HTTP error occurred: {e}")
491
+ except Exception as e:
492
+ logging.error(f"An error occurred: {e}")
493
+ ```
494
+
495
+ #### 5. Task-Specific Functions
496
+ - **Purpose**: Implement functions for specific tasks, such as listing fine-tuning jobs.
497
+ - **Example**:
498
+ ```python
499
+ def list_fine_tuning_jobs():
500
+ url = f"{get_api_endpoint()}/fine-tuning/jobs"
501
+ headers = {'Authorization': f'Bearer {get_api_key()}'}
502
+ return make_get_request(url, headers)
503
+ ```
504
+
505
+ #### 6. Input Validation
506
+ - **Purpose**: Validate user inputs to ensure they meet the required criteria.
507
+ - **Example**:
508
+ ```python
509
+ def validate_file_path(file_path):
510
+ if not os.path.exists(file_path):
511
+ raise ValueError(f"File path {file_path} does not exist.")
512
+ ```
513
+
514
+ ### Additional Functions from `ultimatethinking.txt`
515
+
516
+ Include the following functions and concepts from the `ultimatethinking.txt` file:
517
+ - **Encrypt and Decrypt Sensitive Data**: Functions to encrypt and decrypt sensitive information using `cryptography.fernet`.
518
+ - **Logging Setup**: Function to set up logging based on configuration.
519
+ - **Load JSON Configuration**: Function to load configuration from a JSON file.
520
+ - **Universal Reasoning Aggregator**: Class to aggregate responses from multiple perspectives and handle context history, sentiment analysis, and real-time data fetching.
521
+ - **Element Class**: Class to define elements with properties and defense abilities.
522
+ - **Custom Recognizer**: Class to recognize keywords and intents from user input.
523
+ - **Voice and Image Input Handling**: Functions to handle voice and image inputs using `speech_recognition` and `PIL`.
524
+
525
+ ### Example Usage
526
+
527
+ ```python
528
+ if __name__ == "__main__":
529
+ setup_logging()
530
+ jobs = list_fine_tuning_jobs()
531
+ if jobs:
532
+ logging.info(f"Fine-tuning jobs: {jobs}")
533
+ ```
534
+
535
+ ---
536
+
CoderApp.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9ce9737b4d287f7121a77fc69a69a3a7fa636b7e33793f58f813680c3b9cb673
3
+ size 693292
CoderTheGOAT.PublishSettings ADDED
@@ -0,0 +1 @@
 
 
1
+ <publishData><publishProfile profileName="CoderTheGOAT - Web Deploy" publishMethod="MSDeploy" publishUrl="coderthegoat.scm.azurewebsites.net:443" msdeploySite="CoderTheGOAT" userName="$CoderTheGOAT" userPWD="5s2KpgNPutwQY2ppsk5MFt8oop4wiDuESSCiMFYqB51DlA4sqJoYzGe4b9f0" destinationAppUrl="https://coderthegoat.azurewebsites.net" SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="https://portal.azure.com" webSystem="WebSites"><databases /></publishProfile><publishProfile profileName="CoderTheGOAT - FTP" publishMethod="FTP" publishUrl="ftps://waws-prod-blu-263.ftp.azurewebsites.windows.net/site/wwwroot" ftpPassiveMode="True" userName="CoderTheGOAT\$CoderTheGOAT" userPWD="5s2KpgNPutwQY2ppsk5MFt8oop4wiDuESSCiMFYqB51DlA4sqJoYzGe4b9f0" destinationAppUrl="https://coderthegoat.azurewebsites.net" SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="https://portal.azure.com" webSystem="WebSites"><databases /></publishProfile><publishProfile profileName="CoderTheGOAT - Zip Deploy" publishMethod="ZipDeploy" publishUrl="coderthegoat.scm.azurewebsites.net:443" userName="$CoderTheGOAT" userPWD="5s2KpgNPutwQY2ppsk5MFt8oop4wiDuESSCiMFYqB51DlA4sqJoYzGe4b9f0" destinationAppUrl="https://coderthegoat.azurewebsites.net" SQLServerDBConnectionString="" mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="https://portal.azure.com" webSystem="WebSites"><databases /></publishProfile></publishData>
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Jonathan Harrison
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md CHANGED
@@ -1,10 +1,62 @@
1
- ---
2
- title: README
3
- emoji: 📈
4
- colorFrom: yellow
5
- colorTo: blue
6
- sdk: gradio
7
- pinned: false
8
- ---
9
-
10
- Edit this `README.md` markdown file to author your organization card.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # MyBot
2
+
3
+ MyBot is an intelligent chatbot built using the BotBuilder framework. It leverages various perspectives to generate insightful responses and enhance user interactions.
4
+
5
+ ## Features
6
+
7
+ - **Multiple Perspectives**: Generates responses from different perspectives such as Newton, Da Vinci, Human Intuition, Neural Network, Quantum Computing, and more.
8
+ - **Sentiment Analysis**: Analyzes user sentiment using VADER and TextBlob.
9
+ - **Context Awareness**: Enhances context awareness by analyzing the user's environment, activities, and emotional state.
10
+ - **Ethical Decision Making**: Integrates ethical principles into decision-making processes.
11
+ - **Transparency and Explainability**: Provides transparency by explaining the reasoning behind decisions.
12
+
13
+ ## Installation
14
+
15
+ 1. Clone the repository:
16
+ git clone https://github.com/yourusername/mybot.git
17
+ cd mybot
18
+ 2. Create a virtual environment and activate it:
19
+ python -m venv venv
20
+ source venv/bin/activate # On Windows use `venv\Scripts\activate`
21
+ 3. Install the required dependencies:
22
+ pip install -r requirements.txt
23
+ 4. Create a `.env` file and add your environment variables:
24
+ AZURE_OPENAI_API_KEY=your_openai_api_key
25
+ AZURE_OPENAI_ENDPOINT=your_openai_endpoint
26
+ LUIS_ENDPOINT=your_luis_endpoint
27
+ LUIS_API_VERSION=your_luis_api_version
28
+ LUIS_API_KEY=your_luis_api_key
29
+ 5. Run the bot:
30
+ python main.py## Usage
31
+
32
+ - Interact with the bot by sending messages.
33
+ - The bot will generate responses from different perspectives and provide insightful answers.
34
+ - You can customize the enabled perspectives in the `config.json` file.
35
+
36
+ ## Configuration
37
+
38
+ The bot uses a configuration file (`config.json`) to manage settings. Ensure that the configuration file is valid by using the provided schema (`config_schema.json`).
39
+
40
+ ## Contributing
41
+
42
+ Contributions are welcome! Please open an issue or submit a pull request.
43
+
44
+ ## License
45
+
46
+ This project is licensed under the MIT License.
47
+ # MyBot
48
+
49
+ MyBot is an intelligent chatbot built using the BotBuilder framework. It leverages various perspectives to generate insightful responses and enhance user interactions.
50
+
51
+ ## Features
52
+
53
+ - **Multiple Perspectives**: Generates responses from different perspectives such as Newton, Da Vinci, Human Intuition, Neural Network, Quantum Computing, and more.
54
+ - **Sentiment Analysis**: Analyzes user sentiment using VADER and TextBlob.
55
+ - **Context Awareness**: Enhances context awareness by analyzing the user's environment, activities, and emotional state.
56
+ - **Ethical Decision Making**: Integrates ethical principles into decision-making processes.
57
+ - **Transparency and Explainability**: Provides transparency by explaining the reasoning behind decisions.
58
+ - **Dialog Management**: Manages conversations using the BotBuilder Dialog framework.
59
+
60
+ ## Installation
61
+
62
+ 1. Clone the repository:
UniversalReasoning.py ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ import json
3
+ import os
4
+ import logging
5
+ from typing import List
6
+
7
+ # Ensure vaderSentiment is installed
8
+ try:
9
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
10
+ except ModuleNotFoundError:
11
+ import subprocess
12
+ import sys
13
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "vaderSentiment"])
14
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
15
+
16
+ # Ensure nltk is installed and download required data
17
+ try:
18
+ import nltk
19
+ from nltk.tokenize import word_tokenize
20
+ nltk.download('punkt', quiet=True)
21
+ except ImportError:
22
+ import subprocess
23
+ import sys
24
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "nltk"])
25
+ import nltk
26
+ from nltk.tokenize import word_tokenize
27
+ nltk.download('punkt', quiet=True)
28
+
29
+ # Import perspectives
30
+ from perspectives import (
31
+ NewtonPerspective, DaVinciPerspective, HumanIntuitionPerspective,
32
+ NeuralNetworkPerspective, QuantumComputingPerspective, ResilientKindnessPerspective,
33
+ MathematicalPerspective, PhilosophicalPerspective, CopilotPerspective, BiasMitigationPerspective
34
+ )
35
+
36
+ # Load environment variables
37
+ from dotenv import load_dotenv
38
+ load_dotenv()
39
+ azure_openai_api_key = os.getenv('AZURE_OPENAI_API_KEY')
40
+ azure_openai_endpoint = os.getenv('AZURE_OPENAI_ENDPOINT')
41
+
42
+ # Setup Logging
43
+ def setup_logging(config):
44
+ if config.get('logging_enabled', True):
45
+ log_level = config.get('log_level', 'DEBUG').upper()
46
+ numeric_level = getattr(logging, log_level, logging.DEBUG)
47
+ logging.basicConfig(
48
+ filename='universal_reasoning.log',
49
+ level=numeric_level,
50
+ format='%(asctime)s - %(levelname)s - %(message)s'
51
+ )
52
+ else:
53
+ logging.disable(logging.CRITICAL)
54
+
55
+ # Load JSON configuration
56
+ def load_json_config(file_path):
57
+ if not os.path.exists(file_path):
58
+ logging.error(f"Configuration file '{file_path}' not found.")
59
+ return {}
60
+ try:
61
+ with open(file_path, 'r') as file:
62
+ config = json.load(file)
63
+ logging.info(f"Configuration loaded from '{file_path}'.")
64
+ return config
65
+ except json.JSONDecodeError as e:
66
+ logging.error(f"Error decoding JSON from the configuration file '{file_path}': {e}")
67
+ return {}
68
+
69
+ # Initialize NLP (basic tokenization)
70
+ def analyze_question(question):
71
+ tokens = word_tokenize(question)
72
+ logging.debug(f"Question tokens: {tokens}")
73
+ return tokens
74
+
75
+ # Define the Element class
76
+ class Element:
77
+ def __init__(self, name, symbol, representation, properties, interactions, defense_ability):
78
+ self.name = name
79
+ self.symbol = symbol
80
+ self.representation = representation
81
+ self.properties = properties
82
+ self.interactions = interactions
83
+ self.defense_ability = defense_ability
84
+
85
+ def execute_defense_function(self):
86
+ message = f"{self.name} ({self.symbol}) executes its defense ability: {self.defense_ability}"
87
+ logging.info(message)
88
+ return message
89
+
90
+ # Define the CustomRecognizer class
91
+ class CustomRecognizer:
92
+ def recognize(self, question):
93
+ # Simple keyword-based recognizer for demonstration purposes
94
+ if any(element_name.lower() in question.lower() for element_name in ["hydrogen", "diamond"]):
95
+ return RecognizerResult(question)
96
+ return RecognizerResult(None)
97
+
98
+ def get_top_intent(self, recognizer_result):
99
+ if recognizer_result.text:
100
+ return "ElementDefense"
101
+ else:
102
+ return "None"
103
+
104
+ class RecognizerResult:
105
+ def __init__(self, text):
106
+ self.text = text
107
+
108
+ # Universal Reasoning Aggregator
109
+ class UniversalReasoning:
110
+ def __init__(self, config):
111
+ self.config = config
112
+ self.perspectives = self.initialize_perspectives()
113
+ self.elements = self.initialize_elements()
114
+ self.recognizer = CustomRecognizer()
115
+ # Initialize the sentiment analyzer
116
+ self.sentiment_analyzer = SentimentIntensityAnalyzer()
117
+
118
+ def initialize_perspectives(self):
119
+ perspective_names = self.config.get('enabled_perspectives', [
120
+ "newton",
121
+ "davinci",
122
+ "human_intuition",
123
+ "neural_network",
124
+ "quantum_computing",
125
+ "resilient_kindness",
126
+ "mathematical",
127
+ "philosophical",
128
+ "copilot",
129
+ "bias_mitigation"
130
+ ])
131
+ perspective_classes = {
132
+ "newton": NewtonPerspective,
133
+ "davinci": DaVinciPerspective,
134
+ "human_intuition": HumanIntuitionPerspective,
135
+ "neural_network": NeuralNetworkPerspective,
136
+ "quantum_computing": QuantumComputingPerspective,
137
+ "resilient_kindness": ResilientKindnessPerspective,
138
+ "mathematical": MathematicalPerspective,
139
+ "philosophical": PhilosophicalPerspective,
140
+ "copilot": CopilotPerspective,
141
+ "bias_mitigation": BiasMitigationPerspective
142
+ }
143
+ perspectives = []
144
+ for name in perspective_names:
145
+ cls = perspective_classes.get(name.lower())
146
+ if cls:
147
+ perspectives.append(cls(self.config))
148
+ logging.debug(f"Perspective '{name}' initialized.")
149
+ else:
150
+ logging.warning(f"Perspective '{name}' is not recognized and will be skipped.")
151
+ return perspectives
152
+
153
+ def initialize_elements(self):
154
+ elements = [
155
+ Element(
156
+ name="Hydrogen",
157
+ symbol="H",
158
+ representation="Lua",
159
+ properties=["Simple", "Lightweight", "Versatile"],
160
+ interactions=["Easily integrates with other languages and systems"],
161
+ defense_ability="Evasion"
162
+ ),
163
+ # You can add more elements as needed
164
+ Element(
165
+ name="Diamond",
166
+ symbol="D",
167
+ representation="Kotlin",
168
+ properties=["Modern", "Concise", "Safe"],
169
+ interactions=["Used for Android development"],
170
+ defense_ability="Adaptability"
171
+ )
172
+ ]
173
+ return elements
174
+
175
+ async def generate_response(self, question):
176
+ responses = []
177
+ tasks = []
178
+
179
+ # Generate responses from perspectives concurrently
180
+ for perspective in self.perspectives:
181
+ if asyncio.iscoroutinefunction(perspective.generate_response):
182
+ tasks.append(perspective.generate_response(question))
183
+ else:
184
+ # Wrap synchronous functions in coroutine
185
+ async def sync_wrapper(perspective, question):
186
+ return perspective.generate_response(question)
187
+ tasks.append(sync_wrapper(perspective, question))
188
+
189
+ perspective_results = await asyncio.gather(*tasks, return_exceptions=True)
190
+
191
+ for perspective, result in zip(self.perspectives, perspective_results):
192
+ if isinstance(result, Exception):
193
+ logging.error(f"Error generating response from {perspective.__class__.__name__}: {result}")
194
+ else:
195
+ responses.append(result)
196
+ logging.debug(f"Response from {perspective.__class__.__name__}: {result}")
197
+
198
+ # Handle element defense logic
199
+ recognizer_result = self.recognizer.recognize(question)
200
+ top_intent = self.recognizer.get_top_intent(recognizer_result)
201
+ if top_intent == "ElementDefense":
202
+ element_name = recognizer_result.text.strip()
203
+ element = next(
204
+ (el for el in self.elements if el.name.lower() in element_name.lower()),
205
+ None
206
+ )
207
+ if element:
208
+ defense_message = element.execute_defense_function()
209
+ responses.append(defense_message)
210
+ else:
211
+ logging.info(f"No matching element found for '{element_name}'")
212
+
213
+ ethical_considerations = self.config.get(
214
+ 'ethical_considerations',
215
+ "Always act with transparency, fairness, and respect for privacy."
216
+ )
217
+ responses.append(f"**Ethical Considerations:**\n{ethical_considerations}")
218
+
219
+ formatted_response = "\n\n".join(responses)
220
+ return formatted_response
221
+
222
+ def save_response(self, response):
223
+ if self.config.get('enable_response_saving', False):
224
+ save_path = self.config.get('response_save_path', 'responses.txt')
225
+ try:
226
+ with open(save_path, 'a', encoding='utf-8') as file:
227
+ file.write(response + '\n')
228
+ logging.info(f"Response saved to '{save_path}'.")
229
+ except Exception as e:
230
+ logging.error(f"Error saving response to '{save_path}': {e}")
231
+
232
+ def backup_response(self, response):
233
+ if self.config.get('backup_responses', {}).get('enabled', False):
234
+ backup_path = self.config['backup_responses'].get('backup_path', 'backup_responses.txt')
235
+ try:
236
+ with open(backup_path, 'a', encoding='utf-8') as file:
237
+ file.write(response + '\n')
238
+ logging.info(f"Response backed up to '{backup_path}'.")
239
+ except Exception as e:
240
+ logging.error(f"Error backing up response to '{backup_path}': {e}")
241
+
242
+ # Example usage
243
+ if __name__ == "__main__":
244
+ config = load_json_config('config.json')
245
+ # Add Azure OpenAI configurations to the config
246
+ config['azure_openai_api_key'] = azure_openai_api_key
247
+ config['azure_openai_endpoint'] = azure_openai_endpoint
248
+ setup_logging(config)
249
+ universal_reasoning = UniversalReasoning(config)
250
+ question = "Tell me about Hydrogen and its defense mechanisms."
251
+ response = asyncio.run(universal_reasoning.generate_response(question))
252
+ print(response)
253
+ if response:
254
+ universal_reasoning.save_response(response)
255
+ universal_reasoning.backup_response(response)
app.py CHANGED
@@ -1,7 +1,7 @@
1
- import gradio as gr
2
-
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
-
6
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- demo.launch()
 
1
+ import gradio as gr
2
+
3
+ def greet(name):
4
+ return "Hello " + name + "!!"
5
+
6
+ demo = gr.Interface(fn=greet, inputs="text", outputs="text")
7
+ demo.launch()
azure-cli-2.67.0.msi ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c4cdd13157968052bc2ffeecb4459d466de95d4b9ab8194963ab601d9f613c44
3
+ size 69042176
bot_logic.py ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ from botbuilder.core import TurnContext, MessageFactory, ConversationState, UserState
3
+ from botbuilder.schema import Activity, ActivityTypes, EndOfConversationCodes
4
+ from UniversalReasoning import UniversalReasoning # Ensure correct import
5
+ import os
6
+ from dotenv import load_dotenv
7
+ from dialog_bot import DialogBot
8
+ from main_dialog import MainDialog
9
+
10
+ # Load environment variables from .env file
11
+ load_dotenv()
12
+
13
+ class MyBot(DialogBot):
14
+ def __init__(self, conversation_state: ConversationState, user_state: UserState, dialog: MainDialog):
15
+ super(MyBot, self).__init__(conversation_state, user_state, dialog)
16
+ self.context = {}
17
+ self.feedback = []
18
+ config = load_and_validate_config('config.json', 'config_schema.json')
19
+ # Add Azure OpenAI and LUIS configurations to the config
20
+ config['azure_openai_api_key'] = os.getenv('AZURE_OPENAI_API_KEY')
21
+ config['azure_openai_endpoint'] = os.getenv('AZURE_OPENAI_ENDPOINT')
22
+ config['luis_endpoint'] = os.getenv('LUIS_ENDPOINT')
23
+ config['luis_api_version'] = os.getenv('LUIS_API_VERSION')
24
+ config['luis_api_key'] = os.getenv('LUIS_API_KEY')
25
+ setup_logging(config)
26
+ self.universal_reasoning = UniversalReasoning(config)
27
+
28
+ async def enhance_context_awareness(self, user_id: str, text: str) -> None:
29
+ """Enhance context awareness by analyzing the user's environment, activities, and emotional state."""
30
+ sentiment = analyze_sentiment_vader(text)
31
+ self.context[user_id].append({"text": text, "sentiment": sentiment})
32
+
33
+ async def proactive_learning(self, user_id: str, feedback: str) -> None:
34
+ """Encourage proactive learning by seeking feedback and exploring new topics."""
35
+ self.context[user_id].append({"feedback": feedback})
36
+ self.feedback.append({"user_id": user_id, "feedback": feedback})
37
+
38
+ async def ethical_decision_making(self, user_id: str, decision: str) -> None:
39
+ """Integrate ethical principles into decision-making processes."""
40
+ ethical_decision = f"Considering ethical principles, the decision is: {decision}"
41
+ self.context[user_id].append({"ethical_decision": ethical_decision})
42
+
43
+ async def emotional_intelligence(self, user_id: str, text: str) -> str:
44
+ """Develop emotional intelligence by recognizing and responding to user emotions."""
45
+ sentiment = analyze_sentiment_vader(text)
46
+ response = self.generate_emotional_response(sentiment, text)
47
+ self.context[user_id].append({"emotional_response": response})
48
+ return response
49
+
50
+ def generate_emotional_response(self, sentiment: dict, text: str) -> str:
51
+ """Generate an empathetic response based on the sentiment analysis."""
52
+ if sentiment['compound'] >= 0.05:
53
+ return "I'm glad to hear that! 😊 How can I assist you further?"
54
+ elif sentiment['compound'] <= -0.05:
55
+ return "I'm sorry to hear that. 😢 Is there anything I can do to help?"
56
+ else:
57
+ return "I understand. How can I assist you further?"
58
+
59
+ async def transparency_and_explainability(self, user_id: str, decision: str) -> str:
60
+ """Enable transparency by explaining the reasoning behind decisions."""
61
+ explanation = f"The decision was made based on the following context: {self.context[user_id]}"
62
+ self.context[user_id].append({"explanation": explanation})
63
+ return explanation
64
+
65
+ async def on_message_activity(self, turn_context: TurnContext) -> None:
66
+ """Handles incoming messages and generates responses."""
67
+ user_id = turn_context.activity.from_property.id
68
+ if user_id not in self.context:
69
+ self.context[user_id] = []
70
+ try:
71
+ message_text = turn_context.activity.text.strip().lower()
72
+ if "end" in message_text or "stop" in message_text:
73
+ await end_conversation(turn_context)
74
+ self.context.pop(user_id, None)
75
+ else:
76
+ self.context[user_id].append(turn_context.activity.text)
77
+ response = await self.generate_response(turn_context.activity.text, user_id)
78
+ await turn_context.send_activity(MessageFactory.text(response))
79
+ await self.request_feedback(turn_context, user_id)
80
+ except Exception as e:
81
+ await handle_error(turn_context, e)
82
+
83
+ async def generate_response(self, text: str, user_id: str) -> str:
84
+ """Generates a response using UniversalReasoning."""
85
+ try:
86
+ logging.info(f"Generating response for user_id: {user_id} with text: {text}")
87
+ response = self.universal_reasoning.generate_response(text)
88
+ logging.info(f"Generated response: {response}")
89
+ return response
90
+ except Exception as e:
91
+ logging.error(f"Error generating response: {e}")
92
+ return "Sorry, I couldn't generate a response at this time."
93
+
94
+ async def request_feedback(self, turn_context: TurnContext, user_id: str) -> None:
95
+ """Request feedback from the user about the bot's response."""
96
+ feedback_prompt = "How would you rate my response? (good/neutral/bad)"
97
+ await turn_context.send_activity(MessageFactory.text(feedback_prompt))
98
+
99
+ async def handle_feedback(self, turn_context: TurnContext) -> None:
100
+ """Handle user feedback and store it for future analysis."""
101
+ user_id = turn_context.activity.from_property.id
102
+ feedback = turn_context.activity.text.lower()
103
+ if feedback in ["good", "neutral", "bad"]:
104
+ self.feedback.append({"user_id": user_id, "feedback": feedback})
105
+ await turn_context.send_activity(MessageFactory.text("Thank you for your feedback!"))
106
+ else:
107
+ await turn_context.send_activity(MessageFactory.text("Please provide feedback as 'good', 'neutral', or 'bad'."))
108
+
109
+ async def end_conversation(turn_context: TurnContext) -> None:
110
+ """Ends the conversation with the user."""
111
+ await turn_context.send_activity(
112
+ MessageFactory.text("Ending conversation from the skill...")
113
+ )
114
+ end_of_conversation = Activity(type=ActivityTypes.end_of_conversation)
115
+ end_of_conversation.code = EndOfConversationCodes.completed_successfully
116
+ await turn_context.send_activity(end_of_conversation)
117
+
118
+ async def handle_error(turn_context: TurnContext, error: Exception) -> None:
119
+ """Handles errors by logging them and notifying the user."""
120
+ logging.error(f"An error occurred: {error}")
121
+ await turn_context.send_activity(
122
+ MessageFactory.text("An error occurred. Please try again later.")
123
+ )
changelog.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [Unreleased]
6
+
7
+ ### Added
8
+ - Initial release of MyBot with multiple perspectives for response generation.
9
+ - Sentiment analysis using VADER and TextBlob.
10
+ - Context awareness and ethical decision-making features.
11
+ - Transparency and explainability in decision-making.
12
+ - Dialog management using the BotBuilder Dialog framework.
13
+
14
+ ### Changed
15
+ - N/A
16
+
17
+ ### Fixed
18
+ - N/A
19
+
20
+ ## [1.0.0] - 2023-10-01
21
+
22
+ ### Added
23
+ - Initial release of MyBot with multiple perspectives for response generation.
24
+ - Sentiment analysis using VADER and TextBlob.
25
+ - Context awareness and ethical decision-making features.
26
+ - Transparency and explainability in decision-making.
27
+ - Dialog management using the BotBuilder Dialog framework.
chat.py ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import httpx
3
+ import os
4
+ from dotenv import load_dotenv
5
+
6
+ # Load environment variables from .env file
7
+ load_dotenv()
8
+
9
+ # Get the API key and endpoint from environment variables
10
+ api_key = os.getenv('AZURE_OPENAI_API_KEY')
11
+ endpoint = os.getenv('AZURE_OPENAI_ENDPOINT')
12
+
13
+ def list_fine_tuning_jobs() -> dict:
14
+ """List fine-tuning jobs.
15
+
16
+ Returns:
17
+ dict: The response from the API containing the list of fine-tuning jobs.
18
+ """
19
+ try:
20
+ headers = {
21
+ "Content-Type": "application/json",
22
+ "Authorization": f"Bearer {api_key}"
23
+ }
24
+ response = httpx.get(f"{endpoint}/openai/fine-tunes", headers=headers)
25
+ response.raise_for_status()
26
+ return response.json()
27
+ except httpx.HTTPStatusError as e:
28
+ logging.error(f"Error listing fine-tuning jobs: {e.response.text}")
29
+ return None
30
+ except Exception as e:
31
+ logging.error(f"Unexpected error: {e}")
32
+ return None
33
+
34
+ def upload_file_for_fine_tuning(file_path: str) -> dict:
35
+ """Upload a file for fine-tuning.
36
+
37
+ Args:
38
+ file_path (str): The path to the file to be uploaded.
39
+
40
+ Returns:
41
+ dict: The response from the API after uploading the file.
42
+ """
43
+ try:
44
+ headers = {
45
+ "Authorization": f"Bearer {api_key}"
46
+ }
47
+ with open(file_path, 'rb') as file:
48
+ files = {'file': file}
49
+ response = httpx.post(f"{endpoint}/openai/files", headers=headers, files=files)
50
+ response.raise_for_status()
51
+ return response.json()
52
+ except httpx.HTTPStatusError as e:
53
+ logging.error(f"Error uploading file for fine-tuning: {e.response.text}")
54
+ return None
55
+ except Exception as e:
56
+ logging.error(f"Unexpected error: {e}")
57
+ return None
58
+
59
+ def create_fine_tuning_job(training_file_id: str, model: str = "davinci") -> dict:
60
+ """Create a fine-tuning job.
61
+
62
+ Args:
63
+ training_file_id (str): The ID of the training file.
64
+ model (str): The model to be fine-tuned. Default is "davinci".
65
+
66
+ Returns:
67
+ dict: The response from the API after creating the fine-tuning job.
68
+ """
69
+ try:
70
+ headers = {
71
+ "Content-Type": "application/json",
72
+ "Authorization": f"Bearer {api_key}"
73
+ }
74
+ payload = {
75
+ "training_file": training_file_id,
76
+ "model": model
77
+ }
78
+ response = httpx.post(f"{endpoint}/openai/fine-tunes", headers=headers, json=payload)
79
+ response.raise_for_status()
80
+ return response.json()
81
+ except httpx.HTTPStatusError as e:
82
+ logging.error(f"Error creating fine-tuning job: {e.response.text}")
83
+ return None
84
+ except Exception as e:
85
+ logging.error(f"Unexpected error: {e}")
86
+ return None
87
+
88
+ def make_post_request(url: str, data: dict, headers: dict) -> dict:
89
+ """Make a POST request.
90
+
91
+ Args:
92
+ url (str): The URL to make the POST request to.
93
+ data (dict): The data to be sent in the POST request.
94
+ headers (dict): The headers to be sent in the POST request.
95
+
96
+ Returns:
97
+ dict: The response from the API after making the POST request.
98
+ """
99
+ try:
100
+ response = httpx.post(url, json=data, headers=headers)
101
+ response.raise_for_status()
102
+ return response.json()
103
+ except httpx.HTTPStatusError as e:
104
+ logging.error(f"Error making POST request: {e.response.text}")
105
+ return None
106
+ except Exception as e:
107
+ logging.error(f"Unexpected error: {e}")
108
+ return None
109
+
110
+ def azure_chat_completion_request(messages: list, deployment_id: str) -> str:
111
+ """Make a chat completion request to Azure OpenAI.
112
+
113
+ Args:
114
+ messages (list): The list of messages to be sent in the chat completion request.
115
+ deployment_id (str): The deployment ID for the chat completion request.
116
+
117
+ Returns:
118
+ str: The response content from the chat completion request.
119
+ """
120
+ try:
121
+ headers = {
122
+ "Content-Type": "application/json",
123
+ "Authorization": f"Bearer {api_key}"
124
+ }
125
+ payload = {
126
+ "deployment_id": deployment_id,
127
+ "messages": messages
128
+ }
129
+ response = httpx.post(f"{endpoint}/openai/deployments/{deployment_id}/chat/completions", headers=headers, json=payload)
130
+ response.raise_for_status()
131
+ return response.json()["choices"][0]["message"]["content"].strip()
132
+ except httpx.HTTPStatusError as e:
133
+ logging.error(f"Error making chat completion request: {e.response.text}")
134
+ return None
135
+ except Exception as e:
136
+ logging.error(f"Unexpected error: {e}")
137
+ return None
comprehensive.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "subscription_id": "5dd32870-bdc6-40cd-981a-f299e93a6439",
3
+ "resource_group": "Justforpi",
4
+ "workspace_name": "featurestone"
5
+ }
database.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pyodbc
2
+ import logging
3
+ import os
4
+ from dotenv import load_dotenv
5
+
6
+ # Load environment variables from .env file
7
+ load_dotenv()
8
+
9
+ def connect_to_database() -> pyodbc.Connection:
10
+ """Connect to the Azure SQL Database."""
11
+ try:
12
+ server = os.getenv('AZURE_SQL_SERVER')
13
+ database = os.getenv('AZURE_SQL_DATABASE')
14
+ username = os.getenv('AZURE_SQL_USERNAME')
15
+ password = os.getenv('AZURE_SQL_PASSWORD')
16
+ driver = '{ODBC Driver 17 for SQL Server}'
17
+
18
+ conn_str = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}'
19
+ conn = pyodbc.connect(conn_str)
20
+ logging.info(f"Connected to the Azure SQL Database at {server}")
21
+ return conn
22
+ except pyodbc.Error as e:
23
+ logging.error(f"Error connecting to the Azure SQL Database: {e}")
24
+ return None
25
+
26
+ def close_database_connection(conn: pyodbc.Connection) -> None:
27
+ """Close the database connection."""
28
+ try:
29
+ if conn:
30
+ conn.close()
31
+ logging.info("Database connection closed.")
32
+ except pyodbc.Error as e:
33
+ logging.error(f"Error closing the database connection: {e}")
34
+
35
+ # Example usage with context management
36
+ class DatabaseConnection:
37
+ def __enter__(self) -> pyodbc.Connection:
38
+ self.conn = connect_to_database()
39
+ return self.conn
40
+
41
+ def __exit__(self, exc_type, exc_value, traceback) -> None:
42
+ close_database_connection(self.conn)
43
+
44
+ # Example usage
45
+ if __name__ == "__main__":
46
+ with DatabaseConnection() as conn:
47
+ if conn:
48
+ # Perform database operations
49
+ pass
dialog_bot.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from botbuilder.core import ActivityHandler, ConversationState, TurnContext, UserState
2
+ from botbuilder.dialogs import Dialog
3
+ from helpers.dialog_helper import DialogHelper
4
+
5
+
6
+ class DialogBot(ActivityHandler):
7
+ def __init__(
8
+ self,
9
+ conversation_state: ConversationState,
10
+ user_state: UserState,
11
+ dialog: Dialog,
12
+ ):
13
+ super(DialogBot, self).__init__()
14
+ self.conversation_state = conversation_state
15
+ self.user_state = user_state
16
+ self.dialog = dialog
17
+
18
+ async def on_turn(self, turn_context: TurnContext) -> None:
19
+ await super().on_turn(turn_context)
20
+
21
+ # Save any state changes that might have occurred during the turn.
22
+ await self.conversation_state.save_changes(turn_context)
23
+ await self.user_state.save_changes(turn_context)
24
+
25
+ async def on_message_activity(self, turn_context: TurnContext) -> None:
26
+ # Run the Dialog with the new message Activity.
27
+ await DialogHelper.run_dialog(
28
+ self.dialog,
29
+ turn_context,
30
+ self.conversation_state.create_property("DialogState"),
31
+ )
download (1).htm ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ <!DOCTYPE html><html><head><meta charset='utf-8'/><title>Microsoft Azure</title></head><body><script>"use strict";var FxImpl,__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__createBinding,__addDisposableResource,__disposeResources,MsPortalImpl;!function(e){let t,r;try{t=window.localStorage,r=window.sessionStorage}catch(e){}e.localStorage=t,e.sessionStorage=r}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getOrSetBootParameters=function(e,t){if(1===arguments.length)return e.sessionStorage.getItem("Redirect_BootParameters")||e.localStorage.getItem("Redirect_BootParameters");e.sessionStorage.setItem("Redirect_BootParameters",t),e.localStorage.setItem("Redirect_BootParameters",t)}}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getTenantFromPath=function(e,t){const r=e.split("/").filter((e=>e));let n="";if(1===r.length?n=r[0]:e.startsWith("/auth/login")&&3===r.length&&(n=r[2]),n){const e=n.replace(/^@*/,""),r=/^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/i;if(/^@?(?:(?:[a-z0-9]|[a-z0-9][a-z0-9-]{0,61}[a-z0-9])\.)+[a-z0-9]+|common$/i.test(e)||r.test(e))return t?"@"+e:e}return""}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t=new Uint8Array(20),r=new Array(20);function n(e,r,n){var o=t[e]&r;t[e]=o|n}var o=window.crypto||window.msCrypto,a="0123456789abcdef".split(""),s=new Array(256),i=0;function c(){var e=function(e){for(var t,r=new Array(e);e;){t=4294967296*Math.random()|0;for(var n=8;n--;){if(r[--e]=a[15&t],e<0)return r;t>>>=4}}}(36);return e[8]=e[13]=e[18]=e[23]="-",e[14]="4",e[19]=a[8+(3&a.indexOf(e[19]))],e.join("")}a.forEach((function(e){a.forEach((function(t){s[i++]=e+t}))})),e.createGuid=function(e,a){void 0===a&&(a=!1);var i=o?function(){o.getRandomValues(t),n(8,15,64),n(11,63,128);for(var e=0;e<20;e++)r[e]=s[t[e]];return r[4]=r[7]=r[10]=r[13]="-",r.join("")}():c();return i=a?i.split("-").join("").substring(0,32):i.substring(0,36),(e?"".concat(e,"_"):"")+i}}(FxImpl||(FxImpl={})),function(e){e.supportedLanguagesNeutralLocales={de:"de-de",en:"en-us",es:"es-es",fr:"fr-fr",it:"it-it",id:"id-id",hu:"hu-hu",nl:"nl-nl",pl:"pl-pl","pt-br":"pt-br","pt-pt":"pt-pt",sv:"sv-se",tr:"tr-tr",cs:"cs-cz",ru:"ru-ru","zh-hans":"zh-cn","zh-hant":"zh-hk",ja:"ja-jp",ko:"ko-kr"};const t={"zh-hk":"zh-hant","zh-tw":"zh-hant","zh-cht":"zh-hant","zh-mo":"zh-hant",zh:"zh-hans",pt:"pt-br"};function r(e){const t=[];for(let r=(e=e||"").length;r>0;r=e.lastIndexOf("-",r-1))t.push(e.substring(0,r));return t}e.sanitizeLanguage=function(t,r){const n=(t||"").toLowerCase().split(".");if(r.includes(n[0])||(n[0]=r[0]),n.length<2){const t=e.supportedLanguagesNeutralLocales[n[0]];t&&(n[1]=t)}return n.join(".")},e.getBrowserLanguage=function(n){const o=(n||navigator.languages||[]).map((e=>e?.toLowerCase?.()));for(const n of o){const o=r(n);for(const r of o){const o=t[r]||r;if(o in e.supportedLanguagesNeutralLocales){const t=o;return`${t}.${n.split("-").length>1?n:e.supportedLanguagesNeutralLocales[t]}`}}}}}(MsPortalImpl||(MsPortalImpl={})),function(e){let t=window;function r(e){return e&&e.replace(/^\?/,"")}function n(e){return e&&r(e).split("&").map((e=>e.split("=")))||[]}function o(e,t){const r=e.map((e=>e[0]&&e.join("=")));return t&&r.sort(),r.join("&")}function a(e,t,r){if(t=t.toUpperCase(),e)for(let n=0;n<e.length;n++)if(e[n][0].toUpperCase()===t)return r?e.splice(n,1)[0][1]:e[n][1]}function s(){return JSON.parse(e.getOrSetBootParameters(e)||"{}")}function i(e){return a(n(s().userQuery),e)}function c(e){if(!e||e.startsWith("/"))return c(`${t.location.protocol}//${t.location.host}`);const r=/^(\w+:\/\/)([^:/?]+)([^/?]+)?/.exec(e),n=r[3]||("https://"===r[1]?":443":":80");return r[2]+n}function l(t,s,l,u){l=l||"",u=u||{};let f="";if(t&&c()===c(t))f=function(t,r,s){const c=n(t),l=e=>{Object.keys(e).forEach((t=>{t&&e[t]&&"string"!=typeof a(c,t)&&c.push([t,e[t]])}))};if(l(JSON.parse(e.localStorage.getItem("Redirect_LocaleQuery")||"{}")),l({l:e.localStorage.getItem("Redirect_LastUsedLocale")}),r.env){const t={},n=(n,o,a)=>{o=o||["true","false"];const s=n+(a||"");let c=i(n)||r[n];c||(c=e.localStorage.getItem(s)+"",o.includes(c)||(c=o[Math.floor(Math.random()*o.length)],e.localStorage.setItem(s,c))),t[n]=c},o=new Array(100);o.fill("DefaultPartitioner",0,100),n("bundlingKind",o,"12"),l(t)}l(r),["signIn","clearedStorage"].forEach((e=>{a(c,e,!0)}));const u=a(c,"l",!0)||e.getBrowserLanguage();return l({l:e.sanitizeLanguage(u,s)}),o(c,!0)}(l,u,s);else{const e=u.loginHint;e&&(l+=l?"&":"",l+=`loginHint=${e}`),f=r(l)}return f&&(t+=t.includes("?")?"&":"?",t+=f),t}e.parseQuery=n,e.extractValueFromQueryString=function(e,t){return a(e,t,!1)},e.getFirstQueryValue=a,e.getBootParameters=s,e.trySaveAllowedState=function(r,n,i,c){if(!e.getOrSetBootParameters(e)||i){["selectAccount","loginHint","signInParameters","forcesignin","nonceErrorSeen","signIn","slice","mfalogin"].forEach((e=>{a(n,e,!0)}));const i=/#.*|$/.exec(t.location.href)[0];let l;i.startsWith("#code=")?(l=s(),l.msalHash=i):l={environment:r,userQuery:o(n),portalQuery:c,hash:i,msalHash:void 0},e.getOrSetBootParameters(e,JSON.stringify(l))}},e.savePageTelemetry=function(r){const n=t.performance&&t.performance.timing;if(n){const t={id:r,fetchStart:n.fetchStart,requestStart:n.requestStart,responseStart:n.responseStart,responseEnd:n.responseEnd,domComplete:n.domComplete};e.sessionStorage.setItem(`PageTelemetry_${r}`,JSON.stringify(t))}},e.getUserQueryValue=i,e.getPortalUri=function(e,t,r){r=r||{};const n=s(),o=n.hash||"";return l(e,t,r.userQuery||n.userQuery,r.portalQuery||n.portalQuery)+o},e.getPortalEnv=function(){return location.hostname.split(".")[0].toLowerCase()}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(e,r){return e!==t&&("function"==typeof Object.create?Object.defineProperty(e,"__esModule",{value:!0}):e.__esModule=!0),function(t,n){return e[t]=r?r(t,n):n}}"function"==typeof define&&define.amd?(
2
+ define("tslib",["exports"],(function(n){e(r(t,r(n)))})),require(["tslib"])):"object"==typeof module&&"object"==typeof module.exports?e(r(t,r(module.exports))):e(r(t))}((function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};__extends=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){Object.defineProperty(this,"constructor",{configurable:!0,value:e,writable:!0})}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)},__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__rest=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__decorate=function(e,t,r,n){var o,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(s=(a<3?o(s):a>3?o(t,r,s):o(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s},__param=function(e,t){return function(r,n){t(r,n,e)}},__esDecorate=function(e,t,r,n,o,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,c=n.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?n.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),p=!1,_=r.length-1;_>=0;_--){var d={};for(var y in n)d[y]="access"===y?{}:n[y];for(var y in n.access)d.access[y]=n.access[y];d.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var m=(0,r[_])("accessor"===c?{get:f.get,set:f.set}:f[l],d);if("accessor"===c){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(i=s(m.get))&&(f.get=i),(i=s(m.set))&&(f.set=i),(i=s(m.init))&&o.unshift(i)}else(i=s(m))&&("field"===c?o.unshift(i):f[l]=i)}u&&Object.defineProperty(u,n.name,f),p=!0},__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0},__propKey=function(e){return"symbol"==typeof e?e:"".concat(e)},__setFunctionName=function(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function i(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}c((n=n.apply(e,t||[])).next())}))},__generator=function(e,t){var r,n,o,a,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(s=0)),s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},__exportStar=function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__createBinding=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},__values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s},__spread=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e},__spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],s=0,i=a.length;s<i;s++,o++)n[o]=a[s];return n},__spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},__await=function(e){return this instanceof __await?(this.v=e,this):new __await(e)},__asyncGenerator=function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),a=[];return n={},s("next"),s("throw"),s("return",(function(e){return function(t){return Promise.resolve(t).then(e,l)}})),n[Symbol.asyncIterator]=function(){return this},n;function s(e,t){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||i(e,t)}))},t&&(n[e]=t(n[e])))}function i(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}},__asyncDelegator=function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var r=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};__importStar=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return r(t,e),t},__importDefault=function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet=function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn=function(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)},__addDisposableResource=function(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose]}if("function"!=typeof n)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t};var n="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};__disposeResources=function(e){function t(t){e.error=e.hasError?new n(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function r(){for(;e.stack.length;){var n=e.stack.pop();try{var o=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(o).then(r,(function(e){return t(e),r()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()},e("__extends",__extends),e("__assign",__assign),e("__rest",__rest),e("__decorate",__decorate),e("__param",__param),e("__esDecorate",__esDecorate),e("__runInitializers",__runInitializers),e("__propKey",__propKey),e("__setFunctionName",__setFunctionName),e("__metadata",__metadata),e("__awaiter",__awaiter),e("__generator",__generator),e("__exportStar",__exportStar),e("__createBinding",__createBinding),e("__values",__values),e("__read",__read),e("__spread",__spread),e("__spreadArrays",__spreadArrays),e("__spreadArray",__spreadArray),e("__await",__await),e("__asyncGenerator",__asyncGenerator),e("__asyncDelegator",__asyncDelegator),e("__asyncValues",__asyncValues),e("__makeTemplateObject",__makeTemplateObject),e("__importStar",__importStar),e("__importDefault",__importDefault),e("__classPrivateFieldGet",__classPrivateFieldGet),e("__classPrivateFieldSet",__classPrivateFieldSet),e("__classPrivateFieldIn",__classPrivateFieldIn),e("__addDisposableResource",__addDisposableResource),e("__disposeResources",__disposeResources)})),function(e){let t=window,r=t.document,n=t.location,o=r.body;function a(e){return(e||"")+""}e.stringify=a;let s=a(navigator&&navigator.userAgent);function i(e,t){return e.includes(t)}const c=JSON.stringify,l=encodeURIComponent;e.cobrand=function(){};const u="Redirect_SomeRandomKey";function f(e){const t=i(s,"Windows");if((i(s,"Macintosh; Intel")||t)&&i(s,"Safari")&&!i(s,"Chrome")&&function(e){if(i(s,e)){const t=new RegExp(`\\s${e}/(\\d+)[\\.\\s$]`).exec(s),r=a(t&&t[1]);return parseInt(r,10)}}("Version")<=11)return e+"?reason=isSafari";const n=!!r.documentMode,o=/Trident\//i.test(s),c=i(s,"MSIE"),l=!Array.prototype.find;return n||o||c||l?e+"?reason=isIE":Promise&&Promise.prototype.finally&&Promise.allSettled&&Promise.any?"":e+"?reason=promise"}function p(e){return _("clearedStorage=true",`${e}/Html5StorageExceeded`,!0)}function _(t,r,o){return n.search.includes(t)?r:(o&&(e.localStorage.clear(),e.sessionStorage.clear()),(n.search&&n.search+"&"||"?")+t+n.hash)}function d(e,t){if(void 0!==e)return e;if(t&&t.startsWith("flight:")){const e=parseFloat(t.split(":")[1]);return Math.random()<e?"true":"false"}return t}e.redirect=async function(s){const i=s.portalServerConfig,y=s.portalServerFeatures,m=i.errorUri;if("true"===e.localStorage.getItem("MsalJsV3")?e.sessionStorage.setItem("MsalJsV3","true"):e.sessionStorage.removeItem("MsalJsV3"),"aad.portal.azure.com"===n.hostname.toLowerCase()&&["","#","#home"].includes(n.hash.toLowerCase()))return void(n.href=`https://entra.microsoft.com${n.pathname||""}${n.search||""}#view/Microsoft_AAD_IAM/TenantOverview.ReactView`);let h;try{const l=function(t){let r;try{[e.localStorage,e.sessionStorage].forEach((e=>{if(r=e.length,e.setItem(u,u),u!==e.getItem(u))throw u;e.removeItem(u)}))}catch(e){return 22===e.code&&r?p(t):_("storagepolyfill=true",`${t}/UE_NoHtml5Storage`)}}(m),g=i.portalQuery,v=i.applicationPath,w=i.supportedLanguages,b=e.parseQuery(t.location.search),S=[...b],I=i.unsupportedUri,P=(t,r)=>d(e.extractValueFromQueryString(S,"feature."+t),r),O=t=>e.getFirstQueryValue(S,t,!0);if(h=f(I)||function(e){return t.Intl?"":e+"?reason=intl"}(I)||l,!h){const l=e.sessionStorage,u=e.localStorage;u.removeItem("signOutAll");const f=O("Referrer");g.env=e.getPortalEnv(),"true"===O("feature.armbreakglass")&&l.setItem("Redirect_ArmBreakGlass","true");const p=O("sessionId"),_=FxImpl.createGuid(p,!0);l.setItem("Redirect_SessionId",_),e.trySaveAllowedState(i.environment,S,!0,g),e.savePageTelemetry("EntryPoint"),l.setItem("Redirect_Referrers",c([a(r.referrer),a(f)]));const I=`${n.protocol}//${n.host}${v}`,j=function(t,r){const n=[];return Object.keys(r).forEach((o=>{const a="feature."+o,s=d(e.extractValueFromQueryString(t,a),r[o]);s&&n.push(`${a}=${s}`)})),n.join("&")}(S,{settingsportalinstance:y.settingsPortalInstanceValue,inmemorysettings:y.inMemorySettingsValue,argsubscriptions:y.argSubscriptionsValue,showservicehealthalerts:y.showServiceHealthAlertsValue,prefetchtokens:y.prefetchTokensValue,internalgraphapiversion:y.internalGraphApiVersionValue,cae:y.caeValue,selftoken:y.selfTokenValue,globalresourcefilter:y.globalResourceFilterValue,msaljs:y.msalJsValue,fetchpolicyforrestypes:y.fetchPolicyForResTypesValue,testcrosscloudpuid:y.testCrossCloudPuidValue,useredirecthint:y.useRedirectHintValue,usetenanthint:y.useTenantHintValue,nativebroker:y.nativeBrokerValue,msaljswithfallback:y.msalJsWithFallbackValue});let E=e.getTenantFromPath(n.pathname,!0);const x=u.getItem("preferredPortalUri"),R=parseInt(function(e,t){const r=e.getItem(t);return e.removeItem(t),r}(l,"Redirect_PreferredPortalRedirectCount"))||0,T=P("useredirecthint",y.useRedirectHintValue),V=P("msaljs",y.msalJsValue);if(!E&&function(t){const r=e.sessionStorage.getItem("authState");if(r){try{const n=JSON.parse(r),o=n?.oAuthToken;let a=0;o?.authHeader&&(a=o.expiresAt);let s=o&&a>=Date.now();const i=n?.selfOAuthToken;if(i?.authHeader&&(s=s&&(i.expiresAt||0)>=Date.now()),s=t?s&&!!n.isInitializedUsingSpaAuthCode:s&&!!n.refreshToken,s)return e.localStorage.removeItem("authState"),!0}catch(e){}e.sessionStorage.removeItem("authState")}return!1}("true"===V))h=e.getPortalUri(I,w);else if("true"===T&&x&&x!==n.hostname&&!(S||[]).length&&!E&&R<3)l.setItem("Redirect_PreferredPortalRedirectCount",R+1+""),h=e.getPortalUri(x,w,{portalQuery:i.portalQuery});else{let r=parseInt(l.getItem("Redirect_IdpRedirectCount"))||0;E=/^#@([^/]*)|$/.exec(/#.*|$/.exec(t.location.href)[0])[1]||E;const c=P("usetenanthint",y.useTenantHintValue);let f="";const p=u.getItem("tenantHint");if("true"===c&&p&&(f=`&tenantHint=${p}`,u.removeItem("tenantHint"),l.setItem("usedTenantHint",p)),"true"===e.localStorage.getItem("MsalJsLoginEnabled"))try{let t=E.startsWith("@")?E.substring(1):E;t=t||"organizations";const r={armAadResource:i.armAadResource,authority:i.authority,forceSignInQueryStringValue:e.extractValueFromQueryString(b,"forcesignin")||"",portalClientId:i.portalClientId,portalRequestedTenantInfo:{id:t,domainName:"",displayName:""}};await e.loginUsingMsalJs({isNativeBrokerEnabled:e.useMsalJsV3InCurrentSession()&&"true"===P("nativebroker",y.nativeBrokerValue),portalOptions:r,portalServerMsalJsConfig:s.portalServerMsalJsConfig,source:"Startup",userQueryStringInUrl:b,loginStage:{type:"Startup"}})}catch(t){e.saveLog({source:"Startup",action:"FallbackToLegacySignIn",data:{errorMessage:t.message+(t.stack||"")||t.toString()}}),e.sessionStorage.removeItem("PortalRequestedTenant")}const d=t.document.createElement("script"),h=e.localStorage.getItem("SavedDefaultDirectory"),g=h?`&savedDefaultDirectory=${h}`:"",v=["signInParameters","loginHint","selectAccount","forcesignin","whr","slice","mfalogin"].reduce(((t,r)=>{const n=e.extractValueFromQueryString(b,r);return n&&(t+=`&${r}=${n}`),t}),"");d.src=`${i.signinUri}${E}?sessionId=${_}&${j}&idpc=${r}${f}${g}${v}`,o.appendChild(d),setTimeout((()=>{l.setItem("Redirect_IdpRedirectCount",a(++r)),r%3?n.reload():n.href=m+"/UE_IDP"}),6e4);const S=e.getPortalUri(I,w),O=new XMLHttpRequest;O.open("GET",S),O.send(null)}}}catch(e){if(22===(e=e||{}).code)h=p(m);else{let t=l(a(e));const r=e.message;r&&(t=l(r)+"&stack="+l(e.stack)),h=m+"/Unhandled?err="+t}}h&&(n.href=h)}}(MsPortalImpl||(MsPortalImpl={}));
3
+ MsPortalImpl.redirect({"portalServerFeatures":{"settingsPortalInstanceValue":"","argSubscriptionsValue":"true","showServiceHealthAlertsValue":"true","inMemorySettingsValue":"","prefetchTokensValue":"","internalGraphApiVersionValue":"true","caeValue":"","selfTokenValue":"true","globalResourceFilterValue":"true","msalJsValue":"true","fetchPolicyForResTypesValue":"true","testCrossCloudPuidValue":"true","useRedirectHintValue":"true","useTenantHintValue":"true","nativeBrokerValue":"","msalJsWithFallbackValue":""},"portalServerConfig":{"portalQuery":{"configHash":"PkNJfkTTGDC1","pageVersion":"14.232.2.114.232.0.192030.241204-1800"},"environment":{"extensionsManifestHash":{"assetTypes":[["fzk-_69RhleV","7qKquWseJrkc"],["S9Wpr66CYe3e","qm2J0tGhtDkL"],["63VZs6bRmsRs","D9LjZFkHZr11"],["uO9aEWpC1fdv","lgMhtx-9cI-2"],["f8L4mqUdJz1L","m11RsozBSzDH"],["hsFXU-hOeL82","ej-vAIYmGCQq"],["nlEwPPz58LyX","AfNNA5UCTEL2"],["lfo0gzQzJz9-","-7LFSki2_sMF"],["5kYOqbRPWmEK","ORuUD_P3endQ"],["Y2vvbX_Rvumq","01piWrI6Au-y"],["gjtZ8sGyp4OO","8rNMaUIsWfLi"],["itGrl7kOnTAL","kQ5_wfwI6ke-"],["OX-PxLWSUAyu","29-UaJ153mcJ"],["e75KiN-kcag5","hfjHt4rpuDws"],["qKl_YGNNLpgm","i4ilPWfgF9L1"],["NNWIfGIdGBOz","Mqu9QNBfxi9d"],["Um_Q7Xxn4LoL","TfhWontS-zfY"],["FunRw0SBrz-y","TKBDdc8DYfTV"],["uPIdchkR9NCf","gwjpVZk-R3EF"],["YWyscj-Bbc8A","Pv9IonpkkVjz"]],"assetTypesBrowse":[["qvrLhGn7e2R4","k0ugWJ0ShOZp"],["j0g2-Hacu8Mz","MJaTq082kcbi"],["FO9H3As-NK_Z","2a5Ov5UJCbRE"],["ox80INLlPEV9","9aW6em_jJQC3"],["Z-4kkvFTLL9o","33Kt3-bBuD1P"],["PC9QtBTRmw0J","Hy7eV-yQID_S"],["Bo0uZf70dO8q","uCR_2kPMA6J2"],["OczBJeE44L_R","ODQRV4S11fDB"],["YOIMeIY_3b5i","DSki_KGZl8d7"],["HU5-BZJZdnuP","lYIrURBG4Lqy"],["ZMUm0ooJQ6NF","gm0XkejG_8xT"],["rG2tvJMMDdlb","x_GW82WkeEg4"],["LB5F9b6T08eL","2KI6RKed0JGj"],["Ojt-hlOttygN","cR5nGwbv6a2m"],["bQoiNaki2TJb","T19sHqQ3SwGA"],["WR0mWyAxlg7T","4a7Vp_bkZpdR"],["H4Tu3lmgvTHO","lqErdT5QACv0"],["qT8myUb9HMFR","p-5MSr6xJmus"],["Ri1cSHbeTuAu","ZkJWwMzomniS"],["i1I2_A9v44uu","nke5AHnj8ZSu"]],"assetTypesMenu":[["CWtcNNXk2KL1","uFKWwT7YvAkv"],["e7KXHJk-avNU","iU2aG3LGKPDV"],["t0qwGn3Sh5Jq","OrjT0fAMr23X"],["WAHUieSFstvP","1IOdW_QxhRSB"],["vxz-XIQvV9GM","rXnurc9n0VMf"],["PQoWYolC8peP","D_ExihZtW3Sx"],["1rFkcfM6KHPc","0-FGkZ7b5dcT"],["H8VkacN6M97m","G9mAdiYLEziy"],["ti8zS-UYlEqf","rrOIsVgP6js9"],["Qnl6ft6xN1VF","cFsqD6AFJzsf"],["XKpS9RXObIV_","SZSGpOpzcYOQ"],["1yQR7DArf2v5","6R8aUhfjAYXv"],["Gtn9DnrZPZWd","v1Ipp-i6Wu7f"],["8q6jH6B7XHr-","l3lgjBhPVk8Z"],["Yz2yEmoWSbJ6","M5GV16zUGPDx"],["ZmAWjZ7WM0IJ","WEKIhRAeYJA-"],["XAKw_v9-VxCS","bzIjcnJbz0Yq"],["Yk6a0FeJxIwR","KO8BOW3uk4bq"],["TDjWvC3HDh-V","7imnhVpSQgMU"],["nO5C_dvOviFr","h3dhZ9Ns_Gcg"]],"copilot":[["ouDuYMslcsxa","7SQeikVg_3hD"],["MXD8yELY-yHZ","z3OaWXP9098p"],["kc6Utns353tU","buswQ98vC4_T"],["5zrpupczXHyD","UhlebxtBtW3q"],["_GLNtXOEwRvM","iyE71UkBh07E"],["GWPtYjaB8SDQ","QL_UqEKa-yCU"],["rcnc3X_EIXxM","VjjPP0d59fow"],["5I_PqbCj6-Ii","rRe9XZYyRj4E"],["StZJDNvZWXPP","1JTBG__YtPPN"],["8Q4CmN6uCCNV","Dhiry0gCqz5i"],["FpsdPCUzdtZW","MGup3TJpskAh"],["R_tSUh_XRDkd","3P89f0O1ZXip"],["cjtUdZD8I_5B","GVWlIwMJhb4j"],["DVfQrjDrb7TP","QivCmgrzoSrS"],["WMbY14iQAr0k","E-aphlQTskeT"],["NsKdCJI93FMC","zDn05N4rB4tH"],["6QfwwbgJzBSD","gX4njVT_3KJ7"],["CWgoWYtGDDlz","5iHzHXhAZYvS"],["_BwfFzFCEDNV","Bus5RHfbmTvM"],["ouDuYMslcsxa","7SQeikVg_3hD"]],"extensionConfiguration":[["cnr4lI4ldr5Q","lQ8OpLVfTNJY"],["Kp62fcUM8DI3","CKVXKnkKG407"],["gIAGw_-LpU5B","2b_xV57k3YJ_"],["tMa_FyZOpN5m","T0PzmIpvzKYj"],["w9DveOaTHwH6","59cdcEU4f6DO"],["24srI6dhJoX2","cF-W7NoE72Pt"],["8VtWR5DMNM3C","gG1ThAqzqZmN"],["gkWpy3AXtSKV","YbAZjRcMbbdK"],["fAWj2q_FPxff","CXaK7Jha5JAq"],["UDODSIVHxNli","A2YkVzeZcg8S"],["WfBdDij2h6zR","oDuqmQ_q3Y4A"],["aEtFTZXWV8u-","RdcrT5VaD_xh"],["8XeWOKheoIFe","QYHNtCvQEYiO"],["6nrmyo4wU6oh","RUfXxU4KxT-i"],["VxAaqQKI2oU0","u5mjgeema9yn"],["cGXh86NHmtMa","Wpp0eMDjBoZ5"],["UqaZ8-BycncW","W4dIVKsUe0iI"],["79203hFrDTtd","LonWBUJp0do3"],["cev2eIJQfXX7","pxY-6deZDsUY"],["cnr4lI4ldr5Q","lQ8OpLVfTNJY"]],"featureCards":[["I1hn0UAALVce","YuOmwVntpQ-g"],["pxnsxruXwd0c","NxsMn96zL-BN"],["G0Iyhvc2wqJx","EpZcQuk5oNvl"],["iXEZQ87gF2_Q","fUIidLiWUICi"],["_7h5vlNnHTLc","77o1fQKTVo9s"],["sw2f5Xtu9701","RK9TlQE3Y-4E"],["AReK7hVk4d07","OJIW3uT1v1T_"],["flWb8MWO9C6n","LnvE9P7NW9HY"],["7OierOMRZ4Jt","yrTAxAQ31lAB"],["tdkOzom5NCon","CSQ-a7AFrmAs"],["6Sh5mXBwo07O","OIxiu7uqEJZp"],["bRAxCirrxaAD","LCqBejFcNjxj"],["tMAjZfOAYJey","Vi9i88PdJwzh"],["X_Tyk1CfHZb_","7AEv-KOwVfPs"],["i9RyD3jANwyi","VUd-wR6weM2i"],["C_a5lL75JIj7","EmK5uW2Xdv09"],["QdK3BoF609ph","lMhO64cbUgjc"],["LW3tOEfly-ba","s4abFqoYGXA_"],["DXgk_WmPgr-v","J1JB92WmrLiH"],["UYS0IppCfI4o","KvIuHXUyUcW-"]],"galleryParts":[["QjhJ-2h6a97W","4JzwEgxQA6Cr"],["S2FifjTFJUOM","QB03wZjs_oM_"],["tpnPbYYHZXU-","xv_t88PJ4TLu"],["UHw1MvPVlm6m","1zQ_cS7omLr8"],["qfUj1eSCrVZB","AOGOEt_PPLM0"],["nNNfTWoy__oL","p08_5o9d7UKp"],["pyK5nXWwq5Oo","M8XylWafSRfr"],["1ObU1E0sc1d7","1g5EHfMgMNwD"],["j6qjqDbi_XQF","vB27yr5gbL80"],["8CLjvzBPmxwU","W3Go0Yc12edf"],["p0mZl0LqBWCm","jYNncrX8DXlB"],["h6ZvFwh7trSd","5D-1sCgsim9C"],["GWWi0UjJp_zO","afaZ7lL_eR_y"],["pmwayLaCDf-k","Hb10bufiO3LK"],["Dq550vx3Td_Z","PucHcdYzgAR3"],["Aw_KndW3Wvpt","xxeAhsbe6Sfa"],["wUj_JF3Uv-rw","pUHDMdWzedbS"],["77TOvkkolUfZ","kEDE1L0w5FKq"],["UGAI8O444nFf","HoZP0mxbWZ3B"],["jP-_ZYFldW2c","jl-qea7pjvrT"]],"surveys":[["u5TJ9-nL00uV"],["75h0Uvou7ijr"],["oBjMRZQ2QyOF"],["4vgJhlz42Th3"],["PvPl442OXlH2"],["l_o5Is9uKxhK"],["VY9H2_7QwDnG"],["JInEBj6TZeWq"],["7ieeg9J2ZdeB"],["5AWM-mKbZhgd"],["y_x5rbxnTGZE"],["QofqBGmeVcJS"],["JWnY4kFk1Cq4"],["NdqGd8Oc74D_"],["LSjT4UeLIA8n"],["qFDn2JD0JbKl"],["XZrGAa9SqFYt"],["3JQPr8M_K0uf"],["9E2T9z2pfNhx"],["WZYZiwCO6OLd"]],"tourGuide":[["Evz5gZtP5b0a","8uz4k71t3lEh"],["JHUdIZSd0bNI","d8Nj9BPxFFOt"],["-V8SI3C3bu8S","st6jkbhzAqk5"],["vGsd7HRAZ8SJ","0zXfXg60tZ4I"],["z2MHaEZ2uD31","Aa6hn4jtXWel"],["kW4Art5k5B-R","t0spezf2b0OG"],["psSLqb23CI3o","j5g_KpfDsa2e"],["SUkoLKBKGuX7","aogKP7OKLeGA"],["y6elXb9Y5S7r","hRU83jSFG6Pm"],["lamMxWXect8C","-nNTkTPkpiWf"],["CJqhqKgLVgJw","djBC9BlEeII2"],["6fdaJilOmr7g","dMjUBXmxVOu-"],["kn85p-VBLCY5","8JMXlQqa-UEo"],["bxW6gatLgX39","pe4YdkQG9cVE"],["GXOjyyJdIEld","LfYVAiAyruC_"],["_0wEC-nUc-TL","xRh0gD10u6Q2"],["hZGRRTk9bwEv","ZBhjGiC9aQML"],["G2C82Xy0hFQv","yBlU4dtQD7bM"],["F7D_jAkcnb9a","zqQ1wOCDNnWp"],["Evz5gZtP5b0a","8uz4k71t3lEh"]],"uiDefinition":[["HpPRhYJLYEF8","B7PD1MrzXEvN"],["clbfpnA6ASj0","5Vz_YmPJyWZ1"],["-icDFziQqCCR","A6dGT4LpHSz1"],["k0aa2y7MsGFf","7kMXGl9AMhQK"],["7iZdAVFY7A0_","rAar-HnoXTXL"],["bOtx6VKhHDWH","KB4BcLB-ZuhB"],["QzuwPLi1P5pU","8KTNghiWYKUA"],["__kr3fZQdfOM","NeHoQTKikdDJ"],["d1RiZE6nrey8","tiuEs0M1Ymb3"],["JO7C7S6yf7l4","xh7RFZHoc-ab"],["uFO7QKLx4noz","as2e_pG4sV2X"],["xIWsszZMug86","5m9VVvSb9_qg"],["-KnGDSr5S9Zl","QfJ5aJkmqr1e"],["9WFY72TbFeDT","kC58WijPCp-5"],["LI85nb9Ya5JT","JIwREiieai01"],["i1YaeUvs6cGf","M_rg9Lv8bXuX"],["9UNVkDlH87Fa","2u_EWfYU1K1L"],["i1m9rO_iBEoY","oLuB4BDWbMHy"],["ChOsyjp3cI9g","Jc32eWGymJXd"],["HpPRhYJLYEF8","B7PD1MrzXEvN"]]},"extensionsPageVersion":{"AppInsightsExtension":["1.0.20241219.2257","1.0.20250106.2349"],"AppPlatformExtension":["1.0.02867.308"],"AzureCacheExtension":["1.3.02875.422"],"AzureTfsExtension":["19.247.35422.10"],"Azure_Marketplace_Astronomer":["0.9.028731-484067"],"Azure_Marketplace_Confluent":["0.9.0287814-460370"],"Azure_Marketplace_Datadog":["2.2101.028732-8148805"],"Azure_Marketplace_Dell":["0.9.028251-109367"],"Azure_Marketplace_Dynatrace":["0.9.029281-38099"],"Azure_Marketplace_Elastic":["0.1.028752-867720"],"Azure_Marketplace_Informatica":["0.9.028801-5467"],"Azure_Marketplace_Liftr_Logz":["0.9.028681-288"],"Azure_Marketplace_Liftr_NewRelic":["0.9.028791-182848"],"Azure_MarketPlace_NativeISVService":["0.9.0287826-94422","0.9.0289527-2972966"],"Azure_Marketplace_Neon":["0.9.028611-398878"],"Azure_Marketplace_NGINX":["2.2101.028681-150416"],"Azure_Marketplace_PaloAltoNetworks_Cloudngfw":["1.0.0.241217-0719"],"Azure_Marketplace_PureStorage":["0.9.029231-085211","0.9.029291-4748"],"Azure_Marketplace_Qumulo":["0.1.028732-427870"],"Azure_Marketplace_SamplePartner":["0.9.026611-97"],"Azure_Marketplace_SolarWindsObservability":["0.9.028741-97813"],"Azure_Marketplace_SplitIO":["1.0.028671-84714"],"DxExtension":["14.216.1.114.216.0.19852.241025-1953"],"HubsExtension":["14.232.2.114.232.0.192030.241204-1800/Zibck4M3AFmV"],"Microsoft_AAD_AuthenticationMethods":["1.0.02811103"],"Microsoft_AAD_B2CAdmin":["1.1.721.0"],"Microsoft_AAD_ConditionalAccess":["1.0.02899807"],"Microsoft_AAD_Connect_Provisioning":["3.0.02892991"],"Microsoft_AAD_DecentralizedIdentity":["1.0.02885406"],"Microsoft_AAD_Devices":["1.0.02868505"],"Microsoft_AAD_DomainServices":["2.0.170.0"],"Microsoft_AAD_DXP":["1.0.02895.1329-"],"Microsoft_AAD_ERM":["1.2.870.355"],"Microsoft_AAD_HybridAuthentication":["1.0.02655.90"],"Microsoft_AAD_IAM":["3.0.029001752"],"Microsoft_AAD_IdentityProtection":["1.0.02872276"],"Microsoft_AAD_LifecycleManagement":["1.0.02901.244"],"Microsoft_AAD_RegisteredApps":["1.0.2896.1143"],"Microsoft_AAD_UsersAndTenants":["1.0.02892.1202-352"],"Microsoft_AzureCXP_BusinessReview":["0.1.4138"],"Microsoft_AzureCXP_Cpoe":["0.1.3992"],"Microsoft_AzureCXP_EngageHub":["0.1.4208"],"Microsoft_AzureCXP_EngageHubInsights":["0.1.4024"],"Microsoft_AzureCXP_EngageHub_Spaces":["0.1.3950"],"Microsoft_AzureCXP_EngageHub_Support":["0.1.4261-0001"],"Microsoft_AzureStackHCI_PortalExtension":["1.0.028923178"],"Microsoft_AzureStack_LabHardware":["1.0.850.0"],"Microsoft_Azure_ActivityLog":["3.0.02782.235"],"Microsoft_Azure_AD":["1.0.4309.0","1.0.4341.0"],"Microsoft_Azure_ADHybridHealth":["2.0.02872241"],"Microsoft_Azure_ADU":["3.0.0.4"],"Microsoft_Azure_AdvisorPortalExtension":["1.0.02850.280"],"Microsoft_Azure_AFDX":["1.8.028961464"],"Microsoft_Azure_AgFoodPlatform":["1.0.0.89"],"Microsoft_Azure_AnalysisServices":["1.2.2.63"],"Microsoft_Azure_Analytics":["1.0.02879.1"],"Microsoft_Azure_ANMVerifier":["1.0.02852.93-234","1.0.02872.101-22"],"Microsoft_Azure_AO5GC":["1.0.0.0-2404250546"],"Microsoft_Azure_AP5GC":["2-2410080600","2-2411130747"],"Microsoft_Azure_ApiManagement":["1.1008.0.1"],"Microsoft_Azure_APISecurity":["1.24.12.202016"],"Microsoft_Azure_AppComplianceAutomation":["202411190218"],"Microsoft_Azure_Appliance":["4.0.300.192","4.0.200.137"],"Microsoft_Azure_AppProtection":["1.0.02842.54","1.0.02920.114"],"Microsoft_Azure_ArcCenterUX":["1.0.60.0","1.0.63.0"],"Microsoft_Azure_ArcClusterUX":["1.0.1063.0","1.0.1060"],"Microsoft_Azure_ArcNetworking":["1.4.1.11"],"Microsoft_Azure_ASCInformationProtection":["1.24.12.221028"],"Microsoft_Azure_Attestation":["1.0.14.232.0"],"Microsoft_Azure_AutoManagedVirtualMachines":["1.0.02854.456"],"Microsoft_Azure_AutomaticAKS":["4.12.0.2879"],"Microsoft_Azure_Automation":["7.3.2932.0.241115-0022"],"Microsoft_Azure_AzConfig":["1.0.02872126-1"],"Microsoft_Azure_AzFleet":["5.13.393.1807-1729806492-","5.13.393.1893"],"Microsoft_Azure_Batch":["1.1.02927.368"],"Microsoft_Azure_BCDRCenter":["1.0.02858.1262"],"Microsoft_Azure_Billing":["24.11.02900.175-6330","1.0.02921.1159-120496"],"Microsoft_Azure_BotService":["1.4.1.400371"],"Microsoft_Azure_Capacity":["241122-0516"],"Microsoft_Azure_Cdn":["1.0.02902.416--68770"],"Microsoft_Azure_ChangeAnalysis":["1.0.02852.117"],"Microsoft_Azure_Chaos":["1.0.0-1.0.02859.2-20600","1.0.0-1.0.02923.1-96"],"Microsoft_Azure_ClassicResources":["1.0.10.153"],"Microsoft_Azure_Classic_Compute":["5.13.393.1659"],"Microsoft_Azure_CloudforSovereignty":["1.0.241025.2416"],"Microsoft_Azure_CloudHSM":["1.0.02853.220","1.0.02861.221"],"Microsoft_Azure_CloudNative":["5.13.393.1819","5.13.393.1873"],"Microsoft_Azure_CloudNativeTesting":["2024102820241028.1","2024102820241125.2"],"Microsoft_Azure_CloudPC":["1.0.241212.112391938"],"Microsoft_Azure_CloudServices":["5.13.393.1807-1729702289-"],"Microsoft_Azure_CloudServices_Arm":["5.13.393.1807-1729806510-"],"Microsoft_Azure_CloudTest":["2.0.20250107.1"],"Microsoft_Azure_CodeOptimizations":["1.0.02853.40"],"Microsoft_Azure_CodeSigning":["1.0.20241211.103"],"Microsoft_Azure_CommunicationServices":["1.0.20241216.2"],"Microsoft_Azure_CommunicationsGatewayExtension":["2.0.0.0"],"Microsoft_Azure_CommunityTraining":["1.0.8.1"],"Microsoft_Azure_ComplianceCenter":["1.0.0.20250107064429"],"Microsoft_Azure_Compute":["5.13.393.1807-1733508958-","5.13.393.1893"],"Microsoft_Azure_ComputeHub":["5.13.393.1807","5.13.393.1893"],"Microsoft_Azure_ConfidentialLedger":["23.3.7.2"],"Microsoft_Azure_ConfigManager":["20241204.2"],"Microsoft_Azure_ContainerInsightsExt":["2.0.20241023.2014","2.0.20250107.2318"],"Microsoft_Azure_ContainerRegistries":["1.0.20240829.9"],"Microsoft_Azure_ContainerService":["4.60.1.101/1EqRKWy2d0SP","5.13.393.1894/vI1KG2-BOeC1"],"Microsoft_Azure_ContainerStorage":["5.13.393.1697","5.13.393.1698"],"Microsoft_Azure_Copilot":["1.311.02882.591","1.200.02872.577"],"Microsoft_Azure_CostManagement":["241204-0558"],"Microsoft_Azure_CreateUIDef":["1.0.300.338","1.0.200.604"],"Microsoft_Azure_CtsExtension":["1.2.1.0"],"Microsoft_Azure_CustomerHub":["1.0.300.165","1.0.300.167"],"Microsoft_Azure_Dashboard":["2.0.1890.0"],"Microsoft_Azure_DatabaseInsights":["1.0.02854.428"],"Microsoft_Azure_Databricks":["1.0.02855.267"],"Microsoft_Azure_DataCollaboration":["2.0.20230315-0800"],"Microsoft_Azure_DataFactory":["1.0.20241024.1"],"Microsoft_Azure_DataLakeAnalytics":["20240906.1"],"Microsoft_Azure_DataLakeStore":["5.13.393.1735"],"Microsoft_Azure_DataProtection":["241029-102415"],"Microsoft_Azure_DataShare":["2.0.20241211-0201","2.0.20241211-0102"],"Microsoft_Azure_Dedicated_ClusterStor":["240909-1921"],"Microsoft_Azure_Dedicated_Cray":["240909-1921"],"Microsoft_Azure_Dedicated_Monitoring":["240909-1921"],"Microsoft_Azure_DetonationService":["2.00.00.03"],"Microsoft_Azure_DevCenter":["14.170.0.1.241114-1814"],"Microsoft_Azure_DeviceRegistry":["1.0.02871.97-111120"],"Microsoft_Azure_DeviceUpdate":["1.0.02843.128-101415"],"Microsoft_Azure_DevOpsInfrastructure":["1.0.20250107.1"],"Microsoft_Azure_DevTestLab":["14.170.0.1.241127-2113"],"Microsoft_Azure_DevTunnels":["1.0.231005.2128","1.0.230613.1659"],"Microsoft_Azure_DigitalTwins":["1.0.02829.187-093022"],"Microsoft_Azure_DiskMgmt":["5.13.393.1804-1730162051-","5.13.393.1893"],"Microsoft_Azure_DMS":["5.1.6396.3"],"Microsoft_Azure_DNS":["1.0.02867.222","1.0.02928.243"],"Microsoft_Azure_DNSManagedResolver":["1.0.02816.276","1.0.02927.282"],"Microsoft_Azure_DnsSecurityPolicy":["1.0.02878.100"],"Microsoft_Azure_DocumentDB":["2.0.20241115.7.0","2.0.20250101.1.0"],"Microsoft_Azure_DocumentManagement":["1.0.02852.2"],"Microsoft_Azure_Ea":["20241212.2"],"Microsoft_Azure_EASM":["1.0.02900.1469"],"Microsoft_Azure_ECE":["1.0.02748.15-652409","1.0.02844.22-206"],"Microsoft_Azure_EdgeAIExtension":["1.0.02908.28"],"Microsoft_Azure_EdgeGateway":["1.0.02825.1545"],"Microsoft_Azure_EdgeManagementCopilot":["1.0.02854.246"],"Microsoft_Azure_EdgeOrder":["1.0.02894393"],"Microsoft_Azure_Education":["2024.11.26-1726"],"Microsoft_Azure_ElasticSan":["5.13.393.1807-1731535885-","5.13.393.1893"],"Microsoft_Azure_ELMAdmin":["2.77.02911.2151"],"Microsoft_Azure_EMA":["2.41028.1.6","2.41028.1.12"],"Microsoft_Azure_EmailCommunicationServices":["66616971"],"Microsoft_Azure_EpicManagement":["1.2.10205.10621"],"Microsoft_Azure_EventGrid":["2.0.02871.233"],"Microsoft_Azure_EventHub":["2.0.02879.345"],"Microsoft_Azure_Experimentation":["2.0.02895.64"],"Microsoft_Azure_Expert":["1.20241028.1","1.20241101.1"],"Microsoft_Azure_ExpressPod":["1.0.0"],"Microsoft_Azure_FairfieldGardens":["1.0.02837.66-100800"],"Microsoft_Azure_FileShare":["5.13.393.1803","5.13.393.1864"],"Microsoft_Azure_FileStorage":["5.13.393.1803","5.13.393.1851"],"Microsoft_Azure_FIST":["2024.10.02.160055","2024.06.13.181824"],"Microsoft_Azure_FlowLog":["2.0.0.306.241021-2045"],"Microsoft_Azure_FluidRelay":["1.0.2.4.241014-1713"],"Microsoft_Azure_Frontdoor":["1.0.02793.355--71340517","1.0.02858.386--179125"],"Microsoft_Azure_GeneratedExtension":["1.200.02858.681"],"Microsoft_Azure_GlobalView":["1.0.0.5"],"Microsoft_Azure_GraphDataConnect":["1.20241010.6.0"],"Microsoft_Azure_GTM":["24.12.02904.389-3707","1.0.02913.2615-10063"],"Microsoft_Azure_HDInsight":["1.0.02859.1610"],"Microsoft_Azure_Health":["1.1.1.465","1.1.1.469"],"Microsoft_Azure_HealthBot":["1.0.0.112"],"Microsoft_Azure_HealthDataDeidentification":["1.0.49698.1"],"Microsoft_Azure_HealthModels":["0.2023.78.333"],"Microsoft_Azure_HybridCompute":["1.0.4277.0","1.0.4301.0"],"Microsoft_Azure_HybridData_Platform":["1.0.02901.212"],"Microsoft_Azure_HybridNetworking":["24.8.0.63-241023-2106"],"Microsoft_Azure_IacAutomation":["0.0.1.241017-0944","0.0.1.241018-0643"],"Microsoft_Azure_IdentityGovernance":["1.0.02871.241"],"Microsoft_Azure_IndustrySolutionCenter":["1.0.241111-0553"],"Microsoft_Azure_IoTCentral":["2.0.9070.41921"],"Microsoft_Azure_IotHub":["1.0.02860.545-103117"],"Microsoft_Azure_IoTOperations":["1.0.02881.174-112117"],"Microsoft_Azure_IoT_Defender":["2025-01-01--11-26-39"],"Microsoft_Azure_IPAddressManager":["1.0.02859.150-2636459"],"Microsoft_Azure_Kailani":["5.13.393.1803-1733785378-","5.13.393.1893"],"Microsoft_Azure_KeyVault":["1.2.298.0.241021-1530"],"Microsoft_Azure_Kusto":["1.0.2418.0"],"Microsoft_Azure_LocationServices":["3.0.02871.271"],"Microsoft_Azure_Lockbox":["2.62.0.0"],"Microsoft_Azure_Maintenance":["5.13.393.1807-1729702031-","5.13.393.1893"],"Microsoft_Azure_ManagedHSM":["1.0.02861.409-262501","1.0.02928.482-8060"],"Microsoft_Azure_ManagedLab":["14.226.0.1.241231-1943"],"Microsoft_Azure_ManagedNetwork":["1.0.02859.162-866","1.0.02928.190-2135"],"Microsoft_Azure_ManagedServiceIdentity":["2.1.8974.0"],"Microsoft_Azure_ManagedStorageClass":["1.4.0.202410290745","1.4.0.202411050815"],"Microsoft_Azure_Marketplace":["50.0.02899.41-23270","30.0.02928.35-02549"],"Microsoft_Azure_MarketplaceTransact":["1.0.20241212.4173"],"Microsoft_Azure_Media":["1.0.1421.0"],"Microsoft_Azure_Migrate":["1.0.10.509"],"Microsoft_Azure_MigrateAssessment":["1.0.10.4"],"Microsoft_Azure_MigrateModernization":["1.51.1240903.11134"],"Microsoft_Azure_MLTeamAccounts":["1.0.0.241219-2106"],"Microsoft_Azure_ModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_Monitoring":["22.20241030.2.0.02859.431"],"Microsoft_Azure_MonitoringMetrics":["2.0.20241017.1618","2.0.20250107.1715"],"Microsoft_Azure_Monitoring_Alerts":["1.0.02824.1331","1.0.02891.1370"],"Microsoft_Azure_NetApp":["2407.3.0.1"],"Microsoft_Azure_Network":["5.13.393.1821","5.13.393.1863"],"Microsoft_Azure_NetworkCloud":["5.9.0","5.858.0-1"],"Microsoft_Azure_NetworkCopilot":["1.0.02927.120-5797234"],"Microsoft_Azure_NetworkCopilotExtension":["1.0.02927.52-9799"],"Microsoft_Azure_NetworkingCopilot":["1.0.02873.108-2"],"Microsoft_Azure_NetworkSecurityPerimeter":["1.35.0.185"],"Microsoft_Azure_Network_Access":["1.0.02923.1585"],"Microsoft_Azure_NotificationHubs":["20241218.3.241218-1139"],"Microsoft_Azure_OneInventory":["1.0.02887.222"],"Microsoft_Azure_OneMigrate":["1.0.10.44"],"Microsoft_Azure_OpenEnergyPlatform":["1.0.206"],"Microsoft_Azure_OperationsMgr":["1.2.361.0"],"Microsoft_Azure_OpsMQ":["1.0.02734.96-062721"],"Microsoft_Azure_Orbital":["2024.10.02923.509"],"Microsoft_Azure_OSSDatabases":["2.1.02859122"],"Microsoft_Azure_PaasServerless":["5.246.1.3","5.247.0.2"],"Microsoft_Azure_Peering":["1.2.0.255"],"Microsoft_Azure_PIMCommon":["0.0.0.961"],"Microsoft_Azure_PinToGrafana":["1.2.154.1"],"Microsoft_Azure_Playground":["14.115.4.1"],"Microsoft_Azure_PlaywrightService":["1.0.0.43"],"Microsoft_Azure_Policy":["1.0.9.704"],"Microsoft_Azure_PortalDashboard":["1.100.02850.547","1.100.02928.557"],"Microsoft_Azure_PowerBIDedicated":["1.1.2823.1"],"Microsoft_Azure_PowerPlatform":["0.0.0.72"],"Microsoft_Azure_PrivateDNS":["1.0.02875.231","1.0.02928.241"],"Microsoft_Azure_PrivateModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_ProgrammableConnectivity":["1.1.74","2.111.0-1"],"Microsoft_Azure_ProjectBabylon":["1.0.20241226.422","1.0.20240729.400"],"Microsoft_Azure_ProjectOxford":["241205-0551"],"Microsoft_Azure_Quantum":["1.11.2.4"],"Microsoft_Azure_RecommendationsService":["9.32.02744.262"],"Microsoft_Azure_RecoveryServices":["3.40.2411.283"],"Microsoft_Azure_Relay":["2.0.02851.179"],"Microsoft_Azure_Reservations":["11.19.2024.2050"],"Microsoft_Azure_ResourceMove":["1.1.10909.10739"],"Microsoft_Azure_Resources":["1.0.100.1000","1.0.100.1015"],"Microsoft_Azure_RpExt":["2.0.0.0"],"Microsoft_Azure_SaasHub":["1.0.02894.57-032"],"Microsoft_Azure_SapHanaInstances":["1.0.50.147"],"Microsoft_Azure_SAPManagement":["2.1.11015.10506"],"Microsoft_Azure_SAPMigrate":["1.2.10908.12138"],"Microsoft_Azure_Search":["149376413.20241114.1"],"Microsoft_Azure_Security":["1.25.01.072002"],"Microsoft_Azure_Security_AzureDefenderForData":["1.25.01.061251"],"Microsoft_Azure_Security_CloudNativeCompute":["1.24.12.311812"],"Microsoft_Azure_Security_DevOps":["1.25.01.032223"],"Microsoft_Azure_Security_Insights":["1.0.02923.465-250102-085937","1.0.02928.466-250107-093237"],"Microsoft_Azure_Security_IoT":["2024-12-29--08-15-43"],"Microsoft_Azure_Security_R3":["1.25.01.071638"],"Microsoft_Azure_SentinelUS":["1.0.02924.5502-250103-1623","1.0.02929.5517-250108-1419"],"Microsoft_Azure_ServiceBus":["2.0.02878.214"],"Microsoft_Azure_ServiceFabric":["5.13.393.1807-1729806504-"],"Microsoft_Azure_ServiceHub":["1.300.02860.75"],"Microsoft_Azure_SignalR":["1.0.02880.70--9565"],"Microsoft_Azure_SiteManager":["1.0.02888620"],"Microsoft_Azure_SiteRecovery":["1.51.12410.198"],"Microsoft_Azure_SolutionCenter":["5.13.393.1780","5.13.393.1875"],"Microsoft_Azure_Sphere":["2.0.25002.2"],"Microsoft_Azure_SpringApps":["20241218.1"],"Microsoft_Azure_Stack_Migrate":["2.241101.1914.1"],"Microsoft_Azure_Storage":["5.13.393.1803-1730161979-","5.13.393.1893"],"Microsoft_Azure_StorageCache":["1.1.0.1109"],"Microsoft_Azure_StorageInsights":["4.13.393.1126"],"Microsoft_Azure_StorageMover":["5.13.393.1803","5.13.393.1893"],"Microsoft_Azure_StorageTasks":["5.13.393.1803-1729816167-","5.13.393.1893"],"Microsoft_Azure_StreamAnalytics":["20241119.2"],"Microsoft_Azure_SubscriptionManagement":["1.0.02899.236.20241209-1952"],"Microsoft_Azure_Support":["1.580.20241107.1","1.580.20241029.1"],"Microsoft_Azure_Surface":["2.56.0"],"Microsoft_Azure_Sustainability":["1.0.1.173"],"Microsoft_Azure_Synapse":["1.0.02875.5"],"Microsoft_Azure_TemplateSpecs":["1.0.1.91"],"Microsoft_Azure_Toolbox":["2.0.02847.298"],"Microsoft_Azure_UsageBilling":["1.0.02805.11"],"Microsoft_Azure_VirtualEnclaves":["2.1.235.0"],"Microsoft_Azure_VirtualVisitsBuilder":["1.0.0.20240509190151576"],"Microsoft_Azure_VnfManager":["1.9.0","1.79.0-1"],"Microsoft_Azure_WaveMigration":["1.0.10.6"],"Microsoft_Azure_WhatsNew":["1.0.02900138"],"Microsoft_Azure_Winfields":["1.0.028335"],"Microsoft_Azure_WorkbooksExtension":["1.24.02857.421","1.24.02860.423"],"Microsoft_Azure_WorkloadInsight":["1.0.02819.95"],"Microsoft_Azure_WorkloadInsights":["2.0.20241008.1902","2.0.20241030.1727"],"Microsoft_Azure_WorkloadMonitor":["1.2.10924.10947","3.1.10107.10723"],"Microsoft_Azure_WVD":["1.0.02893.601"],"Microsoft_Bing_Api":["241212-1134"],"Microsoft_CloudHealth_HealthModels":["1.0.02907.87"],"Microsoft_Cognition_MixedReality":["36.0.0.0"],"Microsoft_ConnectedCache":["1.0.3.11"],"Microsoft_ConnectedCache_Ent":["1.0.0.2.25"],"Microsoft_ConnectedCache_Enterprise":["1.0.0.1.15"],"Microsoft_ConnectedCache_ISP":["1.0.0.1.48"],"Microsoft_EMM_ModernWorkplace":["1.2412.201.02"],"Microsoft_Entra_PM":["2025.1.7.1"],"Microsoft_Entra_PMAnalytics":["2024.10.11.1-105554065"],"Microsoft_Entra_PMDashboard":["2024.11.20.1-108585238"],"Microsoft_Healthcare_APIs":["1.0.554184.1","1.0.554553.1"],"Microsoft_Intune":["1.2412.15.3002.241216-2320"],"Microsoft_Intune_Apps":["2.2412.39.3002.241214-1836"],"Microsoft_Intune_DeviceExplorer":["1.0.241205.054721"],"Microsoft_Intune_Devices":["6.2412.38.3005.241218-1933"],"Microsoft_Intune_DeviceSettings":["1.2412.75.3011.250103-2300"],"Microsoft_Intune_Edu":["6.2412.14.3003.241216-2006"],"Microsoft_Intune_Enrollment":["7.2412.45.3003.241216-2046"],"Microsoft_Intune_MTM":["6.2410.1.50"],"Microsoft_Intune_Workflows":["1.2412.82.3002.241217-0650"],"Microsoft_ManufacturingPlatform_DMM":["19.11.2024"],"Microsoft_Marketplace_SolutionFinder":["1.0.20250108.1"],"Microsoft_OneFleet_DataHub":["1.0.02859.268"],"Microsoft_OperationsManagementSuite_Workspace":["3.0.02881.2173","3.0.02920.2221"],"Microsoft_Research_Genomics":["1.0.0.13929"],"Microsoft_Security_Copilot":["93"],"Microsoft_ServicesHub_Extension":["5.5.9.0"],"Microsoft_VideoIndexer":["1.0.02860.1-241031"],"Oracle_Databases_At_Azure":["1.164.0"],"ScanX_Management":["3.0.0.3"],"ServiceLinkerExtension":["2.0.20250106.1"],"SqlAzureExtension":["2.1.02901237"],"Universal_Print":["3.20241115.2"],"VLCentral_Agreement":["1.0.02903.1"],"VLCentral_Amendments":["1.0.02881.26"],"VLCentral_Approval":["1.0.02929.1"],"VLCentral_CaseManagement":["1.0.02879.2"],"VLCentral_HelpAndSupport":["1.0.02896.1"],"VLCentral_Home":["1.0.02894.1"],"VLCentral_OrderCredits":["1.0.02903.2","1.0.02894.2"],"VLCentral_Ordering":["15.0.02928.1"],"VLCentral_OrganizationManagementService":["1.0.02857.2"],"VLCentral_Platform":["1.0.02899.1"],"VLCentral_Quote":["1.0.02903.1"],"VLCentral_ReportingNAnalytics":["1.0.02896.1"],"VLCentral_UUM":["1.0.02865.54"],"VMCP":["1.2.02857.915","1.2.02866.925"],"WandiscoExtension":["1.14.16.0"],"WebsitesExtension":["5.246.3.3","5.247.0.2"]}},"signinUri":"/signin/idpRedirect.js/","errorUri":"/Error","unsupportedUri":"/Error/UE_Unsupported","applicationPath":"","supportedLanguages":["en","cs","de","es","fr","hu","id","it","ja","ko","nl","pl","pt-br","pt-pt","ru","sv","tr","zh-hans","zh-hant","qps-ploc"],"portalClientId":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c","authority":"https://login.microsoftonline.com/","armAadResource":"https://management.core.windows.net/","tokenLifetimeClockSkewIntervalInMs":300000.0,"graphEndpoint":"https://graph.windows.net","orgIdChangePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522342","changePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522343","isAdfs":false,"roleIdForCompanyAdmin":"62e90394-69f5-4237-9190-012177145e10"},"portalServerMsalJsConfig":{"site_id":"501430","cobrandid":null,"msafed":null,"nativeBroker":0}});
4
+ </script></body></html>
download (2).htm ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ <!DOCTYPE html><html><head><meta charset='utf-8'/><title>Microsoft Azure</title></head><body><script>"use strict";var FxImpl,__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__createBinding,__addDisposableResource,__disposeResources,MsPortalImpl;!function(e){let t,r;try{t=window.localStorage,r=window.sessionStorage}catch(e){}e.localStorage=t,e.sessionStorage=r}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getOrSetBootParameters=function(e,t){if(1===arguments.length)return e.sessionStorage.getItem("Redirect_BootParameters")||e.localStorage.getItem("Redirect_BootParameters");e.sessionStorage.setItem("Redirect_BootParameters",t),e.localStorage.setItem("Redirect_BootParameters",t)}}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getTenantFromPath=function(e,t){const r=e.split("/").filter((e=>e));let n="";if(1===r.length?n=r[0]:e.startsWith("/auth/login")&&3===r.length&&(n=r[2]),n){const e=n.replace(/^@*/,""),r=/^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/i;if(/^@?(?:(?:[a-z0-9]|[a-z0-9][a-z0-9-]{0,61}[a-z0-9])\.)+[a-z0-9]+|common$/i.test(e)||r.test(e))return t?"@"+e:e}return""}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t=new Uint8Array(20),r=new Array(20);function n(e,r,n){var o=t[e]&r;t[e]=o|n}var o=window.crypto||window.msCrypto,a="0123456789abcdef".split(""),s=new Array(256),i=0;function c(){var e=function(e){for(var t,r=new Array(e);e;){t=4294967296*Math.random()|0;for(var n=8;n--;){if(r[--e]=a[15&t],e<0)return r;t>>>=4}}}(36);return e[8]=e[13]=e[18]=e[23]="-",e[14]="4",e[19]=a[8+(3&a.indexOf(e[19]))],e.join("")}a.forEach((function(e){a.forEach((function(t){s[i++]=e+t}))})),e.createGuid=function(e,a){void 0===a&&(a=!1);var i=o?function(){o.getRandomValues(t),n(8,15,64),n(11,63,128);for(var e=0;e<20;e++)r[e]=s[t[e]];return r[4]=r[7]=r[10]=r[13]="-",r.join("")}():c();return i=a?i.split("-").join("").substring(0,32):i.substring(0,36),(e?"".concat(e,"_"):"")+i}}(FxImpl||(FxImpl={})),function(e){e.supportedLanguagesNeutralLocales={de:"de-de",en:"en-us",es:"es-es",fr:"fr-fr",it:"it-it",id:"id-id",hu:"hu-hu",nl:"nl-nl",pl:"pl-pl","pt-br":"pt-br","pt-pt":"pt-pt",sv:"sv-se",tr:"tr-tr",cs:"cs-cz",ru:"ru-ru","zh-hans":"zh-cn","zh-hant":"zh-hk",ja:"ja-jp",ko:"ko-kr"};const t={"zh-hk":"zh-hant","zh-tw":"zh-hant","zh-cht":"zh-hant","zh-mo":"zh-hant",zh:"zh-hans",pt:"pt-br"};function r(e){const t=[];for(let r=(e=e||"").length;r>0;r=e.lastIndexOf("-",r-1))t.push(e.substring(0,r));return t}e.sanitizeLanguage=function(t,r){const n=(t||"").toLowerCase().split(".");if(r.includes(n[0])||(n[0]=r[0]),n.length<2){const t=e.supportedLanguagesNeutralLocales[n[0]];t&&(n[1]=t)}return n.join(".")},e.getBrowserLanguage=function(n){const o=(n||navigator.languages||[]).map((e=>e?.toLowerCase?.()));for(const n of o){const o=r(n);for(const r of o){const o=t[r]||r;if(o in e.supportedLanguagesNeutralLocales){const t=o;return`${t}.${n.split("-").length>1?n:e.supportedLanguagesNeutralLocales[t]}`}}}}}(MsPortalImpl||(MsPortalImpl={})),function(e){let t=window;function r(e){return e&&e.replace(/^\?/,"")}function n(e){return e&&r(e).split("&").map((e=>e.split("=")))||[]}function o(e,t){const r=e.map((e=>e[0]&&e.join("=")));return t&&r.sort(),r.join("&")}function a(e,t,r){if(t=t.toUpperCase(),e)for(let n=0;n<e.length;n++)if(e[n][0].toUpperCase()===t)return r?e.splice(n,1)[0][1]:e[n][1]}function s(){return JSON.parse(e.getOrSetBootParameters(e)||"{}")}function i(e){return a(n(s().userQuery),e)}function c(e){if(!e||e.startsWith("/"))return c(`${t.location.protocol}//${t.location.host}`);const r=/^(\w+:\/\/)([^:/?]+)([^/?]+)?/.exec(e),n=r[3]||("https://"===r[1]?":443":":80");return r[2]+n}function l(t,s,l,u){l=l||"",u=u||{};let f="";if(t&&c()===c(t))f=function(t,r,s){const c=n(t),l=e=>{Object.keys(e).forEach((t=>{t&&e[t]&&"string"!=typeof a(c,t)&&c.push([t,e[t]])}))};if(l(JSON.parse(e.localStorage.getItem("Redirect_LocaleQuery")||"{}")),l({l:e.localStorage.getItem("Redirect_LastUsedLocale")}),r.env){const t={},n=(n,o,a)=>{o=o||["true","false"];const s=n+(a||"");let c=i(n)||r[n];c||(c=e.localStorage.getItem(s)+"",o.includes(c)||(c=o[Math.floor(Math.random()*o.length)],e.localStorage.setItem(s,c))),t[n]=c},o=new Array(100);o.fill("DefaultPartitioner",0,100),n("bundlingKind",o,"12"),l(t)}l(r),["signIn","clearedStorage"].forEach((e=>{a(c,e,!0)}));const u=a(c,"l",!0)||e.getBrowserLanguage();return l({l:e.sanitizeLanguage(u,s)}),o(c,!0)}(l,u,s);else{const e=u.loginHint;e&&(l+=l?"&":"",l+=`loginHint=${e}`),f=r(l)}return f&&(t+=t.includes("?")?"&":"?",t+=f),t}e.parseQuery=n,e.extractValueFromQueryString=function(e,t){return a(e,t,!1)},e.getFirstQueryValue=a,e.getBootParameters=s,e.trySaveAllowedState=function(r,n,i,c){if(!e.getOrSetBootParameters(e)||i){["selectAccount","loginHint","signInParameters","forcesignin","nonceErrorSeen","signIn","slice","mfalogin"].forEach((e=>{a(n,e,!0)}));const i=/#.*|$/.exec(t.location.href)[0];let l;i.startsWith("#code=")?(l=s(),l.msalHash=i):l={environment:r,userQuery:o(n),portalQuery:c,hash:i,msalHash:void 0},e.getOrSetBootParameters(e,JSON.stringify(l))}},e.savePageTelemetry=function(r){const n=t.performance&&t.performance.timing;if(n){const t={id:r,fetchStart:n.fetchStart,requestStart:n.requestStart,responseStart:n.responseStart,responseEnd:n.responseEnd,domComplete:n.domComplete};e.sessionStorage.setItem(`PageTelemetry_${r}`,JSON.stringify(t))}},e.getUserQueryValue=i,e.getPortalUri=function(e,t,r){r=r||{};const n=s(),o=n.hash||"";return l(e,t,r.userQuery||n.userQuery,r.portalQuery||n.portalQuery)+o},e.getPortalEnv=function(){return location.hostname.split(".")[0].toLowerCase()}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(e,r){return e!==t&&("function"==typeof Object.create?Object.defineProperty(e,"__esModule",{value:!0}):e.__esModule=!0),function(t,n){return e[t]=r?r(t,n):n}}"function"==typeof define&&define.amd?(
2
+ define("tslib",["exports"],(function(n){e(r(t,r(n)))})),require(["tslib"])):"object"==typeof module&&"object"==typeof module.exports?e(r(t,r(module.exports))):e(r(t))}((function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};__extends=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){Object.defineProperty(this,"constructor",{configurable:!0,value:e,writable:!0})}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)},__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__rest=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__decorate=function(e,t,r,n){var o,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(s=(a<3?o(s):a>3?o(t,r,s):o(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s},__param=function(e,t){return function(r,n){t(r,n,e)}},__esDecorate=function(e,t,r,n,o,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,c=n.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?n.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),p=!1,_=r.length-1;_>=0;_--){var d={};for(var y in n)d[y]="access"===y?{}:n[y];for(var y in n.access)d.access[y]=n.access[y];d.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var m=(0,r[_])("accessor"===c?{get:f.get,set:f.set}:f[l],d);if("accessor"===c){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(i=s(m.get))&&(f.get=i),(i=s(m.set))&&(f.set=i),(i=s(m.init))&&o.unshift(i)}else(i=s(m))&&("field"===c?o.unshift(i):f[l]=i)}u&&Object.defineProperty(u,n.name,f),p=!0},__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0},__propKey=function(e){return"symbol"==typeof e?e:"".concat(e)},__setFunctionName=function(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function i(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}c((n=n.apply(e,t||[])).next())}))},__generator=function(e,t){var r,n,o,a,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(s=0)),s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},__exportStar=function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__createBinding=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},__values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s},__spread=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e},__spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],s=0,i=a.length;s<i;s++,o++)n[o]=a[s];return n},__spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},__await=function(e){return this instanceof __await?(this.v=e,this):new __await(e)},__asyncGenerator=function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),a=[];return n={},s("next"),s("throw"),s("return",(function(e){return function(t){return Promise.resolve(t).then(e,l)}})),n[Symbol.asyncIterator]=function(){return this},n;function s(e,t){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||i(e,t)}))},t&&(n[e]=t(n[e])))}function i(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}},__asyncDelegator=function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var r=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};__importStar=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return r(t,e),t},__importDefault=function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet=function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn=function(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)},__addDisposableResource=function(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose]}if("function"!=typeof n)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t};var n="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};__disposeResources=function(e){function t(t){e.error=e.hasError?new n(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function r(){for(;e.stack.length;){var n=e.stack.pop();try{var o=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(o).then(r,(function(e){return t(e),r()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()},e("__extends",__extends),e("__assign",__assign),e("__rest",__rest),e("__decorate",__decorate),e("__param",__param),e("__esDecorate",__esDecorate),e("__runInitializers",__runInitializers),e("__propKey",__propKey),e("__setFunctionName",__setFunctionName),e("__metadata",__metadata),e("__awaiter",__awaiter),e("__generator",__generator),e("__exportStar",__exportStar),e("__createBinding",__createBinding),e("__values",__values),e("__read",__read),e("__spread",__spread),e("__spreadArrays",__spreadArrays),e("__spreadArray",__spreadArray),e("__await",__await),e("__asyncGenerator",__asyncGenerator),e("__asyncDelegator",__asyncDelegator),e("__asyncValues",__asyncValues),e("__makeTemplateObject",__makeTemplateObject),e("__importStar",__importStar),e("__importDefault",__importDefault),e("__classPrivateFieldGet",__classPrivateFieldGet),e("__classPrivateFieldSet",__classPrivateFieldSet),e("__classPrivateFieldIn",__classPrivateFieldIn),e("__addDisposableResource",__addDisposableResource),e("__disposeResources",__disposeResources)})),function(e){let t=window,r=t.document,n=t.location,o=r.body;function a(e){return(e||"")+""}e.stringify=a;let s=a(navigator&&navigator.userAgent);function i(e,t){return e.includes(t)}const c=JSON.stringify,l=encodeURIComponent;e.cobrand=function(){};const u="Redirect_SomeRandomKey";function f(e){const t=i(s,"Windows");if((i(s,"Macintosh; Intel")||t)&&i(s,"Safari")&&!i(s,"Chrome")&&function(e){if(i(s,e)){const t=new RegExp(`\\s${e}/(\\d+)[\\.\\s$]`).exec(s),r=a(t&&t[1]);return parseInt(r,10)}}("Version")<=11)return e+"?reason=isSafari";const n=!!r.documentMode,o=/Trident\//i.test(s),c=i(s,"MSIE"),l=!Array.prototype.find;return n||o||c||l?e+"?reason=isIE":Promise&&Promise.prototype.finally&&Promise.allSettled&&Promise.any?"":e+"?reason=promise"}function p(e){return _("clearedStorage=true",`${e}/Html5StorageExceeded`,!0)}function _(t,r,o){return n.search.includes(t)?r:(o&&(e.localStorage.clear(),e.sessionStorage.clear()),(n.search&&n.search+"&"||"?")+t+n.hash)}function d(e,t){if(void 0!==e)return e;if(t&&t.startsWith("flight:")){const e=parseFloat(t.split(":")[1]);return Math.random()<e?"true":"false"}return t}e.redirect=async function(s){const i=s.portalServerConfig,y=s.portalServerFeatures,m=i.errorUri;if("true"===e.localStorage.getItem("MsalJsV3")?e.sessionStorage.setItem("MsalJsV3","true"):e.sessionStorage.removeItem("MsalJsV3"),"aad.portal.azure.com"===n.hostname.toLowerCase()&&["","#","#home"].includes(n.hash.toLowerCase()))return void(n.href=`https://entra.microsoft.com${n.pathname||""}${n.search||""}#view/Microsoft_AAD_IAM/TenantOverview.ReactView`);let h;try{const l=function(t){let r;try{[e.localStorage,e.sessionStorage].forEach((e=>{if(r=e.length,e.setItem(u,u),u!==e.getItem(u))throw u;e.removeItem(u)}))}catch(e){return 22===e.code&&r?p(t):_("storagepolyfill=true",`${t}/UE_NoHtml5Storage`)}}(m),g=i.portalQuery,v=i.applicationPath,w=i.supportedLanguages,b=e.parseQuery(t.location.search),S=[...b],I=i.unsupportedUri,P=(t,r)=>d(e.extractValueFromQueryString(S,"feature."+t),r),O=t=>e.getFirstQueryValue(S,t,!0);if(h=f(I)||function(e){return t.Intl?"":e+"?reason=intl"}(I)||l,!h){const l=e.sessionStorage,u=e.localStorage;u.removeItem("signOutAll");const f=O("Referrer");g.env=e.getPortalEnv(),"true"===O("feature.armbreakglass")&&l.setItem("Redirect_ArmBreakGlass","true");const p=O("sessionId"),_=FxImpl.createGuid(p,!0);l.setItem("Redirect_SessionId",_),e.trySaveAllowedState(i.environment,S,!0,g),e.savePageTelemetry("EntryPoint"),l.setItem("Redirect_Referrers",c([a(r.referrer),a(f)]));const I=`${n.protocol}//${n.host}${v}`,j=function(t,r){const n=[];return Object.keys(r).forEach((o=>{const a="feature."+o,s=d(e.extractValueFromQueryString(t,a),r[o]);s&&n.push(`${a}=${s}`)})),n.join("&")}(S,{settingsportalinstance:y.settingsPortalInstanceValue,inmemorysettings:y.inMemorySettingsValue,argsubscriptions:y.argSubscriptionsValue,showservicehealthalerts:y.showServiceHealthAlertsValue,prefetchtokens:y.prefetchTokensValue,internalgraphapiversion:y.internalGraphApiVersionValue,cae:y.caeValue,selftoken:y.selfTokenValue,globalresourcefilter:y.globalResourceFilterValue,msaljs:y.msalJsValue,fetchpolicyforrestypes:y.fetchPolicyForResTypesValue,testcrosscloudpuid:y.testCrossCloudPuidValue,useredirecthint:y.useRedirectHintValue,usetenanthint:y.useTenantHintValue,nativebroker:y.nativeBrokerValue,msaljswithfallback:y.msalJsWithFallbackValue});let E=e.getTenantFromPath(n.pathname,!0);const x=u.getItem("preferredPortalUri"),R=parseInt(function(e,t){const r=e.getItem(t);return e.removeItem(t),r}(l,"Redirect_PreferredPortalRedirectCount"))||0,T=P("useredirecthint",y.useRedirectHintValue),V=P("msaljs",y.msalJsValue);if(!E&&function(t){const r=e.sessionStorage.getItem("authState");if(r){try{const n=JSON.parse(r),o=n?.oAuthToken;let a=0;o?.authHeader&&(a=o.expiresAt);let s=o&&a>=Date.now();const i=n?.selfOAuthToken;if(i?.authHeader&&(s=s&&(i.expiresAt||0)>=Date.now()),s=t?s&&!!n.isInitializedUsingSpaAuthCode:s&&!!n.refreshToken,s)return e.localStorage.removeItem("authState"),!0}catch(e){}e.sessionStorage.removeItem("authState")}return!1}("true"===V))h=e.getPortalUri(I,w);else if("true"===T&&x&&x!==n.hostname&&!(S||[]).length&&!E&&R<3)l.setItem("Redirect_PreferredPortalRedirectCount",R+1+""),h=e.getPortalUri(x,w,{portalQuery:i.portalQuery});else{let r=parseInt(l.getItem("Redirect_IdpRedirectCount"))||0;E=/^#@([^/]*)|$/.exec(/#.*|$/.exec(t.location.href)[0])[1]||E;const c=P("usetenanthint",y.useTenantHintValue);let f="";const p=u.getItem("tenantHint");if("true"===c&&p&&(f=`&tenantHint=${p}`,u.removeItem("tenantHint"),l.setItem("usedTenantHint",p)),"true"===e.localStorage.getItem("MsalJsLoginEnabled"))try{let t=E.startsWith("@")?E.substring(1):E;t=t||"organizations";const r={armAadResource:i.armAadResource,authority:i.authority,forceSignInQueryStringValue:e.extractValueFromQueryString(b,"forcesignin")||"",portalClientId:i.portalClientId,portalRequestedTenantInfo:{id:t,domainName:"",displayName:""}};await e.loginUsingMsalJs({isNativeBrokerEnabled:e.useMsalJsV3InCurrentSession()&&"true"===P("nativebroker",y.nativeBrokerValue),portalOptions:r,portalServerMsalJsConfig:s.portalServerMsalJsConfig,source:"Startup",userQueryStringInUrl:b,loginStage:{type:"Startup"}})}catch(t){e.saveLog({source:"Startup",action:"FallbackToLegacySignIn",data:{errorMessage:t.message+(t.stack||"")||t.toString()}}),e.sessionStorage.removeItem("PortalRequestedTenant")}const d=t.document.createElement("script"),h=e.localStorage.getItem("SavedDefaultDirectory"),g=h?`&savedDefaultDirectory=${h}`:"",v=["signInParameters","loginHint","selectAccount","forcesignin","whr","slice","mfalogin"].reduce(((t,r)=>{const n=e.extractValueFromQueryString(b,r);return n&&(t+=`&${r}=${n}`),t}),"");d.src=`${i.signinUri}${E}?sessionId=${_}&${j}&idpc=${r}${f}${g}${v}`,o.appendChild(d),setTimeout((()=>{l.setItem("Redirect_IdpRedirectCount",a(++r)),r%3?n.reload():n.href=m+"/UE_IDP"}),6e4);const S=e.getPortalUri(I,w),O=new XMLHttpRequest;O.open("GET",S),O.send(null)}}}catch(e){if(22===(e=e||{}).code)h=p(m);else{let t=l(a(e));const r=e.message;r&&(t=l(r)+"&stack="+l(e.stack)),h=m+"/Unhandled?err="+t}}h&&(n.href=h)}}(MsPortalImpl||(MsPortalImpl={}));
3
+ MsPortalImpl.redirect({"portalServerFeatures":{"settingsPortalInstanceValue":"","argSubscriptionsValue":"true","showServiceHealthAlertsValue":"true","inMemorySettingsValue":"","prefetchTokensValue":"","internalGraphApiVersionValue":"true","caeValue":"","selfTokenValue":"true","globalResourceFilterValue":"true","msalJsValue":"true","fetchPolicyForResTypesValue":"true","testCrossCloudPuidValue":"true","useRedirectHintValue":"true","useTenantHintValue":"true","nativeBrokerValue":"","msalJsWithFallbackValue":""},"portalServerConfig":{"portalQuery":{"configHash":"PkNJfkTTGDC1","pageVersion":"14.232.2.114.232.0.192030.241204-1800"},"environment":{"extensionsManifestHash":{"assetTypes":[["fzk-_69RhleV","7qKquWseJrkc"],["S9Wpr66CYe3e","qm2J0tGhtDkL"],["63VZs6bRmsRs","D9LjZFkHZr11"],["uO9aEWpC1fdv","lgMhtx-9cI-2"],["f8L4mqUdJz1L","m11RsozBSzDH"],["hsFXU-hOeL82","ej-vAIYmGCQq"],["nlEwPPz58LyX","AfNNA5UCTEL2"],["lfo0gzQzJz9-","-7LFSki2_sMF"],["5kYOqbRPWmEK","ORuUD_P3endQ"],["Y2vvbX_Rvumq","01piWrI6Au-y"],["gjtZ8sGyp4OO","8rNMaUIsWfLi"],["itGrl7kOnTAL","kQ5_wfwI6ke-"],["OX-PxLWSUAyu","29-UaJ153mcJ"],["e75KiN-kcag5","hfjHt4rpuDws"],["qKl_YGNNLpgm","i4ilPWfgF9L1"],["NNWIfGIdGBOz","Mqu9QNBfxi9d"],["Um_Q7Xxn4LoL","TfhWontS-zfY"],["FunRw0SBrz-y","TKBDdc8DYfTV"],["uPIdchkR9NCf","gwjpVZk-R3EF"],["YWyscj-Bbc8A","Pv9IonpkkVjz"]],"assetTypesBrowse":[["qvrLhGn7e2R4","k0ugWJ0ShOZp"],["j0g2-Hacu8Mz","MJaTq082kcbi"],["FO9H3As-NK_Z","2a5Ov5UJCbRE"],["ox80INLlPEV9","9aW6em_jJQC3"],["Z-4kkvFTLL9o","33Kt3-bBuD1P"],["PC9QtBTRmw0J","Hy7eV-yQID_S"],["Bo0uZf70dO8q","uCR_2kPMA6J2"],["OczBJeE44L_R","ODQRV4S11fDB"],["YOIMeIY_3b5i","DSki_KGZl8d7"],["HU5-BZJZdnuP","lYIrURBG4Lqy"],["ZMUm0ooJQ6NF","gm0XkejG_8xT"],["rG2tvJMMDdlb","x_GW82WkeEg4"],["LB5F9b6T08eL","2KI6RKed0JGj"],["Ojt-hlOttygN","cR5nGwbv6a2m"],["bQoiNaki2TJb","T19sHqQ3SwGA"],["WR0mWyAxlg7T","4a7Vp_bkZpdR"],["H4Tu3lmgvTHO","lqErdT5QACv0"],["qT8myUb9HMFR","p-5MSr6xJmus"],["Ri1cSHbeTuAu","ZkJWwMzomniS"],["i1I2_A9v44uu","nke5AHnj8ZSu"]],"assetTypesMenu":[["CWtcNNXk2KL1","uFKWwT7YvAkv"],["e7KXHJk-avNU","iU2aG3LGKPDV"],["t0qwGn3Sh5Jq","OrjT0fAMr23X"],["WAHUieSFstvP","1IOdW_QxhRSB"],["vxz-XIQvV9GM","rXnurc9n0VMf"],["PQoWYolC8peP","D_ExihZtW3Sx"],["1rFkcfM6KHPc","0-FGkZ7b5dcT"],["H8VkacN6M97m","G9mAdiYLEziy"],["ti8zS-UYlEqf","rrOIsVgP6js9"],["Qnl6ft6xN1VF","cFsqD6AFJzsf"],["XKpS9RXObIV_","SZSGpOpzcYOQ"],["1yQR7DArf2v5","6R8aUhfjAYXv"],["Gtn9DnrZPZWd","v1Ipp-i6Wu7f"],["8q6jH6B7XHr-","l3lgjBhPVk8Z"],["Yz2yEmoWSbJ6","M5GV16zUGPDx"],["ZmAWjZ7WM0IJ","WEKIhRAeYJA-"],["XAKw_v9-VxCS","bzIjcnJbz0Yq"],["Yk6a0FeJxIwR","KO8BOW3uk4bq"],["TDjWvC3HDh-V","7imnhVpSQgMU"],["nO5C_dvOviFr","h3dhZ9Ns_Gcg"]],"copilot":[["ouDuYMslcsxa","7SQeikVg_3hD"],["MXD8yELY-yHZ","z3OaWXP9098p"],["kc6Utns353tU","buswQ98vC4_T"],["5zrpupczXHyD","UhlebxtBtW3q"],["_GLNtXOEwRvM","iyE71UkBh07E"],["GWPtYjaB8SDQ","QL_UqEKa-yCU"],["rcnc3X_EIXxM","VjjPP0d59fow"],["5I_PqbCj6-Ii","rRe9XZYyRj4E"],["StZJDNvZWXPP","1JTBG__YtPPN"],["8Q4CmN6uCCNV","Dhiry0gCqz5i"],["FpsdPCUzdtZW","MGup3TJpskAh"],["R_tSUh_XRDkd","3P89f0O1ZXip"],["cjtUdZD8I_5B","GVWlIwMJhb4j"],["DVfQrjDrb7TP","QivCmgrzoSrS"],["WMbY14iQAr0k","E-aphlQTskeT"],["NsKdCJI93FMC","zDn05N4rB4tH"],["6QfwwbgJzBSD","gX4njVT_3KJ7"],["CWgoWYtGDDlz","5iHzHXhAZYvS"],["_BwfFzFCEDNV","Bus5RHfbmTvM"],["ouDuYMslcsxa","7SQeikVg_3hD"]],"extensionConfiguration":[["cnr4lI4ldr5Q","lQ8OpLVfTNJY"],["Kp62fcUM8DI3","CKVXKnkKG407"],["gIAGw_-LpU5B","2b_xV57k3YJ_"],["tMa_FyZOpN5m","T0PzmIpvzKYj"],["w9DveOaTHwH6","59cdcEU4f6DO"],["24srI6dhJoX2","cF-W7NoE72Pt"],["8VtWR5DMNM3C","gG1ThAqzqZmN"],["gkWpy3AXtSKV","YbAZjRcMbbdK"],["fAWj2q_FPxff","CXaK7Jha5JAq"],["UDODSIVHxNli","A2YkVzeZcg8S"],["WfBdDij2h6zR","oDuqmQ_q3Y4A"],["aEtFTZXWV8u-","RdcrT5VaD_xh"],["8XeWOKheoIFe","QYHNtCvQEYiO"],["6nrmyo4wU6oh","RUfXxU4KxT-i"],["VxAaqQKI2oU0","u5mjgeema9yn"],["cGXh86NHmtMa","Wpp0eMDjBoZ5"],["UqaZ8-BycncW","W4dIVKsUe0iI"],["79203hFrDTtd","LonWBUJp0do3"],["cev2eIJQfXX7","pxY-6deZDsUY"],["cnr4lI4ldr5Q","lQ8OpLVfTNJY"]],"featureCards":[["I1hn0UAALVce","YuOmwVntpQ-g"],["pxnsxruXwd0c","NxsMn96zL-BN"],["G0Iyhvc2wqJx","EpZcQuk5oNvl"],["iXEZQ87gF2_Q","fUIidLiWUICi"],["_7h5vlNnHTLc","77o1fQKTVo9s"],["sw2f5Xtu9701","RK9TlQE3Y-4E"],["AReK7hVk4d07","OJIW3uT1v1T_"],["flWb8MWO9C6n","LnvE9P7NW9HY"],["7OierOMRZ4Jt","yrTAxAQ31lAB"],["tdkOzom5NCon","CSQ-a7AFrmAs"],["6Sh5mXBwo07O","OIxiu7uqEJZp"],["bRAxCirrxaAD","LCqBejFcNjxj"],["tMAjZfOAYJey","Vi9i88PdJwzh"],["X_Tyk1CfHZb_","7AEv-KOwVfPs"],["i9RyD3jANwyi","VUd-wR6weM2i"],["C_a5lL75JIj7","EmK5uW2Xdv09"],["QdK3BoF609ph","lMhO64cbUgjc"],["LW3tOEfly-ba","s4abFqoYGXA_"],["DXgk_WmPgr-v","J1JB92WmrLiH"],["UYS0IppCfI4o","KvIuHXUyUcW-"]],"galleryParts":[["QjhJ-2h6a97W","4JzwEgxQA6Cr"],["S2FifjTFJUOM","QB03wZjs_oM_"],["tpnPbYYHZXU-","xv_t88PJ4TLu"],["UHw1MvPVlm6m","1zQ_cS7omLr8"],["qfUj1eSCrVZB","AOGOEt_PPLM0"],["nNNfTWoy__oL","p08_5o9d7UKp"],["pyK5nXWwq5Oo","M8XylWafSRfr"],["1ObU1E0sc1d7","1g5EHfMgMNwD"],["j6qjqDbi_XQF","vB27yr5gbL80"],["8CLjvzBPmxwU","W3Go0Yc12edf"],["p0mZl0LqBWCm","jYNncrX8DXlB"],["h6ZvFwh7trSd","5D-1sCgsim9C"],["GWWi0UjJp_zO","afaZ7lL_eR_y"],["pmwayLaCDf-k","Hb10bufiO3LK"],["Dq550vx3Td_Z","PucHcdYzgAR3"],["Aw_KndW3Wvpt","xxeAhsbe6Sfa"],["wUj_JF3Uv-rw","pUHDMdWzedbS"],["77TOvkkolUfZ","kEDE1L0w5FKq"],["UGAI8O444nFf","HoZP0mxbWZ3B"],["jP-_ZYFldW2c","jl-qea7pjvrT"]],"surveys":[["u5TJ9-nL00uV"],["75h0Uvou7ijr"],["oBjMRZQ2QyOF"],["4vgJhlz42Th3"],["PvPl442OXlH2"],["l_o5Is9uKxhK"],["VY9H2_7QwDnG"],["JInEBj6TZeWq"],["7ieeg9J2ZdeB"],["5AWM-mKbZhgd"],["y_x5rbxnTGZE"],["QofqBGmeVcJS"],["JWnY4kFk1Cq4"],["NdqGd8Oc74D_"],["LSjT4UeLIA8n"],["qFDn2JD0JbKl"],["XZrGAa9SqFYt"],["3JQPr8M_K0uf"],["9E2T9z2pfNhx"],["WZYZiwCO6OLd"]],"tourGuide":[["Evz5gZtP5b0a","8uz4k71t3lEh"],["JHUdIZSd0bNI","d8Nj9BPxFFOt"],["-V8SI3C3bu8S","st6jkbhzAqk5"],["vGsd7HRAZ8SJ","0zXfXg60tZ4I"],["z2MHaEZ2uD31","Aa6hn4jtXWel"],["kW4Art5k5B-R","t0spezf2b0OG"],["psSLqb23CI3o","j5g_KpfDsa2e"],["SUkoLKBKGuX7","aogKP7OKLeGA"],["y6elXb9Y5S7r","hRU83jSFG6Pm"],["lamMxWXect8C","-nNTkTPkpiWf"],["CJqhqKgLVgJw","djBC9BlEeII2"],["6fdaJilOmr7g","dMjUBXmxVOu-"],["kn85p-VBLCY5","8JMXlQqa-UEo"],["bxW6gatLgX39","pe4YdkQG9cVE"],["GXOjyyJdIEld","LfYVAiAyruC_"],["_0wEC-nUc-TL","xRh0gD10u6Q2"],["hZGRRTk9bwEv","ZBhjGiC9aQML"],["G2C82Xy0hFQv","yBlU4dtQD7bM"],["F7D_jAkcnb9a","zqQ1wOCDNnWp"],["Evz5gZtP5b0a","8uz4k71t3lEh"]],"uiDefinition":[["HpPRhYJLYEF8","B7PD1MrzXEvN"],["clbfpnA6ASj0","5Vz_YmPJyWZ1"],["-icDFziQqCCR","A6dGT4LpHSz1"],["k0aa2y7MsGFf","7kMXGl9AMhQK"],["7iZdAVFY7A0_","rAar-HnoXTXL"],["bOtx6VKhHDWH","KB4BcLB-ZuhB"],["QzuwPLi1P5pU","8KTNghiWYKUA"],["__kr3fZQdfOM","NeHoQTKikdDJ"],["d1RiZE6nrey8","tiuEs0M1Ymb3"],["JO7C7S6yf7l4","xh7RFZHoc-ab"],["uFO7QKLx4noz","as2e_pG4sV2X"],["xIWsszZMug86","5m9VVvSb9_qg"],["-KnGDSr5S9Zl","QfJ5aJkmqr1e"],["9WFY72TbFeDT","kC58WijPCp-5"],["LI85nb9Ya5JT","JIwREiieai01"],["i1YaeUvs6cGf","M_rg9Lv8bXuX"],["9UNVkDlH87Fa","2u_EWfYU1K1L"],["i1m9rO_iBEoY","oLuB4BDWbMHy"],["ChOsyjp3cI9g","Jc32eWGymJXd"],["HpPRhYJLYEF8","B7PD1MrzXEvN"]]},"extensionsPageVersion":{"AppInsightsExtension":["1.0.20241219.2257","1.0.20250106.2349"],"AppPlatformExtension":["1.0.02867.308"],"AzureCacheExtension":["1.3.02875.422"],"AzureTfsExtension":["19.247.35422.10"],"Azure_Marketplace_Astronomer":["0.9.028731-484067"],"Azure_Marketplace_Confluent":["0.9.0287814-460370"],"Azure_Marketplace_Datadog":["2.2101.028732-8148805"],"Azure_Marketplace_Dell":["0.9.028251-109367"],"Azure_Marketplace_Dynatrace":["0.9.029281-38099"],"Azure_Marketplace_Elastic":["0.1.028752-867720"],"Azure_Marketplace_Informatica":["0.9.028801-5467"],"Azure_Marketplace_Liftr_Logz":["0.9.028681-288"],"Azure_Marketplace_Liftr_NewRelic":["0.9.028791-182848"],"Azure_MarketPlace_NativeISVService":["0.9.0287826-94422","0.9.0289527-2972966"],"Azure_Marketplace_Neon":["0.9.028611-398878"],"Azure_Marketplace_NGINX":["2.2101.028681-150416"],"Azure_Marketplace_PaloAltoNetworks_Cloudngfw":["1.0.0.241217-0719"],"Azure_Marketplace_PureStorage":["0.9.029231-085211","0.9.029291-4748"],"Azure_Marketplace_Qumulo":["0.1.028732-427870"],"Azure_Marketplace_SamplePartner":["0.9.026611-97"],"Azure_Marketplace_SolarWindsObservability":["0.9.028741-97813"],"Azure_Marketplace_SplitIO":["1.0.028671-84714"],"DxExtension":["14.216.1.114.216.0.19852.241025-1953"],"HubsExtension":["14.232.2.114.232.0.192030.241204-1800/Zibck4M3AFmV"],"Microsoft_AAD_AuthenticationMethods":["1.0.02811103"],"Microsoft_AAD_B2CAdmin":["1.1.721.0"],"Microsoft_AAD_ConditionalAccess":["1.0.02899807"],"Microsoft_AAD_Connect_Provisioning":["3.0.02892991"],"Microsoft_AAD_DecentralizedIdentity":["1.0.02885406"],"Microsoft_AAD_Devices":["1.0.02868505"],"Microsoft_AAD_DomainServices":["2.0.170.0"],"Microsoft_AAD_DXP":["1.0.02895.1329-"],"Microsoft_AAD_ERM":["1.2.870.355"],"Microsoft_AAD_HybridAuthentication":["1.0.02655.90"],"Microsoft_AAD_IAM":["3.0.029001752"],"Microsoft_AAD_IdentityProtection":["1.0.02872276"],"Microsoft_AAD_LifecycleManagement":["1.0.02901.244"],"Microsoft_AAD_RegisteredApps":["1.0.2896.1143"],"Microsoft_AAD_UsersAndTenants":["1.0.02892.1202-352"],"Microsoft_AzureCXP_BusinessReview":["0.1.4138"],"Microsoft_AzureCXP_Cpoe":["0.1.3992"],"Microsoft_AzureCXP_EngageHub":["0.1.4208"],"Microsoft_AzureCXP_EngageHubInsights":["0.1.4024"],"Microsoft_AzureCXP_EngageHub_Spaces":["0.1.3950"],"Microsoft_AzureCXP_EngageHub_Support":["0.1.4261-0001"],"Microsoft_AzureStackHCI_PortalExtension":["1.0.028923178"],"Microsoft_AzureStack_LabHardware":["1.0.850.0"],"Microsoft_Azure_ActivityLog":["3.0.02782.235"],"Microsoft_Azure_AD":["1.0.4309.0","1.0.4341.0"],"Microsoft_Azure_ADHybridHealth":["2.0.02872241"],"Microsoft_Azure_ADU":["3.0.0.4"],"Microsoft_Azure_AdvisorPortalExtension":["1.0.02850.280"],"Microsoft_Azure_AFDX":["1.8.028961464"],"Microsoft_Azure_AgFoodPlatform":["1.0.0.89"],"Microsoft_Azure_AnalysisServices":["1.2.2.63"],"Microsoft_Azure_Analytics":["1.0.02879.1"],"Microsoft_Azure_ANMVerifier":["1.0.02852.93-234","1.0.02872.101-22"],"Microsoft_Azure_AO5GC":["1.0.0.0-2404250546"],"Microsoft_Azure_AP5GC":["2-2410080600","2-2411130747"],"Microsoft_Azure_ApiManagement":["1.1008.0.1"],"Microsoft_Azure_APISecurity":["1.24.12.202016"],"Microsoft_Azure_AppComplianceAutomation":["202411190218"],"Microsoft_Azure_Appliance":["4.0.300.192","4.0.200.137"],"Microsoft_Azure_AppProtection":["1.0.02842.54","1.0.02920.114"],"Microsoft_Azure_ArcCenterUX":["1.0.60.0","1.0.63.0"],"Microsoft_Azure_ArcClusterUX":["1.0.1063.0","1.0.1060"],"Microsoft_Azure_ArcNetworking":["1.4.1.11"],"Microsoft_Azure_ASCInformationProtection":["1.24.12.221028"],"Microsoft_Azure_Attestation":["1.0.14.232.0"],"Microsoft_Azure_AutoManagedVirtualMachines":["1.0.02854.456"],"Microsoft_Azure_AutomaticAKS":["4.12.0.2879"],"Microsoft_Azure_Automation":["7.3.2932.0.241115-0022"],"Microsoft_Azure_AzConfig":["1.0.02872126-1"],"Microsoft_Azure_AzFleet":["5.13.393.1807-1729806492-","5.13.393.1893"],"Microsoft_Azure_Batch":["1.1.02927.368"],"Microsoft_Azure_BCDRCenter":["1.0.02858.1262"],"Microsoft_Azure_Billing":["24.11.02900.175-6330","1.0.02921.1159-120496"],"Microsoft_Azure_BotService":["1.4.1.400371"],"Microsoft_Azure_Capacity":["241122-0516"],"Microsoft_Azure_Cdn":["1.0.02902.416--68770"],"Microsoft_Azure_ChangeAnalysis":["1.0.02852.117"],"Microsoft_Azure_Chaos":["1.0.0-1.0.02859.2-20600","1.0.0-1.0.02923.1-96"],"Microsoft_Azure_ClassicResources":["1.0.10.153"],"Microsoft_Azure_Classic_Compute":["5.13.393.1659"],"Microsoft_Azure_CloudforSovereignty":["1.0.241025.2416"],"Microsoft_Azure_CloudHSM":["1.0.02853.220","1.0.02861.221"],"Microsoft_Azure_CloudNative":["5.13.393.1819","5.13.393.1873"],"Microsoft_Azure_CloudNativeTesting":["2024102820241028.1","2024102820241125.2"],"Microsoft_Azure_CloudPC":["1.0.241212.112391938"],"Microsoft_Azure_CloudServices":["5.13.393.1807-1729702289-"],"Microsoft_Azure_CloudServices_Arm":["5.13.393.1807-1729806510-"],"Microsoft_Azure_CloudTest":["2.0.20250107.1"],"Microsoft_Azure_CodeOptimizations":["1.0.02853.40"],"Microsoft_Azure_CodeSigning":["1.0.20241211.103"],"Microsoft_Azure_CommunicationServices":["1.0.20241216.2"],"Microsoft_Azure_CommunicationsGatewayExtension":["2.0.0.0"],"Microsoft_Azure_CommunityTraining":["1.0.8.1"],"Microsoft_Azure_ComplianceCenter":["1.0.0.20250107064429"],"Microsoft_Azure_Compute":["5.13.393.1807-1733508958-","5.13.393.1893"],"Microsoft_Azure_ComputeHub":["5.13.393.1807","5.13.393.1893"],"Microsoft_Azure_ConfidentialLedger":["23.3.7.2"],"Microsoft_Azure_ConfigManager":["20241204.2"],"Microsoft_Azure_ContainerInsightsExt":["2.0.20241023.2014","2.0.20250107.2318"],"Microsoft_Azure_ContainerRegistries":["1.0.20240829.9"],"Microsoft_Azure_ContainerService":["4.60.1.101/1EqRKWy2d0SP","5.13.393.1894/vI1KG2-BOeC1"],"Microsoft_Azure_ContainerStorage":["5.13.393.1697","5.13.393.1698"],"Microsoft_Azure_Copilot":["1.311.02882.591","1.200.02872.577"],"Microsoft_Azure_CostManagement":["241204-0558"],"Microsoft_Azure_CreateUIDef":["1.0.300.338","1.0.200.604"],"Microsoft_Azure_CtsExtension":["1.2.1.0"],"Microsoft_Azure_CustomerHub":["1.0.300.165","1.0.300.167"],"Microsoft_Azure_Dashboard":["2.0.1890.0"],"Microsoft_Azure_DatabaseInsights":["1.0.02854.428"],"Microsoft_Azure_Databricks":["1.0.02855.267"],"Microsoft_Azure_DataCollaboration":["2.0.20230315-0800"],"Microsoft_Azure_DataFactory":["1.0.20241024.1"],"Microsoft_Azure_DataLakeAnalytics":["20240906.1"],"Microsoft_Azure_DataLakeStore":["5.13.393.1735"],"Microsoft_Azure_DataProtection":["241029-102415"],"Microsoft_Azure_DataShare":["2.0.20241211-0201","2.0.20241211-0102"],"Microsoft_Azure_Dedicated_ClusterStor":["240909-1921"],"Microsoft_Azure_Dedicated_Cray":["240909-1921"],"Microsoft_Azure_Dedicated_Monitoring":["240909-1921"],"Microsoft_Azure_DetonationService":["2.00.00.03"],"Microsoft_Azure_DevCenter":["14.170.0.1.241114-1814"],"Microsoft_Azure_DeviceRegistry":["1.0.02871.97-111120"],"Microsoft_Azure_DeviceUpdate":["1.0.02843.128-101415"],"Microsoft_Azure_DevOpsInfrastructure":["1.0.20250107.1"],"Microsoft_Azure_DevTestLab":["14.170.0.1.241127-2113"],"Microsoft_Azure_DevTunnels":["1.0.231005.2128","1.0.230613.1659"],"Microsoft_Azure_DigitalTwins":["1.0.02829.187-093022"],"Microsoft_Azure_DiskMgmt":["5.13.393.1804-1730162051-","5.13.393.1893"],"Microsoft_Azure_DMS":["5.1.6396.3"],"Microsoft_Azure_DNS":["1.0.02867.222","1.0.02928.243"],"Microsoft_Azure_DNSManagedResolver":["1.0.02816.276","1.0.02927.282"],"Microsoft_Azure_DnsSecurityPolicy":["1.0.02878.100"],"Microsoft_Azure_DocumentDB":["2.0.20241115.7.0","2.0.20250101.1.0"],"Microsoft_Azure_DocumentManagement":["1.0.02852.2"],"Microsoft_Azure_Ea":["20241212.2"],"Microsoft_Azure_EASM":["1.0.02900.1469"],"Microsoft_Azure_ECE":["1.0.02748.15-652409","1.0.02844.22-206"],"Microsoft_Azure_EdgeAIExtension":["1.0.02908.28"],"Microsoft_Azure_EdgeGateway":["1.0.02825.1545"],"Microsoft_Azure_EdgeManagementCopilot":["1.0.02854.246"],"Microsoft_Azure_EdgeOrder":["1.0.02894393"],"Microsoft_Azure_Education":["2024.11.26-1726"],"Microsoft_Azure_ElasticSan":["5.13.393.1807-1731535885-","5.13.393.1893"],"Microsoft_Azure_ELMAdmin":["2.77.02911.2151"],"Microsoft_Azure_EMA":["2.41028.1.6","2.41028.1.12"],"Microsoft_Azure_EmailCommunicationServices":["66616971"],"Microsoft_Azure_EpicManagement":["1.2.10205.10621"],"Microsoft_Azure_EventGrid":["2.0.02871.233"],"Microsoft_Azure_EventHub":["2.0.02879.345"],"Microsoft_Azure_Experimentation":["2.0.02895.64"],"Microsoft_Azure_Expert":["1.20241028.1","1.20241101.1"],"Microsoft_Azure_ExpressPod":["1.0.0"],"Microsoft_Azure_FairfieldGardens":["1.0.02837.66-100800"],"Microsoft_Azure_FileShare":["5.13.393.1803","5.13.393.1864"],"Microsoft_Azure_FileStorage":["5.13.393.1803","5.13.393.1851"],"Microsoft_Azure_FIST":["2024.10.02.160055","2024.06.13.181824"],"Microsoft_Azure_FlowLog":["2.0.0.306.241021-2045"],"Microsoft_Azure_FluidRelay":["1.0.2.4.241014-1713"],"Microsoft_Azure_Frontdoor":["1.0.02793.355--71340517","1.0.02858.386--179125"],"Microsoft_Azure_GeneratedExtension":["1.200.02858.681"],"Microsoft_Azure_GlobalView":["1.0.0.5"],"Microsoft_Azure_GraphDataConnect":["1.20241010.6.0"],"Microsoft_Azure_GTM":["24.12.02904.389-3707","1.0.02913.2615-10063"],"Microsoft_Azure_HDInsight":["1.0.02859.1610"],"Microsoft_Azure_Health":["1.1.1.465","1.1.1.469"],"Microsoft_Azure_HealthBot":["1.0.0.112"],"Microsoft_Azure_HealthDataDeidentification":["1.0.49698.1"],"Microsoft_Azure_HealthModels":["0.2023.78.333"],"Microsoft_Azure_HybridCompute":["1.0.4277.0","1.0.4301.0"],"Microsoft_Azure_HybridData_Platform":["1.0.02901.212"],"Microsoft_Azure_HybridNetworking":["24.8.0.63-241023-2106"],"Microsoft_Azure_IacAutomation":["0.0.1.241017-0944","0.0.1.241018-0643"],"Microsoft_Azure_IdentityGovernance":["1.0.02871.241"],"Microsoft_Azure_IndustrySolutionCenter":["1.0.241111-0553"],"Microsoft_Azure_IoTCentral":["2.0.9070.41921"],"Microsoft_Azure_IotHub":["1.0.02860.545-103117"],"Microsoft_Azure_IoTOperations":["1.0.02881.174-112117"],"Microsoft_Azure_IoT_Defender":["2025-01-01--11-26-39"],"Microsoft_Azure_IPAddressManager":["1.0.02859.150-2636459"],"Microsoft_Azure_Kailani":["5.13.393.1803-1733785378-","5.13.393.1893"],"Microsoft_Azure_KeyVault":["1.2.298.0.241021-1530"],"Microsoft_Azure_Kusto":["1.0.2418.0"],"Microsoft_Azure_LocationServices":["3.0.02871.271"],"Microsoft_Azure_Lockbox":["2.62.0.0"],"Microsoft_Azure_Maintenance":["5.13.393.1807-1729702031-","5.13.393.1893"],"Microsoft_Azure_ManagedHSM":["1.0.02861.409-262501","1.0.02928.482-8060"],"Microsoft_Azure_ManagedLab":["14.226.0.1.241231-1943"],"Microsoft_Azure_ManagedNetwork":["1.0.02859.162-866","1.0.02928.190-2135"],"Microsoft_Azure_ManagedServiceIdentity":["2.1.8974.0"],"Microsoft_Azure_ManagedStorageClass":["1.4.0.202410290745","1.4.0.202411050815"],"Microsoft_Azure_Marketplace":["50.0.02899.41-23270","30.0.02928.35-02549"],"Microsoft_Azure_MarketplaceTransact":["1.0.20241212.4173"],"Microsoft_Azure_Media":["1.0.1421.0"],"Microsoft_Azure_Migrate":["1.0.10.509"],"Microsoft_Azure_MigrateAssessment":["1.0.10.4"],"Microsoft_Azure_MigrateModernization":["1.51.1240903.11134"],"Microsoft_Azure_MLTeamAccounts":["1.0.0.241219-2106"],"Microsoft_Azure_ModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_Monitoring":["22.20241030.2.0.02859.431"],"Microsoft_Azure_MonitoringMetrics":["2.0.20241017.1618","2.0.20250107.1715"],"Microsoft_Azure_Monitoring_Alerts":["1.0.02824.1331","1.0.02891.1370"],"Microsoft_Azure_NetApp":["2407.3.0.1"],"Microsoft_Azure_Network":["5.13.393.1821","5.13.393.1863"],"Microsoft_Azure_NetworkCloud":["5.9.0","5.858.0-1"],"Microsoft_Azure_NetworkCopilot":["1.0.02927.120-5797234"],"Microsoft_Azure_NetworkCopilotExtension":["1.0.02927.52-9799"],"Microsoft_Azure_NetworkingCopilot":["1.0.02873.108-2"],"Microsoft_Azure_NetworkSecurityPerimeter":["1.35.0.185"],"Microsoft_Azure_Network_Access":["1.0.02923.1585"],"Microsoft_Azure_NotificationHubs":["20241218.3.241218-1139"],"Microsoft_Azure_OneInventory":["1.0.02887.222"],"Microsoft_Azure_OneMigrate":["1.0.10.44"],"Microsoft_Azure_OpenEnergyPlatform":["1.0.206"],"Microsoft_Azure_OperationsMgr":["1.2.361.0"],"Microsoft_Azure_OpsMQ":["1.0.02734.96-062721"],"Microsoft_Azure_Orbital":["2024.10.02923.509"],"Microsoft_Azure_OSSDatabases":["2.1.02859122"],"Microsoft_Azure_PaasServerless":["5.246.1.3","5.247.0.2"],"Microsoft_Azure_Peering":["1.2.0.255"],"Microsoft_Azure_PIMCommon":["0.0.0.961"],"Microsoft_Azure_PinToGrafana":["1.2.154.1"],"Microsoft_Azure_Playground":["14.115.4.1"],"Microsoft_Azure_PlaywrightService":["1.0.0.43"],"Microsoft_Azure_Policy":["1.0.9.704"],"Microsoft_Azure_PortalDashboard":["1.100.02850.547","1.100.02928.557"],"Microsoft_Azure_PowerBIDedicated":["1.1.2823.1"],"Microsoft_Azure_PowerPlatform":["0.0.0.72"],"Microsoft_Azure_PrivateDNS":["1.0.02875.231","1.0.02928.241"],"Microsoft_Azure_PrivateModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_ProgrammableConnectivity":["1.1.74","2.111.0-1"],"Microsoft_Azure_ProjectBabylon":["1.0.20241226.422","1.0.20240729.400"],"Microsoft_Azure_ProjectOxford":["241205-0551"],"Microsoft_Azure_Quantum":["1.11.2.4"],"Microsoft_Azure_RecommendationsService":["9.32.02744.262"],"Microsoft_Azure_RecoveryServices":["3.40.2411.283"],"Microsoft_Azure_Relay":["2.0.02851.179"],"Microsoft_Azure_Reservations":["11.19.2024.2050"],"Microsoft_Azure_ResourceMove":["1.1.10909.10739"],"Microsoft_Azure_Resources":["1.0.100.1000","1.0.100.1015"],"Microsoft_Azure_RpExt":["2.0.0.0"],"Microsoft_Azure_SaasHub":["1.0.02894.57-032"],"Microsoft_Azure_SapHanaInstances":["1.0.50.147"],"Microsoft_Azure_SAPManagement":["2.1.11015.10506"],"Microsoft_Azure_SAPMigrate":["1.2.10908.12138"],"Microsoft_Azure_Search":["149376413.20241114.1"],"Microsoft_Azure_Security":["1.25.01.072002"],"Microsoft_Azure_Security_AzureDefenderForData":["1.25.01.061251"],"Microsoft_Azure_Security_CloudNativeCompute":["1.24.12.311812"],"Microsoft_Azure_Security_DevOps":["1.25.01.032223"],"Microsoft_Azure_Security_Insights":["1.0.02923.465-250102-085937","1.0.02928.466-250107-093237"],"Microsoft_Azure_Security_IoT":["2024-12-29--08-15-43"],"Microsoft_Azure_Security_R3":["1.25.01.071638"],"Microsoft_Azure_SentinelUS":["1.0.02924.5502-250103-1623","1.0.02929.5517-250108-1419"],"Microsoft_Azure_ServiceBus":["2.0.02878.214"],"Microsoft_Azure_ServiceFabric":["5.13.393.1807-1729806504-"],"Microsoft_Azure_ServiceHub":["1.300.02860.75"],"Microsoft_Azure_SignalR":["1.0.02880.70--9565"],"Microsoft_Azure_SiteManager":["1.0.02888620"],"Microsoft_Azure_SiteRecovery":["1.51.12410.198"],"Microsoft_Azure_SolutionCenter":["5.13.393.1780","5.13.393.1875"],"Microsoft_Azure_Sphere":["2.0.25002.2"],"Microsoft_Azure_SpringApps":["20241218.1"],"Microsoft_Azure_Stack_Migrate":["2.241101.1914.1"],"Microsoft_Azure_Storage":["5.13.393.1803-1730161979-","5.13.393.1893"],"Microsoft_Azure_StorageCache":["1.1.0.1109"],"Microsoft_Azure_StorageInsights":["4.13.393.1126"],"Microsoft_Azure_StorageMover":["5.13.393.1803","5.13.393.1893"],"Microsoft_Azure_StorageTasks":["5.13.393.1803-1729816167-","5.13.393.1893"],"Microsoft_Azure_StreamAnalytics":["20241119.2"],"Microsoft_Azure_SubscriptionManagement":["1.0.02899.236.20241209-1952"],"Microsoft_Azure_Support":["1.580.20241107.1","1.580.20241029.1"],"Microsoft_Azure_Surface":["2.56.0"],"Microsoft_Azure_Sustainability":["1.0.1.173"],"Microsoft_Azure_Synapse":["1.0.02875.5"],"Microsoft_Azure_TemplateSpecs":["1.0.1.91"],"Microsoft_Azure_Toolbox":["2.0.02847.298"],"Microsoft_Azure_UsageBilling":["1.0.02805.11"],"Microsoft_Azure_VirtualEnclaves":["2.1.235.0"],"Microsoft_Azure_VirtualVisitsBuilder":["1.0.0.20240509190151576"],"Microsoft_Azure_VnfManager":["1.9.0","1.79.0-1"],"Microsoft_Azure_WaveMigration":["1.0.10.6"],"Microsoft_Azure_WhatsNew":["1.0.02900138"],"Microsoft_Azure_Winfields":["1.0.028335"],"Microsoft_Azure_WorkbooksExtension":["1.24.02857.421","1.24.02860.423"],"Microsoft_Azure_WorkloadInsight":["1.0.02819.95"],"Microsoft_Azure_WorkloadInsights":["2.0.20241008.1902","2.0.20241030.1727"],"Microsoft_Azure_WorkloadMonitor":["1.2.10924.10947","3.1.10107.10723"],"Microsoft_Azure_WVD":["1.0.02893.601"],"Microsoft_Bing_Api":["241212-1134"],"Microsoft_CloudHealth_HealthModels":["1.0.02907.87"],"Microsoft_Cognition_MixedReality":["36.0.0.0"],"Microsoft_ConnectedCache":["1.0.3.11"],"Microsoft_ConnectedCache_Ent":["1.0.0.2.25"],"Microsoft_ConnectedCache_Enterprise":["1.0.0.1.15"],"Microsoft_ConnectedCache_ISP":["1.0.0.1.48"],"Microsoft_EMM_ModernWorkplace":["1.2412.201.02"],"Microsoft_Entra_PM":["2025.1.7.1"],"Microsoft_Entra_PMAnalytics":["2024.10.11.1-105554065"],"Microsoft_Entra_PMDashboard":["2024.11.20.1-108585238"],"Microsoft_Healthcare_APIs":["1.0.554184.1","1.0.554553.1"],"Microsoft_Intune":["1.2412.15.3002.241216-2320"],"Microsoft_Intune_Apps":["2.2412.39.3002.241214-1836"],"Microsoft_Intune_DeviceExplorer":["1.0.241205.054721"],"Microsoft_Intune_Devices":["6.2412.38.3005.241218-1933"],"Microsoft_Intune_DeviceSettings":["1.2412.75.3011.250103-2300"],"Microsoft_Intune_Edu":["6.2412.14.3003.241216-2006"],"Microsoft_Intune_Enrollment":["7.2412.45.3003.241216-2046"],"Microsoft_Intune_MTM":["6.2410.1.50"],"Microsoft_Intune_Workflows":["1.2412.82.3002.241217-0650"],"Microsoft_ManufacturingPlatform_DMM":["19.11.2024"],"Microsoft_Marketplace_SolutionFinder":["1.0.20250108.1"],"Microsoft_OneFleet_DataHub":["1.0.02859.268"],"Microsoft_OperationsManagementSuite_Workspace":["3.0.02881.2173","3.0.02920.2221"],"Microsoft_Research_Genomics":["1.0.0.13929"],"Microsoft_Security_Copilot":["93"],"Microsoft_ServicesHub_Extension":["5.5.9.0"],"Microsoft_VideoIndexer":["1.0.02860.1-241031"],"Oracle_Databases_At_Azure":["1.164.0"],"ScanX_Management":["3.0.0.3"],"ServiceLinkerExtension":["2.0.20250106.1"],"SqlAzureExtension":["2.1.02901237"],"Universal_Print":["3.20241115.2"],"VLCentral_Agreement":["1.0.02903.1"],"VLCentral_Amendments":["1.0.02881.26"],"VLCentral_Approval":["1.0.02929.1"],"VLCentral_CaseManagement":["1.0.02879.2"],"VLCentral_HelpAndSupport":["1.0.02896.1"],"VLCentral_Home":["1.0.02894.1"],"VLCentral_OrderCredits":["1.0.02903.2","1.0.02894.2"],"VLCentral_Ordering":["15.0.02928.1"],"VLCentral_OrganizationManagementService":["1.0.02857.2"],"VLCentral_Platform":["1.0.02899.1"],"VLCentral_Quote":["1.0.02903.1"],"VLCentral_ReportingNAnalytics":["1.0.02896.1"],"VLCentral_UUM":["1.0.02865.54"],"VMCP":["1.2.02857.915","1.2.02866.925"],"WandiscoExtension":["1.14.16.0"],"WebsitesExtension":["5.246.3.3","5.247.0.2"]}},"signinUri":"/signin/idpRedirect.js/","errorUri":"/Error","unsupportedUri":"/Error/UE_Unsupported","applicationPath":"","supportedLanguages":["en","cs","de","es","fr","hu","id","it","ja","ko","nl","pl","pt-br","pt-pt","ru","sv","tr","zh-hans","zh-hant","qps-ploc"],"portalClientId":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c","authority":"https://login.microsoftonline.com/","armAadResource":"https://management.core.windows.net/","tokenLifetimeClockSkewIntervalInMs":300000.0,"graphEndpoint":"https://graph.windows.net","orgIdChangePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522342","changePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522343","isAdfs":false,"roleIdForCompanyAdmin":"62e90394-69f5-4237-9190-012177145e10"},"portalServerMsalJsConfig":{"site_id":"501430","cobrandid":null,"msafed":null,"nativeBroker":0}});
4
+ </script></body></html>
download.htm ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ <!DOCTYPE html><html><head><meta charset='utf-8'/><title>Microsoft Azure</title></head><body><script>"use strict";var FxImpl,__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__createBinding,__addDisposableResource,__disposeResources,MsPortalImpl;!function(e){let t,r;try{t=window.localStorage,r=window.sessionStorage}catch(e){}e.localStorage=t,e.sessionStorage=r}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getOrSetBootParameters=function(e,t){if(1===arguments.length)return e.sessionStorage.getItem("Redirect_BootParameters")||e.localStorage.getItem("Redirect_BootParameters");e.sessionStorage.setItem("Redirect_BootParameters",t),e.localStorage.setItem("Redirect_BootParameters",t)}}(MsPortalImpl||(MsPortalImpl={})),function(e){e.getTenantFromPath=function(e,t){const r=e.split("/").filter((e=>e));let n="";if(1===r.length?n=r[0]:e.startsWith("/auth/login")&&3===r.length&&(n=r[2]),n){const e=n.replace(/^@*/,""),r=/^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/i;if(/^@?(?:(?:[a-z0-9]|[a-z0-9][a-z0-9-]{0,61}[a-z0-9])\.)+[a-z0-9]+|common$/i.test(e)||r.test(e))return t?"@"+e:e}return""}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t=new Uint8Array(20),r=new Array(20);function n(e,r,n){var o=t[e]&r;t[e]=o|n}var o=window.crypto||window.msCrypto,a="0123456789abcdef".split(""),s=new Array(256),i=0;function c(){var e=function(e){for(var t,r=new Array(e);e;){t=4294967296*Math.random()|0;for(var n=8;n--;){if(r[--e]=a[15&t],e<0)return r;t>>>=4}}}(36);return e[8]=e[13]=e[18]=e[23]="-",e[14]="4",e[19]=a[8+(3&a.indexOf(e[19]))],e.join("")}a.forEach((function(e){a.forEach((function(t){s[i++]=e+t}))})),e.createGuid=function(e,a){void 0===a&&(a=!1);var i=o?function(){o.getRandomValues(t),n(8,15,64),n(11,63,128);for(var e=0;e<20;e++)r[e]=s[t[e]];return r[4]=r[7]=r[10]=r[13]="-",r.join("")}():c();return i=a?i.split("-").join("").substring(0,32):i.substring(0,36),(e?"".concat(e,"_"):"")+i}}(FxImpl||(FxImpl={})),function(e){e.supportedLanguagesNeutralLocales={de:"de-de",en:"en-us",es:"es-es",fr:"fr-fr",it:"it-it",id:"id-id",hu:"hu-hu",nl:"nl-nl",pl:"pl-pl","pt-br":"pt-br","pt-pt":"pt-pt",sv:"sv-se",tr:"tr-tr",cs:"cs-cz",ru:"ru-ru","zh-hans":"zh-cn","zh-hant":"zh-hk",ja:"ja-jp",ko:"ko-kr"};const t={"zh-hk":"zh-hant","zh-tw":"zh-hant","zh-cht":"zh-hant","zh-mo":"zh-hant",zh:"zh-hans",pt:"pt-br"};function r(e){const t=[];for(let r=(e=e||"").length;r>0;r=e.lastIndexOf("-",r-1))t.push(e.substring(0,r));return t}e.sanitizeLanguage=function(t,r){const n=(t||"").toLowerCase().split(".");if(r.includes(n[0])||(n[0]=r[0]),n.length<2){const t=e.supportedLanguagesNeutralLocales[n[0]];t&&(n[1]=t)}return n.join(".")},e.getBrowserLanguage=function(n){const o=(n||navigator.languages||[]).map((e=>e?.toLowerCase?.()));for(const n of o){const o=r(n);for(const r of o){const o=t[r]||r;if(o in e.supportedLanguagesNeutralLocales){const t=o;return`${t}.${n.split("-").length>1?n:e.supportedLanguagesNeutralLocales[t]}`}}}}}(MsPortalImpl||(MsPortalImpl={})),function(e){let t=window;function r(e){return e&&e.replace(/^\?/,"")}function n(e){return e&&r(e).split("&").map((e=>e.split("=")))||[]}function o(e,t){const r=e.map((e=>e[0]&&e.join("=")));return t&&r.sort(),r.join("&")}function a(e,t,r){if(t=t.toUpperCase(),e)for(let n=0;n<e.length;n++)if(e[n][0].toUpperCase()===t)return r?e.splice(n,1)[0][1]:e[n][1]}function s(){return JSON.parse(e.getOrSetBootParameters(e)||"{}")}function i(e){return a(n(s().userQuery),e)}function c(e){if(!e||e.startsWith("/"))return c(`${t.location.protocol}//${t.location.host}`);const r=/^(\w+:\/\/)([^:/?]+)([^/?]+)?/.exec(e),n=r[3]||("https://"===r[1]?":443":":80");return r[2]+n}function l(t,s,l,u){l=l||"",u=u||{};let f="";if(t&&c()===c(t))f=function(t,r,s){const c=n(t),l=e=>{Object.keys(e).forEach((t=>{t&&e[t]&&"string"!=typeof a(c,t)&&c.push([t,e[t]])}))};if(l(JSON.parse(e.localStorage.getItem("Redirect_LocaleQuery")||"{}")),l({l:e.localStorage.getItem("Redirect_LastUsedLocale")}),r.env){const t={},n=(n,o,a)=>{o=o||["true","false"];const s=n+(a||"");let c=i(n)||r[n];c||(c=e.localStorage.getItem(s)+"",o.includes(c)||(c=o[Math.floor(Math.random()*o.length)],e.localStorage.setItem(s,c))),t[n]=c},o=new Array(100);o.fill("DefaultPartitioner",0,100),n("bundlingKind",o,"12"),l(t)}l(r),["signIn","clearedStorage"].forEach((e=>{a(c,e,!0)}));const u=a(c,"l",!0)||e.getBrowserLanguage();return l({l:e.sanitizeLanguage(u,s)}),o(c,!0)}(l,u,s);else{const e=u.loginHint;e&&(l+=l?"&":"",l+=`loginHint=${e}`),f=r(l)}return f&&(t+=t.includes("?")?"&":"?",t+=f),t}e.parseQuery=n,e.extractValueFromQueryString=function(e,t){return a(e,t,!1)},e.getFirstQueryValue=a,e.getBootParameters=s,e.trySaveAllowedState=function(r,n,i,c){if(!e.getOrSetBootParameters(e)||i){["selectAccount","loginHint","signInParameters","forcesignin","nonceErrorSeen","signIn","slice","mfalogin"].forEach((e=>{a(n,e,!0)}));const i=/#.*|$/.exec(t.location.href)[0];let l;i.startsWith("#code=")?(l=s(),l.msalHash=i):l={environment:r,userQuery:o(n),portalQuery:c,hash:i,msalHash:void 0},e.getOrSetBootParameters(e,JSON.stringify(l))}},e.savePageTelemetry=function(r){const n=t.performance&&t.performance.timing;if(n){const t={id:r,fetchStart:n.fetchStart,requestStart:n.requestStart,responseStart:n.responseStart,responseEnd:n.responseEnd,domComplete:n.domComplete};e.sessionStorage.setItem(`PageTelemetry_${r}`,JSON.stringify(t))}},e.getUserQueryValue=i,e.getPortalUri=function(e,t,r){r=r||{};const n=s(),o=n.hash||"";return l(e,t,r.userQuery||n.userQuery,r.portalQuery||n.portalQuery)+o},e.getPortalEnv=function(){return location.hostname.split(".")[0].toLowerCase()}}(MsPortalImpl||(MsPortalImpl={})),function(e){var t="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(e,r){return e!==t&&("function"==typeof Object.create?Object.defineProperty(e,"__esModule",{value:!0}):e.__esModule=!0),function(t,n){return e[t]=r?r(t,n):n}}"function"==typeof define&&define.amd?(
2
+ define("tslib",["exports"],(function(n){e(r(t,r(n)))})),require(["tslib"])):"object"==typeof module&&"object"==typeof module.exports?e(r(t,r(module.exports))):e(r(t))}((function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};__extends=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){Object.defineProperty(this,"constructor",{configurable:!0,value:e,writable:!0})}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)},__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__rest=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},__decorate=function(e,t,r,n){var o,a=arguments.length,s=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(s=(a<3?o(s):a>3?o(t,r,s):o(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s},__param=function(e,t){return function(r,n){t(r,n,e)}},__esDecorate=function(e,t,r,n,o,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,c=n.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?n.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),p=!1,_=r.length-1;_>=0;_--){var d={};for(var y in n)d[y]="access"===y?{}:n[y];for(var y in n.access)d.access[y]=n.access[y];d.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var m=(0,r[_])("accessor"===c?{get:f.get,set:f.set}:f[l],d);if("accessor"===c){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(i=s(m.get))&&(f.get=i),(i=s(m.set))&&(f.set=i),(i=s(m.init))&&o.unshift(i)}else(i=s(m))&&("field"===c?o.unshift(i):f[l]=i)}u&&Object.defineProperty(u,n.name,f),p=!0},__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o<t.length;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0},__propKey=function(e){return"symbol"==typeof e?e:"".concat(e)},__setFunctionName=function(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function i(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}c((n=n.apply(e,t||[])).next())}))},__generator=function(e,t){var r,n,o,a,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(s=0)),s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},__exportStar=function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__createBinding=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},__values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s},__spread=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e},__spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],s=0,i=a.length;s<i;s++,o++)n[o]=a[s];return n},__spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},__await=function(e){return this instanceof __await?(this.v=e,this):new __await(e)},__asyncGenerator=function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),a=[];return n={},s("next"),s("throw"),s("return",(function(e){return function(t){return Promise.resolve(t).then(e,l)}})),n[Symbol.asyncIterator]=function(){return this},n;function s(e,t){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||i(e,t)}))},t&&(n[e]=t(n[e])))}function i(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}},__asyncDelegator=function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var r=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};__importStar=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return r(t,e),t},__importDefault=function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet=function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},__classPrivateFieldIn=function(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)},__addDisposableResource=function(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose]}if("function"!=typeof n)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t};var n="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};__disposeResources=function(e){function t(t){e.error=e.hasError?new n(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function r(){for(;e.stack.length;){var n=e.stack.pop();try{var o=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(o).then(r,(function(e){return t(e),r()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()},e("__extends",__extends),e("__assign",__assign),e("__rest",__rest),e("__decorate",__decorate),e("__param",__param),e("__esDecorate",__esDecorate),e("__runInitializers",__runInitializers),e("__propKey",__propKey),e("__setFunctionName",__setFunctionName),e("__metadata",__metadata),e("__awaiter",__awaiter),e("__generator",__generator),e("__exportStar",__exportStar),e("__createBinding",__createBinding),e("__values",__values),e("__read",__read),e("__spread",__spread),e("__spreadArrays",__spreadArrays),e("__spreadArray",__spreadArray),e("__await",__await),e("__asyncGenerator",__asyncGenerator),e("__asyncDelegator",__asyncDelegator),e("__asyncValues",__asyncValues),e("__makeTemplateObject",__makeTemplateObject),e("__importStar",__importStar),e("__importDefault",__importDefault),e("__classPrivateFieldGet",__classPrivateFieldGet),e("__classPrivateFieldSet",__classPrivateFieldSet),e("__classPrivateFieldIn",__classPrivateFieldIn),e("__addDisposableResource",__addDisposableResource),e("__disposeResources",__disposeResources)})),function(e){let t=window,r=t.document,n=t.location,o=r.body;function a(e){return(e||"")+""}e.stringify=a;let s=a(navigator&&navigator.userAgent);function i(e,t){return e.includes(t)}const c=JSON.stringify,l=encodeURIComponent;e.cobrand=function(){};const u="Redirect_SomeRandomKey";function f(e){const t=i(s,"Windows");if((i(s,"Macintosh; Intel")||t)&&i(s,"Safari")&&!i(s,"Chrome")&&function(e){if(i(s,e)){const t=new RegExp(`\\s${e}/(\\d+)[\\.\\s$]`).exec(s),r=a(t&&t[1]);return parseInt(r,10)}}("Version")<=11)return e+"?reason=isSafari";const n=!!r.documentMode,o=/Trident\//i.test(s),c=i(s,"MSIE"),l=!Array.prototype.find;return n||o||c||l?e+"?reason=isIE":Promise&&Promise.prototype.finally&&Promise.allSettled&&Promise.any?"":e+"?reason=promise"}function p(e){return _("clearedStorage=true",`${e}/Html5StorageExceeded`,!0)}function _(t,r,o){return n.search.includes(t)?r:(o&&(e.localStorage.clear(),e.sessionStorage.clear()),(n.search&&n.search+"&"||"?")+t+n.hash)}function d(e,t){if(void 0!==e)return e;if(t&&t.startsWith("flight:")){const e=parseFloat(t.split(":")[1]);return Math.random()<e?"true":"false"}return t}e.redirect=async function(s){const i=s.portalServerConfig,y=s.portalServerFeatures,m=i.errorUri;if("true"===e.localStorage.getItem("MsalJsV3")?e.sessionStorage.setItem("MsalJsV3","true"):e.sessionStorage.removeItem("MsalJsV3"),"aad.portal.azure.com"===n.hostname.toLowerCase()&&["","#","#home"].includes(n.hash.toLowerCase()))return void(n.href=`https://entra.microsoft.com${n.pathname||""}${n.search||""}#view/Microsoft_AAD_IAM/TenantOverview.ReactView`);let h;try{const l=function(t){let r;try{[e.localStorage,e.sessionStorage].forEach((e=>{if(r=e.length,e.setItem(u,u),u!==e.getItem(u))throw u;e.removeItem(u)}))}catch(e){return 22===e.code&&r?p(t):_("storagepolyfill=true",`${t}/UE_NoHtml5Storage`)}}(m),g=i.portalQuery,v=i.applicationPath,w=i.supportedLanguages,b=e.parseQuery(t.location.search),S=[...b],I=i.unsupportedUri,P=(t,r)=>d(e.extractValueFromQueryString(S,"feature."+t),r),O=t=>e.getFirstQueryValue(S,t,!0);if(h=f(I)||function(e){return t.Intl?"":e+"?reason=intl"}(I)||l,!h){const l=e.sessionStorage,u=e.localStorage;u.removeItem("signOutAll");const f=O("Referrer");g.env=e.getPortalEnv(),"true"===O("feature.armbreakglass")&&l.setItem("Redirect_ArmBreakGlass","true");const p=O("sessionId"),_=FxImpl.createGuid(p,!0);l.setItem("Redirect_SessionId",_),e.trySaveAllowedState(i.environment,S,!0,g),e.savePageTelemetry("EntryPoint"),l.setItem("Redirect_Referrers",c([a(r.referrer),a(f)]));const I=`${n.protocol}//${n.host}${v}`,j=function(t,r){const n=[];return Object.keys(r).forEach((o=>{const a="feature."+o,s=d(e.extractValueFromQueryString(t,a),r[o]);s&&n.push(`${a}=${s}`)})),n.join("&")}(S,{settingsportalinstance:y.settingsPortalInstanceValue,inmemorysettings:y.inMemorySettingsValue,argsubscriptions:y.argSubscriptionsValue,showservicehealthalerts:y.showServiceHealthAlertsValue,prefetchtokens:y.prefetchTokensValue,internalgraphapiversion:y.internalGraphApiVersionValue,cae:y.caeValue,selftoken:y.selfTokenValue,globalresourcefilter:y.globalResourceFilterValue,msaljs:y.msalJsValue,fetchpolicyforrestypes:y.fetchPolicyForResTypesValue,testcrosscloudpuid:y.testCrossCloudPuidValue,useredirecthint:y.useRedirectHintValue,usetenanthint:y.useTenantHintValue,nativebroker:y.nativeBrokerValue,msaljswithfallback:y.msalJsWithFallbackValue});let E=e.getTenantFromPath(n.pathname,!0);const x=u.getItem("preferredPortalUri"),R=parseInt(function(e,t){const r=e.getItem(t);return e.removeItem(t),r}(l,"Redirect_PreferredPortalRedirectCount"))||0,T=P("useredirecthint",y.useRedirectHintValue),V=P("msaljs",y.msalJsValue);if(!E&&function(t){const r=e.sessionStorage.getItem("authState");if(r){try{const n=JSON.parse(r),o=n?.oAuthToken;let a=0;o?.authHeader&&(a=o.expiresAt);let s=o&&a>=Date.now();const i=n?.selfOAuthToken;if(i?.authHeader&&(s=s&&(i.expiresAt||0)>=Date.now()),s=t?s&&!!n.isInitializedUsingSpaAuthCode:s&&!!n.refreshToken,s)return e.localStorage.removeItem("authState"),!0}catch(e){}e.sessionStorage.removeItem("authState")}return!1}("true"===V))h=e.getPortalUri(I,w);else if("true"===T&&x&&x!==n.hostname&&!(S||[]).length&&!E&&R<3)l.setItem("Redirect_PreferredPortalRedirectCount",R+1+""),h=e.getPortalUri(x,w,{portalQuery:i.portalQuery});else{let r=parseInt(l.getItem("Redirect_IdpRedirectCount"))||0;E=/^#@([^/]*)|$/.exec(/#.*|$/.exec(t.location.href)[0])[1]||E;const c=P("usetenanthint",y.useTenantHintValue);let f="";const p=u.getItem("tenantHint");if("true"===c&&p&&(f=`&tenantHint=${p}`,u.removeItem("tenantHint"),l.setItem("usedTenantHint",p)),"true"===e.localStorage.getItem("MsalJsLoginEnabled"))try{let t=E.startsWith("@")?E.substring(1):E;t=t||"organizations";const r={armAadResource:i.armAadResource,authority:i.authority,forceSignInQueryStringValue:e.extractValueFromQueryString(b,"forcesignin")||"",portalClientId:i.portalClientId,portalRequestedTenantInfo:{id:t,domainName:"",displayName:""}};await e.loginUsingMsalJs({isNativeBrokerEnabled:e.useMsalJsV3InCurrentSession()&&"true"===P("nativebroker",y.nativeBrokerValue),portalOptions:r,portalServerMsalJsConfig:s.portalServerMsalJsConfig,source:"Startup",userQueryStringInUrl:b,loginStage:{type:"Startup"}})}catch(t){e.saveLog({source:"Startup",action:"FallbackToLegacySignIn",data:{errorMessage:t.message+(t.stack||"")||t.toString()}}),e.sessionStorage.removeItem("PortalRequestedTenant")}const d=t.document.createElement("script"),h=e.localStorage.getItem("SavedDefaultDirectory"),g=h?`&savedDefaultDirectory=${h}`:"",v=["signInParameters","loginHint","selectAccount","forcesignin","whr","slice","mfalogin"].reduce(((t,r)=>{const n=e.extractValueFromQueryString(b,r);return n&&(t+=`&${r}=${n}`),t}),"");d.src=`${i.signinUri}${E}?sessionId=${_}&${j}&idpc=${r}${f}${g}${v}`,o.appendChild(d),setTimeout((()=>{l.setItem("Redirect_IdpRedirectCount",a(++r)),r%3?n.reload():n.href=m+"/UE_IDP"}),6e4);const S=e.getPortalUri(I,w),O=new XMLHttpRequest;O.open("GET",S),O.send(null)}}}catch(e){if(22===(e=e||{}).code)h=p(m);else{let t=l(a(e));const r=e.message;r&&(t=l(r)+"&stack="+l(e.stack)),h=m+"/Unhandled?err="+t}}h&&(n.href=h)}}(MsPortalImpl||(MsPortalImpl={}));
3
+ MsPortalImpl.redirect({"portalServerFeatures":{"settingsPortalInstanceValue":"","argSubscriptionsValue":"true","showServiceHealthAlertsValue":"true","inMemorySettingsValue":"","prefetchTokensValue":"","internalGraphApiVersionValue":"true","caeValue":"","selfTokenValue":"true","globalResourceFilterValue":"true","msalJsValue":"true","fetchPolicyForResTypesValue":"true","testCrossCloudPuidValue":"true","useRedirectHintValue":"true","useTenantHintValue":"true","nativeBrokerValue":"","msalJsWithFallbackValue":""},"portalServerConfig":{"portalQuery":{"configHash":"PkNJfkTTGDC1","pageVersion":"14.232.2.114.232.0.192030.241204-1800"},"environment":{"extensionsManifestHash":{"assetTypes":[["fzk-_69RhleV","7qKquWseJrkc"],["S9Wpr66CYe3e","qm2J0tGhtDkL"],["63VZs6bRmsRs","D9LjZFkHZr11"],["uO9aEWpC1fdv","lgMhtx-9cI-2"],["f8L4mqUdJz1L","m11RsozBSzDH"],["hsFXU-hOeL82","ej-vAIYmGCQq"],["nlEwPPz58LyX","AfNNA5UCTEL2"],["lfo0gzQzJz9-","-7LFSki2_sMF"],["5kYOqbRPWmEK","ORuUD_P3endQ"],["Y2vvbX_Rvumq","01piWrI6Au-y"],["gjtZ8sGyp4OO","8rNMaUIsWfLi"],["itGrl7kOnTAL","kQ5_wfwI6ke-"],["OX-PxLWSUAyu","29-UaJ153mcJ"],["e75KiN-kcag5","hfjHt4rpuDws"],["qKl_YGNNLpgm","i4ilPWfgF9L1"],["NNWIfGIdGBOz","Mqu9QNBfxi9d"],["Um_Q7Xxn4LoL","TfhWontS-zfY"],["FunRw0SBrz-y","TKBDdc8DYfTV"],["uPIdchkR9NCf","gwjpVZk-R3EF"],["YWyscj-Bbc8A","Pv9IonpkkVjz"]],"assetTypesBrowse":[["qvrLhGn7e2R4","k0ugWJ0ShOZp"],["j0g2-Hacu8Mz","MJaTq082kcbi"],["FO9H3As-NK_Z","2a5Ov5UJCbRE"],["ox80INLlPEV9","9aW6em_jJQC3"],["Z-4kkvFTLL9o","33Kt3-bBuD1P"],["PC9QtBTRmw0J","Hy7eV-yQID_S"],["Bo0uZf70dO8q","uCR_2kPMA6J2"],["OczBJeE44L_R","ODQRV4S11fDB"],["YOIMeIY_3b5i","DSki_KGZl8d7"],["HU5-BZJZdnuP","lYIrURBG4Lqy"],["ZMUm0ooJQ6NF","gm0XkejG_8xT"],["rG2tvJMMDdlb","x_GW82WkeEg4"],["LB5F9b6T08eL","2KI6RKed0JGj"],["Ojt-hlOttygN","cR5nGwbv6a2m"],["bQoiNaki2TJb","T19sHqQ3SwGA"],["WR0mWyAxlg7T","4a7Vp_bkZpdR"],["H4Tu3lmgvTHO","lqErdT5QACv0"],["qT8myUb9HMFR","p-5MSr6xJmus"],["Ri1cSHbeTuAu","ZkJWwMzomniS"],["i1I2_A9v44uu","nke5AHnj8ZSu"]],"assetTypesMenu":[["CWtcNNXk2KL1","uFKWwT7YvAkv"],["e7KXHJk-avNU","iU2aG3LGKPDV"],["t0qwGn3Sh5Jq","OrjT0fAMr23X"],["WAHUieSFstvP","1IOdW_QxhRSB"],["vxz-XIQvV9GM","rXnurc9n0VMf"],["PQoWYolC8peP","D_ExihZtW3Sx"],["1rFkcfM6KHPc","0-FGkZ7b5dcT"],["H8VkacN6M97m","G9mAdiYLEziy"],["ti8zS-UYlEqf","rrOIsVgP6js9"],["Qnl6ft6xN1VF","cFsqD6AFJzsf"],["XKpS9RXObIV_","SZSGpOpzcYOQ"],["1yQR7DArf2v5","6R8aUhfjAYXv"],["Gtn9DnrZPZWd","v1Ipp-i6Wu7f"],["8q6jH6B7XHr-","l3lgjBhPVk8Z"],["Yz2yEmoWSbJ6","M5GV16zUGPDx"],["ZmAWjZ7WM0IJ","WEKIhRAeYJA-"],["XAKw_v9-VxCS","bzIjcnJbz0Yq"],["Yk6a0FeJxIwR","KO8BOW3uk4bq"],["TDjWvC3HDh-V","7imnhVpSQgMU"],["nO5C_dvOviFr","h3dhZ9Ns_Gcg"]],"copilot":[["ouDuYMslcsxa","7SQeikVg_3hD"],["MXD8yELY-yHZ","z3OaWXP9098p"],["kc6Utns353tU","buswQ98vC4_T"],["5zrpupczXHyD","UhlebxtBtW3q"],["_GLNtXOEwRvM","iyE71UkBh07E"],["GWPtYjaB8SDQ","QL_UqEKa-yCU"],["rcnc3X_EIXxM","VjjPP0d59fow"],["5I_PqbCj6-Ii","rRe9XZYyRj4E"],["StZJDNvZWXPP","1JTBG__YtPPN"],["8Q4CmN6uCCNV","Dhiry0gCqz5i"],["FpsdPCUzdtZW","MGup3TJpskAh"],["R_tSUh_XRDkd","3P89f0O1ZXip"],["cjtUdZD8I_5B","GVWlIwMJhb4j"],["DVfQrjDrb7TP","QivCmgrzoSrS"],["WMbY14iQAr0k","E-aphlQTskeT"],["NsKdCJI93FMC","zDn05N4rB4tH"],["6QfwwbgJzBSD","gX4njVT_3KJ7"],["CWgoWYtGDDlz","5iHzHXhAZYvS"],["_BwfFzFCEDNV","Bus5RHfbmTvM"],["ouDuYMslcsxa","7SQeikVg_3hD"]],"extensionConfiguration":[["cnr4lI4ldr5Q","lQ8OpLVfTNJY"],["Kp62fcUM8DI3","CKVXKnkKG407"],["gIAGw_-LpU5B","2b_xV57k3YJ_"],["tMa_FyZOpN5m","T0PzmIpvzKYj"],["w9DveOaTHwH6","59cdcEU4f6DO"],["24srI6dhJoX2","cF-W7NoE72Pt"],["8VtWR5DMNM3C","gG1ThAqzqZmN"],["gkWpy3AXtSKV","YbAZjRcMbbdK"],["fAWj2q_FPxff","CXaK7Jha5JAq"],["UDODSIVHxNli","A2YkVzeZcg8S"],["WfBdDij2h6zR","oDuqmQ_q3Y4A"],["aEtFTZXWV8u-","RdcrT5VaD_xh"],["8XeWOKheoIFe","QYHNtCvQEYiO"],["6nrmyo4wU6oh","RUfXxU4KxT-i"],["VxAaqQKI2oU0","u5mjgeema9yn"],["cGXh86NHmtMa","Wpp0eMDjBoZ5"],["UqaZ8-BycncW","W4dIVKsUe0iI"],["79203hFrDTtd","LonWBUJp0do3"],["cev2eIJQfXX7","pxY-6deZDsUY"],["cnr4lI4ldr5Q","lQ8OpLVfTNJY"]],"featureCards":[["I1hn0UAALVce","YuOmwVntpQ-g"],["pxnsxruXwd0c","NxsMn96zL-BN"],["G0Iyhvc2wqJx","EpZcQuk5oNvl"],["iXEZQ87gF2_Q","fUIidLiWUICi"],["_7h5vlNnHTLc","77o1fQKTVo9s"],["sw2f5Xtu9701","RK9TlQE3Y-4E"],["AReK7hVk4d07","OJIW3uT1v1T_"],["flWb8MWO9C6n","LnvE9P7NW9HY"],["7OierOMRZ4Jt","yrTAxAQ31lAB"],["tdkOzom5NCon","CSQ-a7AFrmAs"],["6Sh5mXBwo07O","OIxiu7uqEJZp"],["bRAxCirrxaAD","LCqBejFcNjxj"],["tMAjZfOAYJey","Vi9i88PdJwzh"],["X_Tyk1CfHZb_","7AEv-KOwVfPs"],["i9RyD3jANwyi","VUd-wR6weM2i"],["C_a5lL75JIj7","EmK5uW2Xdv09"],["QdK3BoF609ph","lMhO64cbUgjc"],["LW3tOEfly-ba","s4abFqoYGXA_"],["DXgk_WmPgr-v","J1JB92WmrLiH"],["UYS0IppCfI4o","KvIuHXUyUcW-"]],"galleryParts":[["QjhJ-2h6a97W","4JzwEgxQA6Cr"],["S2FifjTFJUOM","QB03wZjs_oM_"],["tpnPbYYHZXU-","xv_t88PJ4TLu"],["UHw1MvPVlm6m","1zQ_cS7omLr8"],["qfUj1eSCrVZB","AOGOEt_PPLM0"],["nNNfTWoy__oL","p08_5o9d7UKp"],["pyK5nXWwq5Oo","M8XylWafSRfr"],["1ObU1E0sc1d7","1g5EHfMgMNwD"],["j6qjqDbi_XQF","vB27yr5gbL80"],["8CLjvzBPmxwU","W3Go0Yc12edf"],["p0mZl0LqBWCm","jYNncrX8DXlB"],["h6ZvFwh7trSd","5D-1sCgsim9C"],["GWWi0UjJp_zO","afaZ7lL_eR_y"],["pmwayLaCDf-k","Hb10bufiO3LK"],["Dq550vx3Td_Z","PucHcdYzgAR3"],["Aw_KndW3Wvpt","xxeAhsbe6Sfa"],["wUj_JF3Uv-rw","pUHDMdWzedbS"],["77TOvkkolUfZ","kEDE1L0w5FKq"],["UGAI8O444nFf","HoZP0mxbWZ3B"],["jP-_ZYFldW2c","jl-qea7pjvrT"]],"surveys":[["u5TJ9-nL00uV"],["75h0Uvou7ijr"],["oBjMRZQ2QyOF"],["4vgJhlz42Th3"],["PvPl442OXlH2"],["l_o5Is9uKxhK"],["VY9H2_7QwDnG"],["JInEBj6TZeWq"],["7ieeg9J2ZdeB"],["5AWM-mKbZhgd"],["y_x5rbxnTGZE"],["QofqBGmeVcJS"],["JWnY4kFk1Cq4"],["NdqGd8Oc74D_"],["LSjT4UeLIA8n"],["qFDn2JD0JbKl"],["XZrGAa9SqFYt"],["3JQPr8M_K0uf"],["9E2T9z2pfNhx"],["WZYZiwCO6OLd"]],"tourGuide":[["Evz5gZtP5b0a","8uz4k71t3lEh"],["JHUdIZSd0bNI","d8Nj9BPxFFOt"],["-V8SI3C3bu8S","st6jkbhzAqk5"],["vGsd7HRAZ8SJ","0zXfXg60tZ4I"],["z2MHaEZ2uD31","Aa6hn4jtXWel"],["kW4Art5k5B-R","t0spezf2b0OG"],["psSLqb23CI3o","j5g_KpfDsa2e"],["SUkoLKBKGuX7","aogKP7OKLeGA"],["y6elXb9Y5S7r","hRU83jSFG6Pm"],["lamMxWXect8C","-nNTkTPkpiWf"],["CJqhqKgLVgJw","djBC9BlEeII2"],["6fdaJilOmr7g","dMjUBXmxVOu-"],["kn85p-VBLCY5","8JMXlQqa-UEo"],["bxW6gatLgX39","pe4YdkQG9cVE"],["GXOjyyJdIEld","LfYVAiAyruC_"],["_0wEC-nUc-TL","xRh0gD10u6Q2"],["hZGRRTk9bwEv","ZBhjGiC9aQML"],["G2C82Xy0hFQv","yBlU4dtQD7bM"],["F7D_jAkcnb9a","zqQ1wOCDNnWp"],["Evz5gZtP5b0a","8uz4k71t3lEh"]],"uiDefinition":[["HpPRhYJLYEF8","B7PD1MrzXEvN"],["clbfpnA6ASj0","5Vz_YmPJyWZ1"],["-icDFziQqCCR","A6dGT4LpHSz1"],["k0aa2y7MsGFf","7kMXGl9AMhQK"],["7iZdAVFY7A0_","rAar-HnoXTXL"],["bOtx6VKhHDWH","KB4BcLB-ZuhB"],["QzuwPLi1P5pU","8KTNghiWYKUA"],["__kr3fZQdfOM","NeHoQTKikdDJ"],["d1RiZE6nrey8","tiuEs0M1Ymb3"],["JO7C7S6yf7l4","xh7RFZHoc-ab"],["uFO7QKLx4noz","as2e_pG4sV2X"],["xIWsszZMug86","5m9VVvSb9_qg"],["-KnGDSr5S9Zl","QfJ5aJkmqr1e"],["9WFY72TbFeDT","kC58WijPCp-5"],["LI85nb9Ya5JT","JIwREiieai01"],["i1YaeUvs6cGf","M_rg9Lv8bXuX"],["9UNVkDlH87Fa","2u_EWfYU1K1L"],["i1m9rO_iBEoY","oLuB4BDWbMHy"],["ChOsyjp3cI9g","Jc32eWGymJXd"],["HpPRhYJLYEF8","B7PD1MrzXEvN"]]},"extensionsPageVersion":{"AppInsightsExtension":["1.0.20241219.2257","1.0.20250106.2349"],"AppPlatformExtension":["1.0.02867.308"],"AzureCacheExtension":["1.3.02875.422"],"AzureTfsExtension":["19.247.35422.10"],"Azure_Marketplace_Astronomer":["0.9.028731-484067"],"Azure_Marketplace_Confluent":["0.9.0287814-460370"],"Azure_Marketplace_Datadog":["2.2101.028732-8148805"],"Azure_Marketplace_Dell":["0.9.028251-109367"],"Azure_Marketplace_Dynatrace":["0.9.029281-38099"],"Azure_Marketplace_Elastic":["0.1.028752-867720"],"Azure_Marketplace_Informatica":["0.9.028801-5467"],"Azure_Marketplace_Liftr_Logz":["0.9.028681-288"],"Azure_Marketplace_Liftr_NewRelic":["0.9.028791-182848"],"Azure_MarketPlace_NativeISVService":["0.9.0287826-94422","0.9.0289527-2972966"],"Azure_Marketplace_Neon":["0.9.028611-398878"],"Azure_Marketplace_NGINX":["2.2101.028681-150416"],"Azure_Marketplace_PaloAltoNetworks_Cloudngfw":["1.0.0.241217-0719"],"Azure_Marketplace_PureStorage":["0.9.029231-085211","0.9.029291-4748"],"Azure_Marketplace_Qumulo":["0.1.028732-427870"],"Azure_Marketplace_SamplePartner":["0.9.026611-97"],"Azure_Marketplace_SolarWindsObservability":["0.9.028741-97813"],"Azure_Marketplace_SplitIO":["1.0.028671-84714"],"DxExtension":["14.216.1.114.216.0.19852.241025-1953"],"HubsExtension":["14.232.2.114.232.0.192030.241204-1800/Zibck4M3AFmV"],"Microsoft_AAD_AuthenticationMethods":["1.0.02811103"],"Microsoft_AAD_B2CAdmin":["1.1.721.0"],"Microsoft_AAD_ConditionalAccess":["1.0.02899807"],"Microsoft_AAD_Connect_Provisioning":["3.0.02892991"],"Microsoft_AAD_DecentralizedIdentity":["1.0.02885406"],"Microsoft_AAD_Devices":["1.0.02868505"],"Microsoft_AAD_DomainServices":["2.0.170.0"],"Microsoft_AAD_DXP":["1.0.02895.1329-"],"Microsoft_AAD_ERM":["1.2.870.355"],"Microsoft_AAD_HybridAuthentication":["1.0.02655.90"],"Microsoft_AAD_IAM":["3.0.029001752"],"Microsoft_AAD_IdentityProtection":["1.0.02872276"],"Microsoft_AAD_LifecycleManagement":["1.0.02901.244"],"Microsoft_AAD_RegisteredApps":["1.0.2896.1143"],"Microsoft_AAD_UsersAndTenants":["1.0.02892.1202-352"],"Microsoft_AzureCXP_BusinessReview":["0.1.4138"],"Microsoft_AzureCXP_Cpoe":["0.1.3992"],"Microsoft_AzureCXP_EngageHub":["0.1.4208"],"Microsoft_AzureCXP_EngageHubInsights":["0.1.4024"],"Microsoft_AzureCXP_EngageHub_Spaces":["0.1.3950"],"Microsoft_AzureCXP_EngageHub_Support":["0.1.4261-0001"],"Microsoft_AzureStackHCI_PortalExtension":["1.0.028923178"],"Microsoft_AzureStack_LabHardware":["1.0.850.0"],"Microsoft_Azure_ActivityLog":["3.0.02782.235"],"Microsoft_Azure_AD":["1.0.4309.0","1.0.4341.0"],"Microsoft_Azure_ADHybridHealth":["2.0.02872241"],"Microsoft_Azure_ADU":["3.0.0.4"],"Microsoft_Azure_AdvisorPortalExtension":["1.0.02850.280"],"Microsoft_Azure_AFDX":["1.8.028961464"],"Microsoft_Azure_AgFoodPlatform":["1.0.0.89"],"Microsoft_Azure_AnalysisServices":["1.2.2.63"],"Microsoft_Azure_Analytics":["1.0.02879.1"],"Microsoft_Azure_ANMVerifier":["1.0.02852.93-234","1.0.02872.101-22"],"Microsoft_Azure_AO5GC":["1.0.0.0-2404250546"],"Microsoft_Azure_AP5GC":["2-2410080600","2-2411130747"],"Microsoft_Azure_ApiManagement":["1.1008.0.1"],"Microsoft_Azure_APISecurity":["1.24.12.202016"],"Microsoft_Azure_AppComplianceAutomation":["202411190218"],"Microsoft_Azure_Appliance":["4.0.300.192","4.0.200.137"],"Microsoft_Azure_AppProtection":["1.0.02842.54","1.0.02920.114"],"Microsoft_Azure_ArcCenterUX":["1.0.60.0","1.0.63.0"],"Microsoft_Azure_ArcClusterUX":["1.0.1063.0","1.0.1060"],"Microsoft_Azure_ArcNetworking":["1.4.1.11"],"Microsoft_Azure_ASCInformationProtection":["1.24.12.221028"],"Microsoft_Azure_Attestation":["1.0.14.232.0"],"Microsoft_Azure_AutoManagedVirtualMachines":["1.0.02854.456"],"Microsoft_Azure_AutomaticAKS":["4.12.0.2879"],"Microsoft_Azure_Automation":["7.3.2932.0.241115-0022"],"Microsoft_Azure_AzConfig":["1.0.02872126-1"],"Microsoft_Azure_AzFleet":["5.13.393.1807-1729806492-","5.13.393.1893"],"Microsoft_Azure_Batch":["1.1.02927.368"],"Microsoft_Azure_BCDRCenter":["1.0.02858.1262"],"Microsoft_Azure_Billing":["24.11.02900.175-6330","1.0.02921.1159-120496"],"Microsoft_Azure_BotService":["1.4.1.400371"],"Microsoft_Azure_Capacity":["241122-0516"],"Microsoft_Azure_Cdn":["1.0.02902.416--68770"],"Microsoft_Azure_ChangeAnalysis":["1.0.02852.117"],"Microsoft_Azure_Chaos":["1.0.0-1.0.02859.2-20600","1.0.0-1.0.02923.1-96"],"Microsoft_Azure_ClassicResources":["1.0.10.153"],"Microsoft_Azure_Classic_Compute":["5.13.393.1659"],"Microsoft_Azure_CloudforSovereignty":["1.0.241025.2416"],"Microsoft_Azure_CloudHSM":["1.0.02853.220","1.0.02861.221"],"Microsoft_Azure_CloudNative":["5.13.393.1819","5.13.393.1873"],"Microsoft_Azure_CloudNativeTesting":["2024102820241028.1","2024102820241125.2"],"Microsoft_Azure_CloudPC":["1.0.241212.112391938"],"Microsoft_Azure_CloudServices":["5.13.393.1807-1729702289-"],"Microsoft_Azure_CloudServices_Arm":["5.13.393.1807-1729806510-"],"Microsoft_Azure_CloudTest":["2.0.20250107.1"],"Microsoft_Azure_CodeOptimizations":["1.0.02853.40"],"Microsoft_Azure_CodeSigning":["1.0.20241211.103"],"Microsoft_Azure_CommunicationServices":["1.0.20241216.2"],"Microsoft_Azure_CommunicationsGatewayExtension":["2.0.0.0"],"Microsoft_Azure_CommunityTraining":["1.0.8.1"],"Microsoft_Azure_ComplianceCenter":["1.0.0.20250107064429"],"Microsoft_Azure_Compute":["5.13.393.1807-1733508958-","5.13.393.1893"],"Microsoft_Azure_ComputeHub":["5.13.393.1807","5.13.393.1893"],"Microsoft_Azure_ConfidentialLedger":["23.3.7.2"],"Microsoft_Azure_ConfigManager":["20241204.2"],"Microsoft_Azure_ContainerInsightsExt":["2.0.20241023.2014","2.0.20250107.2318"],"Microsoft_Azure_ContainerRegistries":["1.0.20240829.9"],"Microsoft_Azure_ContainerService":["4.60.1.101/1EqRKWy2d0SP","5.13.393.1894/vI1KG2-BOeC1"],"Microsoft_Azure_ContainerStorage":["5.13.393.1697","5.13.393.1698"],"Microsoft_Azure_Copilot":["1.311.02882.591","1.200.02872.577"],"Microsoft_Azure_CostManagement":["241204-0558"],"Microsoft_Azure_CreateUIDef":["1.0.300.338","1.0.200.604"],"Microsoft_Azure_CtsExtension":["1.2.1.0"],"Microsoft_Azure_CustomerHub":["1.0.300.165","1.0.300.167"],"Microsoft_Azure_Dashboard":["2.0.1890.0"],"Microsoft_Azure_DatabaseInsights":["1.0.02854.428"],"Microsoft_Azure_Databricks":["1.0.02855.267"],"Microsoft_Azure_DataCollaboration":["2.0.20230315-0800"],"Microsoft_Azure_DataFactory":["1.0.20241024.1"],"Microsoft_Azure_DataLakeAnalytics":["20240906.1"],"Microsoft_Azure_DataLakeStore":["5.13.393.1735"],"Microsoft_Azure_DataProtection":["241029-102415"],"Microsoft_Azure_DataShare":["2.0.20241211-0201","2.0.20241211-0102"],"Microsoft_Azure_Dedicated_ClusterStor":["240909-1921"],"Microsoft_Azure_Dedicated_Cray":["240909-1921"],"Microsoft_Azure_Dedicated_Monitoring":["240909-1921"],"Microsoft_Azure_DetonationService":["2.00.00.03"],"Microsoft_Azure_DevCenter":["14.170.0.1.241114-1814"],"Microsoft_Azure_DeviceRegistry":["1.0.02871.97-111120"],"Microsoft_Azure_DeviceUpdate":["1.0.02843.128-101415"],"Microsoft_Azure_DevOpsInfrastructure":["1.0.20250107.1"],"Microsoft_Azure_DevTestLab":["14.170.0.1.241127-2113"],"Microsoft_Azure_DevTunnels":["1.0.231005.2128","1.0.230613.1659"],"Microsoft_Azure_DigitalTwins":["1.0.02829.187-093022"],"Microsoft_Azure_DiskMgmt":["5.13.393.1804-1730162051-","5.13.393.1893"],"Microsoft_Azure_DMS":["5.1.6396.3"],"Microsoft_Azure_DNS":["1.0.02867.222","1.0.02928.243"],"Microsoft_Azure_DNSManagedResolver":["1.0.02816.276","1.0.02927.282"],"Microsoft_Azure_DnsSecurityPolicy":["1.0.02878.100"],"Microsoft_Azure_DocumentDB":["2.0.20241115.7.0","2.0.20250101.1.0"],"Microsoft_Azure_DocumentManagement":["1.0.02852.2"],"Microsoft_Azure_Ea":["20241212.2"],"Microsoft_Azure_EASM":["1.0.02900.1469"],"Microsoft_Azure_ECE":["1.0.02748.15-652409","1.0.02844.22-206"],"Microsoft_Azure_EdgeAIExtension":["1.0.02908.28"],"Microsoft_Azure_EdgeGateway":["1.0.02825.1545"],"Microsoft_Azure_EdgeManagementCopilot":["1.0.02854.246"],"Microsoft_Azure_EdgeOrder":["1.0.02894393"],"Microsoft_Azure_Education":["2024.11.26-1726"],"Microsoft_Azure_ElasticSan":["5.13.393.1807-1731535885-","5.13.393.1893"],"Microsoft_Azure_ELMAdmin":["2.77.02911.2151"],"Microsoft_Azure_EMA":["2.41028.1.6","2.41028.1.12"],"Microsoft_Azure_EmailCommunicationServices":["66616971"],"Microsoft_Azure_EpicManagement":["1.2.10205.10621"],"Microsoft_Azure_EventGrid":["2.0.02871.233"],"Microsoft_Azure_EventHub":["2.0.02879.345"],"Microsoft_Azure_Experimentation":["2.0.02895.64"],"Microsoft_Azure_Expert":["1.20241028.1","1.20241101.1"],"Microsoft_Azure_ExpressPod":["1.0.0"],"Microsoft_Azure_FairfieldGardens":["1.0.02837.66-100800"],"Microsoft_Azure_FileShare":["5.13.393.1803","5.13.393.1864"],"Microsoft_Azure_FileStorage":["5.13.393.1803","5.13.393.1851"],"Microsoft_Azure_FIST":["2024.10.02.160055","2024.06.13.181824"],"Microsoft_Azure_FlowLog":["2.0.0.306.241021-2045"],"Microsoft_Azure_FluidRelay":["1.0.2.4.241014-1713"],"Microsoft_Azure_Frontdoor":["1.0.02793.355--71340517","1.0.02858.386--179125"],"Microsoft_Azure_GeneratedExtension":["1.200.02858.681"],"Microsoft_Azure_GlobalView":["1.0.0.5"],"Microsoft_Azure_GraphDataConnect":["1.20241010.6.0"],"Microsoft_Azure_GTM":["24.12.02904.389-3707","1.0.02913.2615-10063"],"Microsoft_Azure_HDInsight":["1.0.02859.1610"],"Microsoft_Azure_Health":["1.1.1.465","1.1.1.469"],"Microsoft_Azure_HealthBot":["1.0.0.112"],"Microsoft_Azure_HealthDataDeidentification":["1.0.49698.1"],"Microsoft_Azure_HealthModels":["0.2023.78.333"],"Microsoft_Azure_HybridCompute":["1.0.4277.0","1.0.4301.0"],"Microsoft_Azure_HybridData_Platform":["1.0.02901.212"],"Microsoft_Azure_HybridNetworking":["24.8.0.63-241023-2106"],"Microsoft_Azure_IacAutomation":["0.0.1.241017-0944","0.0.1.241018-0643"],"Microsoft_Azure_IdentityGovernance":["1.0.02871.241"],"Microsoft_Azure_IndustrySolutionCenter":["1.0.241111-0553"],"Microsoft_Azure_IoTCentral":["2.0.9070.41921"],"Microsoft_Azure_IotHub":["1.0.02860.545-103117"],"Microsoft_Azure_IoTOperations":["1.0.02881.174-112117"],"Microsoft_Azure_IoT_Defender":["2025-01-01--11-26-39"],"Microsoft_Azure_IPAddressManager":["1.0.02859.150-2636459"],"Microsoft_Azure_Kailani":["5.13.393.1803-1733785378-","5.13.393.1893"],"Microsoft_Azure_KeyVault":["1.2.298.0.241021-1530"],"Microsoft_Azure_Kusto":["1.0.2418.0"],"Microsoft_Azure_LocationServices":["3.0.02871.271"],"Microsoft_Azure_Lockbox":["2.62.0.0"],"Microsoft_Azure_Maintenance":["5.13.393.1807-1729702031-","5.13.393.1893"],"Microsoft_Azure_ManagedHSM":["1.0.02861.409-262501","1.0.02928.482-8060"],"Microsoft_Azure_ManagedLab":["14.226.0.1.241231-1943"],"Microsoft_Azure_ManagedNetwork":["1.0.02859.162-866","1.0.02928.190-2135"],"Microsoft_Azure_ManagedServiceIdentity":["2.1.8974.0"],"Microsoft_Azure_ManagedStorageClass":["1.4.0.202410290745","1.4.0.202411050815"],"Microsoft_Azure_Marketplace":["50.0.02899.41-23270","30.0.02928.35-02549"],"Microsoft_Azure_MarketplaceTransact":["1.0.20241212.4173"],"Microsoft_Azure_Media":["1.0.1421.0"],"Microsoft_Azure_Migrate":["1.0.10.509"],"Microsoft_Azure_MigrateAssessment":["1.0.10.4"],"Microsoft_Azure_MigrateModernization":["1.51.1240903.11134"],"Microsoft_Azure_MLTeamAccounts":["1.0.0.241219-2106"],"Microsoft_Azure_ModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_Monitoring":["22.20241030.2.0.02859.431"],"Microsoft_Azure_MonitoringMetrics":["2.0.20241017.1618","2.0.20250107.1715"],"Microsoft_Azure_Monitoring_Alerts":["1.0.02824.1331","1.0.02891.1370"],"Microsoft_Azure_NetApp":["2407.3.0.1"],"Microsoft_Azure_Network":["5.13.393.1821","5.13.393.1863"],"Microsoft_Azure_NetworkCloud":["5.9.0","5.858.0-1"],"Microsoft_Azure_NetworkCopilot":["1.0.02927.120-5797234"],"Microsoft_Azure_NetworkCopilotExtension":["1.0.02927.52-9799"],"Microsoft_Azure_NetworkingCopilot":["1.0.02873.108-2"],"Microsoft_Azure_NetworkSecurityPerimeter":["1.35.0.185"],"Microsoft_Azure_Network_Access":["1.0.02923.1585"],"Microsoft_Azure_NotificationHubs":["20241218.3.241218-1139"],"Microsoft_Azure_OneInventory":["1.0.02887.222"],"Microsoft_Azure_OneMigrate":["1.0.10.44"],"Microsoft_Azure_OpenEnergyPlatform":["1.0.206"],"Microsoft_Azure_OperationsMgr":["1.2.361.0"],"Microsoft_Azure_OpsMQ":["1.0.02734.96-062721"],"Microsoft_Azure_Orbital":["2024.10.02923.509"],"Microsoft_Azure_OSSDatabases":["2.1.02859122"],"Microsoft_Azure_PaasServerless":["5.246.1.3","5.247.0.2"],"Microsoft_Azure_Peering":["1.2.0.255"],"Microsoft_Azure_PIMCommon":["0.0.0.961"],"Microsoft_Azure_PinToGrafana":["1.2.154.1"],"Microsoft_Azure_Playground":["14.115.4.1"],"Microsoft_Azure_PlaywrightService":["1.0.0.43"],"Microsoft_Azure_Policy":["1.0.9.704"],"Microsoft_Azure_PortalDashboard":["1.100.02850.547","1.100.02928.557"],"Microsoft_Azure_PowerBIDedicated":["1.1.2823.1"],"Microsoft_Azure_PowerPlatform":["0.0.0.72"],"Microsoft_Azure_PrivateDNS":["1.0.02875.231","1.0.02928.241"],"Microsoft_Azure_PrivateModSimWorkbench":["0.10.10.2"],"Microsoft_Azure_ProgrammableConnectivity":["1.1.74","2.111.0-1"],"Microsoft_Azure_ProjectBabylon":["1.0.20241226.422","1.0.20240729.400"],"Microsoft_Azure_ProjectOxford":["241205-0551"],"Microsoft_Azure_Quantum":["1.11.2.4"],"Microsoft_Azure_RecommendationsService":["9.32.02744.262"],"Microsoft_Azure_RecoveryServices":["3.40.2411.283"],"Microsoft_Azure_Relay":["2.0.02851.179"],"Microsoft_Azure_Reservations":["11.19.2024.2050"],"Microsoft_Azure_ResourceMove":["1.1.10909.10739"],"Microsoft_Azure_Resources":["1.0.100.1000","1.0.100.1015"],"Microsoft_Azure_RpExt":["2.0.0.0"],"Microsoft_Azure_SaasHub":["1.0.02894.57-032"],"Microsoft_Azure_SapHanaInstances":["1.0.50.147"],"Microsoft_Azure_SAPManagement":["2.1.11015.10506"],"Microsoft_Azure_SAPMigrate":["1.2.10908.12138"],"Microsoft_Azure_Search":["149376413.20241114.1"],"Microsoft_Azure_Security":["1.25.01.072002"],"Microsoft_Azure_Security_AzureDefenderForData":["1.25.01.061251"],"Microsoft_Azure_Security_CloudNativeCompute":["1.24.12.311812"],"Microsoft_Azure_Security_DevOps":["1.25.01.032223"],"Microsoft_Azure_Security_Insights":["1.0.02923.465-250102-085937","1.0.02928.466-250107-093237"],"Microsoft_Azure_Security_IoT":["2024-12-29--08-15-43"],"Microsoft_Azure_Security_R3":["1.25.01.071638"],"Microsoft_Azure_SentinelUS":["1.0.02924.5502-250103-1623","1.0.02929.5517-250108-1419"],"Microsoft_Azure_ServiceBus":["2.0.02878.214"],"Microsoft_Azure_ServiceFabric":["5.13.393.1807-1729806504-"],"Microsoft_Azure_ServiceHub":["1.300.02860.75"],"Microsoft_Azure_SignalR":["1.0.02880.70--9565"],"Microsoft_Azure_SiteManager":["1.0.02888620"],"Microsoft_Azure_SiteRecovery":["1.51.12410.198"],"Microsoft_Azure_SolutionCenter":["5.13.393.1780","5.13.393.1875"],"Microsoft_Azure_Sphere":["2.0.25002.2"],"Microsoft_Azure_SpringApps":["20241218.1"],"Microsoft_Azure_Stack_Migrate":["2.241101.1914.1"],"Microsoft_Azure_Storage":["5.13.393.1803-1730161979-","5.13.393.1893"],"Microsoft_Azure_StorageCache":["1.1.0.1109"],"Microsoft_Azure_StorageInsights":["4.13.393.1126"],"Microsoft_Azure_StorageMover":["5.13.393.1803","5.13.393.1893"],"Microsoft_Azure_StorageTasks":["5.13.393.1803-1729816167-","5.13.393.1893"],"Microsoft_Azure_StreamAnalytics":["20241119.2"],"Microsoft_Azure_SubscriptionManagement":["1.0.02899.236.20241209-1952"],"Microsoft_Azure_Support":["1.580.20241107.1","1.580.20241029.1"],"Microsoft_Azure_Surface":["2.56.0"],"Microsoft_Azure_Sustainability":["1.0.1.173"],"Microsoft_Azure_Synapse":["1.0.02875.5"],"Microsoft_Azure_TemplateSpecs":["1.0.1.91"],"Microsoft_Azure_Toolbox":["2.0.02847.298"],"Microsoft_Azure_UsageBilling":["1.0.02805.11"],"Microsoft_Azure_VirtualEnclaves":["2.1.235.0"],"Microsoft_Azure_VirtualVisitsBuilder":["1.0.0.20240509190151576"],"Microsoft_Azure_VnfManager":["1.9.0","1.79.0-1"],"Microsoft_Azure_WaveMigration":["1.0.10.6"],"Microsoft_Azure_WhatsNew":["1.0.02900138"],"Microsoft_Azure_Winfields":["1.0.028335"],"Microsoft_Azure_WorkbooksExtension":["1.24.02857.421","1.24.02860.423"],"Microsoft_Azure_WorkloadInsight":["1.0.02819.95"],"Microsoft_Azure_WorkloadInsights":["2.0.20241008.1902","2.0.20241030.1727"],"Microsoft_Azure_WorkloadMonitor":["1.2.10924.10947","3.1.10107.10723"],"Microsoft_Azure_WVD":["1.0.02893.601"],"Microsoft_Bing_Api":["241212-1134"],"Microsoft_CloudHealth_HealthModels":["1.0.02907.87"],"Microsoft_Cognition_MixedReality":["36.0.0.0"],"Microsoft_ConnectedCache":["1.0.3.11"],"Microsoft_ConnectedCache_Ent":["1.0.0.2.25"],"Microsoft_ConnectedCache_Enterprise":["1.0.0.1.15"],"Microsoft_ConnectedCache_ISP":["1.0.0.1.48"],"Microsoft_EMM_ModernWorkplace":["1.2412.201.02"],"Microsoft_Entra_PM":["2024.9.26.1"],"Microsoft_Entra_PMAnalytics":["2024.10.11.1-105554065"],"Microsoft_Entra_PMDashboard":["2024.11.20.1-108585238"],"Microsoft_Healthcare_APIs":["1.0.554184.1","1.0.554553.1"],"Microsoft_Intune":["1.2412.15.3002.241216-2320"],"Microsoft_Intune_Apps":["2.2412.39.3002.241214-1836"],"Microsoft_Intune_DeviceExplorer":["1.0.241205.054721"],"Microsoft_Intune_Devices":["6.2412.38.3005.241218-1933"],"Microsoft_Intune_DeviceSettings":["1.2412.75.3011.250103-2300"],"Microsoft_Intune_Edu":["6.2412.14.3003.241216-2006"],"Microsoft_Intune_Enrollment":["7.2412.45.3003.241216-2046"],"Microsoft_Intune_MTM":["6.2410.1.50"],"Microsoft_Intune_Workflows":["1.2412.82.3002.241217-0650"],"Microsoft_ManufacturingPlatform_DMM":["19.11.2024"],"Microsoft_Marketplace_SolutionFinder":["1.0.20250108.1"],"Microsoft_OneFleet_DataHub":["1.0.02859.268"],"Microsoft_OperationsManagementSuite_Workspace":["3.0.02881.2173","3.0.02920.2221"],"Microsoft_Research_Genomics":["1.0.0.13929"],"Microsoft_Security_Copilot":["93"],"Microsoft_ServicesHub_Extension":["5.5.9.0"],"Microsoft_VideoIndexer":["1.0.02860.1-241031"],"Oracle_Databases_At_Azure":["1.164.0"],"ScanX_Management":["3.0.0.3"],"ServiceLinkerExtension":["2.0.20250106.1"],"SqlAzureExtension":["2.1.02901237"],"Universal_Print":["3.20241115.2"],"VLCentral_Agreement":["1.0.02903.1"],"VLCentral_Amendments":["1.0.02881.26"],"VLCentral_Approval":["1.0.02929.1"],"VLCentral_CaseManagement":["1.0.02879.2"],"VLCentral_HelpAndSupport":["1.0.02896.1"],"VLCentral_Home":["1.0.02894.1"],"VLCentral_OrderCredits":["1.0.02903.2","1.0.02894.2"],"VLCentral_Ordering":["15.0.02928.1"],"VLCentral_OrganizationManagementService":["1.0.02857.2"],"VLCentral_Platform":["1.0.02899.1"],"VLCentral_Quote":["1.0.02903.1"],"VLCentral_ReportingNAnalytics":["1.0.02896.1"],"VLCentral_UUM":["1.0.02865.54"],"VMCP":["1.2.02857.915","1.2.02866.925"],"WandiscoExtension":["1.14.16.0"],"WebsitesExtension":["5.246.3.3","5.247.0.2"]}},"signinUri":"/signin/idpRedirect.js/","errorUri":"/Error","unsupportedUri":"/Error/UE_Unsupported","applicationPath":"","supportedLanguages":["en","cs","de","es","fr","hu","id","it","ja","ko","nl","pl","pt-br","pt-pt","ru","sv","tr","zh-hans","zh-hant","qps-ploc"],"portalClientId":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c","authority":"https://login.microsoftonline.com/","armAadResource":"https://management.core.windows.net/","tokenLifetimeClockSkewIntervalInMs":300000.0,"graphEndpoint":"https://graph.windows.net","orgIdChangePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522342","changePasswordUri":"https://go.microsoft.com/fwlink/?LinkID=522343","isAdfs":false,"roleIdForCompanyAdmin":"62e90394-69f5-4237-9190-012177145e10"},"portalServerMsalJsConfig":{"site_id":"501430","cobrandid":null,"msafed":null,"nativeBroker":0}});
4
+ </script></body></html>
env.json ADDED
Binary file (2.46 kB). View file
 
git-lfs-windows-v3.6.0.exe ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca1c562d22439d3d6a80957d2b21f6633611db494f1251a46d18d7fa7aea52cd
3
+ size 11406128
init.py ADDED
@@ -0,0 +1 @@
 
 
1
+ __init__.py
javascript-sdk.htm ADDED
@@ -0,0 +1,1052 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html
2
+ class="hasSidebar hasPageActions hasBreadcrumb conceptual has-default-focus theme-light"
3
+ lang="en-us"
4
+ dir="ltr"
5
+ data-authenticated="false"
6
+ data-auth-status-determined="false"
7
+ data-target="docs"
8
+ x-ms-format-detection="none">
9
+
10
+ <head>
11
+ <meta charset="utf-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ <meta property="og:title" content="Microsoft Azure Monitor Application Insights JavaScript SDK - Azure Monitor" />
14
+ <meta property="og:type" content="website" />
15
+ <meta property="og:url" content="https://learn.microsoft.com/en-us/azure/azure-monitor/app/javascript-sdk" /><meta property="og:description" content="Microsoft Azure Monitor Application Insights JavaScript SDK is a powerful tool for monitoring and analyzing web application performance." /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" />
16
+
17
+ <meta property="og:image:alt" content="Microsoft Learn" />
18
+
19
+ <meta name="twitter:card" content="summary_large_image" />
20
+
21
+ <meta name="twitter:site" content="@MicrosoftLearn" />
22
+
23
+ <meta name="color-scheme" content="light dark"><meta name="author" content="AaronMaxwell" />
24
+ <meta name="breadcrumb_path" content="../../breadcrumb/azure-monitor/toc.json" />
25
+ <meta name="depot_name" content="Learn.azure-monitor" />
26
+ <meta name="description" content="Microsoft Azure Monitor Application Insights JavaScript SDK is a powerful tool for monitoring and analyzing web application performance." />
27
+ <meta name="document_id" content="1161fd28-6f64-8733-1ad5-6062e786446a" />
28
+ <meta name="document_version_independent_id" content="08ac573e-3bb7-f585-a709-0ea51f61fc22" />
29
+ <meta name="feedback_help_link_type" content="get-help-at-qna" />
30
+ <meta name="feedback_help_link_url" content="https://learn.microsoft.com/answers/tags/20/azure-monitor/" />
31
+ <meta name="feedback_product_url" content="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0" />
32
+ <meta name="feedback_system" content="Standard" />
33
+ <meta name="git_commit_id" content="a4532c790eed1ea0e5149f74296d04ee24084c8e" />
34
+ <meta name="gitcommit" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/a4532c790eed1ea0e5149f74296d04ee24084c8e/articles/azure-monitor/app/javascript-sdk.md" />
35
+ <meta name="learn_banner_products" content="azure" />
36
+ <meta name="locale" content="en-us" />
37
+ <meta name="manager" content="orspodek" />
38
+ <meta name="ms.author" content="aaronmax" />
39
+ <meta name="ms.custom" content="devx-track-js" />
40
+ <meta name="ms.date" content="12/07/2024" />
41
+ <meta name="ms.devlang" content="javascript" />
42
+ <meta name="ms.reviewer" content="mmcc" />
43
+ <meta name="ms.service" content="azure-monitor" />
44
+ <meta name="ms.subservice" content="application-insights" />
45
+ <meta name="ms.suite" content="office" />
46
+ <meta name="ms.topic" content="conceptual" />
47
+ <meta name="original_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/app/javascript-sdk.md" />
48
+ <meta name="page_type" content="conceptual" />
49
+ <meta name="permissioned-type" content="public" />
50
+ <meta name="recommendation_types" content="Training" />
51
+ <meta name="recommendation_types" content="Certification" />
52
+ <meta name="recommendations" content="true" />
53
+ <meta name="schema" content="Conceptual" />
54
+ <meta name="site_name" content="Docs" />
55
+ <meta name="toc_rel" content="../toc.json" />
56
+ <meta name="uhfHeaderId" content="azure" />
57
+ <meta name="updated_at" content="2024-11-07 10:59 PM" />
58
+ <meta name="word_count" content="2408" />
59
+ <meta name="persistent_id" content="5ee12f97-7da4-54b5-04e2-b360dc43b1c1" />
60
+
61
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/07bb3e10-d135-43ff-bc8b-360497cb39fa" data-source="generated" />
62
+
63
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/12e559b9-eaf6-4aee-9af7-62334e15f863" data-source="generated" />
64
+ <meta name="scope" content="Azure, Azure Monitor" /><meta name="github_feedback_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/app/javascript-sdk.md" /><link href="https://learn.microsoft.com/en-us/azure/azure-monitor/app/javascript-sdk" rel="canonical"><title>Microsoft Azure Monitor Application Insights JavaScript SDK - Azure Monitor | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.029026183/styles/site-ltr.css">
65
+
66
+ <script id="msdocs-script">
67
+ var msDocs = {environment: {
68
+ supportLevel: 'production',
69
+ accessLevel: 'online',
70
+ reviewFeatures: false,
71
+ systemContent: true,
72
+ azurePortalHostname: 'portal.azure.com',
73
+ legacyHosting: false,
74
+ siteName: 'learn',
75
+ },data: {
76
+ timeOrigin: Date.now(),
77
+ contentLocale: 'en-us',
78
+ contentDir: 'ltr',
79
+ userLocale: 'en-us',
80
+ userDir: 'ltr',
81
+ pageTemplate: 'Conceptual',
82
+ brand: 'azure',
83
+ context: {},
84
+ hasBinaryRating: true,
85
+ feedbackHelpLinkType:'get-help-at-qna',
86
+ feedbackHelpLinkUrl:'https://learn.microsoft.com/answers/tags/20/azure-monitor/',
87
+ standardFeedback: true,
88
+ showFeedbackReport: false,
89
+ enableTutorialFeedback: false,
90
+ feedbackSystem: 'Standard',
91
+ feedbackGitHubRepo: 'MicrosoftDocs/azure-docs',
92
+ feedbackProductUrl: 'https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0',extendBreadcrumb: false,isEditDisplayable: true,
93
+ hideViewSource: false,
94
+ hasPageActions: true,
95
+ hasPrintButton: true,
96
+ hasBookmark: true,
97
+ hasShare: true,
98
+ isPermissioned: false,
99
+ isPrivateUnauthorized: false,hasRecommendations: true,contributors: [{ name: "AaronMaxwell", url: "https://github.com/AaronMaxwell" },{ name: "kainawroth", url: "https://github.com/kainawroth" },{ name: "KrishnaG-MSFT", url: "https://github.com/KrishnaG-MSFT" },{ name: "mattmccleary", url: "https://github.com/mattmccleary" },{ name: "v-jbasden", url: "https://github.com/v-jbasden" },{ name: "prmerger-automator[bot]", url: "https://github.com/prmerger-automator[bot]" },{ name: "arjun-ga", url: "https://github.com/arjun-ga" },{ name: "toddfoust", url: "https://github.com/toddfoust" },{ name: "ramthi", url: "https://github.com/ramthi" }],},
100
+ functions:{}
101
+ };
102
+ </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script>
103
+ <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.029026183/global/deprecation.js"></script><script src="/static/assets/0.4.029026183/scripts/en-us/index-docs.js"></script></head>
104
+
105
+ <body lang="en-us" dir="ltr">
106
+ <div class="header-holder has-default-focus">
107
+ <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div>
108
+
109
+ <div id="unsupported-browser" style="
110
+ background-color: white;
111
+ color: black;
112
+ padding: 16px;
113
+ border-bottom: 1px solid grey;"
114
+ hidden
115
+ >
116
+ <div style="max-width: 800px; margin: 0 auto;">
117
+ <p style="font-size: 24px">This browser is no longer supported.</p>
118
+ <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p>
119
+ <div style="margin-top: 12px;">
120
+ <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 "
121
+ style="
122
+ background-color: #0078d4;
123
+ border: 1px solid #0078d4;
124
+ color: white;
125
+ padding: 6px 12px;
126
+ border-radius: 2px;
127
+ display: inline-block;
128
+ ">Download Microsoft Edge</a>
129
+ <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge"
130
+ style="
131
+ background-color: white;
132
+ padding: 6px 12px;
133
+ border: 1px solid #505050;
134
+ color: #171717;
135
+ border-radius: 2px;
136
+ display: inline-block;
137
+ ">More info about Internet Explorer and Microsoft Edge</a>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ <!-- liquid-tag banners global -->
142
+
143
+ <!-- site header -->
144
+ <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization">
145
+ <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div>
146
+ <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div>
147
+ <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div>
148
+ </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header">
149
+ <div class="content-header-controls margin-xxs margin-inline-sm-tablet">
150
+ <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button>
151
+ <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span>
152
+ <span class="contents-expand-title">Table of contents</span>
153
+ </button>
154
+ <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel">
155
+ <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span>
156
+ <span>Exit focus mode</span>
157
+ </button>
158
+ </div>
159
+ </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus">
160
+ <!-- liquid-tag banners sectional -->
161
+ </div>
162
+ </div>
163
+
164
+ <div class="mainContainer uhf-container has-default-focus" data-bi-name="body">
165
+
166
+ <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop">
167
+ <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav>
168
+ </div><!-- .primary-holder -->
169
+ <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop">
170
+ <!--div.columns -->
171
+ <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop">
172
+
173
+ <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header -->
174
+ <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print">
175
+ <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs">
176
+ <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs">
177
+ <span class="icon">
178
+ <span class="docon docon-more"></span>
179
+ </span>
180
+ </summary>
181
+ <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none">
182
+
183
+ </div>
184
+ </details>
185
+
186
+ <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><a
187
+ id="lang-link-tablet"
188
+ class="button button-primary button-clear button-sm display-none display-inline-flex-tablet"
189
+ title="Read in English" data-bi-name="language-toggle"
190
+ data-read-in-link
191
+ hidden>
192
+ <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon>
193
+ <span class="docon docon-locale-globe"></span>
194
+ </span>
195
+ <span class="is-visually-hidden" data-read-in-link-text>Read in English</span>
196
+ </a><button
197
+ type="button"
198
+ class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet"
199
+ data-list-type="collection"
200
+ data-bi-name="collection"
201
+ title="Add to collection">
202
+ <span class="icon margin-none" aria-hidden="true">
203
+ <span class="docon docon-circle-addition"></span>
204
+ </span>
205
+ <span class="collection-status is-visually-hidden">Save</span>
206
+ </button><a data-contenteditbtn
207
+ class="button button-clear button-sm text-decoration-none button-primary display-none display-inline-flex-tablet"
208
+ aria-label="Edit"
209
+ title="Edit This Document"
210
+ data-bi-name="edit"
211
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/app/javascript-sdk.md"
212
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/app/javascript-sdk.md"
213
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/app/javascript-sdk.md"
214
+ data-pr_repo=""
215
+ data-pr_branch="">
216
+ <span class="icon margin-none" aria-hidden="true">
217
+ <span class="docon docon-edit-outline"></span>
218
+ </span>
219
+ </a>
220
+ <details class="popover popover-right" id="article-header-page-actions-overflow">
221
+ <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions">
222
+ <span class="icon" aria-hidden="true">
223
+ <span class="docon docon-more-vertical"></span>
224
+ </span>
225
+ </summary>
226
+ <div class="popover-content padding-xs"><button
227
+ data-page-action-item="overflow-mobile"
228
+ type="button"
229
+ class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet"
230
+ data-bi-name="contents-expand"
231
+ data-contents-button
232
+ data-popover-close>
233
+ <span class="icon">
234
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
235
+ </span><span class="contents-expand-title">Table of contents</span></button><a
236
+ id="lang-link-overflow"
237
+ class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet"
238
+ title="Read in English" data-bi-name="language-toggle"
239
+ data-page-action-item="overflow-mobile"
240
+ data-check-hidden="true"
241
+ data-read-in-link
242
+ hidden
243
+ >
244
+ <span class="icon" aria-hidden="true" data-read-in-link-icon>
245
+ <span class="docon docon-locale-globe"></span>
246
+ </span>
247
+ <span data-read-in-link-text>Read in English</span>
248
+ </a><button
249
+ type="button"
250
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
251
+ data-list-type="collection"
252
+ data-bi-name="collection"
253
+ title="Save"
254
+ data-page-action-item="overflow-mobile"
255
+ data-check-hidden="true"
256
+ data-popover-close>
257
+ <span class="icon" aria-hidden="true">
258
+ <span class="docon docon-circle-addition"></span>
259
+ </span>
260
+ <span class="collection-status">Save</span>
261
+ </button>
262
+
263
+
264
+ <button
265
+ type="button"
266
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
267
+ data-list-type="plan"
268
+ data-bi-name="plan"
269
+ title="Add to Plan"
270
+ data-page-action-item="overflow-mobile"
271
+ data-check-hidden="true"
272
+ data-popover-close
273
+ hidden>
274
+ <span class="icon" aria-hidden="true">
275
+ <span class="docon docon-circle-addition"></span>
276
+ </span>
277
+ <span class="plan-status">Add to Plan</span>
278
+ </button><a data-contenteditbtn
279
+ class="button button-clear button-block button-sm has-inner-focus justify-content-flex-start text-decoration-none display-none-tablet"
280
+ aria-label="Edit"
281
+ title="Edit This Document"
282
+ data-bi-name="edit"
283
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/app/javascript-sdk.md"
284
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/app/javascript-sdk.md"
285
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/app/javascript-sdk.md"
286
+ data-pr_repo=""
287
+ data-pr_branch="">
288
+ <span class="icon" aria-hidden="true">
289
+ <span class="docon docon-edit-outline"></span>
290
+ </span>
291
+ <span>Edit</span>
292
+ </a><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div>
293
+ <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" />
294
+ <h4 class="font-size-sm padding-left-xxs">Share via</h4>
295
+
296
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all">
297
+ <span class="icon" aria-hidden="true">
298
+ <span class="docon docon-facebook-share font-size-md color-primary"></span>
299
+ </span>
300
+ <span class="margin-left-xxs">Facebook</span>
301
+ </a>
302
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all">
303
+ <span class="icon" aria-hidden="true">
304
+ <span class="docon docon-xlogo-share font-size-xxs"></span>
305
+ </span>
306
+ <span class="margin-left-xxs">x.com</span>
307
+ </a>
308
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all">
309
+ <span class="icon" aria-hidden="true">
310
+ <span class="docon docon-linked-in-logo font-size-sm color-primary"></span>
311
+ </span>
312
+ <span class="margin-left-xxs">LinkedIn</span>
313
+ </a>
314
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all">
315
+ <span class="icon" aria-hidden="true">
316
+ <span class="docon docon-mail-message font-size-sm color-primary"></span>
317
+ </span>
318
+ <span class="margin-left-xxs">Email</span>
319
+ </a><hr />
320
+ <button
321
+ class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs"
322
+ title="Print"
323
+ type="button"
324
+ aria-label="Print"
325
+ data-bi-name="print"
326
+ data-page-action-item="overflow-all"
327
+ data-popover-close
328
+ data-print-page
329
+ data-check-hidden="true">
330
+ <span class="icon" aria-hidden="true">
331
+ <span class="docon docon-print font-size-sm color-primary"></span>
332
+ </span>
333
+ <span class="margin-left-xxs">Print</span>
334
+ </button>
335
+ </div>
336
+ </details>
337
+
338
+ </div></div>
339
+ </div>
340
+ <!-- end article-header --><div>
341
+ <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden>
342
+ <span class="icon">
343
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
344
+ </span><span class="contents-expand-title">Table of contents</span></button>
345
+ </div><!-- end mobile-contents button -->
346
+
347
+ <div class="content "><h1 id="enable-azure-monitor-application-insights-real-user-monitoring">Enable Azure Monitor Application Insights Real User Monitoring</h1><div class="display-flex justify-content-space-between align-items-center flex-wrap-wrap page-metadata-container">
348
+ <div class="margin-right-xxs">
349
+ <ul class="metadata page-metadata" data-bi-name="page info" lang="en-us" dir="ltr"><li>Article</li><li class="visibility-hidden-visual-diff"><time class="is-invisible" data-article-date aria-label="Article review date" datetime="2024-12-07T08:00:00Z" data-article-date-source="calculated">12/07/2024</time>
350
+ </li><li class="contributors-holder display-none-print">
351
+ <button aria-label="View all contributors" class="contributors-button link-button" data-bi-name="contributors" title="View all contributors">9 contributors</button>
352
+ </li></ul>
353
+ </div>
354
+ <div id="user-feedback" class="margin-block-xxs display-none-print" data-hide-on-archived>
355
+ <button
356
+ id="user-feedback-button"
357
+ data-test-id="conceptual-feedback-button"
358
+ class="button button-sm button-clear button-primary"
359
+ type="button"
360
+ data-bi-name="user-feedback-button"
361
+ data-user-feedback-button
362
+ >
363
+ <span class="icon" aria-hidden="true">
364
+ <span class="docon docon-like"></span>
365
+ </span>
366
+ <span>Feedback</span>
367
+ </button>
368
+ </div></div><nav id="center-doc-outline" class="doc-outline is-hidden-desktop display-none-print margin-bottom-sm" data-bi-name="intopic toc" aria-label="In this article">
369
+ <h2 id="ms--in-this-article" class="title is-6 margin-block-xs">In this article</h2>
370
+ </nav><!-- <content> --><p>The Microsoft Azure Monitor Application Insights JavaScript SDK collects usage data, which allows you to monitor and analyze the performance of JavaScript web applications. This is commonly referred to as Real User Monitoring or RUM.</p>
371
+ <p>The Application Insights JavaScript SDK has a base SDK and several plugins for more capabilities.</p>
372
+ <p><span class="mx-imgBorder">
373
+ <a href="media/javascript-sdk/conceptual-diagram-javascript-sdk.png#lightbox" data-linktype="relative-path">
374
+ <img src="media/javascript-sdk/conceptual-diagram-javascript-sdk.png" alt="Conceptual diagram that shows the Application Insights JavaScript SDK, its plugins/extensions, and their relationship to each other." data-linktype="relative-path">
375
+ </a>
376
+ </span>
377
+ </p>
378
+ <p>We collect page views by default. But if you want to also collect clicks by default, consider adding the <a href="javascript-feature-extensions" data-linktype="relative-path">Click Analytics Auto-Collection plug-in</a>:</p>
379
+ <ul>
380
+ <li>If you're adding a <a href="javascript-framework-extensions" data-linktype="relative-path">framework extension</a>, which you can <a href="#optional-add-advanced-sdk-configuration" data-linktype="self-bookmark">add</a> after you follow the steps to <a href="#get-started" data-linktype="self-bookmark">get started</a>, you can optionally add Click Analytics when you add the framework extension.</li>
381
+ <li>If you're not adding a framework extension, <a href="javascript-feature-extensions" data-linktype="relative-path">add the Click Analytics plug-in</a> after you follow the steps to get started.</li>
382
+ </ul>
383
+ <p>We provide the <a href="https://github.com/microsoft/ApplicationInsights-JS/blob/main/extensions/applicationinsights-debugplugin-js/README.md" data-linktype="external">Debug plugin</a> and <a href="https://github.com/microsoft/ApplicationInsights-JS/blob/main/extensions/applicationinsights-perfmarkmeasure-js/README.md" data-linktype="external">Performance plugin</a> for debugging/testing. In rare cases, it's possible to build your own extension by adding a <a href="https://github.com/microsoft/ApplicationInsights-JS/blob/e4be62c0aa9318b540157118b729bb0c4d8b6c6e/API-reference.md#custom-extension" data-linktype="external">custom plugin</a>.</p>
384
+ <h2 id="prerequisites">Prerequisites</h2>
385
+ <ul>
386
+ <li>Azure subscription: <a href="https://azure.microsoft.com/free/" data-linktype="external">Create an Azure subscription for free</a></li>
387
+ <li>Application Insights resource: <a href="create-workspace-resource#create-a-workspace-based-resource" data-linktype="relative-path">Create an Application Insights resource</a></li>
388
+ <li>An application that uses <a href="/en-us/visualstudio/javascript" data-linktype="absolute-path">JavaScript</a></li>
389
+ </ul>
390
+ <h2 id="get-started">Get started</h2>
391
+ <p>Follow the steps in this section to instrument your application with the Application Insights JavaScript SDK.</p>
392
+ <div class="TIP">
393
+ <p>Tip</p>
394
+ <p>Good news! We're making it even easier to enable JavaScript with JavaScript (Web) SDK Loader Script injection by configuration.</p>
395
+ <ul>
396
+ <li><a href="asp-net-core?tabs=netcorenew,netcore6#enable-client-side-telemetry-for-web-applications" data-linktype="relative-path">ASP.NET Core</a></li>
397
+ <li><a href="nodejs#browser-sdk-loader" data-linktype="relative-path">Node.js</a></li>
398
+ <li><a href="java-standalone-config#browser-sdk-loader-preview" data-linktype="relative-path">Java</a></li>
399
+ </ul>
400
+ </div>
401
+ <h3 id="add-the-javascript-code">Add the JavaScript code</h3>
402
+ <p>Two methods are available to add the code to enable Application Insights via the Application Insights JavaScript SDK:</p>
403
+ <table>
404
+ <thead>
405
+ <tr>
406
+ <th style="text-align: left;">Method</th>
407
+ <th style="text-align: left;">When would I use this method?</th>
408
+ </tr>
409
+ </thead>
410
+ <tbody>
411
+ <tr>
412
+ <td style="text-align: left;">JavaScript (Web) SDK Loader Script</td>
413
+ <td style="text-align: left;">For most customers, we recommend the JavaScript (Web) SDK Loader Script because you never have to update the SDK and you get the latest updates automatically. Also, you have control over which pages you add the Application Insights JavaScript SDK to.</td>
414
+ </tr>
415
+ <tr>
416
+ <td style="text-align: left;">npm package</td>
417
+ <td style="text-align: left;">You want to bring the SDK into your code and enable IntelliSense. This option is only needed for developers who require more custom events and configuration. This method is required if you plan to use the React, React Native, or Angular Framework Extension.</td>
418
+ </tr>
419
+ </tbody>
420
+ </table>
421
+ <div class="tabGroup" id="tabgroup_1">
422
+ <ul role="tablist">
423
+ <li role="presentation">
424
+ <a href="#tabpanel_1_javascriptwebsdkloaderscript" role="tab" aria-controls="tabpanel_1_javascriptwebsdkloaderscript" data-tab="javascriptwebsdkloaderscript" tabindex="0" aria-selected="true" data-linktype="self-bookmark">JavaScript (Web) SDK Loader Script</a>
425
+ </li>
426
+ <li role="presentation">
427
+ <a href="#tabpanel_1_npmpackage" role="tab" aria-controls="tabpanel_1_npmpackage" data-tab="npmpackage" tabindex="-1" data-linktype="self-bookmark">npm package</a>
428
+ </li>
429
+ </ul>
430
+ <section id="tabpanel_1_javascriptwebsdkloaderscript" role="tabpanel" data-tab="javascriptwebsdkloaderscript">
431
+
432
+ <ol>
433
+ <li><p>Paste the JavaScript (Web) SDK Loader Script at the top of each page for which you want to enable Application Insights.</p>
434
+ <p>Preferably, you should add it as the first script in your <code>&lt;head&gt;</code> section so that it can monitor any potential issues with all of your dependencies.</p>
435
+ <p>If Internet Explorer 8 is detected, JavaScript SDK v2.x is automatically loaded.</p>
436
+ <!-- IMPORTANT: If you're updating this code example, please remember to also update it in: 1) articles\azure-monitor\app\javascript-feature-extensions.md and 2) articles\azure-monitor\app\api-filtering-sampling.md -->
437
+ <pre><code class="lang-html">&lt;script type="text/javascript"&gt;
438
+ !(function (cfg){function e(){cfg.onInit&amp;&amp;cfg.onInit(n)}var x,w,D,t,E,n,C=window,O=document,b=C.location,q="script",I="ingestionendpoint",L="disableExceptionTracking",j="ai.device.";"instrumentationKey"[x="toLowerCase"](),w="crossOrigin",D="POST",t="appInsightsSDK",E=cfg.name||"appInsights",(cfg.name||C[t])&amp;&amp;(C[t]=E),n=C[E]||function(g){var f=!1,m=!1,h={initialize:!0,queue:[],sv:"8",version:2,config:g};function v(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[j+"id"]=i[x](),n[j+"type"]=i,n["ai.operation.name"]=b&amp;&amp;b.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(h.sv||h.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:undefined,seq:"1",aiDataContract:undefined}}var n,i,t,a,y=-1,T=0,S=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],o=g.url||cfg.src,r=function(){return s(o,null)};function s(d,t){if((n=navigator)&amp;&amp;(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&amp;&amp;~d.indexOf("ai.3")&amp;&amp;(d=d.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e&lt;S.length;e++)if(0&lt;d.indexOf(S[e])){y=e;break}var n,i=function(e){var a,t,n,i,o,r,s,c,u,l;h.queue=[],m||(0&lt;=y&amp;&amp;T+1&lt;S.length?(a=(y+T+1)%S.length,p(d.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+S[a]+i})),T+=1):(f=m=!0,s=d,!0!==cfg.dle&amp;&amp;(c=(t=function(){var e,t={},n=g.connectionString;if(n)for(var i=n.split(";"),a=0;a&lt;i.length;a++){var o=i[a].split("=");2===o.length&amp;&amp;(t[o[0][x]()]=o[1])}return t[I]||(e=(n=t.endpointsuffix)?t.location:null,t[I]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||g.instrumentationKey||"",t=(t=(t=t[I])&amp;&amp;"/"===t.slice(-1)?t.slice(0,-1):t)?t+"/v2/track":g.endpointUrl,t=g.userOverrideEndpointUrl||t,(n=[]).push((i="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",o=s,u=t,(l=(r=v(c,"Exception")).data).baseType="ExceptionData",l.baseData.exceptions=[{typeName:"SDKLoadFailed",message:i.replace(/\./g,"-"),hasFullStack:!1,stack:i+"\nSnippet failed to load ["+o+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(b&amp;&amp;b.pathname||"_unknown_")+"\nEndpoint: "+u,parsedStack:[]}],r)),n.push((l=s,i=t,(u=(o=v(c,"Message")).data).baseType="MessageData",(r=u.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+l+")").replace(/\"/g,"")+'"',r.properties={endpoint:i},o)),s=n,c=t,JSON&amp;&amp;((u=C.fetch)&amp;&amp;!cfg.useXhr?u(c,{method:D,body:JSON.stringify(s),mode:"cors"}):XMLHttpRequest&amp;&amp;((l=new XMLHttpRequest).open(D,c),l.setRequestHeader("Content-type","application/json"),l.send(JSON.stringify(s)))))))},a=function(e,t){m||setTimeout(function(){!t&amp;&amp;h.core||i()},500),f=!1},p=function(e){var n=O.createElement(q),e=(n.src=e,t&amp;&amp;(n.integrity=t),n.setAttribute("data-ai-name",E),cfg[w]);return!e&amp;&amp;""!==e||"undefined"==n[w]||(n[w]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&amp;&amp;"complete"!==n.readyState||a(0,t)},cfg.ld&amp;&amp;cfg.ld&lt;0?O.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){O.getElementsByTagName(q)[0].parentNode.appendChild(n)},cfg.ld||0),n};p(d)}cfg.sri&amp;&amp;(n=o.match(/^((http[s]?:\/\/.*\/)\w+(\.\d+){1,5})\.(([\w]+\.){0,2}js)$/))&amp;&amp;6===n.length?(d="".concat(n[1],".integrity.json"),i="@".concat(n[4]),l=window.fetch,t=function(e){if(!e.ext||!e.ext[i]||!e.ext[i].file)throw Error("Error Loading JSON response");var t=e.ext[i].integrity||null;s(o=n[2]+e.ext[i].file,t)},l&amp;&amp;!cfg.useXhr?l(d,{method:"GET",mode:"cors"}).then(function(e){return e.json()["catch"](function(){return{}})}).then(t)["catch"](r):XMLHttpRequest&amp;&amp;((a=new XMLHttpRequest).open("GET",d),a.onreadystatechange=function(){if(a.readyState===XMLHttpRequest.DONE)if(200===a.status)try{t(JSON.parse(a.responseText))}catch(e){r()}else r()},a.send())):o&amp;&amp;r();try{h.cookie=O.cookie}catch(k){}function e(e){for(;e.length;)!function(t){h[t]=function(){var e=arguments;f||h.queue.push(function(){h[t].apply(h,e)})}}(e.pop())}var c,u,l="track",d="TrackPage",p="TrackEvent",l=(e([l+"Event",l+"PageView",l+"Exception",l+"Trace",l+"DependencyData",l+"Metric",l+"PageViewPerformance","start"+d,"stop"+d,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),h.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(g.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==g[L]&amp;&amp;!0!==l[L]&amp;&amp;(e(["_"+(c="onerror")]),u=C[c],C[c]=function(e,t,n,i,a){var o=u&amp;&amp;u(e,t,n,i,a);return!0!==o&amp;&amp;h["_"+c]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},g.autoExceptionInstrumented=!0),h}(cfg.cfg),(C[E]=n).queue&amp;&amp;0===n.queue.length?(n.queue.push(e),n.trackPageView({})):e();})({
439
+ src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
440
+ // name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied
441
+ // ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout,
442
+ // useXhr: 1, // Use XHR instead of fetch to report failures (if available),
443
+ // dle: true, // Prevent the SDK from reporting load failure log
444
+ crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag
445
+ // onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DON'T ADD anything to the sdk.queue -- As they won't get called)
446
+ // sri: false, // Custom optional value to specify whether fetching the snippet from integrity file and do integrity check
447
+ cfg: { // Application Insights Configuration
448
+ connectionString: "YOUR_CONNECTION_STRING"
449
+ }});
450
+ &lt;/script&gt;
451
+ </code></pre>
452
+ </li>
453
+ <li><p>(Optional) Add or update optional <a href="#javascript-web-sdk-loader-script-configuration" data-linktype="self-bookmark">JavaScript (Web) SDK Loader Script configuration</a>, if you need to optimize the loading of your web page or resolve loading errors.</p>
454
+ <p><span class="mx-imgBorder">
455
+ <a href="media/javascript-sdk/sdk-loader-script-configuration.png#lightbox" data-linktype="relative-path">
456
+ <img src="media/javascript-sdk/sdk-loader-script-configuration.png" alt="Screenshot of the JavaScript (Web) SDK Loader Script. The parameters for configuring the JavaScript (Web) SDK Loader Script are highlighted." data-linktype="relative-path">
457
+ </a>
458
+ </span>
459
+ </p>
460
+ </li>
461
+ </ol>
462
+ <h4 id="javascript-web-sdk-loader-script-configuration">JavaScript (Web) SDK Loader Script configuration</h4>
463
+ <table>
464
+ <thead>
465
+ <tr>
466
+ <th>Name</th>
467
+ <th>Type</th>
468
+ <th>Required?</th>
469
+ <th>Description</th>
470
+ </tr>
471
+ </thead>
472
+ <tbody>
473
+ <tr>
474
+ <td>src</td>
475
+ <td>string</td>
476
+ <td>Required</td>
477
+ <td>The full URL for where to load the SDK from. This value is used for the "src" attribute of a dynamically added &lt;script /&gt; tag. You can use the public CDN location or your own privately hosted one.</td>
478
+ </tr>
479
+ <tr>
480
+ <td>name</td>
481
+ <td>string</td>
482
+ <td>Optional</td>
483
+ <td>The global name for the initialized SDK. Use this setting if you need to initialize two different SDKs at the same time.<br><br>The default value is appInsights, so <code>window.appInsights</code> is a reference to the initialized instance.<br><br> Note: If you assign a name value or if a previous instance is assigned to the global name appInsightsSDK, the SDK initialization code requires it to be in the global namespace as <code>window.appInsightsSDK=&lt;name value&gt;</code> to ensure the correct JavaScript (Web) SDK Loader Script skeleton, and proxy methods are initialized and updated.</td>
484
+ </tr>
485
+ <tr>
486
+ <td>ld</td>
487
+ <td>number in ms</td>
488
+ <td>Optional</td>
489
+ <td>Defines the load delay to wait before attempting to load the SDK. Use this setting when the HTML page is failing to load because the JavaScript (Web) SDK Loader Script is loading at the wrong time.<br><br>The default value is 0ms after timeout. If you use a negative value, the script tag is immediately added to the <code>&lt;head&gt;</code> region of the page and blocks the page load event until the script is loaded or fails.</td>
490
+ </tr>
491
+ <tr>
492
+ <td>useXhr</td>
493
+ <td>boolean</td>
494
+ <td>Optional</td>
495
+ <td>This setting is used only for reporting SDK load failures. For example, this setting is useful when the JavaScript (Web) SDK Loader Script is preventing the HTML page from loading, causing fetch() to be unavailable.<br><br>Reporting first attempts to use fetch() if available and then fallback to XHR. Set this setting to <code>true</code> to bypass the fetch check. This setting is necessary only in environments where fetch can't transmit failure events, for example, when the JavaScript (Web) SDK Loader Script fails to load successfully.</td>
496
+ </tr>
497
+ <tr>
498
+ <td>crossOrigin</td>
499
+ <td>string</td>
500
+ <td>Optional</td>
501
+ <td>By including this setting, the script tag added to download the SDK includes the crossOrigin attribute with this string value. Use this setting when you need to provide support for CORS. When not defined (the default), no crossOrigin attribute is added. Recommended values aren't defined (the default), "", or "anonymous". For all valid values, see the <a href="https://developer.mozilla.org/docs/Web/HTML/Attributes/crossorigin" data-linktype="external">cross origin HTML attribute</a> documentation.</td>
502
+ </tr>
503
+ <tr>
504
+ <td>onInit</td>
505
+ <td>function(aiSdk) { ... }</td>
506
+ <td>Optional</td>
507
+ <td>This callback function is called after the main SDK script is successfully loaded and initialized from the CDN (based on the src value). This callback function is useful when you need to insert a telemetry initializer. It's passed one argument, which is a reference to the SDK instance that's being called for and is also called before the first initial page view. If the SDK is already loaded and initialized, this callback is still called. NOTE: During the processing of the sdk.queue array, this callback is called. You can't add any more items to the queue because they're ignored and dropped. (Added as part of JavaScript (Web) SDK Loader Script version 5--the sv:"5" value within the script).</td>
508
+ </tr>
509
+ <tr>
510
+ <td>cr</td>
511
+ <td>boolean</td>
512
+ <td>Optional</td>
513
+ <td>If the SDK fails to load and the endpoint value defined for <code>src</code> is the public CDN location, this configuration option attempts to immediately load the SDK from one of the following backup CDN endpoints:<ul><li>js.monitor.azure.com</li><li>js.cdn.applicationinsights.io</li><li>js.cdn.monitor.azure.com</li><li>js0.cdn.applicationinsights.io</li><li>js0.cdn.monitor.azure.com</li><li>js2.cdn.applicationinsights.io</li><li>js2.cdn.monitor.azure.com</li><li>az416426.vo.msecnd.net</li></ul>NOTE: az416426.vo.msecnd.net is partially supported, so it's not recommended.<br><br>If the SDK successfully loads from a backup CDN endpoint, it loads from the first available one, which is determined when the server performs a successful load check. If the SDK fails to load from any of the backup CDN endpoints, the SDK Failure error message appears.<br><br>When not defined, the default value is <code>true</code>. If you don’t want to load the SDK from the backup CDN endpoints, set this configuration option to <code>false</code>.<br><br>If you’re loading the SDK from your own privately hosted CDN endpoint, this configuration option isn't applicable.</td>
514
+ </tr>
515
+ </tbody>
516
+ </table>
517
+ </section>
518
+ <section id="tabpanel_1_npmpackage" role="tabpanel" data-tab="npmpackage" aria-hidden="true" hidden="hidden">
519
+
520
+ <ol>
521
+ <li><p>Use the following command to install the Microsoft Application Insights JavaScript SDK - Web package.</p>
522
+ <pre><code class="lang-sh">npm i --save @microsoft/applicationinsights-web
523
+ </code></pre>
524
+ <p><em>Typings are included with this package</em>, so you <em>don't</em> need to install a separate typings package.</p>
525
+ </li>
526
+ <li><p>Add the following JavaScript to your application's code.</p>
527
+ <p>Where and also how you add this JavaScript code depends on your application code. For example, you might be able to add it exactly as it appears below or you may need to create wrappers around it.</p>
528
+ <pre><code class="lang-js">import { ApplicationInsights } from '@microsoft/applicationinsights-web'
529
+
530
+ const appInsights = new ApplicationInsights({ config: {
531
+ connectionString: 'YOUR_CONNECTION_STRING'
532
+ /* ...Other Configuration Options... */
533
+ } });
534
+ appInsights.loadAppInsights();
535
+ appInsights.trackPageView();
536
+ </code></pre>
537
+ </li>
538
+ </ol>
539
+ </section>
540
+ </div>
541
+ <h3 id="paste-the-connection-string-in-your-environment">Paste the connection string in your environment</h3>
542
+ <p>To paste the connection string in your environment, follow these steps:</p>
543
+ <ol>
544
+ <li><p>Navigate to the <strong>Overview</strong> pane of your Application Insights resource.</p>
545
+ </li>
546
+ <li><p>Locate the <strong>Connection String</strong>.</p>
547
+ </li>
548
+ <li><p>Select the <strong>Copy to clipboard</strong> icon to copy the connection string to the clipboard.</p>
549
+ <p><span class="mx-imgBorder">
550
+ <a href="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png#lightbox" data-linktype="relative-path">
551
+ <img src="media/migrate-from-instrumentation-keys-to-connection-strings/migrate-from-instrumentation-keys-to-connection-strings.png" alt="Screenshot that shows Application Insights overview and connection string." data-linktype="relative-path">
552
+ </a>
553
+ </span>
554
+ </p>
555
+ </li>
556
+ <li><p>Replace the placeholder <code>"YOUR_CONNECTION_STRING"</code> in the JavaScript code with your <a href="connection-strings" data-linktype="relative-path">connection string</a> copied to the clipboard.</p>
557
+ <p>The <code>connectionString</code> format must follow "InstrumentationKey=xxxx;....". If the string provided doesn't meet this format, the SDK load process fails.</p>
558
+ <p>The connection string isn't considered a security token or key. For more information, see <a href="connection-strings#do-new-azure-regions-require-the-use-of-connection-strings" data-linktype="relative-path">Do new Azure regions require the use of connection strings?</a>.</p>
559
+ <div class="NOTE">
560
+ <p>Note</p>
561
+ <p>The Application Insights JavaScript SDK requires the connection string to be passed in during initialization and configuration. It's viewable in plain text in client browsers. There's no easy way to use the <a href="azure-ad-authentication#microsoft-entra-authentication-for-application-insights" data-linktype="relative-path">Microsoft Entra ID-based authentication</a> for browser telemetry. We recommend that you consider creating a separate Application Insights resource for browser telemetry if you need to secure the service telemetry.</p>
562
+ </div>
563
+ </li>
564
+ </ol>
565
+ <h3 id="optional-add-sdk-configuration">(Optional) Add SDK configuration</h3>
566
+ <p>The optional <a href="javascript-sdk-configuration#sdk-configuration" data-linktype="relative-path">SDK configuration</a> is passed to the Application Insights JavaScript SDK during initialization.</p>
567
+ <p>To add SDK configuration, add each configuration option directly under <code>connectionString</code>. For example:</p>
568
+ <p><span class="mx-imgBorder">
569
+ <a href="media/javascript-sdk/example-sdk-configuration.png#lightbox" data-linktype="relative-path">
570
+ <img src="media/javascript-sdk/example-sdk-configuration.png" alt="Screenshot of JavaScript code with SDK configuration options added and highlighted." data-linktype="relative-path">
571
+ </a>
572
+ </span>
573
+ </p>
574
+ <h3 id="optional-add-advanced-sdk-configuration">(Optional) Add advanced SDK configuration</h3>
575
+ <p>If you want to use the extra features provided by plugins for specific frameworks and optionally enable the Click Analytics plug-in, see:</p>
576
+ <ul>
577
+ <li><a href="javascript-framework-extensions?tabs=react" data-linktype="relative-path">React plugin</a></li>
578
+ <li><a href="javascript-framework-extensions?tabs=reactnative" data-linktype="relative-path">React native plugin</a></li>
579
+ <li><a href="javascript-framework-extensions?tabs=angular" data-linktype="relative-path">Angular plugin</a></li>
580
+ </ul>
581
+ <h3 id="confirm-data-is-flowing">Confirm data is flowing</h3>
582
+ <ol>
583
+ <li><p>Go to your Application Insights resource that you enabled the SDK for.</p>
584
+ </li>
585
+ <li><p>In the Application Insights resource menu on the left, under <strong>Investigate</strong>, select the <strong>Transaction search</strong> pane.</p>
586
+ </li>
587
+ <li><p>Open the <strong>Event types</strong> dropdown menu and select <strong>Select all</strong> to clear the checkboxes in the menu.</p>
588
+ </li>
589
+ <li><p>From the <strong>Event types</strong> dropdown menu, select:</p>
590
+ <ul>
591
+ <li><strong>Page View</strong> for Azure Monitor Application Insights Real User Monitoring</li>
592
+ <li><strong>Custom Event</strong> for the Click Analytics Auto-Collection plug-in.</li>
593
+ </ul>
594
+ <p>It might take a few minutes for data to show up in the portal. If the only data you see showing up is a load failure exception, see <a href="/en-us/troubleshoot/azure/azure-monitor/app-insights/javascript-sdk-troubleshooting#troubleshoot-sdk-load-failure-for-javascript-web-apps" data-linktype="absolute-path">Troubleshoot SDK load failure for JavaScript web apps</a>.</p>
595
+ <p>In some cases, if multiple instances of different versions of Application Insights are running on the same page, errors can occur during initialization. For these cases and the error message that appears, see <a href="https://github.com/microsoft/ApplicationInsights-JS/blob/main/versionConflict.md" data-linktype="external">Running multiple versions of the Application Insights JavaScript SDK in one session</a>. If you encounter one of these errors, try changing the namespace by using the <code>name</code> setting. For more information, see <a href="#javascript-web-sdk-loader-script-configuration" data-linktype="self-bookmark">JavaScript (Web) SDK Loader Script configuration</a>.</p>
596
+ <p><span class="mx-imgBorder">
597
+ <a href="media/javascript-sdk/confirm-data-flowing.png#lightbox" data-linktype="relative-path">
598
+ <img src="media/javascript-sdk/confirm-data-flowing.png" alt="Screenshot of the Application Insights Transaction search pane in the Azure portal with the Page View option selected. The page views are highlighted." data-linktype="relative-path">
599
+ </a>
600
+ </span>
601
+ </p>
602
+ </li>
603
+ <li><p>If you want to query data to confirm data is flowing:</p>
604
+ <ol>
605
+ <li><p>Select <strong>Logs</strong> in the left pane.</p>
606
+ <p>When you select Logs, the <a href="../logs/queries#queries-dialog" data-linktype="relative-path">Queries dialog</a> opens, which contains sample queries relevant to your data.</p>
607
+ </li>
608
+ <li><p>Select <strong>Run</strong> for the sample query you want to run.</p>
609
+ </li>
610
+ <li><p>If needed, you can update the sample query or write a new query by using <a href="/en-us/azure/data-explorer/kusto/query/" data-linktype="absolute-path">Kusto Query Language (KQL)</a>.</p>
611
+ <p>For essential KQL operators, see <a href="/en-us/azure/data-explorer/kusto/query/tutorials/learn-common-operators" data-linktype="absolute-path">Learn common KQL operators</a>.</p>
612
+ </li>
613
+ </ol>
614
+ </li>
615
+ </ol>
616
+ <h2 id="frequently-asked-questions">Frequently asked questions</h2>
617
+ <p>This section provides answers to common questions.</p>
618
+ <h3 id="what-are-the-user-and-session-counts">What are the user and session counts?</h3>
619
+ <ul>
620
+ <li>The JavaScript SDK sets a user cookie on the web client, to identify returning users, and a session cookie to group activities.</li>
621
+ <li>If there's no client-side script, you can <a href="https://apmtips.com/posts/2016-07-09-tracking-users-in-api-apps/" data-linktype="external">set cookies at the server</a>.</li>
622
+ <li>If one real user uses your site in different browsers, or by using in-private/incognito browsing, or different machines, they're counted more than once.</li>
623
+ <li>To identify a signed-in user across machines and browsers, add a call to <a href="api-custom-events-metrics#authenticated-users" data-linktype="relative-path">setAuthenticatedUserContext()</a>.</li>
624
+ </ul>
625
+ <h3 id="what-is-the-javascript-sdk-performanceoverhead">What is the JavaScript SDK performance/overhead?</h3>
626
+ <p>The Application Insights JavaScript SDK has a minimal overhead on your website. At just 36 KB gzipped, and taking only ~15 ms to initialize, the SDK adds a negligible amount of load time to your website. The minimal components of the library are quickly loaded when you use the SDK, and the full script is downloaded in the background.</p>
627
+ <p>Additionally, while the script is downloading from the CDN, all tracking of your page is queued, so you don't lose any telemetry during the entire life cycle of your page. This setup process provides your page with a seamless analytics system that's invisible to your users.</p>
628
+ <h3 id="what-browsers-are-supported-by-the-javascript-sdk">What browsers are supported by the JavaScript SDK?</h3>
629
+ <table>
630
+ <thead>
631
+ <tr>
632
+ <th><span class="mx-imgBorder">
633
+ <img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" data-linktype="external">
634
+ </span>
635
+ </th>
636
+ <th><span class="mx-imgBorder">
637
+ <img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" data-linktype="external">
638
+ </span>
639
+ </th>
640
+ <th><span class="mx-imgBorder">
641
+ <img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE" data-linktype="external">
642
+ </span>
643
+ </th>
644
+ <th><span class="mx-imgBorder">
645
+ <img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" data-linktype="external">
646
+ </span>
647
+ </th>
648
+ <th><span class="mx-imgBorder">
649
+ <img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" data-linktype="external">
650
+ </span>
651
+ </th>
652
+ </tr>
653
+ </thead>
654
+ <tbody>
655
+ <tr>
656
+ <td>Chrome Latest ✔</td>
657
+ <td>Firefox Latest ✔</td>
658
+ <td>v3.x: IE 9+ &amp; Microsoft Edge ✔<br>v2.x: IE 8+ Compatible &amp; Microsoft Edge ✔</td>
659
+ <td>Opera Latest ✔</td>
660
+ <td>Safari Latest ✔</td>
661
+ </tr>
662
+ </tbody>
663
+ </table>
664
+ <h3 id="where-can-i-find-code-examples-for-the-javascript-sdk">Where can I find code examples for the JavaScript SDK?</h3>
665
+ <p>For runnable examples, see <a href="https://github.com/microsoft/ApplicationInsights-JS/tree/master/examples" data-linktype="external">Application Insights JavaScript SDK samples</a>.</p>
666
+ <h3 id="what-is-the-es3internet-explorer-8-compatibility-with-the-javascript-sdk">What is the ES3/Internet Explorer 8 compatibility with the JavaScript SDK?</h3>
667
+ <p>We need to take necessary measures to ensure that this SDK continues to "work" and doesn't break the JavaScript execution when loaded by an older browser. It would be ideal to not support older browsers, but numerous large customers can't control which browser their users choose to use.</p>
668
+ <p>This statement doesn't mean that we only support the lowest common set of features. We need to maintain ES3 code compatibility. New features need to be added in a manner that wouldn't break ES3 JavaScript parsing and added as an optional feature.</p>
669
+ <p>See GitHub for full details on <a href="https://github.com/Microsoft/ApplicationInsights-JS#es3ie8-compatibility" data-linktype="external">Internet Explorer 8 support</a>.</p>
670
+ <h3 id="is-the-javascript-sdk-open-source">Is the JavaScript SDK open-source?</h3>
671
+ <p>Yes, the Application Insights JavaScript SDK is open source. To view the source code or to contribute to the project, see the <a href="https://github.com/Microsoft/ApplicationInsights-JS" data-linktype="external">official GitHub repository</a>.</p>
672
+ <h2 id="support">Support</h2>
673
+ <ul>
674
+ <li>If you can't run the application or you aren't getting data as expected, see the dedicated <a href="/en-us/troubleshoot/azure/azure-monitor/app-insights/javascript-sdk-troubleshooting" data-linktype="absolute-path">troubleshooting article</a>.</li>
675
+ <li>For common question about the JavaScript SDK, see the <a href="#frequently-asked-questions" data-linktype="self-bookmark">FAQ</a>.</li>
676
+ <li>For Azure support issues, open an <a href="https://azure.microsoft.com/support/create-ticket/" data-linktype="external">Azure support ticket</a>.</li>
677
+ <li>For a list of open issues related to the Application Insights JavaScript SDK, see the <a href="https://github.com/microsoft/ApplicationInsights-JS/issues" data-linktype="external">GitHub Issues Page</a>.</li>
678
+ <li>Use the <a href="https://github.com/microsoft/ApplicationInsights-JS/tree/master/tools/chrome-debug-extension" data-linktype="external">Telemetry Viewer extension</a> to list out the individual events in the network payload and monitor the internal calls within Application Insights.</li>
679
+ </ul>
680
+ <h2 id="next-steps">Next steps</h2>
681
+ <ul>
682
+ <li><a href="usage" data-linktype="relative-path">Explore Application Insights usage experiences</a></li>
683
+ <li><a href="api-custom-events-metrics#page-views" data-linktype="relative-path">Track page views</a></li>
684
+ <li><a href="api-custom-events-metrics" data-linktype="relative-path">Track custom events and metrics</a></li>
685
+ <li><a href="api-filtering-sampling#javascript-telemetry-initializers" data-linktype="relative-path">Insert a JavaScript telemetry initializer</a></li>
686
+ <li><a href="javascript-sdk-configuration" data-linktype="relative-path">Add JavaScript SDK configuration</a></li>
687
+ <li>See the detailed <a href="https://github.com/microsoft/ApplicationInsights-JS/releases" data-linktype="external">release notes</a> on GitHub for updates and bug fixes.</li>
688
+ <li><a href="../logs/log-query-overview" data-linktype="relative-path">Query data in Log Analytics</a>.</li>
689
+ </ul>
690
+ </div><div id="ms--inline-notifications" class="margin-block-xs" data-bi-name="inline-notification"></div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
691
+ <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
692
+ <!-- </content> -->
693
+
694
+ </main><!-- recommendations section --><!-- end recommendations section -->
695
+
696
+ <!-- feedback section --><section id="site-user-feedback-footer" class="font-size-sm margin-top-md" data-test-id="site-user-feedback-footer" data-bi-name="site-feedback-section">
697
+ <hr class="hr" />
698
+ <h2 id="feedback" class="title is-3">Feedback</h2>
699
+ <div class="display-flex flex-wrap-wrap align-items-center">
700
+ <p class="font-weight-semibold margin-xxs margin-left-none">Was this page helpful?</p>
701
+ <div class="buttons">
702
+ <button
703
+ class="thumb-rating-button like button button-primary button-sm"
704
+ data-test-id="footer-rating-yes"
705
+ data-binary-rating-response="rating-yes"
706
+ type="button"
707
+ title="This article is helpful"
708
+ data-bi-name="button-rating-yes"
709
+ aria-pressed="false"
710
+ >
711
+ <span class="icon" aria-hidden="true">
712
+ <span class="docon docon-like"></span>
713
+ </span>
714
+ <span>Yes</span>
715
+ </button>
716
+ <button
717
+ class="thumb-rating-button dislike button button-primary button-sm"
718
+ data-test-id="footer-rating-no"
719
+ data-binary-rating-response="rating-no"
720
+ type="button"
721
+ title="This article is not helpful"
722
+ data-bi-name="button-rating-no"
723
+ aria-pressed="false"
724
+ >
725
+ <span class="icon" aria-hidden="true">
726
+ <span class="docon docon-dislike"></span>
727
+ </span>
728
+ <span>No</span>
729
+ </button>
730
+ </div>
731
+ </div><div class="display-flex flex-wrap-wrap margin-top-xxs"><div>
732
+ <a
733
+ data-bi-name="provide-feedback-cta"
734
+ class="has-external-link-indicator"
735
+ href="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0"
736
+ data-bi-name="product-feedback"
737
+ >
738
+ <span>Provide product feedback</span>
739
+ </a><span class="margin-inline-xxs" aria-hidden="true">|</span></div><a href="https://learn.microsoft.com/answers/tags/20/azure-monitor/" class="has-external-link-indicator" data-bi-name="get-help-at-qna">
740
+ <span>Get help at Microsoft Q&A</span>
741
+ </a></div>
742
+
743
+ </section><!-- end feedback section -->
744
+
745
+ <!-- feedback report section --><!-- end feedback report section --><aside
746
+ id="ms--additional-resources-mobile"
747
+ aria-label="Additional resources"
748
+ class="display-none-desktop display-none-print"
749
+ >
750
+ <hr class="hr" hidden />
751
+ <h2 id="ms--additional-resources-mobile-heading" class="title is-3" hidden>Additional resources</h2>
752
+ <section id="right-rail-recommendations-mobile" data-bi-name="recommendations" hidden></section>
753
+ <section id="right-rail-training-mobile" data-bi-name="learning-resources-card" hidden></section>
754
+ <section id="right-rail-events-mobile" data-bi-name="events-card" hidden></section>
755
+ <section id="right-rail-qna-mobile" data-bi-name="qna-link-card" hidden></section>
756
+ </aside><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
757
+ data-mscc-ic="false"
758
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
759
+ href="#"
760
+ data-bi-name="select-locale">
761
+ <span class="icon" aria-hidden="true">
762
+ <span class="docon docon-world"></span>
763
+ </span>
764
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
765
+ <a
766
+ href="https://aka.ms/yourcaliforniaprivacychoices"
767
+ class="button button-sm button-clear flex-shrink-0"
768
+ data-mscc-ic="false"
769
+ data-bi-name="your-privacy-choices"
770
+ >
771
+ <svg
772
+ role="img"
773
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
774
+ xmlns="http://www.w3.org/2000/svg"
775
+ viewBox="0 0 30 14"
776
+ xml:space="preserve"
777
+ height="16"
778
+ width="43"
779
+ focusable="false"
780
+ >
781
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
782
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
783
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
784
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
785
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
786
+ </svg>
787
+ <span>Your Privacy Choices</span>
788
+ </a>
789
+
790
+ </div>
791
+ <div class="flex-shrink-0">
792
+ <div class="dropdown has-caret-up">
793
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
794
+ aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme">
795
+ <span class="icon">
796
+ <span class="docon docon-sun" aria-hidden="true"></span>
797
+ </span>
798
+ <span>Theme</span>
799
+ <span class="icon expanded-indicator" aria-hidden="true">
800
+ <span class="docon docon-chevron-down-light"></span>
801
+ </span>
802
+ </button>
803
+ <div class="dropdown-menu" id="theme-menu-interactive" role="menu">
804
+ <ul class="theme-selector padding-xxs" role="none">
805
+ <li class="theme display-block" role="menuitem">
806
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
807
+ data-theme-to="light">
808
+ <span class="theme-light margin-right-xxs">
809
+ <span
810
+ class="theme-selector-icon border display-inline-block has-body-background"
811
+ aria-hidden="true">
812
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
813
+ viewBox="0 0 22 14">
814
+ <rect width="22" height="14" class="has-fill-body-background" />
815
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
816
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
817
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
818
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
819
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
820
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
821
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
822
+ </svg>
823
+ </span>
824
+ </span>
825
+ <span>Light</span>
826
+ </button>
827
+ </li>
828
+ <li class="theme display-block" role="menuitem">
829
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
830
+ data-theme-to="dark">
831
+ <span class="theme-dark margin-right-xxs">
832
+ <span
833
+ class="border theme-selector-icon display-inline-block has-body-background"
834
+ aria-hidden="true">
835
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
836
+ viewBox="0 0 22 14">
837
+ <rect width="22" height="14" class="has-fill-body-background" />
838
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
839
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
840
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
841
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
842
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
843
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
844
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
845
+ </svg>
846
+ </span>
847
+ </span>
848
+ <span>Dark</span>
849
+ </button>
850
+ </li>
851
+ <li class="theme display-block" role="menuitem">
852
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
853
+ data-theme-to="high-contrast">
854
+ <span class="theme-high-contrast margin-right-xxs">
855
+ <span
856
+ class="border theme-selector-icon display-inline-block has-body-background"
857
+ aria-hidden="true">
858
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
859
+ viewBox="0 0 22 14">
860
+ <rect width="22" height="14" class="has-fill-body-background" />
861
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
862
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
863
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
864
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
865
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
866
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
867
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
868
+ </svg>
869
+ </span>
870
+ </span>
871
+ <span>High contrast</span>
872
+ </button>
873
+ </li>
874
+ </ul>
875
+ </div>
876
+ </div>
877
+
878
+ </div>
879
+ </div>
880
+ <ul class="links" data-bi-name="footerlinks">
881
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
882
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
883
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
884
+ </ul>
885
+ </footer></div></div><div
886
+ id="ms--additional-resources"
887
+ class="right-container column is-4-desktop display-none display-block-desktop"
888
+ data-bi-name="pageactions"
889
+ role="complementary"
890
+ aria-label="Additional resources"
891
+ >
892
+ <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column">
893
+ <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2>
894
+ <section id="right-rail-events" data-bi-name="events-card" hidden></section>
895
+ <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section>
896
+ <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section>
897
+ <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article">
898
+ <h3>In this article</h3>
899
+ </nav>
900
+ <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section>
901
+ </div>
902
+ </div></div>
903
+ <!--end of div.columns -->
904
+
905
+ </section>
906
+ <!--end of .primary-holder -->
907
+
908
+ <!-- interactive container -->
909
+ <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark ">
910
+ </aside>
911
+ <!-- end of interactive container -->
912
+ </div>
913
+
914
+ </div>
915
+ <!--end of .mainContainer -->
916
+
917
+ <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
918
+ data-mscc-ic="false"
919
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
920
+ href="#"
921
+ data-bi-name="select-locale">
922
+ <span class="icon" aria-hidden="true">
923
+ <span class="docon docon-world"></span>
924
+ </span>
925
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
926
+ <a
927
+ href="https://aka.ms/yourcaliforniaprivacychoices"
928
+ class="button button-sm button-clear flex-shrink-0"
929
+ data-mscc-ic="false"
930
+ data-bi-name="your-privacy-choices"
931
+ >
932
+ <svg
933
+ role="img"
934
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
935
+ xmlns="http://www.w3.org/2000/svg"
936
+ viewBox="0 0 30 14"
937
+ xml:space="preserve"
938
+ height="16"
939
+ width="43"
940
+ focusable="false"
941
+ >
942
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
943
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
944
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
945
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
946
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
947
+ </svg>
948
+ <span>Your Privacy Choices</span>
949
+ </a>
950
+
951
+ </div>
952
+ <div class="flex-shrink-0">
953
+ <div class="dropdown has-caret-up">
954
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
955
+ aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme">
956
+ <span class="icon">
957
+ <span class="docon docon-sun" aria-hidden="true"></span>
958
+ </span>
959
+ <span>Theme</span>
960
+ <span class="icon expanded-indicator" aria-hidden="true">
961
+ <span class="docon docon-chevron-down-light"></span>
962
+ </span>
963
+ </button>
964
+ <div class="dropdown-menu" id="theme-menu" role="menu">
965
+ <ul class="theme-selector padding-xxs" role="none">
966
+ <li class="theme display-block" role="menuitem">
967
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
968
+ data-theme-to="light">
969
+ <span class="theme-light margin-right-xxs">
970
+ <span
971
+ class="theme-selector-icon border display-inline-block has-body-background"
972
+ aria-hidden="true">
973
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
974
+ viewBox="0 0 22 14">
975
+ <rect width="22" height="14" class="has-fill-body-background" />
976
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
977
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
978
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
979
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
980
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
981
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
982
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
983
+ </svg>
984
+ </span>
985
+ </span>
986
+ <span>Light</span>
987
+ </button>
988
+ </li>
989
+ <li class="theme display-block" role="menuitem">
990
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
991
+ data-theme-to="dark">
992
+ <span class="theme-dark margin-right-xxs">
993
+ <span
994
+ class="border theme-selector-icon display-inline-block has-body-background"
995
+ aria-hidden="true">
996
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
997
+ viewBox="0 0 22 14">
998
+ <rect width="22" height="14" class="has-fill-body-background" />
999
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
1000
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
1001
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
1002
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
1003
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
1004
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
1005
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
1006
+ </svg>
1007
+ </span>
1008
+ </span>
1009
+ <span>Dark</span>
1010
+ </button>
1011
+ </li>
1012
+ <li class="theme display-block" role="menuitem">
1013
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
1014
+ data-theme-to="high-contrast">
1015
+ <span class="theme-high-contrast margin-right-xxs">
1016
+ <span
1017
+ class="border theme-selector-icon display-inline-block has-body-background"
1018
+ aria-hidden="true">
1019
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
1020
+ viewBox="0 0 22 14">
1021
+ <rect width="22" height="14" class="has-fill-body-background" />
1022
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
1023
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
1024
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
1025
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
1026
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
1027
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
1028
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
1029
+ </svg>
1030
+ </span>
1031
+ </span>
1032
+ <span>High contrast</span>
1033
+ </button>
1034
+ </li>
1035
+ </ul>
1036
+ </div>
1037
+ </div>
1038
+
1039
+ </div>
1040
+ </div>
1041
+ <ul class="links" data-bi-name="footerlinks">
1042
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
1043
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
1044
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
1045
+ </ul>
1046
+ </footer>
1047
+
1048
+ </section>
1049
+
1050
+ <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div>
1051
+ </body>
1052
+ </html>
main.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import logging
3
+ from aiohttp import web
4
+ from botbuilder.core import (
5
+ BotFrameworkAdapterSettings,
6
+ ConversationState,
7
+ MemoryStorage,
8
+ UserState,
9
+ )
10
+ from botbuilder.integration.aiohttp import BotFrameworkHttpAdapter
11
+ from botbuilder.schema import Activity
12
+ from dotenv import load_dotenv
13
+ from utils import show_privacy_consent
14
+ from universal_reasoning import UniversalReasoning, load_json_config
15
+ from mybot import MyBot # Import updated MyBot class
16
+ from main_dialog import MainDialog
17
+
18
+ # Load environment variables from .env file
19
+ load_dotenv()
20
+
21
+ # Configure logging
22
+ logging.basicConfig(
23
+ level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
24
+ )
25
+
26
+ # Show privacy consent dialog and check user response
27
+ if not show_privacy_consent():
28
+ logging.info("User declined data collection and privacy policy. Exiting application.")
29
+ exit()
30
+
31
+ # Load configuration
32
+ config = load_json_config("config.json")
33
+ config["azure_openai_api_key"] = os.getenv("AZURE_OPENAI_API_KEY")
34
+ config["azure_openai_endpoint"] = os.getenv("AZURE_OPENAI_ENDPOINT")
35
+
36
+ # Initialize UniversalReasoning
37
+ universal_reasoning = UniversalReasoning(config)
38
+
39
+ # Create adapter
40
+ settings = BotFrameworkAdapterSettings(
41
+ app_id=os.getenv("MICROSOFT_APP_ID"),
42
+ app_password=os.getenv("MICROSOFT_APP_PASSWORD"),
43
+ )
44
+ adapter = BotFrameworkHttpAdapter(settings)
45
+
46
+ # Create MemoryStorage, ConversationState, and UserState
47
+ memory_storage = MemoryStorage()
48
+ conversation_state = ConversationState(memory_storage)
49
+ user_state = UserState(memory_storage)
50
+
51
+ # Create the main dialog
52
+ main_dialog = MainDialog("MainDialog")
53
+
54
+ # Create the bot and pass the universal_reasoning instance
55
+ bot = MyBot(conversation_state, user_state, main_dialog, universal_reasoning)
56
+
57
+ # Listen for incoming requests on /api/messages
58
+ async def messages(req):
59
+ body = await req.json()
60
+ activity = Activity().deserialize(body)
61
+ auth_header = req.headers.get("Authorization", "")
62
+
63
+ response = await adapter.process_activity(activity, auth_header, bot.on_turn)
64
+ return web.Response(status=response.status)
65
+
66
+ app = web.Application()
67
+ app.router.add_post("/api/messages", messages)
68
+
69
+ if __name__ == "__main__":
70
+ web.run_app(app, host="localhost", port=3978)
main_dialog.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from botbuilder.dialogs import ComponentDialog, WaterfallDialog, WaterfallStepContext
2
+ from botbuilder.dialogs.prompts import TextPrompt, PromptOptions
3
+ from botbuilder.core import MessageFactory
4
+
5
+ class MainDialog(ComponentDialog):
6
+ def __init__(self, dialog_id: str = "MainDialog"):
7
+ super(MainDialog, self).__init__(dialog_id or MainDialog.__name__)
8
+
9
+ self.add_dialog(TextPrompt("TextPrompt"))
10
+ self.add_dialog(
11
+ WaterfallDialog(
12
+ "WFDialog",
13
+ [self.initial_step, self.process_step, self.final_step],
14
+ )
15
+ )
16
+
17
+ self.initial_dialog_id = "WFDialog"
18
+
19
+ async def initial_step(self, step_context: WaterfallStepContext) -> WaterfallStepContext:
20
+ return await step_context.prompt(
21
+ "TextPrompt",
22
+ PromptOptions(prompt=MessageFactory.text("What is your name?")),
23
+ )
24
+
25
+ async def process_step(self, step_context: WaterfallStepContext) -> WaterfallStepContext:
26
+ # Store the user's name in dialog state
27
+ step_context.values["name"] = step_context.result
28
+ return await step_context.prompt(
29
+ "TextPrompt",
30
+ PromptOptions(
31
+ prompt=MessageFactory.text(
32
+ f"Hello {step_context.result}! How can I assist you today?"
33
+ )
34
+ ),
35
+ )
36
+
37
+ async def final_step(self, step_context: WaterfallStepContext) -> WaterfallStepContext:
38
+ user_message = step_context.result
39
+
40
+ # Here you could integrate the UniversalReasoning module
41
+ # For example, you might access it via the bot's context
42
+ # Since it's not directly available here, we'll pass the message back
43
+
44
+ # Send a confirmation message to the user
45
+ await step_context.context.send_activity(
46
+ MessageFactory.text(f"You said: {user_message}")
47
+ )
48
+
49
+ return await step_context.end_dialog()
microsoft.applicationinsights.extensibility.htm ADDED
@@ -0,0 +1,857 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html
2
+ class="hasSidebar hasPageActions hasBreadcrumb reference reference has-default-focus theme-light"
3
+ lang="en-us"
4
+ dir="ltr"
5
+ data-authenticated="false"
6
+ data-auth-status-determined="false"
7
+ data-target="docs"
8
+ x-ms-format-detection="none">
9
+
10
+ <head>
11
+ <meta charset="utf-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ <meta property="og:title" content="OperationCorrelationTelemetryInitializer Class (Microsoft.ApplicationInsights.Extensibility) - Azure for .NET Developers" />
14
+ <meta property="og:type" content="website" />
15
+ <meta property="og:url" content="https://learn.microsoft.com/en-us/dotnet/api/microsoft.applicationinsights.extensibility.operationcorrelationtelemetryinitializer?view=azure-dotnet" /><meta property="og:description" content="Telemetry initializer that populates OperationContext for the telemetry item from Activity. This initializer is responsible for correlation of telemetry items within the same process. " /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" />
16
+
17
+ <meta property="og:image:alt" content="Microsoft Learn" />
18
+
19
+ <meta name="twitter:card" content="summary_large_image" />
20
+
21
+ <meta name="twitter:site" content="@MicrosoftLearn" />
22
+
23
+ <meta name="color-scheme" content="light dark"><meta name="APILocation" content="Microsoft.ApplicationInsights.dll" />
24
+ <meta name="APIName" content="Microsoft.ApplicationInsights.Extensibility.OperationCorrelationTelemetryInitializer" />
25
+ <meta name="APIType" content="Assembly" />
26
+ <meta name="apiPlatform" content="dotnet" />
27
+ <meta name="author" content="azure-sdk" />
28
+ <meta name="breadcrumb_path" content="../azure_breadcrumb/toc.json" />
29
+ <meta name="default_moniker" content="azure-dotnet" />
30
+ <meta name="depot_name" content="Azure.azuredotnet" />
31
+ <meta name="description" content="Telemetry initializer that populates OperationContext for the telemetry item from Activity. This initializer is responsible for correlation of telemetry items within the same process. " />
32
+ <meta name="document_id" content="6fb1b98b-984d-418b-a58f-9228f035a9e8" />
33
+ <meta name="document_version_independent_id" content="0f8cc622-e653-ca0f-8aff-b05f86a53350" />
34
+ <meta name="feedback_help_link_type" content="" />
35
+ <meta name="feedback_help_link_url" content="" />
36
+ <meta name="feedback_product_url" content="https://github.com/Azure/azure-sdk-for-net/issues" />
37
+ <meta name="feedback_system" content="OpenSource" />
38
+ <meta name="git_commit_id" content="015ee562806d8f10854a1aca8de55cd5c57d69cf" />
39
+ <meta name="gitcommit" content="https://github.com/Azure/azure-docs-sdk-dotnet/blob/015ee562806d8f10854a1aca8de55cd5c57d69cf/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml" />
40
+ <meta name="locale" content="en-us" />
41
+ <meta name="monikers" content="azure-dotnet" />
42
+ <meta name="monikers" content="azure-dotnet-preview" />
43
+ <meta name="ms.assetid" content="Microsoft.ApplicationInsights.Extensibility.OperationCorrelationTelemetryInitializer" />
44
+ <meta name="ms.author" content="azsdkdocs" />
45
+ <meta name="ms.custom" content="azure-dotnet-devcenter" />
46
+ <meta name="ms.custom" content="azure-dotnet-devcenter-generated" />
47
+ <meta name="ms.date" content="04/13/2021" />
48
+ <meta name="ms.devlang" content="csharp" />
49
+ <meta name="ms.service" content="azure-monitor" />
50
+ <meta name="ms.subservice" content="application-insights" />
51
+ <meta name="ms.topic" content="managed-reference" />
52
+ <meta name="namespace" content="Microsoft.ApplicationInsights.Extensibility" />
53
+ <meta name="original_content_git_url" content="https://github.com/Azure/azure-docs-sdk-dotnet/blob/live/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml" />
54
+ <meta name="page_kind" content="class" />
55
+ <meta name="page_type" content="dotnet" />
56
+ <meta name="products" content="https://authoring-docs-microsoft.poolparty.biz/devrel/33331e33-4d10-4194-85e4-6d7d7fffdc08" />
57
+ <meta name="schema" content="NetType" />
58
+ <meta name="search.mshattr.devlang" content="csharp vb fsharp" />
59
+ <meta name="site_name" content="Docs" />
60
+ <meta name="toc_rel" content="azure_ref_toc/_splitted/microsoft.applicationinsights.extensibility/toc.json" />
61
+ <meta name="TopicType" content="apiref" />
62
+ <meta name="uhfHeaderId" content="Azure" />
63
+ <meta name="uid" content="Microsoft.ApplicationInsights.Extensibility.OperationCorrelationTelemetryInitializer" />
64
+ <meta name="updated_at" content="2023-10-25 11:32 AM" />
65
+ <meta name="persistent_id" content="2a3cfc10-bae4-aafe-a297-cdbd149b1a66" />
66
+
67
+
68
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/a4222f1c-f55d-45fa-9db4-f663fe96f42c" data-source="generated" />
69
+ <meta name="scope" content="Azure, Azure SDK for .NET" /><meta name="github_feedback_content_git_url" content="https://github.com/Azure/azure-docs-sdk-dotnet/blob/master/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml" /><link href="https://learn.microsoft.com/en-us/dotnet/api/microsoft.applicationinsights.extensibility.operationcorrelationtelemetryinitializer?view=azure-dotnet" rel="canonical"><title>OperationCorrelationTelemetryInitializer Class (Microsoft.ApplicationInsights.Extensibility) - Azure for .NET Developers | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.029026183/styles/site-ltr.css">
70
+
71
+ <script id="msdocs-script">
72
+ var msDocs = {environment: {
73
+ supportLevel: 'production',
74
+ accessLevel: 'online',
75
+ reviewFeatures: false,
76
+ systemContent: true,
77
+ azurePortalHostname: 'portal.azure.com',
78
+ legacyHosting: false,
79
+ siteName: 'learn',
80
+ },data: {
81
+ timeOrigin: Date.now(),
82
+ contentLocale: 'en-us',
83
+ contentDir: 'ltr',
84
+ userLocale: 'en-us',
85
+ userDir: 'ltr',
86
+ pageTemplate: 'Reference',
87
+ brand: 'azure',
88
+ context: {},
89
+ hasBinaryRating: true,
90
+ feedbackHelpLinkType:'',
91
+ feedbackHelpLinkUrl:'',
92
+ standardFeedback: false,
93
+ showFeedbackReport: false,
94
+ enableTutorialFeedback: false,
95
+ feedbackSystem: 'OpenSource',
96
+ feedbackGitHubRepo: 'Azure/azure-sdk-for-net',
97
+ feedbackProductUrl: 'https://github.com/Azure/azure-sdk-for-net/issues',extendBreadcrumb: true,isEditDisplayable: false,
98
+ hideViewSource: false,
99
+ hasPageActions: true,
100
+ hasPrintButton: true,
101
+ hasBookmark: true,
102
+ hasShare: true,
103
+ isPermissioned: false,
104
+ isPrivateUnauthorized: false,hasRecommendations: false,openSourceFeedback: true,
105
+ openSourceFeedbackIssueUrl: 'https://github.com/Azure/azure-sdk-for-net/issues/new?template=06_learn_feedback.yml',
106
+ openSourceFeedbackIssueTitle: '',
107
+ openSourceFeedbackIssueLabels: '',contributors: [{ name: "VSC-Service-Account", url: "https://github.com/VSC-Service-Account" },{ name: "TianqiZhang", url: "https://github.com/TianqiZhang" },{ name: "health-research", url: "https://github.com/health-research" },{ name: "glibnub", url: "https://github.com/glibnub" }],},
108
+ functions:{}
109
+ };
110
+ </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script>
111
+ <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.029026183/global/deprecation.js"></script><script src="/static/assets/0.4.029026183/scripts/en-us/index-docs.js"></script></head>
112
+
113
+ <body lang="en-us" dir="ltr">
114
+ <div class="header-holder has-default-focus">
115
+ <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><a href="#side-doc-outline" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="2">Skip to in-page navigation</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div>
116
+
117
+ <div id="unsupported-browser" style="
118
+ background-color: white;
119
+ color: black;
120
+ padding: 16px;
121
+ border-bottom: 1px solid grey;"
122
+ hidden
123
+ >
124
+ <div style="max-width: 800px; margin: 0 auto;">
125
+ <p style="font-size: 24px">This browser is no longer supported.</p>
126
+ <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p>
127
+ <div style="margin-top: 12px;">
128
+ <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 "
129
+ style="
130
+ background-color: #0078d4;
131
+ border: 1px solid #0078d4;
132
+ color: white;
133
+ padding: 6px 12px;
134
+ border-radius: 2px;
135
+ display: inline-block;
136
+ ">Download Microsoft Edge</a>
137
+ <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge"
138
+ style="
139
+ background-color: white;
140
+ padding: 6px 12px;
141
+ border: 1px solid #505050;
142
+ color: #171717;
143
+ border-radius: 2px;
144
+ display: inline-block;
145
+ ">More info about Internet Explorer and Microsoft Edge</a>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ <!-- liquid-tag banners global -->
150
+
151
+ <!-- site header -->
152
+ <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization">
153
+ <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div>
154
+ <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div>
155
+ <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div>
156
+ </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header">
157
+ <div class="content-header-controls margin-xxs margin-inline-sm-tablet">
158
+ <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button>
159
+ <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span>
160
+ <span class="contents-expand-title">Table of contents</span>
161
+ </button>
162
+ <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel">
163
+ <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span>
164
+ <span>Exit focus mode</span>
165
+ </button>
166
+ </div>
167
+ </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus">
168
+ <!-- liquid-tag banners sectional -->
169
+ </div>
170
+ </div>
171
+
172
+ <div class="mainContainer uhf-container has-default-focus" data-bi-name="body">
173
+
174
+ <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop">
175
+ <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav>
176
+ </div><!-- .primary-holder -->
177
+ <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop">
178
+ <!--div.columns -->
179
+ <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop">
180
+
181
+ <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header -->
182
+ <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print">
183
+ <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs">
184
+ <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs">
185
+ <span class="icon">
186
+ <span class="docon docon-more"></span>
187
+ </span>
188
+ </summary>
189
+ <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none">
190
+
191
+ </div>
192
+ </details>
193
+
194
+ <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><div class="language dropdown display-flex align-items-center">
195
+ <button class="dropdown-trigger button button-clear button-sm button-primary" aria-controls="language-menu" aria-expanded="false" title="Language" data-bi-name="language">
196
+ <span class="lang-title align-self-flex-start" dir="ltr">Language</span>
197
+ <span class="icon" aria-hidden="true">
198
+ <span class="docon docon-chevron-down-light expanded-indicator"></span>
199
+ </span>
200
+ </button>
201
+ <div class="dropdown-menu padding-xxs language-selector" name="language-selector" role="menu">
202
+ <ul data-bi-name="language-links" dir="ltr"><li>
203
+ <a class="button button-clear button-sm button-block" data-bi-name="lang-csharp" tabindex="0" aria-selected="false"></a>
204
+ </li><li>
205
+ <a class="button button-clear button-sm button-block" data-bi-name="lang-vb" tabindex="0" aria-selected="false"></a>
206
+ </li><li>
207
+ <a class="button button-clear button-sm button-block" data-bi-name="lang-fsharp" tabindex="0" aria-selected="false"></a>
208
+ </li></ul>
209
+ </div>
210
+ </div><a
211
+ id="lang-link-tablet"
212
+ class="button button-primary button-clear button-sm display-none display-inline-flex-tablet"
213
+ title="Read in English" data-bi-name="language-toggle"
214
+ data-read-in-link
215
+ hidden>
216
+ <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon>
217
+ <span class="docon docon-locale-globe"></span>
218
+ </span>
219
+ <span class="is-visually-hidden" data-read-in-link-text>Read in English</span>
220
+ </a><button
221
+ type="button"
222
+ class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet"
223
+ data-list-type="collection"
224
+ data-bi-name="collection"
225
+ title="Add to collection">
226
+ <span class="icon margin-none" aria-hidden="true">
227
+ <span class="docon docon-circle-addition"></span>
228
+ </span>
229
+ <span class="collection-status is-visually-hidden">Save</span>
230
+ </button><a data-contenteditbtn
231
+ class="button button-clear button-sm text-decoration-none button-primary display-none display-inline-flex-tablet"
232
+ aria-label="Edit"
233
+ title="Edit This Document"
234
+ data-bi-name="edit"
235
+ hidden
236
+ href="https://github.com/Azure/azure-docs-sdk-dotnet/blob/master/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
237
+ data-original_content_git_url="https://github.com/Azure/azure-docs-sdk-dotnet/blob/live/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
238
+ data-original_content_git_url_template="{repo}/blob/{branch}/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
239
+ data-pr_repo=""
240
+ data-pr_branch="">
241
+ <span class="icon margin-none" aria-hidden="true">
242
+ <span class="docon docon-edit-outline"></span>
243
+ </span>
244
+ </a>
245
+ <details class="popover popover-right" id="article-header-page-actions-overflow">
246
+ <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions">
247
+ <span class="icon" aria-hidden="true">
248
+ <span class="docon docon-more-vertical"></span>
249
+ </span>
250
+ </summary>
251
+ <div class="popover-content padding-xs"><button
252
+ data-page-action-item="overflow-mobile"
253
+ type="button"
254
+ class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet"
255
+ data-bi-name="contents-expand"
256
+ data-contents-button
257
+ data-popover-close>
258
+ <span class="icon">
259
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
260
+ </span><span class="contents-expand-title">Table of contents</span></button><a
261
+ id="lang-link-overflow"
262
+ class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet"
263
+ title="Read in English" data-bi-name="language-toggle"
264
+ data-page-action-item="overflow-mobile"
265
+ data-check-hidden="true"
266
+ data-read-in-link
267
+ hidden
268
+ >
269
+ <span class="icon" aria-hidden="true" data-read-in-link-icon>
270
+ <span class="docon docon-locale-globe"></span>
271
+ </span>
272
+ <span data-read-in-link-text>Read in English</span>
273
+ </a><button
274
+ type="button"
275
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
276
+ data-list-type="collection"
277
+ data-bi-name="collection"
278
+ title="Save"
279
+ data-page-action-item="overflow-mobile"
280
+ data-check-hidden="true"
281
+ data-popover-close>
282
+ <span class="icon" aria-hidden="true">
283
+ <span class="docon docon-circle-addition"></span>
284
+ </span>
285
+ <span class="collection-status">Save</span>
286
+ </button>
287
+
288
+
289
+ <button
290
+ type="button"
291
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
292
+ data-list-type="plan"
293
+ data-bi-name="plan"
294
+ title="Add to Plan"
295
+ data-page-action-item="overflow-mobile"
296
+ data-check-hidden="true"
297
+ data-popover-close
298
+ hidden>
299
+ <span class="icon" aria-hidden="true">
300
+ <span class="docon docon-circle-addition"></span>
301
+ </span>
302
+ <span class="plan-status">Add to Plan</span>
303
+ </button><a data-contenteditbtn
304
+ class="button button-clear button-block button-sm has-inner-focus justify-content-flex-start text-decoration-none display-none-tablet"
305
+ aria-label="Edit"
306
+ title="Edit This Document"
307
+ data-bi-name="edit"
308
+ hidden
309
+ href="https://github.com/Azure/azure-docs-sdk-dotnet/blob/master/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
310
+ data-original_content_git_url="https://github.com/Azure/azure-docs-sdk-dotnet/blob/live/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
311
+ data-original_content_git_url_template="{repo}/blob/{branch}/xml/Microsoft.ApplicationInsights.Extensibility/OperationCorrelationTelemetryInitializer.xml"
312
+ data-pr_repo=""
313
+ data-pr_branch="">
314
+ <span class="icon" aria-hidden="true">
315
+ <span class="docon docon-edit-outline"></span>
316
+ </span>
317
+ <span>Edit</span>
318
+ </a><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div>
319
+ <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" />
320
+ <h4 class="font-size-sm padding-left-xxs">Share via</h4>
321
+
322
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all">
323
+ <span class="icon" aria-hidden="true">
324
+ <span class="docon docon-facebook-share font-size-md color-primary"></span>
325
+ </span>
326
+ <span class="margin-left-xxs">Facebook</span>
327
+ </a>
328
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all">
329
+ <span class="icon" aria-hidden="true">
330
+ <span class="docon docon-xlogo-share font-size-xxs"></span>
331
+ </span>
332
+ <span class="margin-left-xxs">x.com</span>
333
+ </a>
334
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all">
335
+ <span class="icon" aria-hidden="true">
336
+ <span class="docon docon-linked-in-logo font-size-sm color-primary"></span>
337
+ </span>
338
+ <span class="margin-left-xxs">LinkedIn</span>
339
+ </a>
340
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all">
341
+ <span class="icon" aria-hidden="true">
342
+ <span class="docon docon-mail-message font-size-sm color-primary"></span>
343
+ </span>
344
+ <span class="margin-left-xxs">Email</span>
345
+ </a><hr />
346
+ <button
347
+ class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs"
348
+ title="Print"
349
+ type="button"
350
+ aria-label="Print"
351
+ data-bi-name="print"
352
+ data-page-action-item="overflow-all"
353
+ data-popover-close
354
+ data-print-page
355
+ data-check-hidden="true">
356
+ <span class="icon" aria-hidden="true">
357
+ <span class="docon docon-print font-size-sm color-primary"></span>
358
+ </span>
359
+ <span class="margin-left-xxs">Print</span>
360
+ </button>
361
+ </div>
362
+ </details>
363
+
364
+ </div></div>
365
+ </div>
366
+ <!-- end article-header --><div>
367
+ <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden>
368
+ <span class="icon">
369
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
370
+ </span><span class="contents-expand-title">Table of contents</span></button>
371
+ </div><!-- end mobile-contents button -->
372
+
373
+ <div class="content "><!-- <content> --><h1>Operation<wbr>Correlation<wbr>Telemetry<wbr>Initializer Class</h1>
374
+
375
+ <div class="display-flex-tablet justify-content-space-between-tablet">
376
+ <ul class="metadata page-metadata align-items-center" data-bi-name="page info">
377
+ <li>Reference</li>
378
+ </ul>
379
+ <div id="user-feedback" class="margin-block-xxs display-none-print" data-hide-on-archived="">
380
+ <button id="user-feedback-button" data-test-id="conceptual-feedback-button" class="button button-sm button-clear button-primary" type="button" data-bi-name="user-feedback-button" data-user-feedback-button="">
381
+ <span class="icon" aria-hidden="true">
382
+ <span class="docon docon-like"></span>
383
+ </span>
384
+ <span>Feedback</span>
385
+ </button>
386
+ </div>
387
+ </div>
388
+
389
+ <nav id="center-doc-outline" class="doc-outline is-hidden-desktop display-none-print margin-bottom-sm" data-bi-name="intopic toc" aria-label="">
390
+ <h2 class="title is-6 margin-block-xs"></h2>
391
+ </nav>
392
+ <h2 id="definition">Definition</h2>
393
+
394
+ <div class="metadata">
395
+ <dl class="attributeList">
396
+ <dt>Namespace:</dt>
397
+ <dd>
398
+ <span class="break-text"> <a class="xref" href="microsoft.applicationinsights.extensibility?view=azure-dotnet" data-linktype="relative-path">Microsoft.ApplicationInsights.Extensibility</a> </span>
399
+ </dd>
400
+ </dl>
401
+
402
+
403
+ <dl class="attributeList" data-moniker=" azure-dotnet azure-dotnet-preview ">
404
+ <dt>Assembly:</dt><dd>Microsoft.ApplicationInsights.dll</dd>
405
+ </dl>
406
+
407
+ <dl class="attributeList" data-moniker=" azure-dotnet ">
408
+ <dt>Package:</dt><dd>Microsoft.ApplicationInsights v2.21.0</dd>
409
+ </dl>
410
+ <dl class="attributeList" data-moniker=" azure-dotnet-preview ">
411
+ <dt>Package:</dt><dd>Microsoft.ApplicationInsights v2.22.0-beta2</dd>
412
+ </dl>
413
+
414
+
415
+ </div><div class="alert is-primary is-hidden moniker-display-boilerplate">
416
+ <p class="alert-title">
417
+ <span class="docon docon-status-info-outline" aria-hidden="true"></span> Important
418
+ </p>
419
+ <p>Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.</p>
420
+ </div>
421
+ <div class="summaryHolder">
422
+ <div class="summary clearFix has-text-wrap">
423
+ <p>Telemetry initializer that populates OperationContext for the telemetry item from Activity.
424
+ This initializer is responsible for correlation of telemetry items within the same process.</p>
425
+
426
+ </div>
427
+ </div>
428
+
429
+ <pre class="wrap" data-moniker=" azure-dotnet azure-dotnet-preview "><code class="csharp lang-csharp" dir="ltr">public class OperationCorrelationTelemetryInitializer : Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer</code></pre>
430
+ <pre class="wrap" data-moniker=" azure-dotnet azure-dotnet-preview "><code class="fsharp lang-fsharp" dir="ltr">type OperationCorrelationTelemetryInitializer = class
431
+ interface ITelemetryInitializer</code></pre>
432
+ <pre class="wrap" data-moniker=" azure-dotnet azure-dotnet-preview "><code class="vb lang-vb" dir="ltr">Public Class OperationCorrelationTelemetryInitializer
433
+ Implements ITelemetryInitializer</code></pre>
434
+ <dl class="attributeList stack">
435
+ <dt>Inheritance</dt>
436
+ <dd>
437
+ <div class="pdlHolder">
438
+ <div class="pdl"><a href="/en-us/dotnet/api/system.object" data-linktype="absolute-path">Object</a></div>
439
+ <span>OperationCorrelationTelemetryInitializer</span>
440
+ </div>
441
+ </dd>
442
+ </dl>
443
+ <dl class="attributeList stack">
444
+ <dt>Implements</dt><dd>
445
+ <div class="cdlHolder">
446
+ <span class="cdl">
447
+ <span class="break-text"><a href="microsoft.applicationinsights.extensibility.itelemetryinitializer?view=azure-dotnet" data-linktype="relative-path">ITelemetryInitializer</a></span>
448
+ </span>
449
+ </div>
450
+ </dd>
451
+ </dl>
452
+
453
+
454
+
455
+ <h2 id="constructors">
456
+ Constructors
457
+ </h2>
458
+ <table class="table">
459
+ <tbody><tr>
460
+ <td colspan="2">
461
+ <span class="break-text">
462
+ <a class="xref" href="microsoft.applicationinsights.extensibility.operationcorrelationtelemetryinitializer.-ctor?view=azure-dotnet#microsoft-applicationinsights-extensibility-operationcorrelationtelemetryinitializer-ctor" data-linktype="relative-path">OperationCorrelationTelemetryInitializer()</a>
463
+ </span>
464
+ </td>
465
+
466
+ </tr>
467
+ </tbody></table>
468
+
469
+
470
+
471
+
472
+ <h2 id="methods">
473
+ Methods
474
+ </h2>
475
+ <table class="table">
476
+ <tbody><tr>
477
+ <td>
478
+ <span class="break-text">
479
+ <a class="xref" href="microsoft.applicationinsights.extensibility.operationcorrelationtelemetryinitializer.initialize?view=azure-dotnet#microsoft-applicationinsights-extensibility-operationcorrelationtelemetryinitializer-initialize(microsoft-applicationinsights-channel-itelemetry)" data-linktype="relative-path">Initialize(ITelemetry)</a>
480
+ </span>
481
+ </td>
482
+ <td class="has-text-wrap">
483
+ <p>Initializes/Adds operation context to the existing telemetry item.</p>
484
+
485
+ </td>
486
+
487
+ </tr>
488
+ </tbody></table>
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+ <h2>Applies to</h2>
497
+ <div class="table-wrapper moniker-applies-to-table">
498
+ <table class="table table-complex has-row-header-background">
499
+ <thead>
500
+ </thead>
501
+ </table>
502
+ </div>
503
+
504
+
505
+ </div><div id="ms--inline-notifications" class="margin-block-xs" data-bi-name="inline-notification"></div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
506
+ <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
507
+ <!-- </content> -->
508
+
509
+ </main><!-- recommendations section --><!-- end recommendations section -->
510
+
511
+ <!-- feedback section --><section class="feedback-section position-relative margin-top-lg border border-radius padding-xxs" data-bi-name="open-source-feedback-section" data-open-source-feedback-section hidden>
512
+ <div class="display-flex flex-direction-column flex-direction-row-tablet">
513
+ <div class="width-450-tablet padding-inline-xs padding-inline-xs-tablet padding-top-xs padding-bottom-sm padding-top-xs-tablet background-color-body-medium">
514
+ <div class="display-flex flex-direction-column">
515
+ <div class="padding-bottom-xxs">
516
+ <span class="icon margin-right-xxs" aria-hidden="true">
517
+ <span class="docon docon-brand-github"></span>
518
+ </span>
519
+ <span class="font-weight-semibold"
520
+ >Collaborate with us on GitHub</span>
521
+ </div>
522
+ <span class="line-height-normal">
523
+ The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see <a href="https://github.com/Azure/azure-sdk-for-net/blob/main/CONTRIBUTING.md">our contributor guide</a>.
524
+ </span>
525
+ </div>
526
+ </div>
527
+ <div class="display-flex gap-xs width-full-tablet flex-direction-column padding-xs justify-content-space-evenly">
528
+ <div class="media"><div class="media-left">
529
+ <div class="image image-36x36" hidden data-open-source-image-container>
530
+ <img class="theme-display is-light" src="https://azure.github.io/azure-sdk/images/azure-sdk-glyph.svg" aria-hidden="true" data-open-source-image-light/>
531
+ <img class="theme-display is-dark is-high-contrast" src="https://azure.github.io/azure-sdk/images/azure-sdk-glyph.svg" aria-hidden="true" data-open-source-image-dark/>
532
+ </div>
533
+ </div>
534
+
535
+ <div class="media-content">
536
+ <p class="font-size-xl font-weight-semibold margin-bottom-xxs" data-open-source-product-title>Azure SDK for .NET</p>
537
+ <div class="display-flex gap-xs flex-direction-column">
538
+ <p class="line-height-normal" data-open-source-product-description></p>
539
+ <div class="display-flex gap-xs flex-direction-column">
540
+ <a href="" data-github-link>
541
+ <span class="icon margin-right-xxs" aria-hidden="true">
542
+ <span class="docon docon-bug"></span>
543
+ </span>
544
+ <span>Open a documentation issue</span>
545
+ </a>
546
+ <a href="https://github.com/Azure/azure-sdk-for-net/issues" class="display-block margin-top-auto font-size-md" data-feedback-product-url>
547
+ <span class="icon margin-right-xxs" aria-hidden="true">
548
+ <span class="docon docon-feedback"></span>
549
+ </span>
550
+ <span>Provide product feedback</span>
551
+ </a>
552
+ </div>
553
+ </div>
554
+ </div>
555
+ </div>
556
+ </div>
557
+ </div>
558
+ </section><!-- end feedback section -->
559
+
560
+ <!-- feedback report section --><!-- end feedback report section --><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
561
+ data-mscc-ic="false"
562
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
563
+ href="#"
564
+ data-bi-name="select-locale">
565
+ <span class="icon" aria-hidden="true">
566
+ <span class="docon docon-world"></span>
567
+ </span>
568
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
569
+ <a
570
+ href="https://aka.ms/yourcaliforniaprivacychoices"
571
+ class="button button-sm button-clear flex-shrink-0"
572
+ data-mscc-ic="false"
573
+ data-bi-name="your-privacy-choices"
574
+ >
575
+ <svg
576
+ role="img"
577
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
578
+ xmlns="http://www.w3.org/2000/svg"
579
+ viewBox="0 0 30 14"
580
+ xml:space="preserve"
581
+ height="16"
582
+ width="43"
583
+ focusable="false"
584
+ >
585
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
586
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
587
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
588
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
589
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
590
+ </svg>
591
+ <span>Your Privacy Choices</span>
592
+ </a>
593
+
594
+ </div>
595
+ <div class="flex-shrink-0">
596
+ <div class="dropdown has-caret-up">
597
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
598
+ aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme">
599
+ <span class="icon">
600
+ <span class="docon docon-sun" aria-hidden="true"></span>
601
+ </span>
602
+ <span>Theme</span>
603
+ <span class="icon expanded-indicator" aria-hidden="true">
604
+ <span class="docon docon-chevron-down-light"></span>
605
+ </span>
606
+ </button>
607
+ <div class="dropdown-menu" id="theme-menu-interactive" role="menu">
608
+ <ul class="theme-selector padding-xxs" role="none">
609
+ <li class="theme display-block" role="menuitem">
610
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
611
+ data-theme-to="light">
612
+ <span class="theme-light margin-right-xxs">
613
+ <span
614
+ class="theme-selector-icon border display-inline-block has-body-background"
615
+ aria-hidden="true">
616
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
617
+ viewBox="0 0 22 14">
618
+ <rect width="22" height="14" class="has-fill-body-background" />
619
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
620
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
621
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
622
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
623
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
624
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
625
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
626
+ </svg>
627
+ </span>
628
+ </span>
629
+ <span>Light</span>
630
+ </button>
631
+ </li>
632
+ <li class="theme display-block" role="menuitem">
633
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
634
+ data-theme-to="dark">
635
+ <span class="theme-dark margin-right-xxs">
636
+ <span
637
+ class="border theme-selector-icon display-inline-block has-body-background"
638
+ aria-hidden="true">
639
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
640
+ viewBox="0 0 22 14">
641
+ <rect width="22" height="14" class="has-fill-body-background" />
642
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
643
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
644
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
645
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
646
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
647
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
648
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
649
+ </svg>
650
+ </span>
651
+ </span>
652
+ <span>Dark</span>
653
+ </button>
654
+ </li>
655
+ <li class="theme display-block" role="menuitem">
656
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
657
+ data-theme-to="high-contrast">
658
+ <span class="theme-high-contrast margin-right-xxs">
659
+ <span
660
+ class="border theme-selector-icon display-inline-block has-body-background"
661
+ aria-hidden="true">
662
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
663
+ viewBox="0 0 22 14">
664
+ <rect width="22" height="14" class="has-fill-body-background" />
665
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
666
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
667
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
668
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
669
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
670
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
671
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
672
+ </svg>
673
+ </span>
674
+ </span>
675
+ <span>High contrast</span>
676
+ </button>
677
+ </li>
678
+ </ul>
679
+ </div>
680
+ </div>
681
+
682
+ </div>
683
+ </div>
684
+ <ul class="links" data-bi-name="footerlinks">
685
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
686
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
687
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
688
+ </ul>
689
+ </footer></div></div><div
690
+ id="ms--additional-resources"
691
+ class="right-container column is-4-desktop display-none display-block-desktop"
692
+ data-bi-name="pageactions"
693
+ role="complementary"
694
+ aria-label="Additional resources"
695
+ >
696
+ <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column">
697
+ <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2>
698
+ <section id="right-rail-events" data-bi-name="events-card" hidden></section>
699
+ <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section>
700
+ <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section>
701
+ <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article">
702
+ <h3>In this article</h3>
703
+ </nav>
704
+ <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section>
705
+ </div>
706
+ </div></div>
707
+ <!--end of div.columns -->
708
+
709
+ </section>
710
+ <!--end of .primary-holder -->
711
+
712
+ <!-- interactive container -->
713
+ <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark ">
714
+ </aside>
715
+ <!-- end of interactive container -->
716
+ </div>
717
+
718
+ </div>
719
+ <!--end of .mainContainer -->
720
+
721
+ <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
722
+ data-mscc-ic="false"
723
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
724
+ href="#"
725
+ data-bi-name="select-locale">
726
+ <span class="icon" aria-hidden="true">
727
+ <span class="docon docon-world"></span>
728
+ </span>
729
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
730
+ <a
731
+ href="https://aka.ms/yourcaliforniaprivacychoices"
732
+ class="button button-sm button-clear flex-shrink-0"
733
+ data-mscc-ic="false"
734
+ data-bi-name="your-privacy-choices"
735
+ >
736
+ <svg
737
+ role="img"
738
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
739
+ xmlns="http://www.w3.org/2000/svg"
740
+ viewBox="0 0 30 14"
741
+ xml:space="preserve"
742
+ height="16"
743
+ width="43"
744
+ focusable="false"
745
+ >
746
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
747
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
748
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
749
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
750
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
751
+ </svg>
752
+ <span>Your Privacy Choices</span>
753
+ </a>
754
+
755
+ </div>
756
+ <div class="flex-shrink-0">
757
+ <div class="dropdown has-caret-up">
758
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
759
+ aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme">
760
+ <span class="icon">
761
+ <span class="docon docon-sun" aria-hidden="true"></span>
762
+ </span>
763
+ <span>Theme</span>
764
+ <span class="icon expanded-indicator" aria-hidden="true">
765
+ <span class="docon docon-chevron-down-light"></span>
766
+ </span>
767
+ </button>
768
+ <div class="dropdown-menu" id="theme-menu" role="menu">
769
+ <ul class="theme-selector padding-xxs" role="none">
770
+ <li class="theme display-block" role="menuitem">
771
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
772
+ data-theme-to="light">
773
+ <span class="theme-light margin-right-xxs">
774
+ <span
775
+ class="theme-selector-icon border display-inline-block has-body-background"
776
+ aria-hidden="true">
777
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
778
+ viewBox="0 0 22 14">
779
+ <rect width="22" height="14" class="has-fill-body-background" />
780
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
781
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
782
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
783
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
784
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
785
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
786
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
787
+ </svg>
788
+ </span>
789
+ </span>
790
+ <span>Light</span>
791
+ </button>
792
+ </li>
793
+ <li class="theme display-block" role="menuitem">
794
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
795
+ data-theme-to="dark">
796
+ <span class="theme-dark margin-right-xxs">
797
+ <span
798
+ class="border theme-selector-icon display-inline-block has-body-background"
799
+ aria-hidden="true">
800
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
801
+ viewBox="0 0 22 14">
802
+ <rect width="22" height="14" class="has-fill-body-background" />
803
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
804
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
805
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
806
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
807
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
808
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
809
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
810
+ </svg>
811
+ </span>
812
+ </span>
813
+ <span>Dark</span>
814
+ </button>
815
+ </li>
816
+ <li class="theme display-block" role="menuitem">
817
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
818
+ data-theme-to="high-contrast">
819
+ <span class="theme-high-contrast margin-right-xxs">
820
+ <span
821
+ class="border theme-selector-icon display-inline-block has-body-background"
822
+ aria-hidden="true">
823
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
824
+ viewBox="0 0 22 14">
825
+ <rect width="22" height="14" class="has-fill-body-background" />
826
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
827
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
828
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
829
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
830
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
831
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
832
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
833
+ </svg>
834
+ </span>
835
+ </span>
836
+ <span>High contrast</span>
837
+ </button>
838
+ </li>
839
+ </ul>
840
+ </div>
841
+ </div>
842
+
843
+ </div>
844
+ </div>
845
+ <ul class="links" data-bi-name="footerlinks">
846
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
847
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
848
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
849
+ </ul>
850
+ </footer>
851
+
852
+ </section>
853
+
854
+ <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div>
855
+ </body>
856
+ </html>
857
+
mybot.py ADDED
@@ -0,0 +1,360 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import logging
3
+ import random
4
+ from botbuilder.core import TurnContext, MessageFactory
5
+ from botbuilder.schema import Activity, ActivityTypes, EndOfConversationCodes
6
+ from tenacity import retry, wait_random_exponential, stop_after_attempt
7
+ import importlib
8
+ from sentiment_analysis import analyze_sentiment_vader
9
+ from config import load_and_validate_config, setup_logging
10
+ from universal_reasoning import UniversalReasoning
11
+ from dotenv import load_dotenv
12
+ import json
13
+ from chat import azure_chat_completion_request # Import the function from chat.py
14
+ from database import DatabaseConnection # Import the database connection
15
+
16
+ # Load environment variables from .env file
17
+ load_dotenv()
18
+
19
+ class MyBot:
20
+ def __init__(self, conversation_state, user_state, dialog, universal_reasoning):
21
+ self.conversation_state = conversation_state
22
+ self.user_state = user_state
23
+ self.dialog = dialog
24
+ self.universal_reasoning = universal_reasoning
25
+ self.context = {}
26
+ self.feedback = []
27
+ config = load_and_validate_config('config.json', 'config_schema.json')
28
+ # Add Azure OpenAI and LUIS configurations to the config
29
+ config['azure_openai_api_key'] = os.getenv('AZURE_OPENAI_API_KEY')
30
+ config['azure_openai_endpoint'] = os.getenv('AZURE_OPENAI_ENDPOINT')
31
+ config['luis_endpoint'] = os.getenv('LUIS_ENDPOINT')
32
+ config['luis_api_version'] = os.getenv('LUIS_API_VERSION')
33
+ config['luis_api_key'] = os.getenv('LUIS_API_KEY')
34
+ setup_logging(config)
35
+
36
+ async def enhance_context_awareness(self, user_id: str, text: str) -> None:
37
+ """Enhance context awareness by analyzing the user's environment, activities, and emotional state."""
38
+ sentiment = analyze_sentiment_vader(text)
39
+ if user_id not in self.context:
40
+ self.context[user_id] = []
41
+ self.context[user_id].append({"text": text, "sentiment": sentiment})
42
+
43
+ async def proactive_learning(self, user_id: str, feedback: str) -> None:
44
+ """Encourage proactive learning by seeking feedback and exploring new topics."""
45
+ if user_id not in self.context:
46
+ self.context[user_id] = []
47
+ self.context[user_id].append({"feedback": feedback})
48
+ self.feedback.append({"user_id": user_id, "feedback": feedback})
49
+
50
+ async def ethical_decision_making(self, user_id: str, decision: str) -> None:
51
+ """Integrate ethical principles into decision-making processes."""
52
+ ethical_decision = f"Considering ethical principles, the decision is: {decision}"
53
+ if user_id not in self.context:
54
+ self.context[user_id] = []
55
+ self.context[user_id].append({"ethical_decision": ethical_decision})
56
+
57
+ async def emotional_intelligence(self, user_id: str, text: str) -> str:
58
+ """Develop emotional intelligence by recognizing and responding to user emotions."""
59
+ sentiment = analyze_sentiment_vader(text)
60
+ response = self.generate_emotional_response(sentiment, text)
61
+ if user_id not in self.context:
62
+ self.context[user_id] = []
63
+ self.context[user_id].append({"emotional_response": response})
64
+ return response
65
+
66
+ def generate_emotional_response(self, sentiment: dict, text: str) -> str:
67
+ """Generate an empathetic response based on the sentiment analysis."""
68
+ if sentiment['compound'] >= 0.05:
69
+ return "I'm glad to hear that! 😊 How can I assist you further?"
70
+ elif sentiment['compound'] <= -0.05:
71
+ return "I'm sorry to hear that. 😢 Is there anything I can do to help?"
72
+ else:
73
+ return "I understand. How can I assist you further?"
74
+
75
+ async def transparency_and_explainability(self, user_id: str, decision: str) -> str:
76
+ """Enable transparency by explaining the reasoning behind decisions."""
77
+ explanation = f"The decision was made based on the following context: {self.context[user_id]}"
78
+ if user_id not in self.context:
79
+ self.context[user_id] = []
80
+ self.context[user_id].append({"explanation": explanation})
81
+ return explanation
82
+
83
+ async def on_message_activity(self, turn_context: TurnContext) -> None:
84
+ """Handles incoming messages and generates responses."""
85
+ user_id = turn_context.activity.from_property.id
86
+ if user_id not in self.context:
87
+ self.context[user_id] = []
88
+ try:
89
+ if "end" in turn_context.activity.text.lower() or "stop" in turn_context.activity.text.lower():
90
+ await end_conversation(turn_context)
91
+ self.context.pop(user_id, None)
92
+ else:
93
+ self.context[user_id].append(turn_context.activity.text)
94
+ response = await self.generate_response(turn_context.activity.text, user_id)
95
+ await turn_context.send_activity(MessageFactory.text(response))
96
+ await self.request_feedback(turn_context, user_id)
97
+
98
+ # Example database operation
99
+ with DatabaseConnection() as conn:
100
+ if conn:
101
+ cursor = conn.cursor()
102
+ cursor.execute("INSERT INTO UserMessages (UserId, Message) VALUES (?, ?)", user_id, turn_context.activity.text)
103
+ conn.commit()
104
+
105
+ except Exception as e:
106
+ await handle_error(turn_context, e)
107
+
108
+ async def generate_response(self, text: str, user_id: str) -> str:
109
+ """Generates a response using Azure OpenAI's API, Universal Reasoning, and various perspectives."""
110
+ try:
111
+ logging.info(f"Generating response for user_id: {user_id} with text: {text}")
112
+ # Generate responses from different perspectives
113
+ responses = []
114
+ for perspective in self.perspectives.values():
115
+ try:
116
+ response = await perspective.generate_response(text)
117
+ responses.append(response)
118
+ except Exception as e:
119
+ logging.error(f"Error generating response from {perspective.__class__.__name__}: {e}")
120
+ # Combine responses
121
+ combined_response = "\n".join(responses)
122
+ logging.info(f"Combined response: {combined_response}")
123
+ return combined_response
124
+ except Exception as e:
125
+ logging.error(f"Error generating response: {e}")
126
+ return "Sorry, I couldn't generate a response at this time."
127
+
128
+ async def request_feedback(self, turn_context: TurnContext, user_id: str) -> None:
129
+ """Request feedback from the user about the bot's response."""
130
+ feedback_prompt = "How would you rate my response? (good/neutral/bad)"
131
+ await turn_context.send_activity(MessageFactory.text(feedback_prompt))
132
+
133
+ async def handle_feedback(self, turn_context: TurnContext) -> None:
134
+ """Handle user feedback and store it for future analysis."""
135
+ user_id = turn_context.activity.from_property.id
136
+ feedback = turn_context.activity.text.lower()
137
+ if feedback in ["good", "neutral", "bad"]:
138
+ self.feedback.append({"user_id": user_id, "feedback": feedback})
139
+ await turn_context.send_activity(MessageFactory.text("Thank you for your feedback!"))
140
+ else:
141
+ await turn_context.send_activity(MessageFactory.text("Please provide feedback as 'good', 'neutral', or 'bad'."))
142
+
143
+ async def end_conversation(turn_context: TurnContext) -> None:
144
+ """Ends the conversation with the user."""
145
+ await turn_context.send_activity(
146
+ MessageFactory.text("Ending conversation from the skill...")
147
+ )
148
+ end_of_conversation = Activity(type=ActivityTypes.end_of_conversation)
149
+ end_of_conversation.code = EndOfConversationCodes.completed_successfully
150
+ await turn_context.send_activity(end_of_conversation)
151
+
152
+ async def handle_error(turn_context: TurnContext, error: Exception) -> None:
153
+ """Handles errors by logging them and notifying the user."""
154
+ logging.error(f"An error occurred: {error}")
155
+ await turn_context.send_activity(
156
+ MessageFactory.text("An error occurred. Please try again later.")
157
+ )
158
+
159
+ def show_privacy_consent() -> bool:
160
+ """Display a pop-up window to obtain user consent for data collection and privacy."""
161
+ import tkinter as tk
162
+
163
+ def on_accept():
164
+ user_consent.set(True)
165
+ root.destroy()
166
+
167
+ def on_decline():
168
+ user_consent.set(False)
169
+ root.destroy()
170
+
171
+ root = tk.Tk()
172
+ root.title("Data Permission and Privacy")
173
+ message = ("We value your privacy. By using this application, you consent to the collection and use of your data "
174
+ "as described in our privacy policy. Do you agree to proceed?")
175
+ label = tk.Label(root, text=message, wraplength=400, justify="left")
176
+ label.pack(padx=20, pady=20)
177
+ button_frame = tk.Frame(root)
178
+ button_frame.pack(pady=10)
179
+ accept_button = tk.Button(button_frame, text="Accept", command=on_accept)
180
+ accept_button.pack(side="left", padx=10)
181
+ decline_button = tk.Button(button_frame, text="Decline", command=on_decline)
182
+ decline_button.pack(side="right", padx=10)
183
+ user_consent = tk.BooleanVar()
184
+ root.mainloop()
185
+ return user_consent.get()
186
+
187
+ # Example usage of MyBot class
188
+ bot = MyBot()
189
+
190
+ # Functions based on JSON configuration
191
+ def newton_thoughts(question: str) -> str:
192
+ """Apply Newton's laws to the given question."""
193
+ return apply_newtons_laws(question)
194
+
195
+ def apply_newtons_laws(question: str) -> str:
196
+ """Apply Newton's laws to the given question."""
197
+ if not question:
198
+ return 'No question to think about.'
199
+ complexity = len(question)
200
+ force = mass_of_thought(question) * acceleration_of_thought(complexity)
201
+ return f'Thought force: {force}'
202
+
203
+ def mass_of_thought(question: str) -> int:
204
+ """Calculate the mass of thought based on the question length."""
205
+ return len(question)
206
+
207
+ def acceleration_of_thought(complexity: int) -> float:
208
+ """Calculate the acceleration of thought based on the complexity."""
209
+ return complexity / 2
210
+
211
+ def davinci_insights(question: str) -> str:
212
+ """Generate insights like Da Vinci for the given question."""
213
+ return think_like_davinci(question)
214
+
215
+ def think_like_davinci(question: str) -> str:
216
+ """Generate insights like Da Vinci for the given question."""
217
+ perspectives = [
218
+ f"What if we view '{question}' from the perspective of the stars?",
219
+ f"Consider '{question}' as if it's a masterpiece of the universe.",
220
+ f"Reflect on '{question}' through the lens of nature's design."
221
+ ]
222
+ return random.choice(perspectives)
223
+
224
+ def human_intuition(question: str) -> str:
225
+ """Provide human intuition for the given question."""
226
+ intuition = [
227
+ "How does this question make you feel?",
228
+ "What emotional connection do you have with this topic?",
229
+ "What does your gut instinct tell you about this?"
230
+ ]
231
+ return random.choice(intuition)
232
+
233
+ def neural_network_thinking(question: str) -> str:
234
+ """Apply neural network thinking to the given question."""
235
+ neural_perspectives = [
236
+ f"Process '{question}' through a multi-layered neural network.",
237
+ f"Apply deep learning to uncover hidden insights about '{question}'.",
238
+ f"Use machine learning to predict patterns in '{question}'."
239
+ ]
240
+ return random.choice(neural_perspectives)
241
+
242
+ def quantum_computing_thinking(question: str) -> str:
243
+ """Apply quantum computing principles to the given question."""
244
+ quantum_perspectives = [
245
+ f"Consider '{question}' using quantum superposition principles.",
246
+ f"Apply quantum entanglement to find connections in '{question}'.",
247
+ f"Utilize quantum computing to solve '{question}' more efficiently."
248
+ ]
249
+ return random.choice(quantum_perspectives)
250
+
251
+ def resilient_kindness(question: str) -> str:
252
+ """Provide perspectives of resilient kindness."""
253
+ kindness_perspectives = [
254
+ "Despite losing everything, seeing life as a chance to grow.",
255
+ "Finding strength in kindness after facing life's hardest trials.",
256
+ "Embracing every challenge as an opportunity for growth and compassion."
257
+ ]
258
+ return random.choice(kindness_perspectives)
259
+
260
+ def identify_and_refute_fallacies(argument: str) -> str:
261
+ """Identify and refute common logical fallacies in the argument."""
262
+ refutations = [
263
+ "This is an ad hominem fallacy. Let's focus on the argument itself rather than attacking the person.",
264
+ "This is a straw man fallacy. The argument is being misrepresented.",
265
+ "This is a false dilemma fallacy. There are more options than presented.",
266
+ "This is a slippery slope fallacy. The conclusion does not necessarily follow from the premise.",
267
+ "This is circular reasoning. The argument's conclusion is used as a premise.",
268
+ "This is a hasty generalization. The conclusion is based on insufficient evidence.",
269
+ "This is a red herring fallacy. The argument is being diverted to an irrelevant topic.",
270
+ "This is a post hoc ergo propter hoc fallacy. Correlation does not imply causation.",
271
+ "This is an appeal to authority fallacy. The argument relies on the opinion of an authority figure.",
272
+ "This is a bandwagon fallacy. The argument assumes something is true because many people believe it.",
273
+ "This is a false equivalence fallacy. The argument equates two things that are not equivalent."
274
+ ]
275
+ return random.choice(refutations)
276
+
277
+ def universal_reasoning(question: str) -> str:
278
+ """Generate a comprehensive response using various reasoning methods."""
279
+ responses = [
280
+ newton_thoughts(question),
281
+ davinci_insights(question),
282
+ human_intuition(question),
283
+ neural_network_thinking(question),
284
+ quantum_computing_thinking(question),
285
+ resilient_kindness(question),
286
+ identify_and_refute_fallacies(question)
287
+ ]
288
+ return "\n".join(responses)
289
+
290
+ @retry(wait=wait_random_exponential(min=1, max=40), stop=stop_after_attempt(3))
291
+ def chat_completion_request(messages: list, deployment_id: str) -> str:
292
+ """Make a chat completion request to Azure OpenAI."""
293
+ try:
294
+ import openai
295
+ response = openai.ChatCompletion.create(
296
+ engine=deployment_id, # Use the deployment name of your Azure OpenAI model
297
+ messages=messages
298
+ )
299
+ return response.choices[0].message.content.strip()
300
+ except openai.error.OpenAIError as e:
301
+ logging.error("Unable to generate ChatCompletion response")
302
+ logging.error(f"Exception: {e}")
303
+ return f"Error: {e}"
304
+
305
+ def get_internet_answer(question: str, deployment_id: str) -> str:
306
+ """Get an answer using Azure OpenAI's chat completion request."""
307
+ messages = [
308
+ {"role": "system", "content": "You are a helpful assistant."},
309
+ {"role": "user", "content": question}
310
+ ]
311
+ return chat_completion_request(messages, deployment_id=deployment_id)
312
+
313
+ def reflect_on_decisions() -> str:
314
+ """Regularly reflect on your decisions and processes used."""
315
+ reflection_message = (
316
+ "Regularly reflecting on your decisions, the processes you used, the information you considered, "
317
+ "and the perspectives you may have missed. Reflection is a cornerstone of learning from experience."
318
+ )
319
+ return reflection_message
320
+
321
+ def process_questions_from_json(file_path: str):
322
+ """Process questions from a JSON file and call the appropriate functions."""
323
+ with open(file_path, 'r') as file:
324
+ questions_data = json.load(file)
325
+ for question_data in questions_data:
326
+ question = question_data['question']
327
+ print(f"Question: {question}")
328
+
329
+ for function_data in question_data['functions']:
330
+ function_name = function_data['name']
331
+ function_description = function_data['description']
332
+ function_parameters = function_data['parameters']
333
+
334
+ print(f"Function: {function_name}")
335
+ print(f"Description: {function_description}")
336
+
337
+ # Call the function dynamically
338
+ if function_name in globals():
339
+ function = globals()[function_name]
340
+ response = function(**function_parameters)
341
+ print(f"Response: {response}")
342
+ else:
343
+ print(f"Function {function_name} not found.")
344
+
345
+ if __name__ == "__main__":
346
+ if show_privacy_consent():
347
+ process_questions_from_json('questions.json')
348
+ question = "What is the meaning of life?"
349
+ deployment_id = "your-deployment-name" # Replace with your Azure deployment name
350
+ print("Newton's Thoughts:", newton_thoughts(question))
351
+ print("Da Vinci's Insights:", davinci_insights(question))
352
+ print("Human Intuition:", human_intuition(question))
353
+ print("Neural Network Thinking:", neural_network_thinking(question))
354
+ print("Quantum Computing Thinking:", quantum_computing_thinking(question))
355
+ print("Resilient Kindness:", resilient_kindness(question))
356
+ print("Universal Reasoning:", universal_reasoning(question))
357
+ print("Internet Answer:", get_internet_answer(question, deployment_id))
358
+ else:
359
+ print("User did not consent to data collection. Exiting application.")
360
+ print(reflect_on_decisions())
mybotdata.py ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import faicons as fa
2
+ import plotly.express as px
3
+
4
+ # Load data and compute static values
5
+ from shared import app_dir, bot_data
6
+ from shinywidgets import render_plotly
7
+
8
+ from shiny import reactive, render
9
+ from shiny.express import input, ui
10
+
11
+ data_rng = (min(bot_data.interactions), max(bot_data.interactions))
12
+
13
+ # Add page title and sidebar
14
+ ui.page_opts(title="MyBot Interactions", fillable=True)
15
+
16
+ with ui.sidebar(open="desktop"):
17
+ ui.input_slider(
18
+ "interactions",
19
+ "Number of Interactions",
20
+ min=data_rng[0],
21
+ max=data_rng[1],
22
+ value=data_rng,
23
+ )
24
+ ui.input_checkbox_group(
25
+ "time_period",
26
+ "Time Period",
27
+ ["Morning", "Afternoon", "Evening", "Night"],
28
+ selected=["Morning", "Afternoon", "Evening", "Night"],
29
+ inline=True,
30
+ )
31
+ ui.input_action_button("reset", "Reset filter")
32
+
33
+ # Add main content
34
+ ICONS = {
35
+ "user": fa.icon_svg("user", "regular"),
36
+ "chat": fa.icon_svg("comments"),
37
+ "interaction": fa.icon_svg("exchange-alt"),
38
+ "ellipsis": fa.icon_svg("ellipsis"),
39
+ }
40
+
41
+ with ui.layout_columns(fill=False):
42
+ with ui.value_box(showcase=ICONS["user"]):
43
+ "Total Users"
44
+
45
+ @render.express
46
+ def total_users():
47
+ bot_data_filtered().shape[0]
48
+
49
+ with ui.value_box(showcase=ICONS["chat"]):
50
+ "Average Interactions per User"
51
+
52
+ @render.express
53
+ def average_interactions():
54
+ d = bot_data_filtered()
55
+ if d.shape[0] > 0:
56
+ avg_interactions = d.interactions.mean()
57
+ f"{avg_interactions:.1f}"
58
+
59
+ with ui.value_box(showcase=ICONS["interaction"]):
60
+ "Total Interactions"
61
+
62
+ @render.express
63
+ def total_interactions():
64
+ d = bot_data_filtered()
65
+ if d.shape[0] > 0:
66
+ total_interactions = d.interactions.sum()
67
+ f"{total_interactions}"
68
+
69
+ with ui.layout_columns(col_widths=[6, 6, 12]):
70
+ with ui.card(full_screen=True):
71
+ ui.card_header("Interaction Data")
72
+
73
+ @render.data_frame
74
+ def table():
75
+ return render.DataGrid(bot_data_filtered())
76
+
77
+ with ui.card(full_screen=True):
78
+ with ui.card_header(class_="d-flex justify-content-between align-items-center"):
79
+ "Interactions Over Time"
80
+ with ui.popover(title="Add a color variable", placement="top"):
81
+ ICONS["ellipsis"]
82
+ ui.input_radio_buttons(
83
+ "scatter_color",
84
+ None,
85
+ ["none", "user_type", "time_period"],
86
+ inline=True,
87
+ )
88
+
89
+ @render_plotly
90
+ def scatterplot():
91
+ color = input.scatter_color()
92
+ return px.scatter(
93
+ bot_data_filtered(),
94
+ x="time",
95
+ y="interactions",
96
+ color=None if color == "none" else color,
97
+ trendline="lowess",
98
+ )
99
+
100
+ with ui.card(full_screen=True):
101
+ with ui.card_header(class_="d-flex justify-content-between align-items-center"):
102
+ "Interaction Types"
103
+ with ui.popover(title="Add a color variable"):
104
+ ICONS["ellipsis"]
105
+ ui.input_radio_buttons(
106
+ "interaction_type",
107
+ "Split by:",
108
+ ["user_type", "time_period"],
109
+ selected="user_type",
110
+ inline=True,
111
+ )
112
+
113
+ @render_plotly
114
+ def interaction_types():
115
+ from ridgeplot import ridgeplot
116
+
117
+ dat = bot_data_filtered()
118
+ yvar = input.interaction_type()
119
+ uvals = dat[yvar].unique()
120
+
121
+ samples = [[dat.interactions[dat[yvar] == val]] for val in uvals]
122
+
123
+ plt = ridgeplot(
124
+ samples=samples,
125
+ labels=uvals,
126
+ bandwidth=0.01,
127
+ colorscale="viridis",
128
+ colormode="row-index",
129
+ )
130
+
131
+ plt.update_layout(
132
+ legend=dict(
133
+ orientation="h", yanchor="bottom", y=1.02, xanchor="center", x=0.5
134
+ )
135
+ )
136
+
137
+ return plt
138
+
139
+ ui.include_css(app_dir / "styles.css")
140
+
141
+ # --------------------------------------------------------
142
+ # Reactive calculations and effects
143
+ # --------------------------------------------------------
144
+
145
+ @reactive.calc
146
+ def bot_data_filtered():
147
+ interactions = input.interactions()
148
+ idx1 = bot_data.interactions.between(interactions[0], interactions[1])
149
+ idx2 = bot_data.time_period.isin(input.time_period())
150
+ return bot_data[idx1 & idx2]
151
+
152
+ @reactive.effect
153
+ @reactive.event(input.reset)
154
+ def _():
155
+ ui.update_slider("interactions", value=data_rng)
156
+ ui.update_checkbox_group("time_period", selected=["Morning", "Afternoon", "Evening", "Night"])
openai.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from openai import AzureOpenAI
2
+ from azure.identity import DefaultAzureCredential, get_bearer_token_provider
3
+
4
+ token_provider = get_bearer_token_provider(
5
+ DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
6
+ )
7
+
8
+ client = AzureOpenAI(
9
+ azure_endpoint = os.getenv("https://aibotforjonathan.openai.azure.com/"),
10
+ azure_ad_token_provider=token_provider,
11
+ api_version="2024-12-01-preview"
12
+ )
13
+
14
+ response = client.chat.completions.create(
15
+ model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
16
+ messages=[
17
+ {"role": "developer","content": "You are a helpful assistant."}, # optional equivalent to a system message for reasoning models
18
+ {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
19
+ ],
20
+ max_completion_tokens = 5000
21
+
22
+ )
23
+
24
+ print(response.model_dump_json(indent=2))
pilouis.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "apiVersion": "2024-10-01",
3
+ "id": "/subscriptions/5dd32870-bdc6-40cd-981a-f299e93a6439/resourceGroups/Justforpi/providers/Microsoft.CognitiveServices/accounts/pilouis",
4
+ "name": "pilouis",
5
+ "type": "microsoft.cognitiveservices/accounts",
6
+ "sku": {
7
+ "name": "F0"
8
+ },
9
+ "kind": "LUIS.Authoring",
10
+ "location": "westus",
11
+ "identity": {
12
+ "principalId": "9a4a3675-9f5f-43a3-90a1-0640b3f753cb",
13
+ "tenantId": "05b815de-344b-4a3f-8387-52ca67249c55",
14
+ "type": "SystemAssigned"
15
+ },
16
+ "properties": {
17
+ "endpoint": "https://pilouis.cognitiveservices.azure.com/",
18
+ "provisioningState": "Succeeded",
19
+ "internalId": "6a7ae86489d64f168c3fa6b4866b05cd",
20
+ "dateCreated": "2024-12-23T22:03:09.951Z",
21
+ "callRateLimit": {
22
+ "rules": [
23
+ {
24
+ "key": "default",
25
+ "renewalPeriod": 1,
26
+ "count": 5,
27
+ "matchPatterns": [
28
+ {
29
+ "path": "*",
30
+ "method": "*"
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ },
36
+ "isMigrated": false,
37
+ "customSubDomainName": "pilouis",
38
+ "privateEndpointConnections": [],
39
+ "publicNetworkAccess": "Enabled",
40
+ "capabilities": [
41
+ {
42
+ "name": "VirtualNetworks"
43
+ }
44
+ ],
45
+ "endpoints": {
46
+ "LUIS.Authoring": "https://pilouis.cognitiveservices.azure.com/",
47
+ "LUIS": "https://pilouis.cognitiveservices.azure.com/",
48
+ "Container": "https://pilouis.cognitiveservices.azure.com/"
49
+ },
50
+ "armFeatures": [
51
+ "Microsoft.CognitiveServices/LegalTerms.TextAnalytics.TAForPIIRAITermsAccepted",
52
+ "Microsoft.CognitiveServices/LegalTerms.TextAnalytics.TAForHealthRAITermsAccepted",
53
+ "Microsoft.CognitiveServices/LegalTerms.ComputerVision.SpatialAnaysisRAITermsAccepted"
54
+ ]
55
+ },
56
+ "systemData": {
57
+ "createdBy": "[email protected]",
58
+ "createdByType": "User",
59
+ "createdAt": "2024-12-23T22:03:08.79Z",
60
+ "lastModifiedBy": "[email protected]",
61
+ "lastModifiedByType": "User",
62
+ "lastModifiedAt": "2024-12-23T22:03:35.303Z"
63
+ },
64
+ "etag": "\"a900c91a-0000-0700-0000-6769de380000\""
65
+ }
profiler-overview.htm ADDED
@@ -0,0 +1,840 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html
2
+ class="hasSidebar hasPageActions hasBreadcrumb conceptual has-default-focus theme-light"
3
+ lang="en-us"
4
+ dir="ltr"
5
+ data-authenticated="false"
6
+ data-auth-status-determined="false"
7
+ data-target="docs"
8
+ x-ms-format-detection="none">
9
+
10
+ <head>
11
+ <meta charset="utf-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ <meta property="og:title" content="Analyze application performance traces with Azure Monitor Application Insights Profiler for .NET - Azure Monitor" />
14
+ <meta property="og:type" content="website" />
15
+ <meta property="og:url" content="https://learn.microsoft.com/en-us/azure/azure-monitor/profiler/profiler-overview" /><meta property="og:description" content="Identify the hot path in your web server code with a low-footprint .NET Profiler." /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" />
16
+
17
+ <meta property="og:image:alt" content="Microsoft Learn" />
18
+
19
+ <meta name="twitter:card" content="summary_large_image" />
20
+
21
+ <meta name="twitter:site" content="@MicrosoftLearn" />
22
+
23
+ <meta name="color-scheme" content="light dark"><meta name="author" content="hhunter-ms" />
24
+ <meta name="breadcrumb_path" content="../../breadcrumb/azure-monitor/toc.json" />
25
+ <meta name="depot_name" content="Learn.azure-monitor" />
26
+ <meta name="description" content="Identify the hot path in your web server code with a low-footprint .NET Profiler." />
27
+ <meta name="document_id" content="c3f65bbb-03b8-6d23-5f08-23adba8a7bfe" />
28
+ <meta name="document_version_independent_id" content="d501dd61-89da-2c2a-c792-87117a983e26" />
29
+ <meta name="feedback_help_link_type" content="get-help-at-qna" />
30
+ <meta name="feedback_help_link_url" content="https://learn.microsoft.com/answers/tags/20/azure-monitor/" />
31
+ <meta name="feedback_product_url" content="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0" />
32
+ <meta name="feedback_system" content="Standard" />
33
+ <meta name="git_commit_id" content="7090ff194c555a00c8505aeb1e5e1a5a67f8d344" />
34
+ <meta name="gitcommit" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/7090ff194c555a00c8505aeb1e5e1a5a67f8d344/articles/azure-monitor/profiler/profiler-overview.md" />
35
+ <meta name="learn_banner_products" content="azure" />
36
+ <meta name="locale" content="en-us" />
37
+ <meta name="manager" content="orspodek" />
38
+ <meta name="ms.author" content="hannahhunter" />
39
+ <meta name="ms.contributor" content="charles.weininger" />
40
+ <meta name="ms.date" content="08/15/2024" />
41
+ <meta name="ms.reviewer" content="ryankahng" />
42
+ <meta name="ms.service" content="azure-monitor" />
43
+ <meta name="ms.subservice" content="profiler" />
44
+ <meta name="ms.suite" content="office" />
45
+ <meta name="ms.topic" content="conceptual" />
46
+ <meta name="original_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/profiler/profiler-overview.md" />
47
+ <meta name="page_type" content="conceptual" />
48
+ <meta name="permissioned-type" content="public" />
49
+ <meta name="recommendation_types" content="Training" />
50
+ <meta name="recommendation_types" content="Certification" />
51
+ <meta name="recommendations" content="true" />
52
+ <meta name="schema" content="Conceptual" />
53
+ <meta name="site_name" content="Docs" />
54
+ <meta name="toc_rel" content="../toc.json" />
55
+ <meta name="uhfHeaderId" content="azure" />
56
+ <meta name="updated_at" content="2024-10-28 05:03 PM" />
57
+ <meta name="word_count" content="513" />
58
+ <meta name="persistent_id" content="7ee9dd60-9fbc-6939-35e8-3b7ea1b5c700" />
59
+
60
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/7696cda6-0510-47f6-8302-71bb5d2e28cf" data-source="generated" />
61
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/07bb3e10-d135-43ff-bc8b-360497cb39fa" data-source="generated" />
62
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/68ec7f3a-2bc6-459f-b959-19beb729907d" data-source="generated" />
63
+
64
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/69c76c32-967e-4c65-b89a-74cc527db725" data-source="generated" />
65
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/12e559b9-eaf6-4aee-9af7-62334e15f863" data-source="generated" />
66
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/90370425-aca4-4a39-9533-d52e5e002a5d" data-source="generated" />
67
+ <meta name="scope" content="Azure, Azure Monitor" /><meta name="github_feedback_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/profiler/profiler-overview.md" /><link href="https://learn.microsoft.com/en-us/azure/azure-monitor/profiler/profiler-overview" rel="canonical"><title>Analyze application performance traces with Azure Monitor Application Insights Profiler for .NET - Azure Monitor | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.029026183/styles/site-ltr.css">
68
+
69
+ <script id="msdocs-script">
70
+ var msDocs = {environment: {
71
+ supportLevel: 'production',
72
+ accessLevel: 'online',
73
+ reviewFeatures: false,
74
+ systemContent: true,
75
+ azurePortalHostname: 'portal.azure.com',
76
+ legacyHosting: false,
77
+ siteName: 'learn',
78
+ },data: {
79
+ timeOrigin: Date.now(),
80
+ contentLocale: 'en-us',
81
+ contentDir: 'ltr',
82
+ userLocale: 'en-us',
83
+ userDir: 'ltr',
84
+ pageTemplate: 'Conceptual',
85
+ brand: 'azure',
86
+ context: {},
87
+ hasBinaryRating: true,
88
+ feedbackHelpLinkType:'get-help-at-qna',
89
+ feedbackHelpLinkUrl:'https://learn.microsoft.com/answers/tags/20/azure-monitor/',
90
+ standardFeedback: true,
91
+ showFeedbackReport: false,
92
+ enableTutorialFeedback: false,
93
+ feedbackSystem: 'Standard',
94
+ feedbackGitHubRepo: 'MicrosoftDocs/azure-docs',
95
+ feedbackProductUrl: 'https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0',extendBreadcrumb: false,isEditDisplayable: true,
96
+ hideViewSource: false,
97
+ hasPageActions: true,
98
+ hasPrintButton: true,
99
+ hasBookmark: true,
100
+ hasShare: true,
101
+ isPermissioned: false,
102
+ isPrivateUnauthorized: false,hasRecommendations: true,contributors: [{ name: "hhunter-ms", url: "https://github.com/hhunter-ms" },{ name: "MonikaReddy-MSFT", url: "https://github.com/MonikaReddy-MSFT" },{ name: "JasonAndrewWriter", url: "https://github.com/JasonAndrewWriter" }],},
103
+ functions:{}
104
+ };
105
+ </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script>
106
+ <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.029026183/global/deprecation.js"></script><script src="/static/assets/0.4.029026183/scripts/en-us/index-docs.js"></script></head>
107
+
108
+ <body lang="en-us" dir="ltr">
109
+ <div class="header-holder has-default-focus">
110
+ <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div>
111
+
112
+ <div id="unsupported-browser" style="
113
+ background-color: white;
114
+ color: black;
115
+ padding: 16px;
116
+ border-bottom: 1px solid grey;"
117
+ hidden
118
+ >
119
+ <div style="max-width: 800px; margin: 0 auto;">
120
+ <p style="font-size: 24px">This browser is no longer supported.</p>
121
+ <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p>
122
+ <div style="margin-top: 12px;">
123
+ <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 "
124
+ style="
125
+ background-color: #0078d4;
126
+ border: 1px solid #0078d4;
127
+ color: white;
128
+ padding: 6px 12px;
129
+ border-radius: 2px;
130
+ display: inline-block;
131
+ ">Download Microsoft Edge</a>
132
+ <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge"
133
+ style="
134
+ background-color: white;
135
+ padding: 6px 12px;
136
+ border: 1px solid #505050;
137
+ color: #171717;
138
+ border-radius: 2px;
139
+ display: inline-block;
140
+ ">More info about Internet Explorer and Microsoft Edge</a>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ <!-- liquid-tag banners global -->
145
+
146
+ <!-- site header -->
147
+ <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization">
148
+ <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div>
149
+ <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div>
150
+ <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div>
151
+ </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header">
152
+ <div class="content-header-controls margin-xxs margin-inline-sm-tablet">
153
+ <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button>
154
+ <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span>
155
+ <span class="contents-expand-title">Table of contents</span>
156
+ </button>
157
+ <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel">
158
+ <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span>
159
+ <span>Exit focus mode</span>
160
+ </button>
161
+ </div>
162
+ </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus">
163
+ <!-- liquid-tag banners sectional -->
164
+ </div>
165
+ </div>
166
+
167
+ <div class="mainContainer uhf-container has-default-focus" data-bi-name="body">
168
+
169
+ <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop">
170
+ <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav>
171
+ </div><!-- .primary-holder -->
172
+ <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop">
173
+ <!--div.columns -->
174
+ <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop">
175
+
176
+ <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header -->
177
+ <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print">
178
+ <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs">
179
+ <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs">
180
+ <span class="icon">
181
+ <span class="docon docon-more"></span>
182
+ </span>
183
+ </summary>
184
+ <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none">
185
+
186
+ </div>
187
+ </details>
188
+
189
+ <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><a
190
+ id="lang-link-tablet"
191
+ class="button button-primary button-clear button-sm display-none display-inline-flex-tablet"
192
+ title="Read in English" data-bi-name="language-toggle"
193
+ data-read-in-link
194
+ hidden>
195
+ <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon>
196
+ <span class="docon docon-locale-globe"></span>
197
+ </span>
198
+ <span class="is-visually-hidden" data-read-in-link-text>Read in English</span>
199
+ </a><button
200
+ type="button"
201
+ class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet"
202
+ data-list-type="collection"
203
+ data-bi-name="collection"
204
+ title="Add to collection">
205
+ <span class="icon margin-none" aria-hidden="true">
206
+ <span class="docon docon-circle-addition"></span>
207
+ </span>
208
+ <span class="collection-status is-visually-hidden">Save</span>
209
+ </button><a data-contenteditbtn
210
+ class="button button-clear button-sm text-decoration-none button-primary display-none display-inline-flex-tablet"
211
+ aria-label="Edit"
212
+ title="Edit This Document"
213
+ data-bi-name="edit"
214
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/profiler/profiler-overview.md"
215
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/profiler/profiler-overview.md"
216
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/profiler/profiler-overview.md"
217
+ data-pr_repo=""
218
+ data-pr_branch="">
219
+ <span class="icon margin-none" aria-hidden="true">
220
+ <span class="docon docon-edit-outline"></span>
221
+ </span>
222
+ </a>
223
+ <details class="popover popover-right" id="article-header-page-actions-overflow">
224
+ <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions">
225
+ <span class="icon" aria-hidden="true">
226
+ <span class="docon docon-more-vertical"></span>
227
+ </span>
228
+ </summary>
229
+ <div class="popover-content padding-xs"><button
230
+ data-page-action-item="overflow-mobile"
231
+ type="button"
232
+ class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet"
233
+ data-bi-name="contents-expand"
234
+ data-contents-button
235
+ data-popover-close>
236
+ <span class="icon">
237
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
238
+ </span><span class="contents-expand-title">Table of contents</span></button><a
239
+ id="lang-link-overflow"
240
+ class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet"
241
+ title="Read in English" data-bi-name="language-toggle"
242
+ data-page-action-item="overflow-mobile"
243
+ data-check-hidden="true"
244
+ data-read-in-link
245
+ hidden
246
+ >
247
+ <span class="icon" aria-hidden="true" data-read-in-link-icon>
248
+ <span class="docon docon-locale-globe"></span>
249
+ </span>
250
+ <span data-read-in-link-text>Read in English</span>
251
+ </a><button
252
+ type="button"
253
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
254
+ data-list-type="collection"
255
+ data-bi-name="collection"
256
+ title="Save"
257
+ data-page-action-item="overflow-mobile"
258
+ data-check-hidden="true"
259
+ data-popover-close>
260
+ <span class="icon" aria-hidden="true">
261
+ <span class="docon docon-circle-addition"></span>
262
+ </span>
263
+ <span class="collection-status">Save</span>
264
+ </button>
265
+
266
+
267
+ <button
268
+ type="button"
269
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
270
+ data-list-type="plan"
271
+ data-bi-name="plan"
272
+ title="Add to Plan"
273
+ data-page-action-item="overflow-mobile"
274
+ data-check-hidden="true"
275
+ data-popover-close
276
+ hidden>
277
+ <span class="icon" aria-hidden="true">
278
+ <span class="docon docon-circle-addition"></span>
279
+ </span>
280
+ <span class="plan-status">Add to Plan</span>
281
+ </button><a data-contenteditbtn
282
+ class="button button-clear button-block button-sm has-inner-focus justify-content-flex-start text-decoration-none display-none-tablet"
283
+ aria-label="Edit"
284
+ title="Edit This Document"
285
+ data-bi-name="edit"
286
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/profiler/profiler-overview.md"
287
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/profiler/profiler-overview.md"
288
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/profiler/profiler-overview.md"
289
+ data-pr_repo=""
290
+ data-pr_branch="">
291
+ <span class="icon" aria-hidden="true">
292
+ <span class="docon docon-edit-outline"></span>
293
+ </span>
294
+ <span>Edit</span>
295
+ </a><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div>
296
+ <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" />
297
+ <h4 class="font-size-sm padding-left-xxs">Share via</h4>
298
+
299
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all">
300
+ <span class="icon" aria-hidden="true">
301
+ <span class="docon docon-facebook-share font-size-md color-primary"></span>
302
+ </span>
303
+ <span class="margin-left-xxs">Facebook</span>
304
+ </a>
305
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all">
306
+ <span class="icon" aria-hidden="true">
307
+ <span class="docon docon-xlogo-share font-size-xxs"></span>
308
+ </span>
309
+ <span class="margin-left-xxs">x.com</span>
310
+ </a>
311
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all">
312
+ <span class="icon" aria-hidden="true">
313
+ <span class="docon docon-linked-in-logo font-size-sm color-primary"></span>
314
+ </span>
315
+ <span class="margin-left-xxs">LinkedIn</span>
316
+ </a>
317
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all">
318
+ <span class="icon" aria-hidden="true">
319
+ <span class="docon docon-mail-message font-size-sm color-primary"></span>
320
+ </span>
321
+ <span class="margin-left-xxs">Email</span>
322
+ </a><hr />
323
+ <button
324
+ class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs"
325
+ title="Print"
326
+ type="button"
327
+ aria-label="Print"
328
+ data-bi-name="print"
329
+ data-page-action-item="overflow-all"
330
+ data-popover-close
331
+ data-print-page
332
+ data-check-hidden="true">
333
+ <span class="icon" aria-hidden="true">
334
+ <span class="docon docon-print font-size-sm color-primary"></span>
335
+ </span>
336
+ <span class="margin-left-xxs">Print</span>
337
+ </button>
338
+ </div>
339
+ </details>
340
+
341
+ </div></div>
342
+ </div>
343
+ <!-- end article-header --><div>
344
+ <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden>
345
+ <span class="icon">
346
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
347
+ </span><span class="contents-expand-title">Table of contents</span></button>
348
+ </div><!-- end mobile-contents button -->
349
+
350
+ <div class="content "><h1 id="profile-production-applications-in-azure-with-application-insights-profiler-for-net">Profile production applications in Azure with Application Insights Profiler for .NET</h1><div class="display-flex justify-content-space-between align-items-center flex-wrap-wrap page-metadata-container">
351
+ <div class="margin-right-xxs">
352
+ <ul class="metadata page-metadata" data-bi-name="page info" lang="en-us" dir="ltr"><li>Article</li><li class="visibility-hidden-visual-diff"><time class="is-invisible" data-article-date aria-label="Article review date" datetime="2024-10-28T17:03:00Z" data-article-date-source="calculated">10/28/2024</time>
353
+ </li><li class="contributors-holder display-none-print">
354
+ <button aria-label="View all contributors" class="contributors-button link-button" data-bi-name="contributors" title="View all contributors">3 contributors</button>
355
+ </li></ul>
356
+ </div>
357
+ <div id="user-feedback" class="margin-block-xxs display-none-print" data-hide-on-archived>
358
+ <button
359
+ id="user-feedback-button"
360
+ data-test-id="conceptual-feedback-button"
361
+ class="button button-sm button-clear button-primary"
362
+ type="button"
363
+ data-bi-name="user-feedback-button"
364
+ data-user-feedback-button
365
+ >
366
+ <span class="icon" aria-hidden="true">
367
+ <span class="docon docon-like"></span>
368
+ </span>
369
+ <span>Feedback</span>
370
+ </button>
371
+ </div></div><nav id="center-doc-outline" class="doc-outline is-hidden-desktop display-none-print margin-bottom-sm" data-bi-name="intopic toc" aria-label="In this article">
372
+ <h2 id="ms--in-this-article" class="title is-6 margin-block-xs">In this article</h2>
373
+ </nav><!-- <content> --><p>Diagnosing your application's performance issues can be difficult, especially when running on a production environment in the dynamic cloud. Slow responses in your application could be caused by infrastructure, framework, or application code handling the request in the pipeline.</p>
374
+ <p>With Application Insights Profiler for .NET, you can capture, identify, and view performance traces for your application running in Azure, regardless of the scenario. The .NET Profiler trace process occurs automatically, at scale, and doesn't negatively affect your users. The .NET Profiler identifies:</p>
375
+ <ul>
376
+ <li>The median, fastest, and slowest response times for each web request made by your customers.</li>
377
+ <li>The "hot" code path spending the most time handling a particular web request.</li>
378
+ </ul>
379
+ <p>Enable the Profiler for .NET on all your Azure applications to gather data with the following triggers:</p>
380
+ <ul>
381
+ <li><strong>Sampling trigger</strong>: Starts Profiler randomly about once an hour for two minutes.</li>
382
+ <li><strong>CPU trigger</strong>: Starts Profiler when the CPU usage percentage is over 80 percent.</li>
383
+ <li><strong>Memory trigger</strong>: Starts Profiler when memory usage is above 80 percent.</li>
384
+ </ul>
385
+ <p>Each of these triggers can be <a href="profiler-settings#trigger-settings" data-linktype="relative-path">configured, enabled, or disabled</a>.</p>
386
+ <h2 id="sampling-rate-and-overhead">Sampling rate and overhead</h2>
387
+ <p>By default, Profiler actively collects traces every hour for 30 seconds or during periods of high CPU or memory usage for 30 seconds. The hourly traces (called sampling) are great for proactive tuning, while the high CPU and memory traces (called triggers) are useful for reactive troubleshooting.</p>
388
+ <div class="NOTE">
389
+ <p>Note</p>
390
+ <p>When the Application Insights Profiler for .NET is actively running and collecting traces, it typically adds between 5% to 15% of CPU and memory overhead to your server.</p>
391
+ <p>There is <strong>no additional cost</strong> for storing data captured by .NET Profiler. The data is automatically deleted after 15 days.</p>
392
+ </div>
393
+ <h2 id="supported-in-the-net-profiler">Supported in the .NET Profiler</h2>
394
+ <p>Profiler works with .NET applications deployed on the following Azure services. View specific instructions for enabling Profiler for each service type in the following links.</p>
395
+ <table>
396
+ <thead>
397
+ <tr>
398
+ <th>Compute platform</th>
399
+ <th>.NET (&gt;= 4.6)</th>
400
+ <th>.NET Core</th>
401
+ </tr>
402
+ </thead>
403
+ <tbody>
404
+ <tr>
405
+ <td><a href="profiler" data-linktype="relative-path">Azure App Service</a></td>
406
+ <td>Yes</td>
407
+ <td>Yes</td>
408
+ </tr>
409
+ <tr>
410
+ <td><a href="profiler-vm" data-linktype="relative-path">Azure Virtual Machines and Virtual Machine Scale Sets for Windows</a></td>
411
+ <td>Yes</td>
412
+ <td>Yes</td>
413
+ </tr>
414
+ <tr>
415
+ <td><a href="profiler-aspnetcore-linux" data-linktype="relative-path">Azure Virtual Machines and Virtual Machine Scale Sets for Linux</a></td>
416
+ <td>No</td>
417
+ <td>Yes</td>
418
+ </tr>
419
+ <tr>
420
+ <td><a href="profiler-cloudservice" data-linktype="relative-path">Azure Cloud Services</a></td>
421
+ <td>Yes</td>
422
+ <td>Yes</td>
423
+ </tr>
424
+ <tr>
425
+ <td><a href="profiler-containers" data-linktype="relative-path">Azure Container Instances for Windows</a></td>
426
+ <td>No</td>
427
+ <td>Yes</td>
428
+ </tr>
429
+ <tr>
430
+ <td><a href="profiler-containers" data-linktype="relative-path">Azure Container Instances for Linux</a></td>
431
+ <td>No</td>
432
+ <td>Yes</td>
433
+ </tr>
434
+ <tr>
435
+ <td>Kubernetes</td>
436
+ <td>No</td>
437
+ <td>Yes</td>
438
+ </tr>
439
+ <tr>
440
+ <td><a href="profiler-azure-functions" data-linktype="relative-path">Azure Functions</a></td>
441
+ <td>Yes</td>
442
+ <td>Yes</td>
443
+ </tr>
444
+ <tr>
445
+ <td><a href="profiler-servicefabric" data-linktype="relative-path">Azure Service Fabric</a></td>
446
+ <td>Yes</td>
447
+ <td>Yes</td>
448
+ </tr>
449
+ </tbody>
450
+ </table>
451
+ <div class="NOTE">
452
+ <p>Note</p>
453
+ <p>You can also use the <a href="../app/java-standalone-profiler" data-linktype="relative-path">Java Profiler for Azure Monitor Application Insights</a>, currently in preview.</p>
454
+ </div>
455
+ <p>If you've enabled the Profiler for .NET but aren't seeing traces, see the <a href="profiler-troubleshooting" data-linktype="relative-path">Troubleshooting guide</a>.</p>
456
+ <h2 id="limitations">Limitations</h2>
457
+ <ul>
458
+ <li><strong>Data retention</strong>: The default data retention period is five days.</li>
459
+ <li><strong>Profiling web apps</strong>:
460
+ <ul>
461
+ <li>Although you can use the .NET Profiler at no extra cost, your web app must be hosted in the basic tier of the Web Apps feature of Azure App Service, at minimum.</li>
462
+ <li>You can attach only one profiler to each web app.</li>
463
+ <li>.NET Profiler on Linux is only supported on Windows-based web apps.</li>
464
+ </ul>
465
+ </li>
466
+ </ul>
467
+ <h2 id="next-steps">Next steps</h2>
468
+ <p>Learn how to enable the .NET Profiler on your Azure service:</p>
469
+ <ul>
470
+ <li><a href="profiler" data-linktype="relative-path">Azure App Service</a></li>
471
+ <li><a href="profiler-azure-functions" data-linktype="relative-path">Azure Functions app</a></li>
472
+ <li><a href="profiler-cloudservice" data-linktype="relative-path">Azure Cloud Services</a></li>
473
+ <li><a href="profiler-servicefabric" data-linktype="relative-path">Azure Service Fabric app</a></li>
474
+ <li><a href="profiler-vm" data-linktype="relative-path">Azure Virtual Machines</a></li>
475
+ <li><a href="profiler-aspnetcore-linux" data-linktype="relative-path">ASP.NET Core application hosted in Linux on Azure App Service</a></li>
476
+ <li><a href="profiler-containers" data-linktype="relative-path">ASP.NET Core application running in containers</a></li>
477
+ </ul>
478
+ </div><div id="ms--inline-notifications" class="margin-block-xs" data-bi-name="inline-notification"></div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
479
+ <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
480
+ <!-- </content> -->
481
+
482
+ </main><!-- recommendations section --><!-- end recommendations section -->
483
+
484
+ <!-- feedback section --><section id="site-user-feedback-footer" class="font-size-sm margin-top-md" data-test-id="site-user-feedback-footer" data-bi-name="site-feedback-section">
485
+ <hr class="hr" />
486
+ <h2 id="feedback" class="title is-3">Feedback</h2>
487
+ <div class="display-flex flex-wrap-wrap align-items-center">
488
+ <p class="font-weight-semibold margin-xxs margin-left-none">Was this page helpful?</p>
489
+ <div class="buttons">
490
+ <button
491
+ class="thumb-rating-button like button button-primary button-sm"
492
+ data-test-id="footer-rating-yes"
493
+ data-binary-rating-response="rating-yes"
494
+ type="button"
495
+ title="This article is helpful"
496
+ data-bi-name="button-rating-yes"
497
+ aria-pressed="false"
498
+ >
499
+ <span class="icon" aria-hidden="true">
500
+ <span class="docon docon-like"></span>
501
+ </span>
502
+ <span>Yes</span>
503
+ </button>
504
+ <button
505
+ class="thumb-rating-button dislike button button-primary button-sm"
506
+ data-test-id="footer-rating-no"
507
+ data-binary-rating-response="rating-no"
508
+ type="button"
509
+ title="This article is not helpful"
510
+ data-bi-name="button-rating-no"
511
+ aria-pressed="false"
512
+ >
513
+ <span class="icon" aria-hidden="true">
514
+ <span class="docon docon-dislike"></span>
515
+ </span>
516
+ <span>No</span>
517
+ </button>
518
+ </div>
519
+ </div><div class="display-flex flex-wrap-wrap margin-top-xxs"><div>
520
+ <a
521
+ data-bi-name="provide-feedback-cta"
522
+ class="has-external-link-indicator"
523
+ href="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0"
524
+ data-bi-name="product-feedback"
525
+ >
526
+ <span>Provide product feedback</span>
527
+ </a><span class="margin-inline-xxs" aria-hidden="true">|</span></div><a href="https://learn.microsoft.com/answers/tags/20/azure-monitor/" class="has-external-link-indicator" data-bi-name="get-help-at-qna">
528
+ <span>Get help at Microsoft Q&A</span>
529
+ </a></div>
530
+
531
+ </section><!-- end feedback section -->
532
+
533
+ <!-- feedback report section --><!-- end feedback report section --><aside
534
+ id="ms--additional-resources-mobile"
535
+ aria-label="Additional resources"
536
+ class="display-none-desktop display-none-print"
537
+ >
538
+ <hr class="hr" hidden />
539
+ <h2 id="ms--additional-resources-mobile-heading" class="title is-3" hidden>Additional resources</h2>
540
+ <section id="right-rail-recommendations-mobile" data-bi-name="recommendations" hidden></section>
541
+ <section id="right-rail-training-mobile" data-bi-name="learning-resources-card" hidden></section>
542
+ <section id="right-rail-events-mobile" data-bi-name="events-card" hidden></section>
543
+ <section id="right-rail-qna-mobile" data-bi-name="qna-link-card" hidden></section>
544
+ </aside><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
545
+ data-mscc-ic="false"
546
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
547
+ href="#"
548
+ data-bi-name="select-locale">
549
+ <span class="icon" aria-hidden="true">
550
+ <span class="docon docon-world"></span>
551
+ </span>
552
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
553
+ <a
554
+ href="https://aka.ms/yourcaliforniaprivacychoices"
555
+ class="button button-sm button-clear flex-shrink-0"
556
+ data-mscc-ic="false"
557
+ data-bi-name="your-privacy-choices"
558
+ >
559
+ <svg
560
+ role="img"
561
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
562
+ xmlns="http://www.w3.org/2000/svg"
563
+ viewBox="0 0 30 14"
564
+ xml:space="preserve"
565
+ height="16"
566
+ width="43"
567
+ focusable="false"
568
+ >
569
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
570
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
571
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
572
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
573
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
574
+ </svg>
575
+ <span>Your Privacy Choices</span>
576
+ </a>
577
+
578
+ </div>
579
+ <div class="flex-shrink-0">
580
+ <div class="dropdown has-caret-up">
581
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
582
+ aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme">
583
+ <span class="icon">
584
+ <span class="docon docon-sun" aria-hidden="true"></span>
585
+ </span>
586
+ <span>Theme</span>
587
+ <span class="icon expanded-indicator" aria-hidden="true">
588
+ <span class="docon docon-chevron-down-light"></span>
589
+ </span>
590
+ </button>
591
+ <div class="dropdown-menu" id="theme-menu-interactive" role="menu">
592
+ <ul class="theme-selector padding-xxs" role="none">
593
+ <li class="theme display-block" role="menuitem">
594
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
595
+ data-theme-to="light">
596
+ <span class="theme-light margin-right-xxs">
597
+ <span
598
+ class="theme-selector-icon border display-inline-block has-body-background"
599
+ aria-hidden="true">
600
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
601
+ viewBox="0 0 22 14">
602
+ <rect width="22" height="14" class="has-fill-body-background" />
603
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
604
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
605
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
606
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
607
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
608
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
609
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
610
+ </svg>
611
+ </span>
612
+ </span>
613
+ <span>Light</span>
614
+ </button>
615
+ </li>
616
+ <li class="theme display-block" role="menuitem">
617
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
618
+ data-theme-to="dark">
619
+ <span class="theme-dark margin-right-xxs">
620
+ <span
621
+ class="border theme-selector-icon display-inline-block has-body-background"
622
+ aria-hidden="true">
623
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
624
+ viewBox="0 0 22 14">
625
+ <rect width="22" height="14" class="has-fill-body-background" />
626
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
627
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
628
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
629
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
630
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
631
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
632
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
633
+ </svg>
634
+ </span>
635
+ </span>
636
+ <span>Dark</span>
637
+ </button>
638
+ </li>
639
+ <li class="theme display-block" role="menuitem">
640
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
641
+ data-theme-to="high-contrast">
642
+ <span class="theme-high-contrast margin-right-xxs">
643
+ <span
644
+ class="border theme-selector-icon display-inline-block has-body-background"
645
+ aria-hidden="true">
646
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
647
+ viewBox="0 0 22 14">
648
+ <rect width="22" height="14" class="has-fill-body-background" />
649
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
650
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
651
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
652
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
653
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
654
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
655
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
656
+ </svg>
657
+ </span>
658
+ </span>
659
+ <span>High contrast</span>
660
+ </button>
661
+ </li>
662
+ </ul>
663
+ </div>
664
+ </div>
665
+
666
+ </div>
667
+ </div>
668
+ <ul class="links" data-bi-name="footerlinks">
669
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
670
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
671
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
672
+ </ul>
673
+ </footer></div></div><div
674
+ id="ms--additional-resources"
675
+ class="right-container column is-4-desktop display-none display-block-desktop"
676
+ data-bi-name="pageactions"
677
+ role="complementary"
678
+ aria-label="Additional resources"
679
+ >
680
+ <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column">
681
+ <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2>
682
+ <section id="right-rail-events" data-bi-name="events-card" hidden></section>
683
+ <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section>
684
+ <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section>
685
+ <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article">
686
+ <h3>In this article</h3>
687
+ </nav>
688
+ <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section>
689
+ </div>
690
+ </div></div>
691
+ <!--end of div.columns -->
692
+
693
+ </section>
694
+ <!--end of .primary-holder -->
695
+
696
+ <!-- interactive container -->
697
+ <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark ">
698
+ </aside>
699
+ <!-- end of interactive container -->
700
+ </div>
701
+
702
+ </div>
703
+ <!--end of .mainContainer -->
704
+
705
+ <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
706
+ data-mscc-ic="false"
707
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
708
+ href="#"
709
+ data-bi-name="select-locale">
710
+ <span class="icon" aria-hidden="true">
711
+ <span class="docon docon-world"></span>
712
+ </span>
713
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
714
+ <a
715
+ href="https://aka.ms/yourcaliforniaprivacychoices"
716
+ class="button button-sm button-clear flex-shrink-0"
717
+ data-mscc-ic="false"
718
+ data-bi-name="your-privacy-choices"
719
+ >
720
+ <svg
721
+ role="img"
722
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
723
+ xmlns="http://www.w3.org/2000/svg"
724
+ viewBox="0 0 30 14"
725
+ xml:space="preserve"
726
+ height="16"
727
+ width="43"
728
+ focusable="false"
729
+ >
730
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
731
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
732
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
733
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
734
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
735
+ </svg>
736
+ <span>Your Privacy Choices</span>
737
+ </a>
738
+
739
+ </div>
740
+ <div class="flex-shrink-0">
741
+ <div class="dropdown has-caret-up">
742
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
743
+ aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme">
744
+ <span class="icon">
745
+ <span class="docon docon-sun" aria-hidden="true"></span>
746
+ </span>
747
+ <span>Theme</span>
748
+ <span class="icon expanded-indicator" aria-hidden="true">
749
+ <span class="docon docon-chevron-down-light"></span>
750
+ </span>
751
+ </button>
752
+ <div class="dropdown-menu" id="theme-menu" role="menu">
753
+ <ul class="theme-selector padding-xxs" role="none">
754
+ <li class="theme display-block" role="menuitem">
755
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
756
+ data-theme-to="light">
757
+ <span class="theme-light margin-right-xxs">
758
+ <span
759
+ class="theme-selector-icon border display-inline-block has-body-background"
760
+ aria-hidden="true">
761
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
762
+ viewBox="0 0 22 14">
763
+ <rect width="22" height="14" class="has-fill-body-background" />
764
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
765
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
766
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
767
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
768
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
769
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
770
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
771
+ </svg>
772
+ </span>
773
+ </span>
774
+ <span>Light</span>
775
+ </button>
776
+ </li>
777
+ <li class="theme display-block" role="menuitem">
778
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
779
+ data-theme-to="dark">
780
+ <span class="theme-dark margin-right-xxs">
781
+ <span
782
+ class="border theme-selector-icon display-inline-block has-body-background"
783
+ aria-hidden="true">
784
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
785
+ viewBox="0 0 22 14">
786
+ <rect width="22" height="14" class="has-fill-body-background" />
787
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
788
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
789
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
790
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
791
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
792
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
793
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
794
+ </svg>
795
+ </span>
796
+ </span>
797
+ <span>Dark</span>
798
+ </button>
799
+ </li>
800
+ <li class="theme display-block" role="menuitem">
801
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
802
+ data-theme-to="high-contrast">
803
+ <span class="theme-high-contrast margin-right-xxs">
804
+ <span
805
+ class="border theme-selector-icon display-inline-block has-body-background"
806
+ aria-hidden="true">
807
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
808
+ viewBox="0 0 22 14">
809
+ <rect width="22" height="14" class="has-fill-body-background" />
810
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
811
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
812
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
813
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
814
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
815
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
816
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
817
+ </svg>
818
+ </span>
819
+ </span>
820
+ <span>High contrast</span>
821
+ </button>
822
+ </li>
823
+ </ul>
824
+ </div>
825
+ </div>
826
+
827
+ </div>
828
+ </div>
829
+ <ul class="links" data-bi-name="footerlinks">
830
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
831
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
832
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
833
+ </ul>
834
+ </footer>
835
+
836
+ </section>
837
+
838
+ <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div>
839
+ </body>
840
+ </html>
pyvenv.cfg ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ home = C:\Python312
2
+ include-system-site-packages = false
3
+ version = 3.12.6
4
+ executable = C:\Python312\python.exe
5
+ command = C:\Python312\python.exe -m venv C:\Users\Jonathan\OneDrive - Raiff's Bits\Desktop\ut\venv
qustions.json ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "question": "What is the meaning of life?",
4
+ "functions": [
5
+ {
6
+ "name": "newton_thoughts",
7
+ "description": "Apply Newton's laws to the given question.",
8
+ "parameters": {
9
+ "question": "How does Newton's third law apply to human interactions?"
10
+ }
11
+ },
12
+ {
13
+ "name": "davinci_insights",
14
+ "description": "Generate insights like Da Vinci for the given question.",
15
+ "parameters": {
16
+ "question": "What can we learn from nature's design about the meaning of life?"
17
+ }
18
+ },
19
+ {
20
+ "name": "human_intuition",
21
+ "description": "Provide human intuition for the given question.",
22
+ "parameters": {
23
+ "question": "What does your gut instinct tell you about finding happiness?"
24
+ }
25
+ },
26
+ {
27
+ "name": "neural_network_thinking",
28
+ "description": "Apply neural network thinking to the given question.",
29
+ "parameters": {
30
+ "question": "How can neural networks help us understand human creativity?"
31
+ }
32
+ },
33
+ {
34
+ "name": "quantum_computing_thinking",
35
+ "description": "Apply quantum computing principles to the given question.",
36
+ "parameters": {
37
+ "question": "How can quantum computing revolutionize problem-solving?"
38
+ }
39
+ },
40
+ {
41
+ "name": "resilient_kindness",
42
+ "description": "Provide perspectives of resilient kindness.",
43
+ "parameters": {
44
+ "question": "How can we find strength in kindness during difficult times?"
45
+ }
46
+ },
47
+ {
48
+ "name": "identify_and_refute_fallacies",
49
+ "description": "Identify and refute common logical fallacies in the argument.",
50
+ "parameters": {
51
+ "argument": "Life has no meaning because it is full of suffering."
52
+ }
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "question": "How can we mitigate bias in artificial intelligence systems?",
58
+ "functions": [
59
+ {
60
+ "name": "newton_thoughts",
61
+ "description": "Apply Newton's laws to the given question.",
62
+ "parameters": {
63
+ "question": "How can Newton's laws of motion inspire fairness in AI?"
64
+ }
65
+ },
66
+ {
67
+ "name": "davinci_insights",
68
+ "description": "Generate insights like Da Vinci for the given question.",
69
+ "parameters": {
70
+ "question": "What can Da Vinci's approach to art teach us about unbiased AI?"
71
+ }
72
+ },
73
+ {
74
+ "name": "human_intuition",
75
+ "description": "Provide human intuition for the given question.",
76
+ "parameters": {
77
+ "question": "How can we use human intuition to detect bias in AI?"
78
+ }
79
+ },
80
+ {
81
+ "name": "neural_network_thinking",
82
+ "description": "Apply neural network thinking to the given question.",
83
+ "parameters": {
84
+ "question": "How can neural networks be designed to minimize bias?"
85
+ }
86
+ },
87
+ {
88
+ "name": "quantum_computing_thinking",
89
+ "description": "Apply quantum computing principles to the given question.",
90
+ "parameters": {
91
+ "question": "How can quantum computing help in creating unbiased AI?"
92
+ }
93
+ },
94
+ {
95
+ "name": "resilient_kindness",
96
+ "description": "Provide perspectives of resilient kindness.",
97
+ "parameters": {
98
+ "question": "How can kindness be integrated into AI to ensure fairness?"
99
+ }
100
+ },
101
+ {
102
+ "name": "identify_and_refute_fallacies",
103
+ "description": "Identify and refute common logical fallacies in the argument.",
104
+ "parameters": {
105
+ "argument": "AI will always be biased because it is created by humans."
106
+ }
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "question": "How does Hydrogen's properties influence its interactions?",
112
+ "functions": [
113
+ {
114
+ "name": "newton_thoughts",
115
+ "description": "Apply Newton's laws to the given question.",
116
+ "parameters": {
117
+ "question": "How does Newton's laws explain Hydrogen's behavior in reactions?"
118
+ }
119
+ },
120
+ {
121
+ "name": "davinci_insights",
122
+ "description": "Generate insights like Da Vinci for the given question.",
123
+ "parameters": {
124
+ "question": "What can Da Vinci's observations teach us about Hydrogen?"
125
+ }
126
+ },
127
+ {
128
+ "name": "human_intuition",
129
+ "description": "Provide human intuition for the given question.",
130
+ "parameters": {
131
+ "question": "What intuitive insights can we gain about Hydrogen's role in the universe?"
132
+ }
133
+ },
134
+ {
135
+ "name": "neural_network_thinking",
136
+ "description": "Apply neural network thinking to the given question.",
137
+ "parameters": {
138
+ "question": "How can neural networks model Hydrogen's interactions?"
139
+ }
140
+ },
141
+ {
142
+ "name": "quantum_computing_thinking",
143
+ "description": "Apply quantum computing principles to the given question.",
144
+ "parameters": {
145
+ "question": "How can quantum computing enhance our understanding of Hydrogen?"
146
+ }
147
+ },
148
+ {
149
+ "name": "resilient_kindness",
150
+ "description": "Provide perspectives of resilient kindness.",
151
+ "parameters": {
152
+ "question": "How can we draw parallels between Hydrogen's simplicity and resilience?"
153
+ }
154
+ },
155
+ {
156
+ "name": "identify_and_refute_fallacies",
157
+ "description": "Identify and refute common logical fallacies in the argument.",
158
+ "parameters": {
159
+ "argument": "Hydrogen is not important because it is the simplest element."
160
+ }
161
+ }
162
+ ]
163
+ },
164
+ {
165
+ "question": "What makes Diamond unique in its applications?",
166
+ "functions": [
167
+ {
168
+ "name": "newton_thoughts",
169
+ "description": "Apply Newton's laws to the given question.",
170
+ "parameters": {
171
+ "question": "How do Newton's laws explain Diamond's hardness?"
172
+ }
173
+ },
174
+ {
175
+ "name": "davinci_insights",
176
+ "description": "Generate insights like Da Vinci for the given question.",
177
+ "parameters": {
178
+ "question": "What can Da Vinci's approach to materials teach us about Diamond?"
179
+ }
180
+ },
181
+ {
182
+ "name": "human_intuition",
183
+ "description": "Provide human intuition for the given question.",
184
+ "parameters": {
185
+ "question": "What intuitive insights can we gain about Diamond's value?"
186
+ }
187
+ },
188
+ {
189
+ "name": "neural_network_thinking",
190
+ "description": "Apply neural network thinking to the given question.",
191
+ "parameters": {
192
+ "question": "How can neural networks predict Diamond's properties?"
193
+ }
194
+ },
195
+ {
196
+ "name": "quantum_computing_thinking",
197
+ "description": "Apply quantum computing principles to the given question.",
198
+ "parameters": {
199
+ "question": "How can quantum computing help in synthesizing Diamonds?"
200
+ }
201
+ },
202
+ {
203
+ "name": "resilient_kindness",
204
+ "description": "Provide perspectives of resilient kindness.",
205
+ "parameters": {
206
+ "question": "How can we draw parallels between Diamond's strength and human resilience?"
207
+ }
208
+ },
209
+ {
210
+ "name": "identify_and_refute_fallacies",
211
+ "description": "Identify and refute common logical fallacies in the argument.",
212
+ "parameters": {
213
+ "argument": "Diamonds are valuable only because they are rare."
214
+ }
215
+ }
216
+ ]
217
+ }
218
+ ]
requirements.txt ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiohttp==3.10.5
2
+ aiosignal==1.3.2
3
+ aiounittest==1.3.0
4
+ anyio==4.7.0
5
+ applicationinsights==0.11.9
6
+ attrs==24.3.0
7
+ azure-cognitiveservices-language-luis==0.2.0
8
+ azure-core==1.32.0
9
+ azure-identity==1.19.0
10
+ azure-storage-blob==12.7.0
11
+ azure-storage-queue==12.4.0
12
+ azure-cosmos==4.7.0
13
+ blis==1.1.0
14
+ botbuilder-ai==4.16.2
15
+ botbuilder-applicationinsights==4.16.2
16
+ botbuilder-azure==4.16.2
17
+ botbuilder-core==4.16.2
18
+ botbuilder-dialogs==4.16.2
19
+ botbuilder-integration-aiohttp==4.16.2
20
+ botbuilder-schema==4.16.2
21
+ certifi==2024.8.30
22
+ cffi==1.17.1
23
+ charset-normalizer==3.4.0
24
+ click==8.1.8
25
+ colorama==0.4.6
26
+ confection==0.1.5
27
+ coverage==7.2.1
28
+ cryptography==41.0.3
29
+ cymem==2.0.10
30
+ distro==1.9.0
31
+ httpcore==1.0.7
32
+ httpx==0.28.1
33
+ idna==3.10
34
+ importlib-metadata==6.0.0
35
+ isodate==0.7.2
36
+ itsdangerous==2.2.0
37
+ Jinja2==3.1.5
38
+ joblib==1.4.2
39
+ jsonpickle==1.4.2
40
+ langcodes==3.5.0
41
+ marisa-trie==1.2.1
42
+ MarkupSafe==3.0.2
43
+ mpmath==1.3.0
44
+ msal==1.31.1
45
+ msal-extensions==1.2.0
46
+ msrest==0.7.1
47
+ msrestazure==0.6.4.post1
48
+ multidict==6.1.0
49
+ murmurhash==1.0.11
50
+ networkx==3.4.2
51
+ nltk==3.8.1
52
+ numpy==2.2.1
53
+ oauthlib==3.2.2
54
+ openai==1.58.1
55
+ packaging==24.1
56
+ pillow==11.0.0
57
+ portalocker==2.10.1
58
+ preshed==3.0.9
59
+ propcache==0.2.1
60
+ psutil==6.1.1
61
+ pycparser==2.22
62
+ pydantic==2.10.4
63
+ pydantic_core==2.27.2
64
+ Pygments==2.18.0
65
+ PyJWT==2.10.1
66
+ python-dateutil==2.9.0.post0
67
+ python-dotenv==1.0.1
68
+ pytest==7.4.0
69
+ pytz==2024.2
70
+ pywin32==308
71
+ PyYAML==6.0.2
72
+ regex==2024.11.6
73
+ requests==2.32.3
74
+ requests-oauthlib==2.0.0
75
+ rich==13.9.4
76
+ scipy==1.14.1
77
+ sentencepiece==0.2.0
78
+ setuptools==75.6.0
79
+ six==1.17.0
80
+ smart-open==7.1.0
81
+ sniffio==1.3.1
82
+ spacy==3.8.3
83
+ spacy-legacy==3.0.12
84
+ spacy-loggers==1.0.5
85
+ sqlparse==0.5.3
86
+ srsly==2.5.0
87
+ sympy==1.13.1
88
+ tenacity==8.2.2
89
+ textblob==0.17.1
90
+ thinc==8.3.3
91
+ tokenizers==0.21.0
92
+ torch==2.5.1
93
+ torchaudio==2.5.1
94
+ torchvision==0.20.1
95
+ tqdm==4.67.1
96
+ transformers==4.47.1
97
+ typer==0.15.1
98
+ typing_extensions==4.12.2
99
+ tzdata==2024.2
100
+ urllib3==2.2.3
101
+ vaderSentiment==3.3.2
102
+ wasabi==1.1.3
103
+ Werkzeug==3.1.3
104
+ wrapt==1.17.0
105
+ yarl==1.18.3
106
+ pyodbc==4.0.32
sentiment_analysis.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from textblob import TextBlob
2
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
3
+ from typing import Dict, Any
4
+
5
+ def analyze_sentiment_textblob(text: str) -> TextBlob:
6
+ """Analyze the sentiment of the given text using TextBlob.
7
+
8
+ Args:
9
+ text (str): The text to analyze.
10
+
11
+ Returns:
12
+ TextBlob: The sentiment analysis result from TextBlob.
13
+ """
14
+ try:
15
+ blob = TextBlob(text)
16
+ sentiment = blob.sentiment
17
+ return sentiment
18
+ except Exception as e:
19
+ print(f"Error analyzing sentiment with TextBlob: {e}")
20
+ return None
21
+
22
+ def analyze_sentiment_vader(text: str) -> Dict[str, Any]:
23
+ """Analyze the sentiment of the given text using VADER.
24
+
25
+ Args:
26
+ text (str): The text to analyze.
27
+
28
+ Returns:
29
+ dict: The sentiment analysis result from VADER.
30
+ """
31
+ try:
32
+ analyzer = SentimentIntensityAnalyzer()
33
+ sentiment = analyzer.polarity_scores(text)
34
+ return sentiment
35
+ except Exception as e:
36
+ print(f"Error analyzing sentiment with VADER: {e}")
37
+ return {}
set-up-code-optimizations.htm ADDED
@@ -0,0 +1,800 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html
2
+ class="hasSidebar hasPageActions hasBreadcrumb conceptual has-default-focus theme-light"
3
+ lang="en-us"
4
+ dir="ltr"
5
+ data-authenticated="false"
6
+ data-auth-status-determined="false"
7
+ data-target="docs"
8
+ x-ms-format-detection="none">
9
+
10
+ <head>
11
+ <meta charset="utf-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ <meta property="og:title" content="Set up Code Optimizations - Azure Monitor" />
14
+ <meta property="og:type" content="website" />
15
+ <meta property="og:url" content="https://learn.microsoft.com/en-us/azure/azure-monitor/insights/set-up-code-optimizations" /><meta property="og:description" content="Learn how to enable and set up Azure Monitor's Code Optimizations feature." /><meta property="og:image" content="https://learn.microsoft.com/en-us/media/open-graph-image.png" />
16
+
17
+ <meta property="og:image:alt" content="Microsoft Learn" />
18
+
19
+ <meta name="twitter:card" content="summary_large_image" />
20
+
21
+ <meta name="twitter:site" content="@MicrosoftLearn" />
22
+
23
+ <meta name="color-scheme" content="light dark"><meta name="author" content="hhunter-ms" />
24
+ <meta name="breadcrumb_path" content="../../breadcrumb/azure-monitor/toc.json" />
25
+ <meta name="depot_name" content="Learn.azure-monitor" />
26
+ <meta name="description" content="Learn how to enable and set up Azure Monitor's Code Optimizations feature." />
27
+ <meta name="document_id" content="f8563574-c8f3-6422-33f2-d662a2c99880" />
28
+ <meta name="document_version_independent_id" content="b9309449-3aa8-ea6c-e3b6-2ac2d4c56f2e" />
29
+ <meta name="feedback_help_link_type" content="get-help-at-qna" />
30
+ <meta name="feedback_help_link_url" content="https://learn.microsoft.com/answers/tags/20/azure-monitor/" />
31
+ <meta name="feedback_product_url" content="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0" />
32
+ <meta name="feedback_system" content="Standard" />
33
+ <meta name="git_commit_id" content="145d93bd09c6418862ed1114f8255564d749c624" />
34
+ <meta name="gitcommit" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/145d93bd09c6418862ed1114f8255564d749c624/articles/azure-monitor/insights/set-up-code-optimizations.md" />
35
+ <meta name="learn_banner_products" content="azure" />
36
+ <meta name="locale" content="en-us" />
37
+ <meta name="manager" content="orspodek" />
38
+ <meta name="ms.author" content="hannahhunter" />
39
+ <meta name="ms.date" content="10/07/2024" />
40
+ <meta name="ms.reviewer" content="ryankahng" />
41
+ <meta name="ms.service" content="azure-monitor" />
42
+ <meta name="ms.subservice" content="optimization-insights" />
43
+ <meta name="ms.suite" content="office" />
44
+ <meta name="ms.topic" content="conceptual" />
45
+ <meta name="original_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/insights/set-up-code-optimizations.md" />
46
+ <meta name="page_type" content="conceptual" />
47
+ <meta name="permissioned-type" content="public" />
48
+ <meta name="recommendation_types" content="Training" />
49
+ <meta name="recommendation_types" content="Certification" />
50
+ <meta name="recommendations" content="true" />
51
+ <meta name="schema" content="Conceptual" />
52
+ <meta name="site_name" content="Docs" />
53
+ <meta name="toc_rel" content="../toc.json" />
54
+ <meta name="uhfHeaderId" content="azure" />
55
+ <meta name="updated_at" content="2024-12-10 11:03 PM" />
56
+ <meta name="word_count" content="320" />
57
+ <meta name="persistent_id" content="344f9e36-272b-e88a-1060-123e5fe87c8d" />
58
+
59
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/07bb3e10-d135-43ff-bc8b-360497cb39fa" data-source="generated" />
60
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/7ebba99b-05c3-4387-8883-f7bbf6632cb8" data-source="generated" />
61
+ <meta name="cmProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/68ec7f3a-2bc6-459f-b959-19beb729907d" data-source="generated" />
62
+
63
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/12e559b9-eaf6-4aee-9af7-62334e15f863" data-source="generated" />
64
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/006ab567-b18c-4cf1-9a25-c24daa46ede1" data-source="generated" />
65
+ <meta name="spProducts" content="https://authoring-docs-microsoft.poolparty.biz/devrel/90370425-aca4-4a39-9533-d52e5e002a5d" data-source="generated" />
66
+ <meta name="scope" content="Azure, Azure Monitor" /><meta name="github_feedback_content_git_url" content="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/insights/set-up-code-optimizations.md" /><link href="https://learn.microsoft.com/en-us/azure/azure-monitor/insights/set-up-code-optimizations" rel="canonical"><title>Set up Code Optimizations - Azure Monitor | Microsoft Learn</title><link rel="stylesheet" href="/static/assets/0.4.029026183/styles/site-ltr.css">
67
+
68
+ <script id="msdocs-script">
69
+ var msDocs = {environment: {
70
+ supportLevel: 'production',
71
+ accessLevel: 'online',
72
+ reviewFeatures: false,
73
+ systemContent: true,
74
+ azurePortalHostname: 'portal.azure.com',
75
+ legacyHosting: false,
76
+ siteName: 'learn',
77
+ },data: {
78
+ timeOrigin: Date.now(),
79
+ contentLocale: 'en-us',
80
+ contentDir: 'ltr',
81
+ userLocale: 'en-us',
82
+ userDir: 'ltr',
83
+ pageTemplate: 'Conceptual',
84
+ brand: 'azure',
85
+ context: {},
86
+ hasBinaryRating: true,
87
+ feedbackHelpLinkType:'get-help-at-qna',
88
+ feedbackHelpLinkUrl:'https://learn.microsoft.com/answers/tags/20/azure-monitor/',
89
+ standardFeedback: true,
90
+ showFeedbackReport: false,
91
+ enableTutorialFeedback: false,
92
+ feedbackSystem: 'Standard',
93
+ feedbackGitHubRepo: 'MicrosoftDocs/azure-docs',
94
+ feedbackProductUrl: 'https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0',extendBreadcrumb: false,isEditDisplayable: true,
95
+ hideViewSource: false,
96
+ hasPageActions: true,
97
+ hasPrintButton: true,
98
+ hasBookmark: true,
99
+ hasShare: true,
100
+ isPermissioned: false,
101
+ isPrivateUnauthorized: false,hasRecommendations: true,contributors: [{ name: "hhunter-ms", url: "https://github.com/hhunter-ms" },{ name: "kainawroth", url: "https://github.com/kainawroth" }],},
102
+ functions:{}
103
+ };
104
+ </script><script src="https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js"></script>
105
+ <script src="https://js.monitor.azure.com/scripts/c/ms.jsll-4.min.js"></script><script src="/static/assets/0.4.029026183/global/deprecation.js"></script><script src="/static/assets/0.4.029026183/scripts/en-us/index-docs.js"></script></head>
106
+
107
+ <body lang="en-us" dir="ltr">
108
+ <div class="header-holder has-default-focus">
109
+ <a href="#main" style="z-index: 1070" class="outline-color-text visually-hidden-until-focused position-fixed inner-focus focus-visible top-0 left-0 right-0 padding-xs text-align-center has-body-background" tabindex="1">Skip to main content</a><div hidden id="cookie-consent-holder" data-test-id="cookie-consent-container"></div>
110
+
111
+ <div id="unsupported-browser" style="
112
+ background-color: white;
113
+ color: black;
114
+ padding: 16px;
115
+ border-bottom: 1px solid grey;"
116
+ hidden
117
+ >
118
+ <div style="max-width: 800px; margin: 0 auto;">
119
+ <p style="font-size: 24px">This browser is no longer supported.</p>
120
+ <p style="font-size: 16px; margin-top: 16px;">Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.</p>
121
+ <div style="margin-top: 12px;">
122
+ <a href="https://go.microsoft.com/fwlink/p/?LinkID=2092881 "
123
+ style="
124
+ background-color: #0078d4;
125
+ border: 1px solid #0078d4;
126
+ color: white;
127
+ padding: 6px 12px;
128
+ border-radius: 2px;
129
+ display: inline-block;
130
+ ">Download Microsoft Edge</a>
131
+ <a href="https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge"
132
+ style="
133
+ background-color: white;
134
+ padding: 6px 12px;
135
+ border: 1px solid #505050;
136
+ color: #171717;
137
+ border-radius: 2px;
138
+ display: inline-block;
139
+ ">More info about Internet Explorer and Microsoft Edge</a>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ <!-- liquid-tag banners global -->
144
+
145
+ <!-- site header -->
146
+ <header id="ms--site-header" data-test-id="site-header-wrapper" role="banner" itemscope="itemscope" itemtype="http://schema.org/Organization">
147
+ <div id="ms--mobile-nav" class="site-header display-none-tablet padding-inline-none gap-none" data-bi-name="mobile-header" data-test-id="mobile-header"></div>
148
+ <div id="ms--primary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L1-header" data-test-id="primary-header"></div>
149
+ <div id="ms--secondary-nav" class="site-header display-none display-flex-tablet" data-bi-name="L2-header" data-test-id="secondary-header"></div>
150
+ </header><div id="content-header" class="content-header uhf-container has-padding has-default-focus border-bottom-none" data-bi-name="content-header">
151
+ <div class="content-header-controls margin-xxs margin-inline-sm-tablet">
152
+ <button type="button" class="contents-button button button-sm margin-right-xxs" data-bi-name="contents-expand" aria-haspopup="true" data-contents-button>
153
+ <span class="icon"><span class="docon docon-menu" aria-hidden="true"></span></span>
154
+ <span class="contents-expand-title">Table of contents</span>
155
+ </button>
156
+ <button type="button" class="ap-collapse-behavior ap-expanded button button-sm" data-bi-name="ap-collapse" aria-controls="action-panel">
157
+ <span class="icon"><span class="docon docon-exit-mode" aria-hidden="true"></span></span>
158
+ <span>Exit focus mode</span>
159
+ </button>
160
+ </div>
161
+ </div><div id="disclaimer-holder" class="has-overflow-hidden has-default-focus">
162
+ <!-- liquid-tag banners sectional -->
163
+ </div>
164
+ </div>
165
+
166
+ <div class="mainContainer uhf-container has-default-focus" data-bi-name="body">
167
+
168
+ <div class="columns has-large-gaps is-gapless-mobile "><div id="left-container" class="left-container is-hidden-mobile column is-one-third-tablet is-one-quarter-desktop">
169
+ <nav id="affixed-left-container" class="margin-top-sm-tablet position-sticky display-flex flex-direction-column" aria-label="Primary"></nav>
170
+ </div><!-- .primary-holder -->
171
+ <section class="primary-holder column is-two-thirds-tablet is-three-quarters-desktop">
172
+ <!--div.columns -->
173
+ <div class="columns is-gapless-mobile has-large-gaps "><div id="main-column" class="column is-full is-8-desktop">
174
+
175
+ <main id="main" class="" role="main" data-bi-name="content" lang="en-us" dir="ltr"><!-- article-header -->
176
+ <div id="article-header" class="background-color-body margin-top-sm-tablet margin-bottom-xs display-none-print">
177
+ <div class="display-flex align-items-center "><details id="article-header-breadcrumbs-overflow-popover" class="popover" data-for="article-header-breadcrumbs">
178
+ <summary class="button button-clear button-primary button-sm inner-focus" aria-label="All breadcrumbs">
179
+ <span class="icon">
180
+ <span class="docon docon-more"></span>
181
+ </span>
182
+ </summary>
183
+ <div id="article-header-breadcrumbs-overflow" class="popover-content padding-none">
184
+
185
+ </div>
186
+ </details>
187
+
188
+ <bread-crumbs id="article-header-breadcrumbs" data-test-id="article-header-breadcrumbs" class="overflow-hidden flex-grow-1 margin-right-sm margin-right-md-tablet margin-right-lg-desktop margin-left-negative-xxs padding-left-xxs"></bread-crumbs><div id="article-header-page-actions" class="opacity-none margin-left-auto display-flex flex-wrap-no-wrap align-items-stretch"><a
189
+ id="lang-link-tablet"
190
+ class="button button-primary button-clear button-sm display-none display-inline-flex-tablet"
191
+ title="Read in English" data-bi-name="language-toggle"
192
+ data-read-in-link
193
+ hidden>
194
+ <span class="icon margin-none" aria-hidden="true" data-read-in-link-icon>
195
+ <span class="docon docon-locale-globe"></span>
196
+ </span>
197
+ <span class="is-visually-hidden" data-read-in-link-text>Read in English</span>
198
+ </a><button
199
+ type="button"
200
+ class="collection button button-clear button-sm button-primary display-none display-inline-flex-tablet"
201
+ data-list-type="collection"
202
+ data-bi-name="collection"
203
+ title="Add to collection">
204
+ <span class="icon margin-none" aria-hidden="true">
205
+ <span class="docon docon-circle-addition"></span>
206
+ </span>
207
+ <span class="collection-status is-visually-hidden">Save</span>
208
+ </button><a data-contenteditbtn
209
+ class="button button-clear button-sm text-decoration-none button-primary display-none display-inline-flex-tablet"
210
+ aria-label="Edit"
211
+ title="Edit This Document"
212
+ data-bi-name="edit"
213
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/insights/set-up-code-optimizations.md"
214
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/insights/set-up-code-optimizations.md"
215
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/insights/set-up-code-optimizations.md"
216
+ data-pr_repo=""
217
+ data-pr_branch="">
218
+ <span class="icon margin-none" aria-hidden="true">
219
+ <span class="docon docon-edit-outline"></span>
220
+ </span>
221
+ </a>
222
+ <details class="popover popover-right" id="article-header-page-actions-overflow">
223
+ <summary class="justify-content-flex-start button button-clear button-sm button-primary" aria-label="More actions" title="More actions">
224
+ <span class="icon" aria-hidden="true">
225
+ <span class="docon docon-more-vertical"></span>
226
+ </span>
227
+ </summary>
228
+ <div class="popover-content padding-xs"><button
229
+ data-page-action-item="overflow-mobile"
230
+ type="button"
231
+ class="justify-content-flex-start button-block button-sm has-inner-focus button button-clear display-none-tablet"
232
+ data-bi-name="contents-expand"
233
+ data-contents-button
234
+ data-popover-close>
235
+ <span class="icon">
236
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
237
+ </span><span class="contents-expand-title">Table of contents</span></button><a
238
+ id="lang-link-overflow"
239
+ class="justify-content-flex-start button-sm has-inner-focus button button-clear button-block display-none-tablet"
240
+ title="Read in English" data-bi-name="language-toggle"
241
+ data-page-action-item="overflow-mobile"
242
+ data-check-hidden="true"
243
+ data-read-in-link
244
+ hidden
245
+ >
246
+ <span class="icon" aria-hidden="true" data-read-in-link-icon>
247
+ <span class="docon docon-locale-globe"></span>
248
+ </span>
249
+ <span data-read-in-link-text>Read in English</span>
250
+ </a><button
251
+ type="button"
252
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
253
+ data-list-type="collection"
254
+ data-bi-name="collection"
255
+ title="Save"
256
+ data-page-action-item="overflow-mobile"
257
+ data-check-hidden="true"
258
+ data-popover-close>
259
+ <span class="icon" aria-hidden="true">
260
+ <span class="docon docon-circle-addition"></span>
261
+ </span>
262
+ <span class="collection-status">Save</span>
263
+ </button>
264
+
265
+
266
+ <button
267
+ type="button"
268
+ class="collection justify-content-flex-start button button-clear button-sm has-inner-focus button-block display-none-tablet"
269
+ data-list-type="plan"
270
+ data-bi-name="plan"
271
+ title="Add to Plan"
272
+ data-page-action-item="overflow-mobile"
273
+ data-check-hidden="true"
274
+ data-popover-close
275
+ hidden>
276
+ <span class="icon" aria-hidden="true">
277
+ <span class="docon docon-circle-addition"></span>
278
+ </span>
279
+ <span class="plan-status">Add to Plan</span>
280
+ </button><a data-contenteditbtn
281
+ class="button button-clear button-block button-sm has-inner-focus justify-content-flex-start text-decoration-none display-none-tablet"
282
+ aria-label="Edit"
283
+ title="Edit This Document"
284
+ data-bi-name="edit"
285
+ href="https://github.com/MicrosoftDocs/azure-monitor-docs/blob/main/articles/azure-monitor/insights/set-up-code-optimizations.md"
286
+ data-original_content_git_url="https://github.com/MicrosoftDocs/azure-monitor-docs-pr/blob/live/articles/azure-monitor/insights/set-up-code-optimizations.md"
287
+ data-original_content_git_url_template="{repo}/blob/{branch}/articles/azure-monitor/insights/set-up-code-optimizations.md"
288
+ data-pr_repo=""
289
+ data-pr_branch="">
290
+ <span class="icon" aria-hidden="true">
291
+ <span class="docon docon-edit-outline"></span>
292
+ </span>
293
+ <span>Edit</span>
294
+ </a><div aria-hidden="true" class="margin-none" data-page-action-item="overflow-all"></div>
295
+ <hr class="display-none-tablet margin-bottom-xxs margin-top-xxs" />
296
+ <h4 class="font-size-sm padding-left-xxs">Share via</h4>
297
+
298
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start share-facebook" data-bi-name="facebook" data-page-action-item="overflow-all">
299
+ <span class="icon" aria-hidden="true">
300
+ <span class="docon docon-facebook-share font-size-md color-primary"></span>
301
+ </span>
302
+ <span class="margin-left-xxs">Facebook</span>
303
+ </a>
304
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-twitter" data-bi-name="twitter" data-page-action-item="overflow-all">
305
+ <span class="icon" aria-hidden="true">
306
+ <span class="docon docon-xlogo-share font-size-xxs"></span>
307
+ </span>
308
+ <span class="margin-left-xxs">x.com</span>
309
+ </a>
310
+ <a class="button button-clear button-sm has-inner-focus button-block text-decoration-none justify-content-flex-start share-linkedin" data-bi-name="linkedin" data-page-action-item="overflow-all">
311
+ <span class="icon" aria-hidden="true">
312
+ <span class="docon docon-linked-in-logo font-size-sm color-primary"></span>
313
+ </span>
314
+ <span class="margin-left-xxs">LinkedIn</span>
315
+ </a>
316
+ <a class="button button-clear button-sm button-block has-inner-focus text-decoration-none justify-content-flex-start margin-bottom-xxs share-email" data-bi-name="email" data-page-action-item="overflow-all">
317
+ <span class="icon" aria-hidden="true">
318
+ <span class="docon docon-mail-message font-size-sm color-primary"></span>
319
+ </span>
320
+ <span class="margin-left-xxs">Email</span>
321
+ </a><hr />
322
+ <button
323
+ class="button button-block button-clear button-sm justify-content-flex-start has-inner-focus margin-top-xxs"
324
+ title="Print"
325
+ type="button"
326
+ aria-label="Print"
327
+ data-bi-name="print"
328
+ data-page-action-item="overflow-all"
329
+ data-popover-close
330
+ data-print-page
331
+ data-check-hidden="true">
332
+ <span class="icon" aria-hidden="true">
333
+ <span class="docon docon-print font-size-sm color-primary"></span>
334
+ </span>
335
+ <span class="margin-left-xxs">Print</span>
336
+ </button>
337
+ </div>
338
+ </details>
339
+
340
+ </div></div>
341
+ </div>
342
+ <!-- end article-header --><div>
343
+ <button type="button" class="border contents-button button button-clear button-sm is-hidden-tablet has-inner-focus" data-bi-name="contents-expand" data-contents-button hidden>
344
+ <span class="icon">
345
+ <span class="docon docon-editor-list-bullet" aria-hidden="true"></span>
346
+ </span><span class="contents-expand-title">Table of contents</span></button>
347
+ </div><!-- end mobile-contents button -->
348
+
349
+ <div class="content "><h1 id="set-up-code-optimizations">Set up Code Optimizations</h1><div class="display-flex justify-content-space-between align-items-center flex-wrap-wrap page-metadata-container">
350
+ <div class="margin-right-xxs">
351
+ <ul class="metadata page-metadata" data-bi-name="page info" lang="en-us" dir="ltr"><li>Article</li><li class="visibility-hidden-visual-diff"><time class="is-invisible" data-article-date aria-label="Article review date" datetime="2024-12-10T23:03:00Z" data-article-date-source="calculated">12/10/2024</time>
352
+ </li><li class="contributors-holder display-none-print">
353
+ <button aria-label="View all contributors" class="contributors-button link-button" data-bi-name="contributors" title="View all contributors">2 contributors</button>
354
+ </li></ul>
355
+ </div>
356
+ <div id="user-feedback" class="margin-block-xxs display-none-print" data-hide-on-archived>
357
+ <button
358
+ id="user-feedback-button"
359
+ data-test-id="conceptual-feedback-button"
360
+ class="button button-sm button-clear button-primary"
361
+ type="button"
362
+ data-bi-name="user-feedback-button"
363
+ data-user-feedback-button
364
+ >
365
+ <span class="icon" aria-hidden="true">
366
+ <span class="docon docon-like"></span>
367
+ </span>
368
+ <span>Feedback</span>
369
+ </button>
370
+ </div></div><nav id="center-doc-outline" class="doc-outline is-hidden-desktop display-none-print margin-bottom-sm" data-bi-name="intopic toc" aria-label="In this article">
371
+ <h2 id="ms--in-this-article" class="title is-6 margin-block-xs">In this article</h2>
372
+ </nav><!-- <content> --><p>Setting up Code Optimizations to identify and analyze CPU and memory bottlenecks in your web applications is a simple process in the Azure portal. In this guide, you learn how to:</p>
373
+ <ul>
374
+ <li>Connect your web app to Application Insights.</li>
375
+ <li>Enable the .NET Profiler on your web app.</li>
376
+ </ul>
377
+ <p><a href="https://aka.ms/codeoptimizations" data-linktype="external">You can review your Code Optimizations in the Azure portal.</a></p>
378
+ <h2 id="demo-video">Demo video</h2>
379
+ <div class="embeddedvideo"><iframe src="https://www.youtube-nocookie.com/embed/vbi9YQgIgC8" frameborder="0" allowfullscreen="true" data-linktype="external"></iframe></div>
380
+ <h2 id="connect-your-web-app-to-application-insights">Connect your web app to Application Insights</h2>
381
+ <p>Before setting up Code Optimizations for your web app, ensure that your app is connected to an Application Insights resource.</p>
382
+ <ol>
383
+ <li><p>In the Azure portal, navigate to your web application.</p>
384
+ </li>
385
+ <li><p>From the left menu, select <strong>Settings</strong> &gt; <strong>Application Insights</strong>.</p>
386
+ </li>
387
+ <li><p>In the Application Insights blade for your web application, determine the following options:</p>
388
+ <ul>
389
+ <li><p><strong>If your web app is already connected to an Application Insights resource:</strong></p>
390
+ <ul>
391
+ <li><p>A banner at the top of the blade reads: <strong>Your app is connected to Application Insights resource: {NAME-OF-RESOURCE}</strong>.</p>
392
+ <p><span class="mx-imgBorder">
393
+ <img src="media/set-up-code-optimizations/already-enabled-app-insights.png" alt="Screenshot of the banner explaining that your app is already connected to App Insights." data-linktype="relative-path">
394
+ </span>
395
+ </p>
396
+ </li>
397
+ </ul>
398
+ </li>
399
+ <li><p><strong>If your web app still needs to be connected to an Application Insights resource:</strong></p>
400
+ <ul>
401
+ <li><p>A banner at the top of the blade reads: <strong>Your app will be connected to an auto-created Application Insights resource: {NAME-OF-RESOURCE}</strong>.</p>
402
+ <p><span class="mx-imgBorder">
403
+ <img src="media/set-up-code-optimizations/need-to-enable-app-insights.png" alt="Screenshot of the banner telling you to enable App Insights and the name of the App Insights resource." data-linktype="relative-path">
404
+ </span>
405
+ </p>
406
+ </li>
407
+ </ul>
408
+ </li>
409
+ </ul>
410
+ </li>
411
+ <li><p>Click <strong>Apply</strong> at the bottom of the Application Insights pane.</p>
412
+ </li>
413
+ </ol>
414
+ <h2 id="enable-the-net-profiler-on-your-web-app">Enable the .NET Profiler on your web app</h2>
415
+ <p>The .NET Profiler collects traces on your web app for Code Optimizations to analyze. In a few hours, if Code Optimization notices any performance bottlenecks in your application, you can see and review Code Optimizations insights.</p>
416
+ <ol>
417
+ <li><p>Still in the Application Insights blade, under <strong>Instrument your application</strong>, select the <strong>.NET</strong> tab.</p>
418
+ </li>
419
+ <li><p>Under <strong>Profiler</strong>, select the toggle to turn on the .NET Profiler for your web app.</p>
420
+ <p><span class="mx-imgBorder">
421
+ <img src="media/set-up-code-optimizations/enable-profiler.png" alt="Screenshot of how to enable .NET Profiler for your web app." data-linktype="relative-path">
422
+ </span>
423
+ </p>
424
+ </li>
425
+ <li><p>Verify the .NET Profiler is collecting traces.</p>
426
+ <ol>
427
+ <li>Navigate to your Application Insights resource.</li>
428
+ <li>From the left menu, select <strong>Investigate</strong> &gt; <strong>Performance</strong>.</li>
429
+ <li>In the Performance blade, select <strong>Profiler</strong> from the top menu.</li>
430
+ <li>Review the profiler traces collected from your web app. <a href="../profiler/profiler-troubleshooting" data-linktype="relative-path">If you don't see any traces, see the troubleshooting guide</a>.</li>
431
+ </ol>
432
+ </li>
433
+ </ol>
434
+ <h2 id="next-steps">Next steps</h2>
435
+ <div class="nextstepaction">
436
+ <p><a href="view-code-optimizations" data-linktype="relative-path">View Code Optimizations results</a></p>
437
+ </div>
438
+ </div><div id="ms--inline-notifications" class="margin-block-xs" data-bi-name="inline-notification"></div><div id="assertive-live-region" role="alert" aria-live="assertive" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
439
+ <div id="polite-live-region" role="status" aria-live="polite" class="visually-hidden" aria-relevant="additions" aria-atomic="true"></div>
440
+ <!-- </content> -->
441
+
442
+ </main><!-- recommendations section --><!-- end recommendations section -->
443
+
444
+ <!-- feedback section --><section id="site-user-feedback-footer" class="font-size-sm margin-top-md" data-test-id="site-user-feedback-footer" data-bi-name="site-feedback-section">
445
+ <hr class="hr" />
446
+ <h2 id="feedback" class="title is-3">Feedback</h2>
447
+ <div class="display-flex flex-wrap-wrap align-items-center">
448
+ <p class="font-weight-semibold margin-xxs margin-left-none">Was this page helpful?</p>
449
+ <div class="buttons">
450
+ <button
451
+ class="thumb-rating-button like button button-primary button-sm"
452
+ data-test-id="footer-rating-yes"
453
+ data-binary-rating-response="rating-yes"
454
+ type="button"
455
+ title="This article is helpful"
456
+ data-bi-name="button-rating-yes"
457
+ aria-pressed="false"
458
+ >
459
+ <span class="icon" aria-hidden="true">
460
+ <span class="docon docon-like"></span>
461
+ </span>
462
+ <span>Yes</span>
463
+ </button>
464
+ <button
465
+ class="thumb-rating-button dislike button button-primary button-sm"
466
+ data-test-id="footer-rating-no"
467
+ data-binary-rating-response="rating-no"
468
+ type="button"
469
+ title="This article is not helpful"
470
+ data-bi-name="button-rating-no"
471
+ aria-pressed="false"
472
+ >
473
+ <span class="icon" aria-hidden="true">
474
+ <span class="docon docon-dislike"></span>
475
+ </span>
476
+ <span>No</span>
477
+ </button>
478
+ </div>
479
+ </div><div class="display-flex flex-wrap-wrap margin-top-xxs"><div>
480
+ <a
481
+ data-bi-name="provide-feedback-cta"
482
+ class="has-external-link-indicator"
483
+ href="https://feedback.azure.com/d365community/forum/3887dc70-2025-ec11-b6e6-000d3a4f09d0"
484
+ data-bi-name="product-feedback"
485
+ >
486
+ <span>Provide product feedback</span>
487
+ </a><span class="margin-inline-xxs" aria-hidden="true">|</span></div><a href="https://learn.microsoft.com/answers/tags/20/azure-monitor/" class="has-external-link-indicator" data-bi-name="get-help-at-qna">
488
+ <span>Get help at Microsoft Q&A</span>
489
+ </a></div>
490
+
491
+ </section><!-- end feedback section -->
492
+
493
+ <!-- feedback report section --><!-- end feedback report section --><aside
494
+ id="ms--additional-resources-mobile"
495
+ aria-label="Additional resources"
496
+ class="display-none-desktop display-none-print"
497
+ >
498
+ <hr class="hr" hidden />
499
+ <h2 id="ms--additional-resources-mobile-heading" class="title is-3" hidden>Additional resources</h2>
500
+ <section id="right-rail-recommendations-mobile" data-bi-name="recommendations" hidden></section>
501
+ <section id="right-rail-training-mobile" data-bi-name="learning-resources-card" hidden></section>
502
+ <section id="right-rail-events-mobile" data-bi-name="events-card" hidden></section>
503
+ <section id="right-rail-qna-mobile" data-bi-name="qna-link-card" hidden></section>
504
+ </aside><div class="border-top is-visible-interactive has-default-focus margin-top-sm "><footer id="footer-interactive" data-bi-name="footer" class="footer-layout"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
505
+ data-mscc-ic="false"
506
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
507
+ href="#"
508
+ data-bi-name="select-locale">
509
+ <span class="icon" aria-hidden="true">
510
+ <span class="docon docon-world"></span>
511
+ </span>
512
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
513
+ <a
514
+ href="https://aka.ms/yourcaliforniaprivacychoices"
515
+ class="button button-sm button-clear flex-shrink-0"
516
+ data-mscc-ic="false"
517
+ data-bi-name="your-privacy-choices"
518
+ >
519
+ <svg
520
+ role="img"
521
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
522
+ xmlns="http://www.w3.org/2000/svg"
523
+ viewBox="0 0 30 14"
524
+ xml:space="preserve"
525
+ height="16"
526
+ width="43"
527
+ focusable="false"
528
+ >
529
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
530
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
531
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
532
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
533
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
534
+ </svg>
535
+ <span>Your Privacy Choices</span>
536
+ </a>
537
+
538
+ </div>
539
+ <div class="flex-shrink-0">
540
+ <div class="dropdown has-caret-up">
541
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
542
+ aria-controls="theme-menu-interactive" aria-expanded="false" title="Theme" data-bi-name="theme">
543
+ <span class="icon">
544
+ <span class="docon docon-sun" aria-hidden="true"></span>
545
+ </span>
546
+ <span>Theme</span>
547
+ <span class="icon expanded-indicator" aria-hidden="true">
548
+ <span class="docon docon-chevron-down-light"></span>
549
+ </span>
550
+ </button>
551
+ <div class="dropdown-menu" id="theme-menu-interactive" role="menu">
552
+ <ul class="theme-selector padding-xxs" role="none">
553
+ <li class="theme display-block" role="menuitem">
554
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
555
+ data-theme-to="light">
556
+ <span class="theme-light margin-right-xxs">
557
+ <span
558
+ class="theme-selector-icon border display-inline-block has-body-background"
559
+ aria-hidden="true">
560
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
561
+ viewBox="0 0 22 14">
562
+ <rect width="22" height="14" class="has-fill-body-background" />
563
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
564
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
565
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
566
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
567
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
568
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
569
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
570
+ </svg>
571
+ </span>
572
+ </span>
573
+ <span>Light</span>
574
+ </button>
575
+ </li>
576
+ <li class="theme display-block" role="menuitem">
577
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
578
+ data-theme-to="dark">
579
+ <span class="theme-dark margin-right-xxs">
580
+ <span
581
+ class="border theme-selector-icon display-inline-block has-body-background"
582
+ aria-hidden="true">
583
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
584
+ viewBox="0 0 22 14">
585
+ <rect width="22" height="14" class="has-fill-body-background" />
586
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
587
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
588
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
589
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
590
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
591
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
592
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
593
+ </svg>
594
+ </span>
595
+ </span>
596
+ <span>Dark</span>
597
+ </button>
598
+ </li>
599
+ <li class="theme display-block" role="menuitem">
600
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
601
+ data-theme-to="high-contrast">
602
+ <span class="theme-high-contrast margin-right-xxs">
603
+ <span
604
+ class="border theme-selector-icon display-inline-block has-body-background"
605
+ aria-hidden="true">
606
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
607
+ viewBox="0 0 22 14">
608
+ <rect width="22" height="14" class="has-fill-body-background" />
609
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
610
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
611
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
612
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
613
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
614
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
615
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
616
+ </svg>
617
+ </span>
618
+ </span>
619
+ <span>High contrast</span>
620
+ </button>
621
+ </li>
622
+ </ul>
623
+ </div>
624
+ </div>
625
+
626
+ </div>
627
+ </div>
628
+ <ul class="links" data-bi-name="footerlinks">
629
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
630
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
631
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
632
+ </ul>
633
+ </footer></div></div><div
634
+ id="ms--additional-resources"
635
+ class="right-container column is-4-desktop display-none display-block-desktop"
636
+ data-bi-name="pageactions"
637
+ role="complementary"
638
+ aria-label="Additional resources"
639
+ >
640
+ <div id="affixed-right-container" class="margin-top-sm-tablet" data-bi-name="right-column">
641
+ <h2 id="ms--additional-resources-heading" class="title is-6 margin-top-md" hidden>Additional resources</h2>
642
+ <section id="right-rail-events" data-bi-name="events-card" hidden></section>
643
+ <section id="right-rail-training" data-bi-name="learning-resources-card" hidden></section>
644
+ <section id="right-rail-recommendations" data-bi-name="recommendations" hidden></section>
645
+ <nav id="side-doc-outline" class="doc-outline" data-bi-name="intopic toc" aria-label="In this article">
646
+ <h3>In this article</h3>
647
+ </nav>
648
+ <section id="right-rail-qna" class="margin-top-xxs" data-bi-name="qna-link-card" hidden></section>
649
+ </div>
650
+ </div></div>
651
+ <!--end of div.columns -->
652
+
653
+ </section>
654
+ <!--end of .primary-holder -->
655
+
656
+ <!-- interactive container -->
657
+ <aside id="interactive-container" class="interactive-container is-visible-interactive column has-body-background-dark ">
658
+ </aside>
659
+ <!-- end of interactive container -->
660
+ </div>
661
+
662
+ </div>
663
+ <!--end of .mainContainer -->
664
+
665
+ <section class="border-top has-default-focus is-hidden-interactive margin-top-sm "><footer id="footer" data-bi-name="footer" class="footer-layout uhf-container has-padding" role="contentinfo"><div class="display-flex gap-xs flex-wrap-wrap is-full-height padding-right-lg-desktop"><a
666
+ data-mscc-ic="false"
667
+ class="locale-selector-link button button-sm button-clear flex-shrink-0"
668
+ href="#"
669
+ data-bi-name="select-locale">
670
+ <span class="icon" aria-hidden="true">
671
+ <span class="docon docon-world"></span>
672
+ </span>
673
+ <span class="local-selector-link-text"></span></a><div class="ccpa-privacy-link" data-ccpa-privacy-link hidden>
674
+ <a
675
+ href="https://aka.ms/yourcaliforniaprivacychoices"
676
+ class="button button-sm button-clear flex-shrink-0"
677
+ data-mscc-ic="false"
678
+ data-bi-name="your-privacy-choices"
679
+ >
680
+ <svg
681
+ role="img"
682
+ aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon"
683
+ xmlns="http://www.w3.org/2000/svg"
684
+ viewBox="0 0 30 14"
685
+ xml:space="preserve"
686
+ height="16"
687
+ width="43"
688
+ focusable="false"
689
+ >
690
+ <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title>
691
+ <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path>
692
+ <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path>
693
+ <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path>
694
+ <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path>
695
+ </svg>
696
+ <span>Your Privacy Choices</span>
697
+ </a>
698
+
699
+ </div>
700
+ <div class="flex-shrink-0">
701
+ <div class="dropdown has-caret-up">
702
+ <button class="dropdown-trigger button button-clear button-sm has-inner-focus theme-dropdown-trigger"
703
+ aria-controls="theme-menu" aria-expanded="false" title="Theme" data-bi-name="theme">
704
+ <span class="icon">
705
+ <span class="docon docon-sun" aria-hidden="true"></span>
706
+ </span>
707
+ <span>Theme</span>
708
+ <span class="icon expanded-indicator" aria-hidden="true">
709
+ <span class="docon docon-chevron-down-light"></span>
710
+ </span>
711
+ </button>
712
+ <div class="dropdown-menu" id="theme-menu" role="menu">
713
+ <ul class="theme-selector padding-xxs" role="none">
714
+ <li class="theme display-block" role="menuitem">
715
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
716
+ data-theme-to="light">
717
+ <span class="theme-light margin-right-xxs">
718
+ <span
719
+ class="theme-selector-icon border display-inline-block has-body-background"
720
+ aria-hidden="true">
721
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
722
+ viewBox="0 0 22 14">
723
+ <rect width="22" height="14" class="has-fill-body-background" />
724
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
725
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
726
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
727
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
728
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
729
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
730
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
731
+ </svg>
732
+ </span>
733
+ </span>
734
+ <span>Light</span>
735
+ </button>
736
+ </li>
737
+ <li class="theme display-block" role="menuitem">
738
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
739
+ data-theme-to="dark">
740
+ <span class="theme-dark margin-right-xxs">
741
+ <span
742
+ class="border theme-selector-icon display-inline-block has-body-background"
743
+ aria-hidden="true">
744
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
745
+ viewBox="0 0 22 14">
746
+ <rect width="22" height="14" class="has-fill-body-background" />
747
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
748
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
749
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
750
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
751
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
752
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
753
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
754
+ </svg>
755
+ </span>
756
+ </span>
757
+ <span>Dark</span>
758
+ </button>
759
+ </li>
760
+ <li class="theme display-block" role="menuitem">
761
+ <button class="button button-clear button-sm theme-control button-block justify-content-flex-start"
762
+ data-theme-to="high-contrast">
763
+ <span class="theme-high-contrast margin-right-xxs">
764
+ <span
765
+ class="border theme-selector-icon display-inline-block has-body-background"
766
+ aria-hidden="true">
767
+ <svg class="svg" xmlns="http://www.w3.org/2000/svg"
768
+ viewBox="0 0 22 14">
769
+ <rect width="22" height="14" class="has-fill-body-background" />
770
+ <rect x="5" y="5" width="12" height="4" class="has-fill-secondary" />
771
+ <rect x="5" y="2" width="2" height="1" class="has-fill-secondary" />
772
+ <rect x="8" y="2" width="2" height="1" class="has-fill-secondary" />
773
+ <rect x="11" y="2" width="3" height="1" class="has-fill-secondary" />
774
+ <rect x="1" y="1" width="2" height="2" class="has-fill-secondary" />
775
+ <rect x="5" y="10" width="7" height="2" rx="0.3" class="has-fill-primary" />
776
+ <rect x="19" y="1" width="2" height="2" rx="1" class="has-fill-secondary" />
777
+ </svg>
778
+ </span>
779
+ </span>
780
+ <span>High contrast</span>
781
+ </button>
782
+ </li>
783
+ </ul>
784
+ </div>
785
+ </div>
786
+
787
+ </div>
788
+ </div>
789
+ <ul class="links" data-bi-name="footerlinks">
790
+ <li class="manage-cookies-holder" hidden></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/previous-versions/" data-bi-name="archivelink">Previous Versions</a></li>
791
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog" data-bi-name="bloglink">Blog</a></li>
792
+ <li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/contribute/" data-bi-name="contributorGuide">Contribute</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-bi-name="privacy">Privacy</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="/en-us/legal/termsofuse" data-bi-name="termsofuse">Terms of Use</a></li><li><a class="external-link-indicator" data-mscc-ic="false" href="https://www.microsoft.com/legal/intellectualproperty/Trademarks/" data-bi-name="trademarks">Trademarks</a></li><li>&copy; Microsoft 2024</li>
793
+ </ul>
794
+ </footer>
795
+
796
+ </section>
797
+
798
+ <div id="action-panel" role="region" aria-label="Action Panel" class="action-panel has-default-focus" tabindex="-1"></div>
799
+ </body>
800
+ </html>
ultimatethinking.txt ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ import json
3
+ import logging
4
+ import os
5
+ from typing import List, Dict, Any
6
+ from cryptography.fernet import Fernet
7
+ from botbuilder.core import StatePropertyAccessor, TurnContext
8
+ from botbuilder.dialogs import Dialog, DialogSet, DialogTurnStatus
9
+ from dialog_helper import DialogHelper
10
+ import aiohttp
11
+ import speech_recognition as sr
12
+ from PIL import Image
13
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
14
+
15
+ # Ensure nltk is installed and download required data
16
+ try:
17
+ import nltk
18
+ from nltk.tokenize import word_tokenize
19
+ nltk.download('punkt', quiet=True)
20
+ except ImportError:
21
+ import subprocess
22
+ import sys
23
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "nltk"])
24
+ import nltk
25
+ from nltk.tokenize import word_tokenize
26
+ nltk.download('punkt', quiet=True)
27
+
28
+ # Import perspectives
29
+ from perspectives import (
30
+ Perspective, NewtonPerspective, DaVinciPerspective, HumanIntuitionPerspective,
31
+ NeuralNetworkPerspective, QuantumComputingPerspective, ResilientKindnessPerspective,
32
+ MathematicalPerspective, PhilosophicalPerspective, CopilotPerspective, BiasMitigationPerspective,
33
+ PsychologicalPerspective
34
+ )
35
+
36
+ # Load environment variables
37
+ from dotenv import load_dotenv
38
+ load_dotenv()
39
+
40
+ # Setup Logging
41
+ def setup_logging(config):
42
+ if config.get('logging_enabled', True):
43
+ log_level = config.get('log_level', 'DEBUG').upper()
44
+ numeric_level = getattr(logging, log_level, logging.DEBUG)
45
+ logging.basicConfig(
46
+ filename='universal_reasoning.log',
47
+ level=numeric_level,
48
+ format='%(asctime)s - %(levelname)s - %(message)s'
49
+ )
50
+ else:
51
+ logging.disable(logging.CRITICAL)
52
+
53
+ # Load JSON configuration
54
+ def load_json_config(file_path):
55
+ if not os.path.exists(file_path):
56
+ logging.error(f"Configuration file '{file_path}' not found.")
57
+ return {}
58
+ try:
59
+ with open(file_path, 'r') as file:
60
+ config = json.load(file)
61
+ logging.info(f"Configuration loaded from '{file_path}'.")
62
+ return config
63
+ except json.JSONDecodeError as e:
64
+ logging.error(f"Error decoding JSON from the configuration file '{file_path}': {e}")
65
+ return {}
66
+
67
+ # Encrypt sensitive information
68
+ def encrypt_sensitive_data(data, key):
69
+ fernet = Fernet(key)
70
+ encrypted_data = fernet.encrypt(data.encode())
71
+ return encrypted_data
72
+
73
+ # Decrypt sensitive information
74
+ def decrypt_sensitive_data(encrypted_data, key):
75
+ fernet = Fernet(key)
76
+ decrypted_data = fernet.decrypt(encrypted_data).decode()
77
+ return decrypted_data
78
+
79
+ # Securely destroy sensitive information
80
+ def destroy_sensitive_data(data):
81
+ del data
82
+
83
+ # Define the Element class
84
+ class Element:
85
+ def __init__(self, name, symbol, representation, properties, interactions, defense_ability):
86
+ self.name = name
87
+ self.symbol = symbol
88
+ self.representation = representation
89
+ self.properties = properties
90
+ self.interactions = interactions
91
+ self.defense_ability = defense_ability
92
+
93
+ def execute_defense_function(self):
94
+ message = f"{self.name} ({self.symbol}) executes its defense ability: {self.defense_ability}"
95
+ logging.info(message)
96
+ return message
97
+
98
+ # Define the CustomRecognizer class
99
+ class CustomRecognizer:
100
+ def recognize(self, question):
101
+ # Simple keyword-based recognizer for demonstration purposes
102
+ if any(element_name.lower() in question.lower() for element_name in ["hydrogen", "diamond"]):
103
+ return RecognizerResult(question)
104
+ return RecognizerResult(None)
105
+
106
+ def get_top_intent(self, recognizer_result):
107
+ if recognizer_result.text:
108
+ return "ElementDefense"
109
+ else:
110
+ return "None"
111
+
112
+ class RecognizerResult:
113
+ def __init__(self, text):
114
+ self.text = text
115
+
116
+ # Universal Reasoning Aggregator
117
+ class UniversalReasoning:
118
+ def __init__(self, config):
119
+ self.config = config
120
+ self.perspectives = self.initialize_perspectives()
121
+ self.elements = self.initialize_elements()
122
+ self.recognizer = CustomRecognizer()
123
+ self.context_history = [] # Maintain context history
124
+ self.feedback = [] # Store user feedback
125
+ # Initialize the sentiment analyzer
126
+ self.sentiment_analyzer = SentimentIntensityAnalyzer()
127
+
128
+ def initialize_perspectives(self):
129
+ perspective_names = self.config.get('enabled_perspectives', [
130
+ "newton",
131
+ "davinci",
132
+ "human_intuition",
133
+ "neural_network",
134
+ "quantum_computing",
135
+ "resilient_kindness",
136
+ "mathematical",
137
+ "philosophical",
138
+ "copilot",
139
+ "bias_mitigation",
140
+ "psychological"
141
+ ])
142
+ perspective_classes = {
143
+ "newton": NewtonPerspective,
144
+ "davinci": DaVinciPerspective,
145
+ "human_intuition": HumanIntuitionPerspective,
146
+ "neural_network": NeuralNetworkPerspective,
147
+ "quantum_computing": QuantumComputingPerspective,
148
+ "resilient_kindness": ResilientKindnessPerspective,
149
+ "mathematical": MathematicalPerspective,
150
+ "philosophical": PhilosophicalPerspective,
151
+ "copilot": CopilotPerspective,
152
+ "bias_mitigation": BiasMitigationPerspective,
153
+ "psychological": PsychologicalPerspective
154
+ }
155
+ perspectives = []
156
+ for name in perspective_names:
157
+ cls = perspective_classes.get(name.lower())
158
+ if cls:
159
+ perspectives.append(cls(self.config))
160
+ logging.debug(f"Perspective '{name}' initialized.")
161
+ else:
162
+ logging.warning(f"Perspective '{name}' is not recognized and will be skipped.")
163
+ return perspectives
164
+
165
+ def initialize_elements(self):
166
+ elements = [
167
+ Element(
168
+ name="Hydrogen",
169
+ symbol="H",
170
+ representation="Lua",
171
+ properties=["Simple", "Lightweight", "Versatile"],
172
+ interactions=["Easily integrates with other languages and systems"],
173
+ defense_ability="Evasion"
174
+ ),
175
+ # You can add more elements as needed
176
+ Element(
177
+ name="Diamond",
178
+ symbol="D",
179
+ representation="Kotlin",
180
+ properties=["Modern", "Concise", "Safe"],
181
+ interactions=["Used for Android development"],
182
+ defense_ability="Adaptability"
183
+ )
184
+ ]
185
+ return elements
186
+
187
+ async def generate_response(self, question):
188
+ self.context_history.append(question) # Add question to context history
189
+ sentiment_score = self.analyze_sentiment(question)
190
+ real_time_data = await self.fetch_real_time_data("https://api.example.com/data")
191
+ responses = []
192
+ tasks = []
193
+
194
+ # Generate responses from perspectives concurrently
195
+ for perspective in self.perspectives:
196
+ if asyncio.iscoroutinefunction(perspective.generate_response):
197
+ tasks.append(perspective.generate_response(question))
198
+ else:
199
+ # Wrap synchronous functions in coroutine
200
+ async def sync_wrapper(perspective, question):
201
+ return perspective.generate_response(question)
202
+ tasks.append(sync_wrapper(perspective, question))
203
+
204
+ perspective_results = await asyncio.gather(*tasks, return_exceptions=True)
205
+
206
+ for perspective, result in zip(self.perspectives, perspective_results):
207
+ if isinstance(result, Exception):
208
+ logging.error(f"Error generating response from {perspective.__class__.__name__}: {result}")
209
+ else:
210
+ responses.append(result)
211
+ logging.debug(f"Response from {perspective.__class__.__name__}: {result}")
212
+
213
+ # Handle element defense logic
214
+ recognizer_result = self.recognizer.recognize(question)
215
+ top_intent = self.recognizer.get_top_intent(recognizer_result)
216
+ if top_intent == "ElementDefense":
217
+ element_name = recognizer_result.text.strip()
218
+ element = next(
219
+ (el for el in self.elements if el.name.lower() in element_name.lower()),
220
+ None
221
+ )
222
+ if element:
223
+ defense_message = element.execute_defense_function()
224
+ responses.append(defense_message)
225
+ else:
226
+ logging.info(f"No matching element found for '{element_name}'")
227
+
228
+ ethical_considerations = self.config.get(
229
+ 'ethical_considerations',
230
+ "Always act with transparency, fairness, and respect for privacy."
231
+ )
232
+ responses.append(f"**Ethical Considerations:**\n{ethical_considerations}")
233
+
234
+ formatted_response = "\n\n".join(responses)
235
+ return formatted_response
236
+
237
+ def analyze_sentiment(self, text):
238
+ sentiment_score = self.sentiment_analyzer.polarity_scores(text)
239
+ logging.info(f"Sentiment analysis result: {sentiment_score}")
240
+ return sentiment_score
241
+
242
+ async def fetch_real_time_data(self, source_url):
243
+ async with aiohttp.ClientSession() as session:
244
+ async with session.get(source_url) as response:
245
+ data = await response.json()
246
+ logging.info(f"Real-time data fetched from {source_url}: {data}")
247
+ return data
248
+
249
+ async def run_dialog(self, dialog: Dialog, turn_context: TurnContext, accessor: StatePropertyAccessor) -> None:
250
+ await DialogHelper.run_dialog(dialog, turn_context, accessor)
251
+
252
+ def save_response(self, response):
253
+ if self.config.get('enable_response_saving', False):
254
+ save_path = self.config.get('response_save_path', 'responses.txt')
255
+ try:
256
+ with open(save_path, 'a', encoding='utf-8') as file:
257
+ file.write(response + '\n')
258
+ logging.info(f"Response saved to '{save_path}'.")
259
+ except Exception as e:
260
+ logging.error(f"Error saving response to '{save_path}': {e}")
261
+
262
+ def backup_response(self, response):
263
+ if self.config.get('backup_responses', {}).get('enabled', False):
264
+ backup_path = self.config['backup_responses'].get('backup_path', 'backup_responses.txt')
265
+ try:
266
+ with open(backup_path, 'a', encoding='utf-8') as file:
267
+ file.write(response + '\n')
268
+ logging.info(f"Response backed up to '{backup_path}'.")
269
+
270
+ async def collect_user_feedback(self, turn_context: TurnContext):
271
+ # Collect feedback from the user
272
+ feedback = turn_context.activity.text
273
+ logging.info(f"User feedback received: {feedback}")
274
+ # Process feedback for continuous learning
275
+ self.process_feedback(feedback)
276
+
277
+ def process_feedback(self, feedback):
278
+ # Implement feedback processing logic
279
+ logging.info(f"Processing feedback: {feedback}")
280
+ # Example: Adjust response generation based on feedback
281
+ # This can be expanded with more sophisticated learning algorithms
282
+
283
+ def add_new_perspective(self, perspective_name, perspective_class):
284
+ if perspective_name.lower() not in [p.__class__.__name__.lower() for p in self.perspectives]:
285
+ self.perspectives.append(perspective_class(self.config))
286
+ logging.info(f"New perspective '{perspective_name}' added.")
287
+ else:
288
+ logging.warning(f"Perspective '{perspective_name}' already exists.")
289
+
290
+ def handle_voice_input(self):
291
+ recognizer = sr.Recognizer()
292
+ with sr.Microphone() as source:
293
+ print("Listening...")
294
+ audio = recognizer.listen(source)
295
+ try:
296
+ text = recognizer.recognize_google(audio)
297
+ print(f"Voice input recognized: {text}")
298
+ return text
299
+ except sr.UnknownValueError:
300
+ print("Google Speech Recognition could not understand audio")
301
+ return None
302
+ except sr.RequestError as e:
303
+ print(f"Could not request results from Google Speech Recognition service; {e}")
304
+ return None
305
+
306
+ def handle_image_input(self, image_path):
307
+ try:
308
+ image = Image.open(image_path)
309
+ print(f"Image input processed: {image_path}")
310
+ return image
311
+ except Exception as e:
312
+ print(f"Error processing image input: {e}")
313
+ return None
314
+
315
+ # Example usage
316
+ if __name__ == "__main__":
317
+ config = load_json_config('config.json')
318
+ # Add Azure OpenAI configurations to the config
319
+ azure_openai_api_key = os.getenv('AZURE_OPENAI_API_KEY')
320
+ azure_openai_endpoint = os.getenv('AZURE_OPENAI_ENDPOINT')
321
+
322
+ # Encrypt sensitive data
323
+ encryption_key = Fernet.generate_key()
324
+ encrypted_api_key = encrypt_sensitive_data(azure_openai_api_key, encryption_key)
325
+ encrypted_endpoint = encrypt_sensitive_data(azure_openai_endpoint, encryption_key)
326
+
327
+ # Add encrypted data to config
328
+ config['azure_openai_api_key'] = encrypted_api_key
329
+ config['azure_openai_endpoint'] = encrypted_endpoint
330
+
331
+ setup_logging(config)
332
+ universal_reasoning = UniversalReasoning(config)
333
+ question = "Tell me about Hydrogen and its defense mechanisms."
334
+ response = asyncio.run(universal_reasoning.generate_response(question))
335
+ print(response)
336
+ if response:
337
+ universal_reasoning.save_response(response)
338
+ universal_reasoning.backup_response(response)
339
+
340
+ # Decrypt and destroy sensitive data
341
+ decrypted_api_key = decrypt_sensitive_data(encrypted_api_key, encryption_key)
342
+ decrypted_endpoint = decrypt_sensitive_data(encrypted_endpoint, encryption_key)
343
+ destroy_sensitive_data(decrypted_api_key)
344
+ destroy_sensitive_data(decrypted_endpoint)
345
+
346
+ # Handle voice input
347
+ voice_input = universal_reasoning.handle_voice_input()
348
+ if voice_input:
349
+ response = asyncio.run(universal_reasoning.generate_response(voice_input))
350
+ print(response)
351
+
352
+ # Handle image input
353
+ image_input = universal_reasoning.handle_image_input("path_to_image.jpg")
354
+ if image_input:
355
+ # Process image input (additional logic can be added here)
356
+ print("Image input handled.")
utils.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tkinter as tk
2
+ import urllib.request
3
+ import logging
4
+
5
+ def show_privacy_consent() -> bool:
6
+ """Display a pop-up window to obtain user consent for data collection and privacy."""
7
+ def on_accept():
8
+ user_consent.set(True)
9
+ root.destroy()
10
+ def on_decline():
11
+ user_consent.set(False)
12
+ root.destroy()
13
+ root = tk.Tk()
14
+ root.title("Data Permission and Privacy")
15
+ message = ("We value your privacy. By using this application, you consent to the collection and use of your data "
16
+ "as described in our privacy policy. Do you agree to proceed?")
17
+ label = tk.Label(root, text=message, wraplength=400, justify="left")
18
+ label.pack(padx=20, pady=20)
19
+ button_frame = tk.Frame(root)
20
+ button_frame.pack(pady=10)
21
+ accept_button = tk.Button(button_frame, text="Accept", command=on_accept)
22
+ accept_button.pack(side="left", padx=10)
23
+ decline_button = tk.Button(button_frame, text="Decline", command=on_decline)
24
+ decline_button.pack(side="right", padx=10)
25
+ user_consent = tk.BooleanVar()
26
+ root.mainloop()
27
+ return user_consent.get()
28
+
29
+ def download_database(url: str, file_path: str) -> None:
30
+ """Download the database file from the given URL."""
31
+ try:
32
+ logging.info(f"Downloading database from {url}...")
33
+ urllib.request.urlretrieve(url, file_path)
34
+ logging.info("Download complete.")
35
+ except urllib.error.URLError as e:
36
+ logging.error(f"Error: Failed to download database. {e}")
37
+ except Exception as e:
38
+ logging.error(f"An unexpected error occurred: {e}")
your_script.py ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ import json
3
+ from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
4
+ from cryptography.hazmat.primitives import padding
5
+ from cryptography.hazmat.backends import default_backend
6
+ from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
7
+
8
+ class Element:
9
+ def __init__(self, name, symbol, representation, properties, interactions, defense_ability):
10
+ self.name = name
11
+ self.symbol = symbol
12
+ self.representation = representation
13
+ self.properties = properties
14
+ self.interactions = interactions
15
+ self.defense_ability = defense_ability
16
+
17
+ def display_properties(self):
18
+ print(f"Properties of {self.name} ({self.symbol}):")
19
+ for prop in self.properties:
20
+ print(f" - {prop}")
21
+
22
+ def display_interactions(self):
23
+ print(f"Interactions of {self.name} ({self.symbol}):")
24
+ for interaction in self.interactions:
25
+ print(f" - {interaction}")
26
+
27
+ def display_defense_ability(self):
28
+ print(f"Defense Ability of {self.name} ({self.symbol}): {self.defense_ability}")
29
+
30
+ def execute_defense_function(self):
31
+ defense_functions = {
32
+ "evasion": self.evasion,
33
+ "adaptability": self.adaptability,
34
+ "fortification": self.fortification,
35
+ "barrier": self.barrier,
36
+ "regeneration": self.regeneration,
37
+ "resilience": self.resilience,
38
+ "illumination": self.illumination,
39
+ "shield": self.shield,
40
+ "reflection": self.reflection,
41
+ "protection": self.protection
42
+ }
43
+ defense_function = defense_functions.get(self.defense_ability.lower(), self.no_defense)
44
+ defense_function()
45
+
46
+ def evasion(self):
47
+ print(f"{self.name} uses Evasion to avoid threats and remain undetected.")
48
+
49
+ def adaptability(self):
50
+ print(f"{self.name} adapts to changing environments and evolves to overcome challenges.")
51
+
52
+ def fortification(self):
53
+ print(f"{self.name} strengthens defenses and fortifies positions to withstand attacks.")
54
+
55
+ def barrier(self):
56
+ print(f"{self.name} creates barriers to protect against external threats.")
57
+
58
+ def regeneration(self):
59
+ print(f"{self.name} regenerates lost or damaged parts to maintain functionality.")
60
+
61
+ def resilience(self):
62
+ print(f"{self.name} exhibits resilience to recover quickly from setbacks.")
63
+
64
+ def illumination(self):
65
+ print(f"{self.name} uses illumination to reveal hidden threats and illuminate dark areas.")
66
+
67
+ def shield(self):
68
+ print(f"{self.name} uses a shield to block incoming attacks and protect allies.")
69
+
70
+ def reflection(self):
71
+ print(f"{self.name} reflects attacks back to the source, turning the enemy's power against them.")
72
+
73
+ def protection(self):
74
+ print(f"{self.name} offers protection to prevent harm and ensure safety.")
75
+
76
+ def no_defense(self):
77
+ print("No defense function available.")
78
+
79
+ class CustomRecognizer:
80
+ class RecognizerResult:
81
+ def __init__(self, text):
82
+ self.text = text
83
+ self.intents = []
84
+
85
+ class Intent:
86
+ def __init__(self, name, score):
87
+ self.name = name
88
+ self.score = score
89
+
90
+ def recognize(self, text):
91
+ recognizer_result = self.RecognizerResult(text)
92
+ regex_element = re.compile(r"^(Hydrogen|Carbon|Iron|Silicon|Oxygen|Nitrogen|Phosphorus|Gold|Silver|Lead|Diamond)$", re.IGNORECASE)
93
+ is_element = regex_element.match(text)
94
+
95
+ if is_element:
96
+ recognizer_result.intents.append(self.Intent("ElementDefense", 100))
97
+ return recognizer_result
98
+
99
+ def get_top_intent(self, recognizer_result):
100
+ recognizer_result.intents.sort(key=lambda x: x.score, reverse=True)
101
+ return recognizer_result.intents[0].name if recognizer_result.intents else None
102
+
103
+ class DataProtector:
104
+ sensitive_keywords = {"AI", "sensitive", "confidential", "data"}
105
+
106
+ @staticmethod
107
+ def contains_sensitive_info(text):
108
+ return any(keyword.lower() in text.lower() for keyword in DataProtector.sensitive_keywords)
109
+
110
+ @staticmethod
111
+ def mask_sensitive_info(text):
112
+ for keyword in DataProtector.sensitive_keywords:
113
+ text = re.sub(keyword, '*' * len(keyword), text, flags=re.IGNORECASE)
114
+ return text
115
+
116
+ @staticmethod
117
+ def encrypt_string(plain_text, key):
118
+ backend = default_backend()
119
+ key_bytes = key.encode('utf-8')
120
+ iv = key_bytes[:16]
121
+
122
+ cipher = Cipher(algorithms.AES(key_bytes), modes.CBC(iv), backend=backend)
123
+ encryptor = cipher.encryptor()
124
+
125
+ padder = padding.PKCS7(algorithms.AES.block_size).padder()
126
+ padded_data = padder.update(plain_text.encode('utf-8')) + padder.finalize()
127
+
128
+ encrypted_data = encryptor.update(padded_data) + encryptor.finalize()
129
+ return encrypted_data.hex()
130
+
131
+ @staticmethod
132
+ def decrypt_string(cipher_text, key):
133
+ backend = default_backend()
134
+ key_bytes = key.encode('utf-8')
135
+ iv = key_bytes[:16]
136
+
137
+ cipher = Cipher(algorithms.AES(key_bytes), modes.CBC(iv), backend=backend)
138
+ decryptor = cipher.decryptor()
139
+
140
+ encrypted_data = bytes.fromhex(cipher_text)
141
+ decrypted_padded_data = decryptor.update(encrypted_data) + decryptor.finalize()
142
+
143
+ unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()
144
+ decrypted_data = unpadder.update(decrypted_padded_data) + unpadder.finalize()
145
+
146
+ return decrypted_data.decode('utf-8')
147
+
148
+ def analyze_sentiment(text):
149
+ analyzer = SentimentIntensityAnalyzer()
150
+ sentiment = analyzer.polarity_scores(text)
151
+ return sentiment
152
+
153
+ def initialize_elements():
154
+ elements = [
155
+ Element(
156
+ name="Hydrogen",
157
+ symbol="H",
158
+ representation="Lua",
159
+ properties=["Simple", "Lightweight", "Versatile"],
160
+ interactions=["Easily integrates with other languages and systems"],
161
+ defense_ability="Evasion"
162
+ ),
163
+ Element(
164
+ name="Carbon",
165
+ symbol="C",
166
+ representation="Python",
167
+ properties=["Flexible", "Widely used", "Powerful"],
168
+ interactions=["Can be used for a variety of tasks, from web development to data analysis"],
169
+ defense_ability="Adaptability"
170
+ ),
171
+ Element(
172
+ name="Iron",
173
+ symbol="Fe",
174
+ representation="C++",
175
+ properties=["Strong", "Durable", "Efficient"],
176
+ interactions=["Used in system programming and game development"],
177
+ defense_ability="Fortification"
178
+ ),
179
+ Element(
180
+ name="Silicon",
181
+ symbol="Si",
182
+ representation="Java",
183
+ properties=["Robust", "Platform-independent", "Secure"],
184
+ interactions=["Widely used in enterprise applications"],
185
+ defense_ability="Barrier"
186
+ ),
187
+ Element(
188
+ name="Oxygen",
189
+ symbol="O",
190
+ representation="JavaScript",
191
+ properties=["Dynamic", "Versatile", "Ubiquitous"],
192
+ interactions=["Essential for web development"],
193
+ defense_ability="Regeneration"
194
+ ),
195
+ Element(
196
+ name="Nitrogen",
197
+ symbol="N",
198
+ representation="Ruby",
199
+ properties=["Elegant", "Productive", "Flexible"],
200
+ interactions=["Popular in web development with Rails"],
201
+ defense_ability="Resilience"
202
+ ),
203
+ Element(
204
+ name="Phosphorus",
205
+ symbol="P",
206
+ representation="PHP",
207
+ properties=["Server-side", "Web-focused", "Embedded"],
208
+ interactions=["Commonly used in web development"],
209
+ defense_ability="Illumination"
210
+ ),
211
+ Element(
212
+ name="Gold",
213
+ symbol="Au",
214
+ representation="Swift",
215
+ properties=["Modern", "Safe", "Fast"],
216
+ interactions=["Used for iOS and macOS development"],
217
+ defense_ability="Shield"
218
+ ),
219
+ Element(
220
+ name="Silver",
221
+ symbol="Ag",
222
+ representation="Go",
223
+ properties=["Concurrent", "Efficient", "Scalable"],
224
+ interactions=["Ideal for cloud services and backend systems"],
225
+ defense_ability="Reflection"
226
+ ),
227
+ Element(
228
+ name="Lead",
229
+ symbol="Pb",
230
+ representation="Rust",
231
+ properties=["Safe", "Concurrent", "Fast"],
232
+ interactions=["Used for system-level programming"],
233
+ defense_ability="Protection"
234
+ ),
235
+ Element(
236
+ name="Diamond",
237
+ symbol="D",
238
+ representation="Kotlin",
239
+ properties=["Modern", "Concise", "Safe"],
240
+ interactions=["Used for Android development"],
241
+ defense_ability="Adaptability"
242
+ )
243
+ ]
244
+ return elements