diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d009e44
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+KaranINT013/tictactoe/.vs/
+KaranINT013/tictactoe/packages/
+KaranINT013/tictactoe/tictactoe/bin/
\ No newline at end of file
diff --git a/KaranINT013/index.css b/KaranINT013/index.css
new file mode 100644
index 0000000..ddd9fa5
--- /dev/null
+++ b/KaranINT013/index.css
@@ -0,0 +1,70 @@
+*{
+ margin: 0;
+
+}
+
+.btn2 {
+ margin: 5px;
+}
+.container-fluid{
+
+ display: flex;
+ align-content: center;
+ flex-direction: column;
+ margin-left: auto;
+ margin-right: auto;
+
+}
+.score{
+ display: flex;
+ align-content: space-between;
+ flex-direction: row;
+ margin-left: auto;
+
+ justify-content: space-around;
+}
+.input-group {
+ display: flex;
+ align-content: center;
+ flex-direction: row;
+ justify-content:space-around;
+}
+.container .start{
+ display: flex;
+ align-content: center;
+ flex-direction: column;
+ justify-content: center;
+ width: ;
+}
+h2{
+ margin: 10px;
+ display: flex;
+ align-content: center;
+ flex-direction: column;
+ justify-content: center;
+}
+
+.content{
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 10px;
+ margin-top: 10px;
+ background: black;
+ padding: .4vw;
+}
+
+
+.tic-box{
+ border: solid white 1px;
+ font-size: 100px;
+ text-align: center;
+ color: white;
+ height: 150px;
+ width: 100px;
+}
+.tic-box:hover{
+background: #000000; /* fallback for old browsers */
+background: -webkit-linear-gradient(to right, #434343, #000000); /* Chrome 10-25, Safari 5.1-6 */
+background: linear-gradient(to right, #434343, #000000); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+
+}
\ No newline at end of file
diff --git a/KaranINT013/index.html b/KaranINT013/index.html
new file mode 100644
index 0000000..e3c016d
--- /dev/null
+++ b/KaranINT013/index.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+ Tic-Tac-Toe
+
+
+ Tic-Tac-Toe
+
+
+
+
+
+
+
+
Welcome! Please enter usernames to proceed. (Note: Usernames are case-sensitive!)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/index.js b/KaranINT013/index.js
new file mode 100644
index 0000000..eaf9e46
--- /dev/null
+++ b/KaranINT013/index.js
@@ -0,0 +1,264 @@
+ var arr;
+ var scoreO=0;
+ var scoreX=0;
+ var i = 'X'; // which player turn it is
+ var win =0; // if anyone wins or not
+ var count = 0; // count number of moves
+ var Oname; //player O username
+ var Xname; //player X username
+ var O=[]; // array to check if game over or not
+ var X=[];
+ var idX; //player O id
+ var idO; //player X id
+
+ function alertpage(msg){
+ $("#alert").css("display", "block");
+ document.getElementById("alert").innerHTML=msg;
+
+ }
+ //Prints which player turn it is
+ function turn(i){
+ alertpage("Player "+ i+ " turn !");
+ // document.getElementById("turn").innerHTML="Player "+ i+ " turn !"
+ }
+ //to reset game
+ function reset(){
+ i = 'X';
+ turn('O');
+ win =0;
+ count = 0;
+ O=[];
+ X=[];
+ //window.setTimeout($("#alert").css("display", "none"),3000);
+ for(var j=1;j<10;j++){
+ document.getElementById(j).innerHTML="";
+ }
+ }
+ function change( ){
+ if(i=='X')
+ {
+ turn(i);
+ i = 'O';
+
+
+ }
+ else
+ {turn(i);
+ i='X';
+
+ }
+ }
+ //to check when game ends
+ function check(id){
+ if(i=='O'){
+
+ O.push(id);
+ if(O.includes("1") & O.includes("2") & O.includes("3") |
+ O.includes("4") & O.includes("5") & O.includes("6") |
+ O.includes("7") & O.includes("8") & O.includes("9") |
+ O.includes("1") & O.includes("4") & O.includes("7") |
+ O.includes("2") & O.includes("5") & O.includes("8") |
+ O.includes("3") & O.includes("6") & O.includes("9") |
+ O.includes("1") & O.includes("5") & O.includes("9") |
+ O.includes("3") & O.includes("5") & O.includes("7"))
+ { //setTimeout(125);
+ setTimeout(alert(i +' wins'), 125);
+ win =1;
+ reset();
+ scoreX=scoreX-5;
+ scoreO=scoreO+10;
+ displayo();
+ displayx();
+ update();
+ /*for(var i=0; i
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Web.Handlers.TransferRequestHandler
+ Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler
+ System.Web.StaticFileHandler
+ System.Web.Handlers.AssemblyResourceLoader
+ System.Web.Optimization.BundleHandler
+ System.Web.Script.Services.ScriptHandlerFactory
+ System.Web.Handlers.TraceHandler
+ System.Web.Services.Discovery.DiscoveryRequestHandler
+ System.Web.HttpDebugHandler
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Controllers/UsersController.cs b/KaranINT013/tictactoe/tictactoe/Controllers/UsersController.cs
new file mode 100644
index 0000000..592a2b3
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Controllers/UsersController.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Entity;
+using System.Data.Entity.Infrastructure;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web.Http;
+using System.Web.Http.Description;
+using tictactoe.Models;
+
+namespace tictactoe.Controllers
+{
+ public class UsersController : ApiController
+ {
+ private tictactoeEntities1 db = new tictactoeEntities1();
+
+ // GET: api/Users
+ public IQueryable GetUsers()
+ {
+ return db.Users;
+ }
+
+ // GET: api/Users/5
+ [ResponseType(typeof(User))]
+ public IHttpActionResult GetUser(int id)
+ {
+ User user = db.Users.Find(id);
+ if (user == null)
+ {
+ return NotFound();
+ }
+
+ return Ok(user);
+ }
+
+ // PUT: api/Users/5
+ [ResponseType(typeof(void))]
+ public IHttpActionResult PutUser(int id, User user)
+ {
+ if (!ModelState.IsValid)
+ {
+ return BadRequest(ModelState);
+ }
+
+ if (id != user.id)
+ {
+ return BadRequest();
+ }
+
+ db.Entry(user).State = EntityState.Modified;
+
+ try
+ {
+ db.SaveChanges();
+ }
+ catch (DbUpdateConcurrencyException)
+ {
+ if (!UserExists(id))
+ {
+ return NotFound();
+ }
+ else
+ {
+ throw;
+ }
+ }
+
+ return StatusCode(HttpStatusCode.NoContent);
+ }
+
+ // POST: api/Users
+ [ResponseType(typeof(User))]
+ public IHttpActionResult PostUser(User user)
+ {
+ if (!ModelState.IsValid)
+ {
+ return BadRequest(ModelState);
+ }
+
+ db.Users.Add(user);
+ db.SaveChanges();
+
+ return CreatedAtRoute("DefaultApi", new { id = user.id }, user);
+ }
+
+ // DELETE: api/Users/5
+ [ResponseType(typeof(User))]
+ public IHttpActionResult DeleteUser(int id)
+ {
+ User user = db.Users.Find(id);
+ if (user == null)
+ {
+ return NotFound();
+ }
+
+ db.Users.Remove(user);
+ db.SaveChanges();
+
+ return Ok(user);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ db.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ private bool UserExists(int id)
+ {
+ return db.Users.Count(e => e.id == id) > 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Global.asax b/KaranINT013/tictactoe/tictactoe/Global.asax
new file mode 100644
index 0000000..214b1aa
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Global.asax
@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.cs" Inherits="tictactoe.WebApiApplication" Language="C#" %>
diff --git a/KaranINT013/tictactoe/tictactoe/Global.asax.cs b/KaranINT013/tictactoe/tictactoe/Global.asax.cs
new file mode 100644
index 0000000..9f18f5e
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Global.asax.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Http;
+using System.Web.Routing;
+
+namespace tictactoe
+{
+ public class WebApiApplication : System.Web.HttpApplication
+ {
+ protected void Application_Start()
+ {
+ GlobalConfiguration.Configure(WebApiConfig.Register);
+ }
+ }
+}
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.cs b/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.cs
new file mode 100644
index 0000000..062c9c7
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace tictactoe.Models
+{
+ using System;
+ using System.Data.Entity;
+ using System.Data.Entity.Infrastructure;
+
+ public partial class tictactoeEntities1 : DbContext
+ {
+ public tictactoeEntities1()
+ : base("name=tictactoeEntities1")
+ {
+ }
+
+ protected override void OnModelCreating(DbModelBuilder modelBuilder)
+ {
+ throw new UnintentionalCodeFirstException();
+ }
+
+ public virtual DbSet Users { get; set; }
+ }
+}
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.tt b/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.tt
new file mode 100644
index 0000000..7b8920f
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.Context.tt
@@ -0,0 +1,636 @@
+<#@ template language="C#" debug="false" hostspecific="true"#>
+<#@ include file="EF6.Utility.CS.ttinclude"#><#@
+ output extension=".cs"#><#
+
+const string inputFile = @"Model1.edmx";
+var textTransform = DynamicTextTransformation.Create(this);
+var code = new CodeGenerationTools(this);
+var ef = new MetadataTools(this);
+var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
+var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors);
+var itemCollection = loader.CreateEdmItemCollection(inputFile);
+var modelNamespace = loader.GetModelNamespace(inputFile);
+var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);
+
+var container = itemCollection.OfType().FirstOrDefault();
+if (container == null)
+{
+ return string.Empty;
+}
+#>
+//------------------------------------------------------------------------------
+//
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#>
+//
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#>
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#>
+//
+//------------------------------------------------------------------------------
+
+<#
+
+var codeNamespace = code.VsNamespaceSuggestion();
+if (!String.IsNullOrEmpty(codeNamespace))
+{
+#>
+namespace <#=code.EscapeNamespace(codeNamespace)#>
+{
+<#
+ PushIndent(" ");
+}
+
+#>
+using System;
+using System.Data.Entity;
+using System.Data.Entity.Infrastructure;
+<#
+if (container.FunctionImports.Any())
+{
+#>
+using System.Data.Entity.Core.Objects;
+using System.Linq;
+<#
+}
+#>
+
+<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
+{
+ public <#=code.Escape(container)#>()
+ : base("name=<#=container.Name#>")
+ {
+<#
+if (!loader.IsLazyLoadingEnabled(container))
+{
+#>
+ this.Configuration.LazyLoadingEnabled = false;
+<#
+}
+
+foreach (var entitySet in container.BaseEntitySets.OfType())
+{
+ // Note: the DbSet members are defined below such that the getter and
+ // setter always have the same accessibility as the DbSet definition
+ if (Accessibility.ForReadOnlyProperty(entitySet) != "public")
+ {
+#>
+ <#=codeStringGenerator.DbSetInitializer(entitySet)#>
+<#
+ }
+}
+#>
+ }
+
+ protected override void OnModelCreating(DbModelBuilder modelBuilder)
+ {
+ throw new UnintentionalCodeFirstException();
+ }
+
+<#
+ foreach (var entitySet in container.BaseEntitySets.OfType())
+ {
+#>
+ <#=codeStringGenerator.DbSet(entitySet)#>
+<#
+ }
+
+ foreach (var edmFunction in container.FunctionImports)
+ {
+ WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false);
+ }
+#>
+}
+<#
+
+if (!String.IsNullOrEmpty(codeNamespace))
+{
+ PopIndent();
+#>
+}
+<#
+}
+#>
+<#+
+
+private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
+{
+ if (typeMapper.IsComposable(edmFunction))
+ {
+#>
+
+ [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")]
+ <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#>
+ {
+<#+
+ codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter);
+#>
+ <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#>
+ }
+<#+
+ }
+ else
+ {
+#>
+
+ <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#>
+ {
+<#+
+ codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter);
+#>
+ <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#>
+ }
+<#+
+ if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption))
+ {
+ WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true);
+ }
+ }
+}
+
+public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit)
+{
+#>
+ var <#=name#> = <#=isNotNull#> ?
+ <#=notNullInit#> :
+ <#=nullInit#>;
+
+<#+
+}
+
+public const string TemplateId = "CSharp_DbContext_Context_EF6";
+
+public class CodeStringGenerator
+{
+ private readonly CodeGenerationTools _code;
+ private readonly TypeMapper _typeMapper;
+ private readonly MetadataTools _ef;
+
+ public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef)
+ {
+ ArgumentNotNull(code, "code");
+ ArgumentNotNull(typeMapper, "typeMapper");
+ ArgumentNotNull(ef, "ef");
+
+ _code = code;
+ _typeMapper = typeMapper;
+ _ef = ef;
+ }
+
+ public string Property(EdmProperty edmProperty)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2} {{ {3}get; {4}set; }}",
+ Accessibility.ForProperty(edmProperty),
+ _typeMapper.GetTypeName(edmProperty.TypeUsage),
+ _code.Escape(edmProperty),
+ _code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
+ _code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
+ }
+
+ public string NavigationProperty(NavigationProperty navProp)
+ {
+ var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType());
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2} {{ {3}get; {4}set; }}",
+ AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)),
+ navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
+ _code.Escape(navProp),
+ _code.SpaceAfter(Accessibility.ForGetter(navProp)),
+ _code.SpaceAfter(Accessibility.ForSetter(navProp)));
+ }
+
+ public string AccessibilityAndVirtual(string accessibility)
+ {
+ return accessibility + (accessibility != "private" ? " virtual" : "");
+ }
+
+ public string EntityClassOpening(EntityType entity)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1}partial class {2}{3}",
+ Accessibility.ForType(entity),
+ _code.SpaceAfter(_code.AbstractOption(entity)),
+ _code.Escape(entity),
+ _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
+ }
+
+ public string EnumOpening(SimpleType enumType)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} enum {1} : {2}",
+ Accessibility.ForType(enumType),
+ _code.Escape(enumType),
+ _code.Escape(_typeMapper.UnderlyingClrType(enumType)));
+ }
+
+ public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter)
+ {
+ var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
+ foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable))
+ {
+ var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null";
+ var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")";
+ var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))";
+ writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit);
+ }
+ }
+
+ public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} IQueryable<{1}> {2}({3})",
+ AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
+ _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
+ _code.Escape(edmFunction),
+ string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()));
+ }
+
+ public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});",
+ _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
+ edmFunction.NamespaceName,
+ edmFunction.Name,
+ string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()),
+ _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())));
+ }
+
+ public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+ var returnType = _typeMapper.GetReturnType(edmFunction);
+
+ var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray());
+ if (includeMergeOption)
+ {
+ paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption";
+ }
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2}({3})",
+ AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
+ returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
+ _code.Escape(edmFunction),
+ paramList);
+ }
+
+ public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+ var returnType = _typeMapper.GetReturnType(edmFunction);
+
+ var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()));
+ if (includeMergeOption)
+ {
+ callParams = ", mergeOption" + callParams;
+ }
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});",
+ returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
+ edmFunction.Name,
+ callParams);
+ }
+
+ public string DbSet(EntitySet entitySet)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} virtual DbSet<{1}> {2} {{ get; set; }}",
+ Accessibility.ForReadOnlyProperty(entitySet),
+ _typeMapper.GetTypeName(entitySet.ElementType),
+ _code.Escape(entitySet));
+ }
+
+ public string DbSetInitializer(EntitySet entitySet)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} = Set<{1}>();",
+ _code.Escape(entitySet),
+ _typeMapper.GetTypeName(entitySet.ElementType));
+ }
+
+ public string UsingDirectives(bool inHeader, bool includeCollections = true)
+ {
+ return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
+ ? string.Format(
+ CultureInfo.InvariantCulture,
+ "{0}using System;{1}" +
+ "{2}",
+ inHeader ? Environment.NewLine : "",
+ includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
+ inHeader ? "" : Environment.NewLine)
+ : "";
+ }
+}
+
+public class TypeMapper
+{
+ private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";
+
+ private readonly System.Collections.IList _errors;
+ private readonly CodeGenerationTools _code;
+ private readonly MetadataTools _ef;
+
+ public static string FixNamespaces(string typeName)
+ {
+ return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial.");
+ }
+
+ public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors)
+ {
+ ArgumentNotNull(code, "code");
+ ArgumentNotNull(ef, "ef");
+ ArgumentNotNull(errors, "errors");
+
+ _code = code;
+ _ef = ef;
+ _errors = errors;
+ }
+
+ public string GetTypeName(TypeUsage typeUsage)
+ {
+ return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null);
+ }
+
+ public string GetTypeName(EdmType edmType)
+ {
+ return GetTypeName(edmType, isNullable: null, modelNamespace: null);
+ }
+
+ public string GetTypeName(TypeUsage typeUsage, string modelNamespace)
+ {
+ return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace);
+ }
+
+ public string GetTypeName(EdmType edmType, string modelNamespace)
+ {
+ return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace);
+ }
+
+ public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace)
+ {
+ if (edmType == null)
+ {
+ return null;
+ }
+
+ var collectionType = edmType as CollectionType;
+ if (collectionType != null)
+ {
+ return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace));
+ }
+
+ var typeName = _code.Escape(edmType.MetadataProperties
+ .Where(p => p.Name == ExternalTypeNameAttributeName)
+ .Select(p => (string)p.Value)
+ .FirstOrDefault())
+ ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ?
+ _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) :
+ _code.Escape(edmType));
+
+ if (edmType is StructuralType)
+ {
+ return typeName;
+ }
+
+ if (edmType is SimpleType)
+ {
+ var clrType = UnderlyingClrType(edmType);
+ if (!IsEnumType(edmType))
+ {
+ typeName = _code.Escape(clrType);
+ }
+
+ typeName = FixNamespaces(typeName);
+
+ return clrType.IsValueType && isNullable == true ?
+ String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) :
+ typeName;
+ }
+
+ throw new ArgumentException("edmType");
+ }
+
+ public Type UnderlyingClrType(EdmType edmType)
+ {
+ ArgumentNotNull(edmType, "edmType");
+
+ var primitiveType = edmType as PrimitiveType;
+ if (primitiveType != null)
+ {
+ return primitiveType.ClrEquivalentType;
+ }
+
+ if (IsEnumType(edmType))
+ {
+ return GetEnumUnderlyingType(edmType).ClrEquivalentType;
+ }
+
+ return typeof(object);
+ }
+
+ public object GetEnumMemberValue(MetadataItem enumMember)
+ {
+ ArgumentNotNull(enumMember, "enumMember");
+
+ var valueProperty = enumMember.GetType().GetProperty("Value");
+ return valueProperty == null ? null : valueProperty.GetValue(enumMember, null);
+ }
+
+ public string GetEnumMemberName(MetadataItem enumMember)
+ {
+ ArgumentNotNull(enumMember, "enumMember");
+
+ var nameProperty = enumMember.GetType().GetProperty("Name");
+ return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null);
+ }
+
+ public System.Collections.IEnumerable GetEnumMembers(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ var membersProperty = enumType.GetType().GetProperty("Members");
+ return membersProperty != null
+ ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null)
+ : Enumerable.Empty();
+ }
+
+ public bool EnumIsFlags(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ var isFlagsProperty = enumType.GetType().GetProperty("IsFlags");
+ return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null);
+ }
+
+ public bool IsEnumType(GlobalItem edmType)
+ {
+ ArgumentNotNull(edmType, "edmType");
+
+ return edmType.GetType().Name == "EnumType";
+ }
+
+ public PrimitiveType GetEnumUnderlyingType(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null);
+ }
+
+ public string CreateLiteral(object value)
+ {
+ if (value == null || value.GetType() != typeof(TimeSpan))
+ {
+ return _code.CreateLiteral(value);
+ }
+
+ return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks);
+ }
+
+ public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile)
+ {
+ ArgumentNotNull(types, "types");
+ ArgumentNotNull(sourceFile, "sourceFile");
+
+ var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase);
+ if (types.Any(item => !hash.Add(item)))
+ {
+ _errors.Add(
+ new CompilerError(sourceFile, -1, -1, "6023",
+ String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict"))));
+ return false;
+ }
+ return true;
+ }
+
+ public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection)
+ {
+ return GetItemsToGenerate(itemCollection)
+ .Where(e => IsEnumType(e));
+ }
+
+ public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType
+ {
+ return itemCollection
+ .OfType()
+ .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName))
+ .OrderBy(i => i.Name);
+ }
+
+ public IEnumerable GetAllGlobalItems(IEnumerable itemCollection)
+ {
+ return itemCollection
+ .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i))
+ .Select(g => GetGlobalItemName(g));
+ }
+
+ public string GetGlobalItemName(GlobalItem item)
+ {
+ if (item is EdmType)
+ {
+ return ((EdmType)item).Name;
+ }
+ else
+ {
+ return ((EntityContainer)item).Name;
+ }
+ }
+
+ public IEnumerable GetSimpleProperties(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetSimpleProperties(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetComplexProperties(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetComplexProperties(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetPropertiesWithDefaultValues(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
+ }
+
+ public IEnumerable GetPropertiesWithDefaultValues(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
+ }
+
+ public IEnumerable GetNavigationProperties(EntityType type)
+ {
+ return type.NavigationProperties.Where(np => np.DeclaringType == type);
+ }
+
+ public IEnumerable GetCollectionNavigationProperties(EntityType type)
+ {
+ return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);
+ }
+
+ public FunctionParameter GetReturnParameter(EdmFunction edmFunction)
+ {
+ ArgumentNotNull(edmFunction, "edmFunction");
+
+ var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters");
+ return returnParamsProperty == null
+ ? edmFunction.ReturnParameter
+ : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault();
+ }
+
+ public bool IsComposable(EdmFunction edmFunction)
+ {
+ ArgumentNotNull(edmFunction, "edmFunction");
+
+ var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute");
+ return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null);
+ }
+
+ public IEnumerable GetParameters(EdmFunction edmFunction)
+ {
+ return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
+ }
+
+ public TypeUsage GetReturnType(EdmFunction edmFunction)
+ {
+ var returnParam = GetReturnParameter(edmFunction);
+ return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage);
+ }
+
+ public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption)
+ {
+ var returnType = GetReturnType(edmFunction);
+ return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType;
+ }
+}
+
+public static void ArgumentNotNull(T arg, string name) where T : class
+{
+ if (arg == null)
+ {
+ throw new ArgumentNullException(name);
+ }
+}
+#>
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.Designer.cs b/KaranINT013/tictactoe/tictactoe/Models/Model1.Designer.cs
new file mode 100644
index 0000000..f6420bb
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.Designer.cs
@@ -0,0 +1,10 @@
+// T4 code generation is enabled for model 'c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\Models\Model1.edmx'.
+// To enable legacy code generation, change the value of the 'Code Generation Strategy' designer
+// property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model
+// is open in the designer.
+
+// If no context and entity classes have been generated, it may be because you created an empty model but
+// have not yet chosen which version of Entity Framework to use. To generate a context class and entity
+// classes for your model, open the model in the designer, right-click on the designer surface, and
+// select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation
+// Item...'.
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.cs b/KaranINT013/tictactoe/tictactoe/Models/Model1.cs
new file mode 100644
index 0000000..7cc0662
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.cs
@@ -0,0 +1,9 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx b/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx
new file mode 100644
index 0000000..0b10eb5
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx.diagram b/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx.diagram
new file mode 100644
index 0000000..ba541d9
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.edmx.diagram
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Models/Model1.tt b/KaranINT013/tictactoe/tictactoe/Models/Model1.tt
new file mode 100644
index 0000000..b0e43c7
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/Model1.tt
@@ -0,0 +1,733 @@
+<#@ template language="C#" debug="false" hostspecific="true"#>
+<#@ include file="EF6.Utility.CS.ttinclude"#><#@
+ output extension=".cs"#><#
+
+const string inputFile = @"Model1.edmx";
+var textTransform = DynamicTextTransformation.Create(this);
+var code = new CodeGenerationTools(this);
+var ef = new MetadataTools(this);
+var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
+var fileManager = EntityFrameworkTemplateFileManager.Create(this);
+var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
+var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);
+
+if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile))
+{
+ return string.Empty;
+}
+
+WriteHeader(codeStringGenerator, fileManager);
+
+foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection))
+{
+ fileManager.StartNewFile(entity.Name + ".cs");
+ BeginNamespace(code);
+#>
+<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
+<#=codeStringGenerator.EntityClassOpening(entity)#>
+{
+<#
+ var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity);
+ var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity);
+ var complexProperties = typeMapper.GetComplexProperties(entity);
+
+ if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
+ {
+#>
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
+ public <#=code.Escape(entity)#>()
+ {
+<#
+ foreach (var edmProperty in propertiesWithDefaultValues)
+ {
+#>
+ this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
+<#
+ }
+
+ foreach (var navigationProperty in collectionNavigationProperties)
+ {
+#>
+ this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>();
+<#
+ }
+
+ foreach (var complexProperty in complexProperties)
+ {
+#>
+ this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
+<#
+ }
+#>
+ }
+
+<#
+ }
+
+ var simpleProperties = typeMapper.GetSimpleProperties(entity);
+ if (simpleProperties.Any())
+ {
+ foreach (var edmProperty in simpleProperties)
+ {
+#>
+ <#=codeStringGenerator.Property(edmProperty)#>
+<#
+ }
+ }
+
+ if (complexProperties.Any())
+ {
+#>
+
+<#
+ foreach(var complexProperty in complexProperties)
+ {
+#>
+ <#=codeStringGenerator.Property(complexProperty)#>
+<#
+ }
+ }
+
+ var navigationProperties = typeMapper.GetNavigationProperties(entity);
+ if (navigationProperties.Any())
+ {
+#>
+
+<#
+ foreach (var navigationProperty in navigationProperties)
+ {
+ if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
+ {
+#>
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+<#
+ }
+#>
+ <#=codeStringGenerator.NavigationProperty(navigationProperty)#>
+<#
+ }
+ }
+#>
+}
+<#
+ EndNamespace(code);
+}
+
+foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection))
+{
+ fileManager.StartNewFile(complex.Name + ".cs");
+ BeginNamespace(code);
+#>
+<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
+<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#>
+{
+<#
+ var complexProperties = typeMapper.GetComplexProperties(complex);
+ var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex);
+
+ if (propertiesWithDefaultValues.Any() || complexProperties.Any())
+ {
+#>
+ public <#=code.Escape(complex)#>()
+ {
+<#
+ foreach (var edmProperty in propertiesWithDefaultValues)
+ {
+#>
+ this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
+<#
+ }
+
+ foreach (var complexProperty in complexProperties)
+ {
+#>
+ this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
+<#
+ }
+#>
+ }
+
+<#
+ }
+
+ var simpleProperties = typeMapper.GetSimpleProperties(complex);
+ if (simpleProperties.Any())
+ {
+ foreach(var edmProperty in simpleProperties)
+ {
+#>
+ <#=codeStringGenerator.Property(edmProperty)#>
+<#
+ }
+ }
+
+ if (complexProperties.Any())
+ {
+#>
+
+<#
+ foreach(var edmProperty in complexProperties)
+ {
+#>
+ <#=codeStringGenerator.Property(edmProperty)#>
+<#
+ }
+ }
+#>
+}
+<#
+ EndNamespace(code);
+}
+
+foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection))
+{
+ fileManager.StartNewFile(enumType.Name + ".cs");
+ BeginNamespace(code);
+#>
+<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
+<#
+ if (typeMapper.EnumIsFlags(enumType))
+ {
+#>
+[Flags]
+<#
+ }
+#>
+<#=codeStringGenerator.EnumOpening(enumType)#>
+{
+<#
+ var foundOne = false;
+
+ foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType))
+ {
+ foundOne = true;
+#>
+ <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>,
+<#
+ }
+
+ if (foundOne)
+ {
+ this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1);
+ }
+#>
+}
+<#
+ EndNamespace(code);
+}
+
+fileManager.Process();
+
+#>
+<#+
+
+public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager)
+{
+ fileManager.StartHeader();
+#>
+//------------------------------------------------------------------------------
+//
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#>
+//
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#>
+// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#>
+//
+//------------------------------------------------------------------------------
+<#=codeStringGenerator.UsingDirectives(inHeader: true)#>
+<#+
+ fileManager.EndBlock();
+}
+
+public void BeginNamespace(CodeGenerationTools code)
+{
+ var codeNamespace = code.VsNamespaceSuggestion();
+ if (!String.IsNullOrEmpty(codeNamespace))
+ {
+#>
+namespace <#=code.EscapeNamespace(codeNamespace)#>
+{
+<#+
+ PushIndent(" ");
+ }
+}
+
+public void EndNamespace(CodeGenerationTools code)
+{
+ if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion()))
+ {
+ PopIndent();
+#>
+}
+<#+
+ }
+}
+
+public const string TemplateId = "CSharp_DbContext_Types_EF6";
+
+public class CodeStringGenerator
+{
+ private readonly CodeGenerationTools _code;
+ private readonly TypeMapper _typeMapper;
+ private readonly MetadataTools _ef;
+
+ public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef)
+ {
+ ArgumentNotNull(code, "code");
+ ArgumentNotNull(typeMapper, "typeMapper");
+ ArgumentNotNull(ef, "ef");
+
+ _code = code;
+ _typeMapper = typeMapper;
+ _ef = ef;
+ }
+
+ public string Property(EdmProperty edmProperty)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2} {{ {3}get; {4}set; }}",
+ Accessibility.ForProperty(edmProperty),
+ _typeMapper.GetTypeName(edmProperty.TypeUsage),
+ _code.Escape(edmProperty),
+ _code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
+ _code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
+ }
+
+ public string NavigationProperty(NavigationProperty navProp)
+ {
+ var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType());
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2} {{ {3}get; {4}set; }}",
+ AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)),
+ navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
+ _code.Escape(navProp),
+ _code.SpaceAfter(Accessibility.ForGetter(navProp)),
+ _code.SpaceAfter(Accessibility.ForSetter(navProp)));
+ }
+
+ public string AccessibilityAndVirtual(string accessibility)
+ {
+ return accessibility + (accessibility != "private" ? " virtual" : "");
+ }
+
+ public string EntityClassOpening(EntityType entity)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1}partial class {2}{3}",
+ Accessibility.ForType(entity),
+ _code.SpaceAfter(_code.AbstractOption(entity)),
+ _code.Escape(entity),
+ _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));
+ }
+
+ public string EnumOpening(SimpleType enumType)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} enum {1} : {2}",
+ Accessibility.ForType(enumType),
+ _code.Escape(enumType),
+ _code.Escape(_typeMapper.UnderlyingClrType(enumType)));
+ }
+
+ public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter)
+ {
+ var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
+ foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable))
+ {
+ var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null";
+ var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")";
+ var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))";
+ writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit);
+ }
+ }
+
+ public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} IQueryable<{1}> {2}({3})",
+ AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
+ _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
+ _code.Escape(edmFunction),
+ string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()));
+ }
+
+ public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});",
+ _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),
+ edmFunction.NamespaceName,
+ edmFunction.Name,
+ string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()),
+ _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())));
+ }
+
+ public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+ var returnType = _typeMapper.GetReturnType(edmFunction);
+
+ var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray());
+ if (includeMergeOption)
+ {
+ paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption";
+ }
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} {1} {2}({3})",
+ AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),
+ returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
+ _code.Escape(edmFunction),
+ paramList);
+ }
+
+ public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption)
+ {
+ var parameters = _typeMapper.GetParameters(edmFunction);
+ var returnType = _typeMapper.GetReturnType(edmFunction);
+
+ var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()));
+ if (includeMergeOption)
+ {
+ callParams = ", mergeOption" + callParams;
+ }
+
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});",
+ returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",
+ edmFunction.Name,
+ callParams);
+ }
+
+ public string DbSet(EntitySet entitySet)
+ {
+ return string.Format(
+ CultureInfo.InvariantCulture,
+ "{0} virtual DbSet<{1}> {2} {{ get; set; }}",
+ Accessibility.ForReadOnlyProperty(entitySet),
+ _typeMapper.GetTypeName(entitySet.ElementType),
+ _code.Escape(entitySet));
+ }
+
+ public string UsingDirectives(bool inHeader, bool includeCollections = true)
+ {
+ return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
+ ? string.Format(
+ CultureInfo.InvariantCulture,
+ "{0}using System;{1}" +
+ "{2}",
+ inHeader ? Environment.NewLine : "",
+ includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
+ inHeader ? "" : Environment.NewLine)
+ : "";
+ }
+}
+
+public class TypeMapper
+{
+ private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";
+
+ private readonly System.Collections.IList _errors;
+ private readonly CodeGenerationTools _code;
+ private readonly MetadataTools _ef;
+
+ public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors)
+ {
+ ArgumentNotNull(code, "code");
+ ArgumentNotNull(ef, "ef");
+ ArgumentNotNull(errors, "errors");
+
+ _code = code;
+ _ef = ef;
+ _errors = errors;
+ }
+
+ public static string FixNamespaces(string typeName)
+ {
+ return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial.");
+ }
+
+ public string GetTypeName(TypeUsage typeUsage)
+ {
+ return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null);
+ }
+
+ public string GetTypeName(EdmType edmType)
+ {
+ return GetTypeName(edmType, isNullable: null, modelNamespace: null);
+ }
+
+ public string GetTypeName(TypeUsage typeUsage, string modelNamespace)
+ {
+ return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace);
+ }
+
+ public string GetTypeName(EdmType edmType, string modelNamespace)
+ {
+ return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace);
+ }
+
+ public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace)
+ {
+ if (edmType == null)
+ {
+ return null;
+ }
+
+ var collectionType = edmType as CollectionType;
+ if (collectionType != null)
+ {
+ return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace));
+ }
+
+ var typeName = _code.Escape(edmType.MetadataProperties
+ .Where(p => p.Name == ExternalTypeNameAttributeName)
+ .Select(p => (string)p.Value)
+ .FirstOrDefault())
+ ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ?
+ _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) :
+ _code.Escape(edmType));
+
+ if (edmType is StructuralType)
+ {
+ return typeName;
+ }
+
+ if (edmType is SimpleType)
+ {
+ var clrType = UnderlyingClrType(edmType);
+ if (!IsEnumType(edmType))
+ {
+ typeName = _code.Escape(clrType);
+ }
+
+ typeName = FixNamespaces(typeName);
+
+ return clrType.IsValueType && isNullable == true ?
+ String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) :
+ typeName;
+ }
+
+ throw new ArgumentException("edmType");
+ }
+
+ public Type UnderlyingClrType(EdmType edmType)
+ {
+ ArgumentNotNull(edmType, "edmType");
+
+ var primitiveType = edmType as PrimitiveType;
+ if (primitiveType != null)
+ {
+ return primitiveType.ClrEquivalentType;
+ }
+
+ if (IsEnumType(edmType))
+ {
+ return GetEnumUnderlyingType(edmType).ClrEquivalentType;
+ }
+
+ return typeof(object);
+ }
+
+ public object GetEnumMemberValue(MetadataItem enumMember)
+ {
+ ArgumentNotNull(enumMember, "enumMember");
+
+ var valueProperty = enumMember.GetType().GetProperty("Value");
+ return valueProperty == null ? null : valueProperty.GetValue(enumMember, null);
+ }
+
+ public string GetEnumMemberName(MetadataItem enumMember)
+ {
+ ArgumentNotNull(enumMember, "enumMember");
+
+ var nameProperty = enumMember.GetType().GetProperty("Name");
+ return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null);
+ }
+
+ public System.Collections.IEnumerable GetEnumMembers(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ var membersProperty = enumType.GetType().GetProperty("Members");
+ return membersProperty != null
+ ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null)
+ : Enumerable.Empty();
+ }
+
+ public bool EnumIsFlags(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ var isFlagsProperty = enumType.GetType().GetProperty("IsFlags");
+ return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null);
+ }
+
+ public bool IsEnumType(GlobalItem edmType)
+ {
+ ArgumentNotNull(edmType, "edmType");
+
+ return edmType.GetType().Name == "EnumType";
+ }
+
+ public PrimitiveType GetEnumUnderlyingType(EdmType enumType)
+ {
+ ArgumentNotNull(enumType, "enumType");
+
+ return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null);
+ }
+
+ public string CreateLiteral(object value)
+ {
+ if (value == null || value.GetType() != typeof(TimeSpan))
+ {
+ return _code.CreateLiteral(value);
+ }
+
+ return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks);
+ }
+
+ public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile)
+ {
+ ArgumentNotNull(types, "types");
+ ArgumentNotNull(sourceFile, "sourceFile");
+
+ var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase);
+ if (types.Any(item => !hash.Add(item)))
+ {
+ _errors.Add(
+ new CompilerError(sourceFile, -1, -1, "6023",
+ String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict"))));
+ return false;
+ }
+ return true;
+ }
+
+ public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection)
+ {
+ return GetItemsToGenerate(itemCollection)
+ .Where(e => IsEnumType(e));
+ }
+
+ public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType
+ {
+ return itemCollection
+ .OfType()
+ .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName))
+ .OrderBy(i => i.Name);
+ }
+
+ public IEnumerable GetAllGlobalItems(IEnumerable itemCollection)
+ {
+ return itemCollection
+ .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i))
+ .Select(g => GetGlobalItemName(g));
+ }
+
+ public string GetGlobalItemName(GlobalItem item)
+ {
+ if (item is EdmType)
+ {
+ return ((EdmType)item).Name;
+ }
+ else
+ {
+ return ((EntityContainer)item).Name;
+ }
+ }
+
+ public IEnumerable GetSimpleProperties(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetSimpleProperties(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetComplexProperties(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetComplexProperties(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);
+ }
+
+ public IEnumerable GetPropertiesWithDefaultValues(EntityType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
+ }
+
+ public IEnumerable GetPropertiesWithDefaultValues(ComplexType type)
+ {
+ return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);
+ }
+
+ public IEnumerable GetNavigationProperties(EntityType type)
+ {
+ return type.NavigationProperties.Where(np => np.DeclaringType == type);
+ }
+
+ public IEnumerable GetCollectionNavigationProperties(EntityType type)
+ {
+ return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);
+ }
+
+ public FunctionParameter GetReturnParameter(EdmFunction edmFunction)
+ {
+ ArgumentNotNull(edmFunction, "edmFunction");
+
+ var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters");
+ return returnParamsProperty == null
+ ? edmFunction.ReturnParameter
+ : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault();
+ }
+
+ public bool IsComposable(EdmFunction edmFunction)
+ {
+ ArgumentNotNull(edmFunction, "edmFunction");
+
+ var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute");
+ return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null);
+ }
+
+ public IEnumerable GetParameters(EdmFunction edmFunction)
+ {
+ return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);
+ }
+
+ public TypeUsage GetReturnType(EdmFunction edmFunction)
+ {
+ var returnParam = GetReturnParameter(edmFunction);
+ return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage);
+ }
+
+ public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption)
+ {
+ var returnType = GetReturnType(edmFunction);
+ return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType;
+ }
+}
+
+public static void ArgumentNotNull(T arg, string name) where T : class
+{
+ if (arg == null)
+ {
+ throw new ArgumentNullException(name);
+ }
+}
+#>
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Models/User.cs b/KaranINT013/tictactoe/tictactoe/Models/User.cs
new file mode 100644
index 0000000..0a4dc24
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Models/User.cs
@@ -0,0 +1,21 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace tictactoe.Models
+{
+ using System;
+ using System.Collections.Generic;
+
+ public partial class User
+ {
+ public int id { get; set; }
+ public string username { get; set; }
+ public Nullable score { get; set; }
+ }
+}
diff --git a/KaranINT013/tictactoe/tictactoe/Properties/AssemblyInfo.cs b/KaranINT013/tictactoe/tictactoe/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..899c07b
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("tictactoe")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("tictactoe")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b09a0cd5-2288-4217-95b9-2d419223e939")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/KaranINT013/tictactoe/tictactoe/Web.Debug.config b/KaranINT013/tictactoe/tictactoe/Web.Debug.config
new file mode 100644
index 0000000..2e302f9
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Web.Debug.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Web.Release.config b/KaranINT013/tictactoe/tictactoe/Web.Release.config
new file mode 100644
index 0000000..c358444
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Web.Release.config
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/Web.config b/KaranINT013/tictactoe/tictactoe/Web.config
new file mode 100644
index 0000000..2dd7c3e
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/Web.config
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/KaranINT013/tictactoe/tictactoe/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..d7869ce
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.Designer.cs.dll b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.Designer.cs.dll
new file mode 100644
index 0000000..96b95dd
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.Designer.cs.dll differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.cs.dll b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.cs.dll
new file mode 100644
index 0000000..a761f9e
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.Model1.cs.dll differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.Designer.cs.dll b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.Designer.cs.dll
new file mode 100644
index 0000000..244ff0a
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.Designer.cs.dll differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.cs.dll b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.cs.dll
new file mode 100644
index 0000000..6387f96
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/TempPE/Models.users.cs.dll differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/KaranINT013/tictactoe/tictactoe/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.csdl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.csdl
new file mode 100644
index 0000000..99ac189
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.csdl
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.msl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.msl
new file mode 100644
index 0000000..7254a67
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.msl
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.ssdl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.ssdl
new file mode 100644
index 0000000..be71e54
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/Model1.ssdl
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.csdl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.csdl
new file mode 100644
index 0000000..bc3dffb
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.csdl
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.msl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.msl
new file mode 100644
index 0000000..1751f8b
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.msl
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.ssdl b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.ssdl
new file mode 100644
index 0000000..2633fac
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/edmxResourcesToEmbed/Models/users.ssdl
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csproj.FileListAbsolute.txt b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..e9a9392
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csproj.FileListAbsolute.txt
@@ -0,0 +1,48 @@
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\ApplicationInsights.config
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\csc.exe
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.CodeAnalysis.CSharp.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.CodeAnalysis.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.CSharp.Core.targets
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\Microsoft.VisualBasic.Core.targets
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\System.Collections.Immutable.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\System.Reflection.Metadata.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\vbc.exe
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\VBCSCompiler.exe
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\roslyn\VBCSCompiler.exe.config
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\tictactoe.dll.config
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\tictactoe.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\tictactoe.pdb
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\EntityFramework.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\EntityFramework.SqlServer.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.Agent.Intercept.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.DependencyCollector.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.PerfCounterCollector.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.ServerTelemetryChannel.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.Web.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.WindowsServer.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.ApplicationInsights.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Newtonsoft.Json.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Net.Http.Formatting.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.WebHost.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\EntityFramework.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\EntityFramework.SqlServer.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.DependencyCollector.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.ServerTelemetryChannel.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.Web.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.AI.WindowsServer.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.ApplicationInsights.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\Newtonsoft.Json.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Net.Http.Formatting.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.WebHost.xml
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\obj\Debug\tictactoe.csprojResolveAssemblyReference.cache
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\obj\Debug\tictactoe.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\obj\Debug\tictactoe.pdb
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Cors.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.Cors.dll
+c:\users\karan.bhyana\documents\visual studio 2015\Projects\tictactoe\tictactoe\bin\System.Web.Http.Cors.xml
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csprojResolveAssemblyReference.cache b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..c6073ca
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.csprojResolveAssemblyReference.cache differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.dll b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.dll
new file mode 100644
index 0000000..353e721
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.dll differ
diff --git a/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.pdb b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.pdb
new file mode 100644
index 0000000..1f2347e
Binary files /dev/null and b/KaranINT013/tictactoe/tictactoe/obj/Debug/tictactoe.pdb differ
diff --git a/KaranINT013/tictactoe/tictactoe/packages.config b/KaranINT013/tictactoe/tictactoe/packages.config
new file mode 100644
index 0000000..ef15ee6
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/packages.config
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.js b/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.js
new file mode 100644
index 0000000..6a79fef
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.js
@@ -0,0 +1,3524 @@
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ (function (LoggingSeverity) {
+ LoggingSeverity[LoggingSeverity["CRITICAL"] = 0] = "CRITICAL";
+ LoggingSeverity[LoggingSeverity["WARNING"] = 1] = "WARNING";
+ })(ApplicationInsights.LoggingSeverity || (ApplicationInsights.LoggingSeverity = {}));
+ var LoggingSeverity = ApplicationInsights.LoggingSeverity;
+ (function (_InternalMessageId) {
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserDoesNotSupportLocalStorage"] = 0] = "NONUSRACT_BrowserDoesNotSupportLocalStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadLocalStorage"] = 1] = "NONUSRACT_BrowserCannotReadLocalStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadSessionStorage"] = 2] = "NONUSRACT_BrowserCannotReadSessionStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteLocalStorage"] = 3] = "NONUSRACT_BrowserCannotWriteLocalStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteSessionStorage"] = 4] = "NONUSRACT_BrowserCannotWriteSessionStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromLocalStorage"] = 5] = "NONUSRACT_BrowserFailedRemovalFromLocalStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromSessionStorage"] = 6] = "NONUSRACT_BrowserFailedRemovalFromSessionStorage";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_CannotSendEmptyTelemetry"] = 7] = "NONUSRACT_CannotSendEmptyTelemetry";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_ClientPerformanceMathError"] = 8] = "NONUSRACT_ClientPerformanceMathError";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorParsingAISessionCookie"] = 9] = "NONUSRACT_ErrorParsingAISessionCookie";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorPVCalc"] = 10] = "NONUSRACT_ErrorPVCalc";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_ExceptionWhileLoggingError"] = 11] = "NONUSRACT_ExceptionWhileLoggingError";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedAddingTelemetryToBuffer"] = 12] = "NONUSRACT_FailedAddingTelemetryToBuffer";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxAbort"] = 13] = "NONUSRACT_FailedMonitorAjaxAbort";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxDur"] = 14] = "NONUSRACT_FailedMonitorAjaxDur";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxOpen"] = 15] = "NONUSRACT_FailedMonitorAjaxOpen";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxRSC"] = 16] = "NONUSRACT_FailedMonitorAjaxRSC";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxSend"] = 17] = "NONUSRACT_FailedMonitorAjaxSend";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToAddHandlerForOnBeforeUnload"] = 18] = "NONUSRACT_FailedToAddHandlerForOnBeforeUnload";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToSendQueuedTelemetry"] = 19] = "NONUSRACT_FailedToSendQueuedTelemetry";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToReportDataLoss"] = 20] = "NONUSRACT_FailedToReportDataLoss";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_FlushFailed"] = 21] = "NONUSRACT_FlushFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_MessageLimitPerPVExceeded"] = 22] = "NONUSRACT_MessageLimitPerPVExceeded";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_MissingRequiredFieldSpecification"] = 23] = "NONUSRACT_MissingRequiredFieldSpecification";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_NavigationTimingNotSupported"] = 24] = "NONUSRACT_NavigationTimingNotSupported";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_OnError"] = 25] = "NONUSRACT_OnError";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_SessionRenewalDateIsZero"] = 26] = "NONUSRACT_SessionRenewalDateIsZero";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_SenderNotInitialized"] = 27] = "NONUSRACT_SenderNotInitialized";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackEventFailed"] = 28] = "NONUSRACT_StartTrackEventFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackEventFailed"] = 29] = "NONUSRACT_StopTrackEventFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackFailed"] = 30] = "NONUSRACT_StartTrackFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackFailed"] = 31] = "NONUSRACT_StopTrackFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TelemetrySampledAndNotSent"] = 32] = "NONUSRACT_TelemetrySampledAndNotSent";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackEventFailed"] = 33] = "NONUSRACT_TrackEventFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackExceptionFailed"] = 34] = "NONUSRACT_TrackExceptionFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackMetricFailed"] = 35] = "NONUSRACT_TrackMetricFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailed"] = 36] = "NONUSRACT_TrackPVFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailedCalc"] = 37] = "NONUSRACT_TrackPVFailedCalc";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TrackTraceFailed"] = 38] = "NONUSRACT_TrackTraceFailed";
+ _InternalMessageId[_InternalMessageId["NONUSRACT_TransmissionFailed"] = 39] = "NONUSRACT_TransmissionFailed";
+ _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObject"] = 40] = "USRACT_CannotSerializeObject";
+ _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObjectNonSerializable"] = 41] = "USRACT_CannotSerializeObjectNonSerializable";
+ _InternalMessageId[_InternalMessageId["USRACT_CircularReferenceDetected"] = 42] = "USRACT_CircularReferenceDetected";
+ _InternalMessageId[_InternalMessageId["USRACT_ClearAuthContextFailed"] = 43] = "USRACT_ClearAuthContextFailed";
+ _InternalMessageId[_InternalMessageId["USRACT_ExceptionTruncated"] = 44] = "USRACT_ExceptionTruncated";
+ _InternalMessageId[_InternalMessageId["USRACT_IllegalCharsInName"] = 45] = "USRACT_IllegalCharsInName";
+ _InternalMessageId[_InternalMessageId["USRACT_ItemNotInArray"] = 46] = "USRACT_ItemNotInArray";
+ _InternalMessageId[_InternalMessageId["USRACT_MaxAjaxPerPVExceeded"] = 47] = "USRACT_MaxAjaxPerPVExceeded";
+ _InternalMessageId[_InternalMessageId["USRACT_MessageTruncated"] = 48] = "USRACT_MessageTruncated";
+ _InternalMessageId[_InternalMessageId["USRACT_NameTooLong"] = 49] = "USRACT_NameTooLong";
+ _InternalMessageId[_InternalMessageId["USRACT_SampleRateOutOfRange"] = 50] = "USRACT_SampleRateOutOfRange";
+ _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailed"] = 51] = "USRACT_SetAuthContextFailed";
+ _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailedAccountName"] = 52] = "USRACT_SetAuthContextFailedAccountName";
+ _InternalMessageId[_InternalMessageId["USRACT_StringValueTooLong"] = 53] = "USRACT_StringValueTooLong";
+ _InternalMessageId[_InternalMessageId["USRACT_StartCalledMoreThanOnce"] = 54] = "USRACT_StartCalledMoreThanOnce";
+ _InternalMessageId[_InternalMessageId["USRACT_StopCalledWithoutStart"] = 55] = "USRACT_StopCalledWithoutStart";
+ _InternalMessageId[_InternalMessageId["USRACT_TelemetryInitializerFailed"] = 56] = "USRACT_TelemetryInitializerFailed";
+ _InternalMessageId[_InternalMessageId["USRACT_TrackArgumentsNotSpecified"] = 57] = "USRACT_TrackArgumentsNotSpecified";
+ _InternalMessageId[_InternalMessageId["USRACT_UrlTooLong"] = 58] = "USRACT_UrlTooLong";
+ })(ApplicationInsights._InternalMessageId || (ApplicationInsights._InternalMessageId = {}));
+ var _InternalMessageId = ApplicationInsights._InternalMessageId;
+ var _InternalLogMessage = (function () {
+ function _InternalLogMessage(msgId, msg, properties) {
+ this.message = _InternalMessageId[msgId].toString();
+ this.messageId = msgId;
+ var diagnosticText = (msg ? " message:" + _InternalLogMessage.sanitizeDiagnosticText(msg) : "") +
+ (properties ? " props:" + _InternalLogMessage.sanitizeDiagnosticText(JSON.stringify(properties)) : "");
+ this.message += diagnosticText;
+ }
+ _InternalLogMessage.sanitizeDiagnosticText = function (text) {
+ return "\"" + text.replace(/\"/g, "") + "\"";
+ };
+ return _InternalLogMessage;
+ })();
+ ApplicationInsights._InternalLogMessage = _InternalLogMessage;
+ var _InternalLogging = (function () {
+ function _InternalLogging() {
+ }
+ _InternalLogging.throwInternalNonUserActionable = function (severity, message) {
+ if (this.enableDebugExceptions()) {
+ throw message;
+ }
+ else {
+ if (typeof (message) !== "undefined" && !!message) {
+ if (typeof (message.message) !== "undefined") {
+ message.message = this.AiNonUserActionablePrefix + message.message;
+ this.warnToConsole(message.message);
+ this.logInternalMessage(severity, message);
+ }
+ }
+ }
+ };
+ _InternalLogging.throwInternalUserActionable = function (severity, message) {
+ if (this.enableDebugExceptions()) {
+ throw message;
+ }
+ else {
+ if (typeof (message) !== "undefined" && !!message) {
+ if (typeof (message.message) !== "undefined") {
+ message.message = this.AiUserActionablePrefix + message.message;
+ this.warnToConsole(message.message);
+ this.logInternalMessage(severity, message);
+ }
+ }
+ }
+ };
+ _InternalLogging.warnToConsole = function (message) {
+ if (typeof console !== "undefined" && !!console) {
+ if (typeof console.warn === "function") {
+ console.warn(message);
+ }
+ else if (typeof console.log === "function") {
+ console.log(message);
+ }
+ }
+ };
+ _InternalLogging.resetInternalMessageCount = function () {
+ this._messageCount = 0;
+ };
+ _InternalLogging.clearInternalMessageLoggedTypes = function () {
+ if (ApplicationInsights.Util.canUseSessionStorage()) {
+ var sessionStorageKeys = ApplicationInsights.Util.getSessionStorageKeys();
+ for (var i = 0; i < sessionStorageKeys.length; i++) {
+ if (sessionStorageKeys[i].indexOf(_InternalLogging.AIInternalMessagePrefix) === 0) {
+ ApplicationInsights.Util.removeSessionStorage(sessionStorageKeys[i]);
+ }
+ }
+ }
+ };
+ _InternalLogging.setMaxInternalMessageLimit = function (limit) {
+ if (!limit) {
+ throw new Error('limit cannot be undefined.');
+ }
+ this.MAX_INTERNAL_MESSAGE_LIMIT = limit;
+ };
+ _InternalLogging.logInternalMessage = function (severity, message) {
+ if (this._areInternalMessagesThrottled()) {
+ return;
+ }
+ var logMessage = true;
+ if (ApplicationInsights.Util.canUseSessionStorage()) {
+ var storageMessageKey = _InternalLogging.AIInternalMessagePrefix + _InternalMessageId[message.messageId];
+ var internalMessageTypeLogRecord = ApplicationInsights.Util.getSessionStorage(storageMessageKey);
+ if (internalMessageTypeLogRecord) {
+ logMessage = false;
+ }
+ else {
+ ApplicationInsights.Util.setSessionStorage(storageMessageKey, "1");
+ }
+ }
+ if (logMessage) {
+ if (this.verboseLogging() || severity === LoggingSeverity.CRITICAL) {
+ this.queue.push(message);
+ this._messageCount++;
+ }
+ if (this._messageCount == this.MAX_INTERNAL_MESSAGE_LIMIT) {
+ var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
+ var throttleMessage = new _InternalLogMessage(_InternalMessageId.NONUSRACT_MessageLimitPerPVExceeded, throttleLimitMessage);
+ this.queue.push(throttleMessage);
+ this.warnToConsole(throttleLimitMessage);
+ }
+ }
+ };
+ _InternalLogging._areInternalMessagesThrottled = function () {
+ return this._messageCount >= this.MAX_INTERNAL_MESSAGE_LIMIT;
+ };
+ _InternalLogging.AiUserActionablePrefix = "AI: ";
+ _InternalLogging.AIInternalMessagePrefix = "AITR_";
+ _InternalLogging.AiNonUserActionablePrefix = "AI (Internal): ";
+ _InternalLogging.enableDebugExceptions = function () { return false; };
+ _InternalLogging.verboseLogging = function () { return false; };
+ _InternalLogging.queue = [];
+ _InternalLogging.MAX_INTERNAL_MESSAGE_LIMIT = 25;
+ _InternalLogging._messageCount = 0;
+ return _InternalLogging;
+ })();
+ ApplicationInsights._InternalLogging = _InternalLogging;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var StorageType;
+ (function (StorageType) {
+ StorageType[StorageType["LocalStorage"] = 0] = "LocalStorage";
+ StorageType[StorageType["SessionStorage"] = 1] = "SessionStorage";
+ })(StorageType || (StorageType = {}));
+ var Util = (function () {
+ function Util() {
+ }
+ Util._getLocalStorageObject = function () {
+ return Util._getVerifiedStorageObject(StorageType.LocalStorage);
+ };
+ Util._getVerifiedStorageObject = function (storageType) {
+ var storage = null;
+ var fail;
+ var uid;
+ try {
+ uid = new Date;
+ storage = storageType === StorageType.LocalStorage ? window.localStorage : window.sessionStorage;
+ storage.setItem(uid, uid);
+ fail = storage.getItem(uid) != uid;
+ storage.removeItem(uid);
+ if (fail) {
+ storage = null;
+ }
+ }
+ catch (exception) {
+ storage = null;
+ }
+ return storage;
+ };
+ Util.canUseLocalStorage = function () {
+ return !!Util._getLocalStorageObject();
+ };
+ Util.getStorage = function (name) {
+ var storage = Util._getLocalStorageObject();
+ if (storage !== null) {
+ try {
+ return storage.getItem(name);
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
+ }
+ }
+ return null;
+ };
+ Util.setStorage = function (name, data) {
+ var storage = Util._getLocalStorageObject();
+ if (storage !== null) {
+ try {
+ storage.setItem(name, data);
+ return true;
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
+ }
+ }
+ return false;
+ };
+ Util.removeStorage = function (name) {
+ var storage = Util._getLocalStorageObject();
+ if (storage !== null) {
+ try {
+ storage.removeItem(name);
+ return true;
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
+ }
+ }
+ return false;
+ };
+ Util._getSessionStorageObject = function () {
+ return Util._getVerifiedStorageObject(StorageType.SessionStorage);
+ };
+ Util.canUseSessionStorage = function () {
+ return !!Util._getSessionStorageObject();
+ };
+ Util.getSessionStorageKeys = function () {
+ var keys = [];
+ if (Util.canUseSessionStorage()) {
+ for (var key in window.sessionStorage) {
+ keys.push(key);
+ }
+ }
+ return keys;
+ };
+ Util.getSessionStorage = function (name) {
+ var storage = Util._getSessionStorageObject();
+ if (storage !== null) {
+ try {
+ return storage.getItem(name);
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
+ }
+ }
+ return null;
+ };
+ Util.setSessionStorage = function (name, data) {
+ var storage = Util._getSessionStorageObject();
+ if (storage !== null) {
+ try {
+ storage.setItem(name, data);
+ return true;
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
+ }
+ }
+ return false;
+ };
+ Util.removeSessionStorage = function (name) {
+ var storage = Util._getSessionStorageObject();
+ if (storage !== null) {
+ try {
+ storage.removeItem(name);
+ return true;
+ }
+ catch (e) {
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) });
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message);
+ }
+ }
+ return false;
+ };
+ Util.setCookie = function (name, value, domain) {
+ var domainAttrib = "";
+ if (domain) {
+ domainAttrib = ";domain=" + domain;
+ }
+ Util.document.cookie = name + "=" + value + domainAttrib + ";path=/";
+ };
+ Util.stringToBoolOrDefault = function (str) {
+ if (!str) {
+ return false;
+ }
+ return str.toString().toLowerCase() === "true";
+ };
+ Util.getCookie = function (name) {
+ var value = "";
+ if (name && name.length) {
+ var cookieName = name + "=";
+ var cookies = Util.document.cookie.split(";");
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = cookies[i];
+ cookie = Util.trim(cookie);
+ if (cookie && cookie.indexOf(cookieName) === 0) {
+ value = cookie.substring(cookieName.length, cookies[i].length);
+ break;
+ }
+ }
+ }
+ return value;
+ };
+ Util.deleteCookie = function (name) {
+ Util.document.cookie = name + "=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
+ };
+ Util.trim = function (str) {
+ if (typeof str !== "string")
+ return str;
+ return str.replace(/^\s+|\s+$/g, "");
+ };
+ Util.newId = function () {
+ var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ var result = "";
+ var random = Math.random() * 1073741824;
+ while (random > 0) {
+ var char = base64chars.charAt(random % 64);
+ result += char;
+ random = Math.floor(random / 64);
+ }
+ return result;
+ };
+ Util.isArray = function (obj) {
+ return Object.prototype.toString.call(obj) === "[object Array]";
+ };
+ Util.isError = function (obj) {
+ return Object.prototype.toString.call(obj) === "[object Error]";
+ };
+ Util.isDate = function (obj) {
+ return Object.prototype.toString.call(obj) === "[object Date]";
+ };
+ Util.toISOStringForIE8 = function (date) {
+ if (Util.isDate(date)) {
+ if (Date.prototype.toISOString) {
+ return date.toISOString();
+ }
+ else {
+ function pad(number) {
+ var r = String(number);
+ if (r.length === 1) {
+ r = "0" + r;
+ }
+ return r;
+ }
+ return date.getUTCFullYear()
+ + "-" + pad(date.getUTCMonth() + 1)
+ + "-" + pad(date.getUTCDate())
+ + "T" + pad(date.getUTCHours())
+ + ":" + pad(date.getUTCMinutes())
+ + ":" + pad(date.getUTCSeconds())
+ + "." + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)
+ + "Z";
+ }
+ }
+ };
+ Util.getIEVersion = function (userAgentStr) {
+ if (userAgentStr === void 0) { userAgentStr = null; }
+ var myNav = userAgentStr ? userAgentStr.toLowerCase() : navigator.userAgent.toLowerCase();
+ return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : null;
+ };
+ Util.msToTimeSpan = function (totalms) {
+ if (isNaN(totalms) || totalms < 0) {
+ totalms = 0;
+ }
+ var ms = "" + totalms % 1000;
+ var sec = "" + Math.floor(totalms / 1000) % 60;
+ var min = "" + Math.floor(totalms / (1000 * 60)) % 60;
+ var hour = "" + Math.floor(totalms / (1000 * 60 * 60)) % 24;
+ ms = ms.length === 1 ? "00" + ms : ms.length === 2 ? "0" + ms : ms;
+ sec = sec.length < 2 ? "0" + sec : sec;
+ min = min.length < 2 ? "0" + min : min;
+ hour = hour.length < 2 ? "0" + hour : hour;
+ return hour + ":" + min + ":" + sec + "." + ms;
+ };
+ Util.isCrossOriginError = function (message, url, lineNumber, columnNumber, error) {
+ return (message === "Script error." || message === "Script error") && error === null;
+ };
+ Util.dump = function (object) {
+ var objectTypeDump = Object.prototype.toString.call(object);
+ var propertyValueDump = JSON.stringify(object);
+ if (objectTypeDump === "[object Error]") {
+ propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
+ }
+ return objectTypeDump + propertyValueDump;
+ };
+ Util.getExceptionName = function (object) {
+ var objectTypeDump = Object.prototype.toString.call(object);
+ if (objectTypeDump === "[object Error]") {
+ return object.name;
+ }
+ return "";
+ };
+ Util.addEventHandler = function (eventName, callback) {
+ if (!window || typeof eventName !== 'string' || typeof callback !== 'function') {
+ return false;
+ }
+ var verbEventName = 'on' + eventName;
+ if (window.addEventListener) {
+ window.addEventListener(eventName, callback, false);
+ }
+ else if (window["attachEvent"]) {
+ window["attachEvent"].call(verbEventName, callback);
+ }
+ else {
+ return false;
+ }
+ return true;
+ };
+ Util.document = typeof document !== "undefined" ? document : {};
+ Util.NotSpecified = "not_specified";
+ return Util;
+ })();
+ ApplicationInsights.Util = Util;
+ var UrlHelper = (function () {
+ function UrlHelper() {
+ }
+ UrlHelper.parseUrl = function (url) {
+ if (!UrlHelper.htmlAnchorElement) {
+ UrlHelper.htmlAnchorElement = UrlHelper.document.createElement('a');
+ }
+ UrlHelper.htmlAnchorElement.href = url;
+ return UrlHelper.htmlAnchorElement;
+ };
+ UrlHelper.getAbsoluteUrl = function (url) {
+ var result;
+ var a = UrlHelper.parseUrl(url);
+ if (a) {
+ result = a.href;
+ }
+ return result;
+ };
+ UrlHelper.getPathName = function (url) {
+ var result;
+ var a = UrlHelper.parseUrl(url);
+ if (a) {
+ result = a.pathname;
+ }
+ return result;
+ };
+ UrlHelper.document = typeof document !== "undefined" ? document : {};
+ return UrlHelper;
+ })();
+ ApplicationInsights.UrlHelper = UrlHelper;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var extensions = (function () {
+ function extensions() {
+ }
+ extensions.IsNullOrUndefined = function (obj) {
+ return typeof (obj) === "undefined" || obj === null;
+ };
+ return extensions;
+ })();
+ ApplicationInsights.extensions = extensions;
+ var stringUtils = (function () {
+ function stringUtils() {
+ }
+ stringUtils.GetLength = function (strObject) {
+ var res = 0;
+ if (!extensions.IsNullOrUndefined(strObject)) {
+ var stringified = "";
+ try {
+ stringified = strObject.toString();
+ }
+ catch (ex) {
+ }
+ res = stringified.length;
+ res = isNaN(res) ? 0 : res;
+ }
+ return res;
+ };
+ return stringUtils;
+ })();
+ ApplicationInsights.stringUtils = stringUtils;
+ var dateTime = (function () {
+ function dateTime() {
+ }
+ dateTime.Now = (window.performance && window.performance.now) ?
+ function () {
+ return performance.now();
+ }
+ :
+ function () {
+ return new Date().getTime();
+ };
+ dateTime.GetDuration = function (start, end) {
+ var result = null;
+ if (start !== 0 && end !== 0 && !extensions.IsNullOrUndefined(start) && !extensions.IsNullOrUndefined(end)) {
+ result = end - start;
+ }
+ return result;
+ };
+ return dateTime;
+ })();
+ ApplicationInsights.dateTime = dateTime;
+ var EventHelper = (function () {
+ function EventHelper() {
+ }
+ EventHelper.AttachEvent = function (obj, eventNameWithoutOn, handlerRef) {
+ var result = false;
+ if (!extensions.IsNullOrUndefined(obj)) {
+ if (!extensions.IsNullOrUndefined(obj.attachEvent)) {
+ obj.attachEvent("on" + eventNameWithoutOn, handlerRef);
+ result = true;
+ }
+ else {
+ if (!extensions.IsNullOrUndefined(obj.addEventListener)) {
+ obj.addEventListener(eventNameWithoutOn, handlerRef, false);
+ result = true;
+ }
+ }
+ }
+ return result;
+ };
+ EventHelper.DetachEvent = function (obj, eventNameWithoutOn, handlerRef) {
+ if (!extensions.IsNullOrUndefined(obj)) {
+ if (!extensions.IsNullOrUndefined(obj.detachEvent)) {
+ obj.detachEvent("on" + eventNameWithoutOn, handlerRef);
+ }
+ else {
+ if (!extensions.IsNullOrUndefined(obj.removeEventListener)) {
+ obj.removeEventListener(eventNameWithoutOn, handlerRef, false);
+ }
+ }
+ }
+ };
+ return EventHelper;
+ })();
+ ApplicationInsights.EventHelper = EventHelper;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var XHRMonitoringState = (function () {
+ function XHRMonitoringState() {
+ this.openDone = false;
+ this.setRequestHeaderDone = false;
+ this.sendDone = false;
+ this.abortDone = false;
+ this.onreadystatechangeCallbackAttached = false;
+ }
+ return XHRMonitoringState;
+ })();
+ ApplicationInsights.XHRMonitoringState = XHRMonitoringState;
+ var ajaxRecord = (function () {
+ function ajaxRecord(id) {
+ this.completed = false;
+ this.requestHeadersSize = null;
+ this.ttfb = null;
+ this.responseReceivingDuration = null;
+ this.callbackDuration = null;
+ this.ajaxTotalDuration = null;
+ this.aborted = null;
+ this.pageUrl = null;
+ this.requestUrl = null;
+ this.requestSize = 0;
+ this.method = null;
+ this.status = null;
+ this.requestSentTime = null;
+ this.responseStartedTime = null;
+ this.responseFinishedTime = null;
+ this.callbackFinishedTime = null;
+ this.endTime = null;
+ this.originalOnreadystatechage = null;
+ this.xhrMonitoringState = new XHRMonitoringState();
+ this.clientFailure = 0;
+ this.CalculateMetrics = function () {
+ var self = this;
+ self.ajaxTotalDuration = ApplicationInsights.dateTime.GetDuration(self.requestSentTime, self.responseFinishedTime);
+ };
+ this.id = id;
+ }
+ ajaxRecord.prototype.getAbsoluteUrl = function () {
+ return this.requestUrl ? ApplicationInsights.UrlHelper.getAbsoluteUrl(this.requestUrl) : null;
+ };
+ ajaxRecord.prototype.getPathName = function () {
+ return this.requestUrl ? ApplicationInsights.UrlHelper.getPathName(this.requestUrl) : null;
+ };
+ return ajaxRecord;
+ })();
+ ApplicationInsights.ajaxRecord = ajaxRecord;
+ ;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+;
+///
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var AjaxMonitor = (function () {
+ function AjaxMonitor(appInsights) {
+ this.currentWindowHost = window.location.host;
+ this.appInsights = appInsights;
+ this.initialized = false;
+ this.Init();
+ }
+ AjaxMonitor.prototype.Init = function () {
+ if (this.supportsMonitoring()) {
+ this.instrumentOpen();
+ this.instrumentSend();
+ this.instrumentAbort();
+ this.initialized = true;
+ }
+ };
+ AjaxMonitor.prototype.isMonitoredInstance = function (xhr, excludeAjaxDataValidation) {
+ return this.initialized
+ && (excludeAjaxDataValidation === true || !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData))
+ && xhr[AjaxMonitor.DisabledPropertyName] !== true;
+ };
+ AjaxMonitor.prototype.supportsMonitoring = function () {
+ var result = false;
+ if (!ApplicationInsights.extensions.IsNullOrUndefined(XMLHttpRequest)) {
+ result = true;
+ }
+ return result;
+ };
+ AjaxMonitor.prototype.instrumentOpen = function () {
+ var originalOpen = XMLHttpRequest.prototype.open;
+ var ajaxMonitorInstance = this;
+ XMLHttpRequest.prototype.open = function (method, url, async) {
+ try {
+ if (ajaxMonitorInstance.isMonitoredInstance(this, true) &&
+ (!this.ajaxData ||
+ !this.ajaxData.xhrMonitoringState.openDone)) {
+ ajaxMonitorInstance.openHandler(this, method, url, async);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen, "Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.", {
+ ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
+ exception: Microsoft.ApplicationInsights.Util.dump(e)
+ }));
+ }
+ return originalOpen.apply(this, arguments);
+ };
+ };
+ AjaxMonitor.prototype.openHandler = function (xhr, method, url, async) {
+ var ajaxData = new ApplicationInsights.ajaxRecord(ApplicationInsights.Util.newId());
+ ajaxData.method = method;
+ ajaxData.requestUrl = url;
+ ajaxData.xhrMonitoringState.openDone = true;
+ xhr.ajaxData = ajaxData;
+ this.attachToOnReadyStateChange(xhr);
+ };
+ AjaxMonitor.getFailedAjaxDiagnosticsMessage = function (xhr) {
+ var result = "";
+ try {
+ if (!ApplicationInsights.extensions.IsNullOrUndefined(xhr) &&
+ !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData) &&
+ !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData.requestUrl)) {
+ result += "(url: '" + xhr.ajaxData.requestUrl + "')";
+ }
+ }
+ catch (e) { }
+ return result;
+ };
+ AjaxMonitor.prototype.instrumentSend = function () {
+ var originalSend = XMLHttpRequest.prototype.send;
+ var ajaxMonitorInstance = this;
+ XMLHttpRequest.prototype.send = function (content) {
+ try {
+ if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.sendDone) {
+ ajaxMonitorInstance.sendHandler(this, content);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend, "Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.", {
+ ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
+ exception: Microsoft.ApplicationInsights.Util.dump(e)
+ }));
+ }
+ return originalSend.apply(this, arguments);
+ };
+ };
+ AjaxMonitor.prototype.sendHandler = function (xhr, content) {
+ xhr.ajaxData.requestSentTime = ApplicationInsights.dateTime.Now();
+ if (!this.appInsights.config.disableCorrelationHeaders && (ApplicationInsights.UrlHelper.parseUrl(xhr.ajaxData.getAbsoluteUrl()).host == this.currentWindowHost)) {
+ xhr.setRequestHeader("x-ms-request-id", xhr.ajaxData.id);
+ }
+ xhr.ajaxData.xhrMonitoringState.sendDone = true;
+ };
+ AjaxMonitor.prototype.instrumentAbort = function () {
+ var originalAbort = XMLHttpRequest.prototype.abort;
+ var ajaxMonitorInstance = this;
+ XMLHttpRequest.prototype.abort = function () {
+ try {
+ if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.abortDone) {
+ this.ajaxData.aborted = 1;
+ this.ajaxData.xhrMonitoringState.abortDone = true;
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort, "Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.", {
+ ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this),
+ exception: Microsoft.ApplicationInsights.Util.dump(e)
+ }));
+ }
+ return originalAbort.apply(this, arguments);
+ };
+ };
+ AjaxMonitor.prototype.attachToOnReadyStateChange = function (xhr) {
+ var ajaxMonitorInstance = this;
+ xhr.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached = ApplicationInsights.EventHelper.AttachEvent(xhr, "readystatechange", function () {
+ try {
+ if (ajaxMonitorInstance.isMonitoredInstance(xhr)) {
+ if (xhr.readyState === 4) {
+ ajaxMonitorInstance.onAjaxComplete(xhr);
+ }
+ }
+ }
+ catch (e) {
+ var exceptionText = Microsoft.ApplicationInsights.Util.dump(e);
+ if (!exceptionText || exceptionText.toLowerCase().indexOf("c00c023f") == -1) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC, "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", {
+ ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),
+ exception: Microsoft.ApplicationInsights.Util.dump(e)
+ }));
+ }
+ }
+ });
+ };
+ AjaxMonitor.prototype.onAjaxComplete = function (xhr) {
+ xhr.ajaxData.responseFinishedTime = ApplicationInsights.dateTime.Now();
+ xhr.ajaxData.status = xhr.status;
+ xhr.ajaxData.CalculateMetrics();
+ if (xhr.ajaxData.ajaxTotalDuration < 0) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur, "Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.", {
+ ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr),
+ requestSentTime: xhr.ajaxData.requestSentTime,
+ responseFinishedTime: xhr.ajaxData.responseFinishedTime
+ }));
+ }
+ else {
+ this.appInsights.trackAjax(xhr.ajaxData.id, xhr.ajaxData.getAbsoluteUrl(), xhr.ajaxData.getPathName(), xhr.ajaxData.ajaxTotalDuration, (+(xhr.ajaxData.status)) >= 200 && (+(xhr.ajaxData.status)) < 400, +xhr.ajaxData.status);
+ xhr.ajaxData = null;
+ }
+ };
+ AjaxMonitor.instrumentedByAppInsightsName = "InstrumentedByAppInsights";
+ AjaxMonitor.DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
+ return AjaxMonitor;
+ })();
+ ApplicationInsights.AjaxMonitor = AjaxMonitor;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var HashCodeScoreGenerator = (function () {
+ function HashCodeScoreGenerator() {
+ }
+ HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {
+ var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;
+ return score * 100;
+ };
+ HashCodeScoreGenerator.prototype.getHashCode = function (input) {
+ if (input == "") {
+ return 0;
+ }
+ while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {
+ input = input.concat(input);
+ }
+ var hash = 5381;
+ for (var i = 0; i < input.length; ++i) {
+ hash = ((hash << 5) + hash) + input.charCodeAt(i);
+ hash = hash & hash;
+ }
+ return Math.abs(hash);
+ };
+ HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;
+ HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;
+ return HashCodeScoreGenerator;
+ })();
+ ApplicationInsights.HashCodeScoreGenerator = HashCodeScoreGenerator;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ (function (FieldType) {
+ FieldType[FieldType["Default"] = 0] = "Default";
+ FieldType[FieldType["Required"] = 1] = "Required";
+ FieldType[FieldType["Array"] = 2] = "Array";
+ FieldType[FieldType["Hidden"] = 4] = "Hidden";
+ })(ApplicationInsights.FieldType || (ApplicationInsights.FieldType = {}));
+ var FieldType = ApplicationInsights.FieldType;
+ ;
+ var Serializer = (function () {
+ function Serializer() {
+ }
+ Serializer.serialize = function (input) {
+ var output = Serializer._serializeObject(input, "root");
+ return JSON.stringify(output);
+ };
+ Serializer._serializeObject = function (source, name) {
+ var circularReferenceCheck = "__aiCircularRefCheck";
+ var output = {};
+ if (!source) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObject, "cannot serialize object because it is null or undefined", { name: name }));
+ return output;
+ }
+ if (source[circularReferenceCheck]) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CircularReferenceDetected, "Circular reference detected while serializing object", { name: name }));
+ return output;
+ }
+ if (!source.aiDataContract) {
+ if (name === "measurements") {
+ output = Serializer._serializeStringMap(source, "number", name);
+ }
+ else if (name === "properties") {
+ output = Serializer._serializeStringMap(source, "string", name);
+ }
+ else if (name === "tags") {
+ output = Serializer._serializeStringMap(source, "string", name);
+ }
+ else if (ApplicationInsights.Util.isArray(source)) {
+ output = Serializer._serializeArray(source, name);
+ }
+ else {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObjectNonSerializable, "Attempting to serialize an object which does not implement ISerializable", { name: name }));
+ try {
+ JSON.stringify(source);
+ output = source;
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, e && typeof e.toString === 'function' ? e.toString() : "Error serializing object");
+ }
+ }
+ return output;
+ }
+ source[circularReferenceCheck] = true;
+ for (var field in source.aiDataContract) {
+ var contract = source.aiDataContract[field];
+ var isRequired = (typeof contract === "function") ? (contract() & FieldType.Required) : (contract & FieldType.Required);
+ var isHidden = (typeof contract === "function") ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);
+ var isArray = contract & FieldType.Array;
+ var isPresent = source[field] !== undefined;
+ var isObject = typeof source[field] === "object" && source[field] !== null;
+ if (isRequired && !isPresent && !isArray) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_MissingRequiredFieldSpecification, "Missing required field specification. The field is required but not present on source", { field: field, name: name }));
+ continue;
+ }
+ if (isHidden) {
+ continue;
+ }
+ var value;
+ if (isObject) {
+ if (isArray) {
+ value = Serializer._serializeArray(source[field], field);
+ }
+ else {
+ value = Serializer._serializeObject(source[field], field);
+ }
+ }
+ else {
+ value = source[field];
+ }
+ if (value !== undefined) {
+ output[field] = value;
+ }
+ }
+ delete source[circularReferenceCheck];
+ return output;
+ };
+ Serializer._serializeArray = function (sources, name) {
+ var output = undefined;
+ if (!!sources) {
+ if (!ApplicationInsights.Util.isArray(sources)) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ItemNotInArray, "This field was specified as an array in the contract but the item is not an array.\r\n", { name: name }));
+ }
+ else {
+ output = [];
+ for (var i = 0; i < sources.length; i++) {
+ var source = sources[i];
+ var item = Serializer._serializeObject(source, name + "[" + i + "]");
+ output.push(item);
+ }
+ }
+ }
+ return output;
+ };
+ Serializer._serializeStringMap = function (map, expectedType, name) {
+ var output = undefined;
+ if (map) {
+ output = {};
+ for (var field in map) {
+ var value = map[field];
+ if (expectedType === "string") {
+ if (value === undefined) {
+ output[field] = "undefined";
+ }
+ else if (value === null) {
+ output[field] = "null";
+ }
+ else if (!value.toString) {
+ output[field] = "invalid field: toString() is not defined.";
+ }
+ else {
+ output[field] = value.toString();
+ }
+ }
+ else if (expectedType === "number") {
+ if (value === undefined) {
+ output[field] = "undefined";
+ }
+ else if (value === null) {
+ output[field] = "null";
+ }
+ else {
+ var num = parseFloat(value);
+ if (isNaN(num)) {
+ output[field] = "NaN";
+ }
+ else {
+ output[field] = num;
+ }
+ }
+ }
+ else {
+ output[field] = "invalid field: " + name + " is of unknown type.";
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, output[field]);
+ }
+ }
+ }
+ return output;
+ };
+ return Serializer;
+ })();
+ ApplicationInsights.Serializer = Serializer;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Base = (function () {
+ function Base() {
+ }
+ return Base;
+ })();
+ Telemetry.Base = Base;
+ })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Envelope = (function () {
+ function Envelope() {
+ this.ver = 1;
+ this.sampleRate = 100.0;
+ this.tags = {};
+ }
+ return Envelope;
+ })();
+ Telemetry.Envelope = Envelope;
+ })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ __.prototype = b.prototype;
+ d.prototype = new __();
+};
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ var Common;
+ (function (Common) {
+ "use strict";
+ var Envelope = (function (_super) {
+ __extends(Envelope, _super);
+ function Envelope(data, name) {
+ var _this = this;
+ _super.call(this);
+ this.name = name;
+ this.data = data;
+ this.time = ApplicationInsights.Util.toISOStringForIE8(new Date());
+ this.aiDataContract = {
+ time: ApplicationInsights.FieldType.Required,
+ iKey: ApplicationInsights.FieldType.Required,
+ name: ApplicationInsights.FieldType.Required,
+ sampleRate: function () {
+ return (_this.sampleRate == 100) ? ApplicationInsights.FieldType.Hidden : ApplicationInsights.FieldType.Required;
+ },
+ tags: ApplicationInsights.FieldType.Required,
+ data: ApplicationInsights.FieldType.Required
+ };
+ }
+ return Envelope;
+ })(Microsoft.Telemetry.Envelope);
+ Common.Envelope = Envelope;
+ })(Common = Telemetry.Common || (Telemetry.Common = {}));
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ var Common;
+ (function (Common) {
+ "use strict";
+ var Base = (function (_super) {
+ __extends(Base, _super);
+ function Base() {
+ _super.apply(this, arguments);
+ this.aiDataContract = {};
+ }
+ return Base;
+ })(Microsoft.Telemetry.Base);
+ Common.Base = Base;
+ })(Common = Telemetry.Common || (Telemetry.Common = {}));
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ var ContextTagKeys = (function () {
+ function ContextTagKeys() {
+ this.applicationVersion = "ai.application.ver";
+ this.applicationBuild = "ai.application.build";
+ this.applicationTypeId = "ai.application.typeId";
+ this.applicationId = "ai.application.applicationId";
+ this.deviceId = "ai.device.id";
+ this.deviceIp = "ai.device.ip";
+ this.deviceLanguage = "ai.device.language";
+ this.deviceLocale = "ai.device.locale";
+ this.deviceModel = "ai.device.model";
+ this.deviceNetwork = "ai.device.network";
+ this.deviceNetworkName = "ai.device.networkName";
+ this.deviceOEMName = "ai.device.oemName";
+ this.deviceOS = "ai.device.os";
+ this.deviceOSVersion = "ai.device.osVersion";
+ this.deviceRoleInstance = "ai.device.roleInstance";
+ this.deviceRoleName = "ai.device.roleName";
+ this.deviceScreenResolution = "ai.device.screenResolution";
+ this.deviceType = "ai.device.type";
+ this.deviceMachineName = "ai.device.machineName";
+ this.deviceVMName = "ai.device.vmName";
+ this.locationIp = "ai.location.ip";
+ this.operationId = "ai.operation.id";
+ this.operationName = "ai.operation.name";
+ this.operationParentId = "ai.operation.parentId";
+ this.operationRootId = "ai.operation.rootId";
+ this.operationSyntheticSource = "ai.operation.syntheticSource";
+ this.operationIsSynthetic = "ai.operation.isSynthetic";
+ this.operationCorrelationVector = "ai.operation.correlationVector";
+ this.sessionId = "ai.session.id";
+ this.sessionIsFirst = "ai.session.isFirst";
+ this.sessionIsNew = "ai.session.isNew";
+ this.userAccountAcquisitionDate = "ai.user.accountAcquisitionDate";
+ this.userAccountId = "ai.user.accountId";
+ this.userAgent = "ai.user.userAgent";
+ this.userId = "ai.user.id";
+ this.userStoreRegion = "ai.user.storeRegion";
+ this.userAuthUserId = "ai.user.authUserId";
+ this.userAnonymousUserAcquisitionDate = "ai.user.anonUserAcquisitionDate";
+ this.userAuthenticatedUserAcquisitionDate = "ai.user.authUserAcquisitionDate";
+ this.sampleRate = "ai.sample.sampleRate";
+ this.cloudName = "ai.cloud.name";
+ this.cloudRoleVer = "ai.cloud.roleVer";
+ this.cloudEnvironment = "ai.cloud.environment";
+ this.cloudLocation = "ai.cloud.location";
+ this.cloudDeploymentUnit = "ai.cloud.deploymentUnit";
+ this.serverDeviceOS = "ai.serverDevice.os";
+ this.serverDeviceOSVer = "ai.serverDevice.osVer";
+ this.internalSdkVersion = "ai.internal.sdkVersion";
+ this.internalAgentVersion = "ai.internal.agentVersion";
+ this.internalDataCollectorReceivedTime = "ai.internal.dataCollectorReceivedTime";
+ this.internalProfileId = "ai.internal.profileId";
+ this.internalProfileClassId = "ai.internal.profileClassId";
+ this.internalAccountId = "ai.internal.accountId";
+ this.internalApplicationName = "ai.internal.applicationName";
+ this.internalInstrumentationKey = "ai.internal.instrumentationKey";
+ this.internalTelemetryItemId = "ai.internal.telemetryItemId";
+ this.internalApplicationType = "ai.internal.applicationType";
+ this.internalRequestSource = "ai.internal.requestSource";
+ this.internalFlowType = "ai.internal.flowType";
+ this.internalIsAudit = "ai.internal.isAudit";
+ this.internalTrackingSourceId = "ai.internal.trackingSourceId";
+ this.internalTrackingType = "ai.internal.trackingType";
+ this.internalIsDiagnosticExample = "ai.internal.isDiagnosticExample";
+ }
+ return ContextTagKeys;
+ })();
+ AI.ContextTagKeys = ContextTagKeys;
+})(AI || (AI = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Application = (function () {
+ function Application() {
+ }
+ return Application;
+ })();
+ Context.Application = Application;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Device = (function () {
+ function Device() {
+ this.id = "browser";
+ this.type = "Browser";
+ }
+ return Device;
+ })();
+ Context.Device = Device;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Internal = (function () {
+ function Internal() {
+ this.sdkVersion = "JavaScript:" + ApplicationInsights.Version;
+ }
+ return Internal;
+ })();
+ Context.Internal = Internal;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Location = (function () {
+ function Location() {
+ }
+ return Location;
+ })();
+ Context.Location = Location;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Operation = (function () {
+ function Operation() {
+ this.id = ApplicationInsights.Util.newId();
+ if (window && window.location && window.location.pathname) {
+ this.name = window.location.pathname;
+ }
+ }
+ return Operation;
+ })();
+ Context.Operation = Operation;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var SamplingScoreGenerator = (function () {
+ function SamplingScoreGenerator() {
+ this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator();
+ }
+ SamplingScoreGenerator.prototype.getSamplingScore = function (envelope) {
+ var tagKeys = new AI.ContextTagKeys();
+ var score = 0;
+ if (envelope.tags[tagKeys.userId]) {
+ score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.userId]);
+ }
+ else if (envelope.tags[tagKeys.operationId]) {
+ score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.operationId]);
+ }
+ else {
+ score = Math.random();
+ }
+ return score;
+ };
+ return SamplingScoreGenerator;
+ })();
+ ApplicationInsights.SamplingScoreGenerator = SamplingScoreGenerator;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Sample = (function () {
+ function Sample(sampleRate) {
+ this.INT_MAX_VALUE = 2147483647;
+ if (sampleRate > 100 || sampleRate < 0) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SampleRateOutOfRange, "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate }));
+ this.sampleRate = 100;
+ }
+ this.sampleRate = sampleRate;
+ this.samplingScoreGenerator = new ApplicationInsights.SamplingScoreGenerator();
+ }
+ Sample.prototype.isSampledIn = function (envelope) {
+ if (this.sampleRate == 100)
+ return true;
+ var score = this.samplingScoreGenerator.getSamplingScore(envelope);
+ return score < this.sampleRate;
+ };
+ return Sample;
+ })();
+ Context.Sample = Sample;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ (function (SessionState) {
+ SessionState[SessionState["Start"] = 0] = "Start";
+ SessionState[SessionState["End"] = 1] = "End";
+ })(AI.SessionState || (AI.SessionState = {}));
+ var SessionState = AI.SessionState;
+})(AI || (AI = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var Session = (function () {
+ function Session() {
+ }
+ return Session;
+ })();
+ Context.Session = Session;
+ var _SessionManager = (function () {
+ function _SessionManager(config) {
+ if (!config) {
+ config = {};
+ }
+ if (!(typeof config.sessionExpirationMs === "function")) {
+ config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };
+ }
+ if (!(typeof config.sessionRenewalMs === "function")) {
+ config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };
+ }
+ this.config = config;
+ this.automaticSession = new Session();
+ }
+ _SessionManager.prototype.update = function () {
+ if (!this.automaticSession.id) {
+ this.initializeAutomaticSession();
+ }
+ var now = +new Date;
+ var acquisitionExpired = now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs();
+ var renewalExpired = now - this.automaticSession.renewalDate > this.config.sessionRenewalMs();
+ if (acquisitionExpired || renewalExpired) {
+ this.automaticSession.isFirst = undefined;
+ this.renew();
+ }
+ else {
+ this.automaticSession.renewalDate = +new Date;
+ this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
+ }
+ };
+ _SessionManager.prototype.backup = function () {
+ this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
+ };
+ _SessionManager.prototype.initializeAutomaticSession = function () {
+ var cookie = ApplicationInsights.Util.getCookie('ai_session');
+ if (cookie && typeof cookie.split === "function") {
+ this.initializeAutomaticSessionWithData(cookie);
+ }
+ else {
+ var storage = ApplicationInsights.Util.getStorage('ai_session');
+ if (storage) {
+ this.initializeAutomaticSessionWithData(storage);
+ }
+ }
+ if (!this.automaticSession.id) {
+ this.automaticSession.isFirst = true;
+ this.renew();
+ }
+ };
+ _SessionManager.prototype.initializeAutomaticSessionWithData = function (sessionData) {
+ var params = sessionData.split("|");
+ if (params.length > 0) {
+ this.automaticSession.id = params[0];
+ }
+ try {
+ if (params.length > 1) {
+ var acq = +params[1];
+ this.automaticSession.acquisitionDate = +new Date(acq);
+ this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0;
+ }
+ if (params.length > 2) {
+ var renewal = +params[2];
+ this.automaticSession.renewalDate = +new Date(renewal);
+ this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0;
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie, "Error parsing ai_session cookie, session will be reset: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ if (this.automaticSession.renewalDate == 0) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero, "AI session renewal date is 0, session will be reset."));
+ }
+ };
+ _SessionManager.prototype.renew = function () {
+ var now = +new Date;
+ this.automaticSession.id = ApplicationInsights.Util.newId();
+ this.automaticSession.acquisitionDate = now;
+ this.automaticSession.renewalDate = now;
+ this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate);
+ if (!ApplicationInsights.Util.canUseLocalStorage()) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage, "Browser does not support local storage. Session durations will be inaccurate."));
+ }
+ };
+ _SessionManager.prototype.setCookie = function (guid, acq, renewal) {
+ var acquisitionExpiry = acq + this.config.sessionExpirationMs();
+ var renewalExpiry = renewal + this.config.sessionRenewalMs();
+ var cookieExpiry = new Date();
+ var cookie = [guid, acq, renewal];
+ if (acquisitionExpiry < renewalExpiry) {
+ cookieExpiry.setTime(acquisitionExpiry);
+ }
+ else {
+ cookieExpiry.setTime(renewalExpiry);
+ }
+ var cookieDomnain = this.config.cookieDomain ? this.config.cookieDomain() : null;
+ ApplicationInsights.Util.setCookie('ai_session', cookie.join('|') + ';expires=' + cookieExpiry.toUTCString(), cookieDomnain);
+ };
+ _SessionManager.prototype.setStorage = function (guid, acq, renewal) {
+ ApplicationInsights.Util.setStorage('ai_session', [guid, acq, renewal].join('|'));
+ };
+ _SessionManager.acquisitionSpan = 86400000;
+ _SessionManager.renewalSpan = 1800000;
+ return _SessionManager;
+ })();
+ Context._SessionManager = _SessionManager;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Context;
+ (function (Context) {
+ "use strict";
+ var User = (function () {
+ function User(config) {
+ var cookie = ApplicationInsights.Util.getCookie(User.userCookieName);
+ if (cookie) {
+ var params = cookie.split(User.cookieSeparator);
+ if (params.length > 0) {
+ this.id = params[0];
+ }
+ }
+ this.config = config;
+ if (!this.id) {
+ this.id = ApplicationInsights.Util.newId();
+ var date = new Date();
+ var acqStr = ApplicationInsights.Util.toISOStringForIE8(date);
+ this.accountAcquisitionDate = acqStr;
+ date.setTime(date.getTime() + 31536000000);
+ var newCookie = [this.id, acqStr];
+ var cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined;
+ ApplicationInsights.Util.setCookie(User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain);
+ ApplicationInsights.Util.removeStorage('ai_session');
+ }
+ this.accountId = config.accountId ? config.accountId() : undefined;
+ var authCookie = ApplicationInsights.Util.getCookie(User.authUserCookieName);
+ if (authCookie) {
+ authCookie = decodeURI(authCookie);
+ var authCookieString = authCookie.split(User.cookieSeparator);
+ if (authCookieString[0]) {
+ this.authenticatedId = authCookieString[0];
+ }
+ if (authCookieString.length > 1 && authCookieString[1]) {
+ this.accountId = authCookieString[1];
+ }
+ }
+ }
+ User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) {
+ var isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId));
+ if (isInvalidInput) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailedAccountName, "Setting auth user context failed. " +
+ "User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars."));
+ return;
+ }
+ this.authenticatedId = authenticatedUserId;
+ var authCookie = this.authenticatedId;
+ if (accountId) {
+ this.accountId = accountId;
+ authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator);
+ }
+ ApplicationInsights.Util.setCookie(User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain());
+ };
+ User.prototype.clearAuthenticatedUserContext = function () {
+ this.authenticatedId = null;
+ this.accountId = null;
+ ApplicationInsights.Util.deleteCookie(User.authUserCookieName);
+ };
+ User.prototype.validateUserInput = function (id) {
+ if (typeof id !== 'string' ||
+ !id ||
+ id.match(/,|;|=| |\|/)) {
+ return false;
+ }
+ return true;
+ };
+ User.cookieSeparator = '|';
+ User.userCookieName = 'ai_user';
+ User.authUserCookieName = 'ai_authUser';
+ return User;
+ })();
+ Context.User = User;
+ })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var DataLossAnalyzer = (function () {
+ function DataLossAnalyzer() {
+ }
+ DataLossAnalyzer.reset = function () {
+ if (DataLossAnalyzer.isEnabled()) {
+ ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, "0");
+ }
+ };
+ DataLossAnalyzer.isEnabled = function () {
+ return DataLossAnalyzer.enabled &&
+ DataLossAnalyzer.appInsights != null &&
+ ApplicationInsights.Util.canUseSessionStorage();
+ };
+ DataLossAnalyzer.getIssuesReported = function () {
+ var result = (!DataLossAnalyzer.isEnabled() || isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY))) ?
+ 0 :
+ +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY);
+ return result;
+ };
+ DataLossAnalyzer.incrementItemsQueued = function () {
+ try {
+ if (DataLossAnalyzer.isEnabled()) {
+ var itemsQueued = DataLossAnalyzer.getNumberOfLostItems();
+ ++itemsQueued;
+ ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString());
+ }
+ }
+ catch (e) { }
+ };
+ DataLossAnalyzer.decrementItemsQueued = function (countOfItemsSentSuccessfully) {
+ try {
+ if (DataLossAnalyzer.isEnabled()) {
+ var itemsQueued = DataLossAnalyzer.getNumberOfLostItems();
+ itemsQueued -= countOfItemsSentSuccessfully;
+ if (itemsQueued < 0)
+ itemsQueued = 0;
+ ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString());
+ }
+ }
+ catch (e) { }
+ };
+ DataLossAnalyzer.getNumberOfLostItems = function () {
+ var result = 0;
+ try {
+ if (DataLossAnalyzer.isEnabled()) {
+ result = isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY)) ?
+ 0 :
+ +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY);
+ }
+ }
+ catch (e) {
+ result = 0;
+ }
+ return result;
+ };
+ DataLossAnalyzer.reportLostItems = function () {
+ try {
+ if (DataLossAnalyzer.isEnabled() &&
+ DataLossAnalyzer.getIssuesReported() < DataLossAnalyzer.LIMIT_PER_SESSION &&
+ DataLossAnalyzer.getNumberOfLostItems() > 0) {
+ DataLossAnalyzer.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: "
+ + DataLossAnalyzer.getNumberOfLostItems(), null);
+ DataLossAnalyzer.appInsights.flush();
+ var issuesReported = DataLossAnalyzer.getIssuesReported();
+ ++issuesReported;
+ ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY, issuesReported.toString());
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToReportDataLoss, "Failed to report data loss: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ finally {
+ try {
+ DataLossAnalyzer.reset();
+ }
+ catch (e) { }
+ }
+ };
+ DataLossAnalyzer.enabled = false;
+ DataLossAnalyzer.LIMIT_PER_SESSION = 10;
+ DataLossAnalyzer.ITEMS_QUEUED_KEY = "AI_itemsQueued";
+ DataLossAnalyzer.ISSUES_REPORTED_KEY = "AI_lossIssuesReported";
+ return DataLossAnalyzer;
+ })();
+ ApplicationInsights.DataLossAnalyzer = DataLossAnalyzer;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+;
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var Sender = (function () {
+ function Sender(config) {
+ this._buffer = [];
+ this._lastSend = 0;
+ this._config = config;
+ this._sender = null;
+ if (typeof XMLHttpRequest != "undefined") {
+ var testXhr = new XMLHttpRequest();
+ if ("withCredentials" in testXhr) {
+ this._sender = this._xhrSender;
+ }
+ else if (typeof XDomainRequest !== "undefined") {
+ this._sender = this._xdrSender;
+ }
+ }
+ }
+ Sender.prototype.send = function (envelope) {
+ var _this = this;
+ try {
+ if (this._config.disableTelemetry()) {
+ return;
+ }
+ if (!envelope) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry, "Cannot send empty telemetry"));
+ return;
+ }
+ if (!this._sender) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SenderNotInitialized, "Sender was not initialized"));
+ return;
+ }
+ var payload = ApplicationInsights.Serializer.serialize(envelope);
+ if (this._getSizeInBytes(this._buffer) + payload.length > this._config.maxBatchSizeInBytes()) {
+ this.triggerSend();
+ }
+ this._buffer.push(payload);
+ if (!this._timeoutHandle) {
+ this._timeoutHandle = setTimeout(function () {
+ _this._timeoutHandle = null;
+ _this.triggerSend();
+ }, this._config.maxBatchInterval());
+ }
+ ApplicationInsights.DataLossAnalyzer.incrementItemsQueued();
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ Sender.prototype._getSizeInBytes = function (list) {
+ var size = 0;
+ if (list && list.length) {
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i];
+ if (item && item.length) {
+ size += item.length;
+ }
+ }
+ }
+ return size;
+ };
+ Sender.prototype.triggerSend = function (async) {
+ var isAsync = true;
+ if (typeof async === 'boolean') {
+ isAsync = async;
+ }
+ try {
+ if (!this._config.disableTelemetry()) {
+ if (this._buffer.length) {
+ var batch = this._config.emitLineDelimitedJson() ?
+ this._buffer.join("\n") :
+ "[" + this._buffer.join(",") + "]";
+ this._sender(batch, isAsync, this._buffer.length);
+ }
+ this._lastSend = +new Date;
+ }
+ this._buffer.length = 0;
+ clearTimeout(this._timeoutHandle);
+ this._timeoutHandle = null;
+ }
+ catch (e) {
+ if (!ApplicationInsights.Util.getIEVersion() || ApplicationInsights.Util.getIEVersion() > 9) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ }
+ };
+ Sender.prototype._xhrSender = function (payload, isAsync, countOfItemsInPayload) {
+ var xhr = new XMLHttpRequest();
+ xhr[ApplicationInsights.AjaxMonitor.DisabledPropertyName] = true;
+ xhr.open("POST", this._config.endpointUrl(), isAsync);
+ xhr.setRequestHeader("Content-type", "application/json");
+ xhr.onreadystatechange = function () { return Sender._xhrReadyStateChange(xhr, payload, countOfItemsInPayload); };
+ xhr.onerror = function (event) { return Sender._onError(payload, xhr.responseText || xhr.response || "", event); };
+ xhr.send(payload);
+ };
+ Sender.prototype._xdrSender = function (payload, isAsync) {
+ var xdr = new XDomainRequest();
+ xdr.onload = function () { return Sender._xdrOnLoad(xdr, payload); };
+ xdr.onerror = function (event) { return Sender._onError(payload, xdr.responseText || "", event); };
+ xdr.open('POST', this._config.endpointUrl());
+ xdr.send(payload);
+ };
+ Sender._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {
+ if (xhr.readyState === 4) {
+ if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {
+ Sender._onError(payload, xhr.responseText || xhr.response || "");
+ }
+ else {
+ Sender._onSuccess(payload, countOfItemsInPayload);
+ }
+ }
+ };
+ Sender._xdrOnLoad = function (xdr, payload) {
+ if (xdr && (xdr.responseText + "" === "200" || xdr.responseText === "")) {
+ Sender._onSuccess(payload, 0);
+ }
+ else {
+ Sender._onError(payload, xdr && xdr.responseText || "");
+ }
+ };
+ Sender._onError = function (payload, message, event) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_OnError, "Failed to send telemetry.", { message: message }));
+ };
+ Sender._onSuccess = function (payload, countOfItemsInPayload) {
+ ApplicationInsights.DataLossAnalyzer.decrementItemsQueued(countOfItemsInPayload);
+ };
+ return Sender;
+ })();
+ ApplicationInsights.Sender = Sender;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var SplitTest = (function () {
+ function SplitTest() {
+ this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator();
+ }
+ SplitTest.prototype.isEnabled = function (key, percentEnabled) {
+ return this.hashCodeGeneragor.getHashCodeScore(key) < percentEnabled;
+ };
+ return SplitTest;
+ })();
+ ApplicationInsights.SplitTest = SplitTest;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var Microsoft;
+(function (Microsoft) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Domain = (function () {
+ function Domain() {
+ }
+ return Domain;
+ })();
+ Telemetry.Domain = Domain;
+ })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
+})(Microsoft || (Microsoft = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ (function (SeverityLevel) {
+ SeverityLevel[SeverityLevel["Verbose"] = 0] = "Verbose";
+ SeverityLevel[SeverityLevel["Information"] = 1] = "Information";
+ SeverityLevel[SeverityLevel["Warning"] = 2] = "Warning";
+ SeverityLevel[SeverityLevel["Error"] = 3] = "Error";
+ SeverityLevel[SeverityLevel["Critical"] = 4] = "Critical";
+ })(AI.SeverityLevel || (AI.SeverityLevel = {}));
+ var SeverityLevel = AI.SeverityLevel;
+})(AI || (AI = {}));
+///
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var MessageData = (function (_super) {
+ __extends(MessageData, _super);
+ function MessageData() {
+ this.ver = 2;
+ this.properties = {};
+ _super.call(this);
+ }
+ return MessageData;
+ })(Microsoft.Telemetry.Domain);
+ AI.MessageData = MessageData;
+})(AI || (AI = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ var Common;
+ (function (Common) {
+ "use strict";
+ var DataSanitizer = (function () {
+ function DataSanitizer() {
+ }
+ DataSanitizer.sanitizeKeyAndAddUniqueness = function (key, map) {
+ var origLength = key.length;
+ var field = DataSanitizer.sanitizeKey(key);
+ if (field.length !== origLength) {
+ var i = 0;
+ var uniqueField = field;
+ while (map[uniqueField] !== undefined) {
+ i++;
+ uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);
+ }
+ field = uniqueField;
+ }
+ return field;
+ };
+ DataSanitizer.sanitizeKey = function (name) {
+ if (name) {
+ name = ApplicationInsights.Util.trim(name.toString());
+ if (name.search(/[^0-9a-zA-Z-._()\/ ]/g) >= 0) {
+ name = name.replace(/[^0-9a-zA-Z-._()\/ ]/g, "_");
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_IllegalCharsInName, "name contains illegal characters. Illegal characters have been replaced with '_'.", { newName: name }));
+ }
+ if (name.length > DataSanitizer.MAX_NAME_LENGTH) {
+ name = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_NameTooLong, "name is too long. It has been truncated to " + DataSanitizer.MAX_NAME_LENGTH + " characters.", { name: name }));
+ }
+ }
+ return name;
+ };
+ DataSanitizer.sanitizeString = function (value) {
+ if (value) {
+ value = ApplicationInsights.Util.trim(value);
+ if (value.toString().length > DataSanitizer.MAX_STRING_LENGTH) {
+ value = value.toString().substring(0, DataSanitizer.MAX_STRING_LENGTH);
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StringValueTooLong, "string value is too long. It has been truncated to " + DataSanitizer.MAX_STRING_LENGTH + " characters.", { value: value }));
+ }
+ }
+ return value;
+ };
+ DataSanitizer.sanitizeUrl = function (url) {
+ if (url) {
+ if (url.length > DataSanitizer.MAX_URL_LENGTH) {
+ url = url.substring(0, DataSanitizer.MAX_URL_LENGTH);
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_UrlTooLong, "url is too long, it has been trucated to " + DataSanitizer.MAX_URL_LENGTH + " characters.", { url: url }));
+ }
+ }
+ return url;
+ };
+ DataSanitizer.sanitizeMessage = function (message) {
+ if (message) {
+ if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {
+ message = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MessageTruncated, "message is too long, it has been trucated to " + DataSanitizer.MAX_MESSAGE_LENGTH + " characters.", { message: message }));
+ }
+ }
+ return message;
+ };
+ DataSanitizer.sanitizeException = function (exception) {
+ if (exception) {
+ if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {
+ exception = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ExceptionTruncated, "exception is too long, it has been trucated to " + DataSanitizer.MAX_EXCEPTION_LENGTH + " characters.", { exception: exception }));
+ }
+ }
+ return exception;
+ };
+ DataSanitizer.sanitizeProperties = function (properties) {
+ if (properties) {
+ var tempProps = {};
+ for (var prop in properties) {
+ var value = DataSanitizer.sanitizeString(properties[prop]);
+ prop = DataSanitizer.sanitizeKeyAndAddUniqueness(prop, tempProps);
+ tempProps[prop] = value;
+ }
+ properties = tempProps;
+ }
+ return properties;
+ };
+ DataSanitizer.sanitizeMeasurements = function (measurements) {
+ if (measurements) {
+ var tempMeasurements = {};
+ for (var measure in measurements) {
+ var value = measurements[measure];
+ measure = DataSanitizer.sanitizeKeyAndAddUniqueness(measure, tempMeasurements);
+ tempMeasurements[measure] = value;
+ }
+ measurements = tempMeasurements;
+ }
+ return measurements;
+ };
+ DataSanitizer.padNumber = function (num) {
+ var s = "00" + num;
+ return s.substr(s.length - 3);
+ };
+ DataSanitizer.MAX_NAME_LENGTH = 150;
+ DataSanitizer.MAX_STRING_LENGTH = 1024;
+ DataSanitizer.MAX_URL_LENGTH = 2048;
+ DataSanitizer.MAX_MESSAGE_LENGTH = 32768;
+ DataSanitizer.MAX_EXCEPTION_LENGTH = 32768;
+ return DataSanitizer;
+ })();
+ Common.DataSanitizer = DataSanitizer;
+ })(Common = Telemetry.Common || (Telemetry.Common = {}));
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Trace = (function (_super) {
+ __extends(Trace, _super);
+ function Trace(message, properties) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ message: ApplicationInsights.FieldType.Required,
+ severityLevel: ApplicationInsights.FieldType.Default,
+ measurements: ApplicationInsights.FieldType.Default,
+ properties: ApplicationInsights.FieldType.Default
+ };
+ message = message || ApplicationInsights.Util.NotSpecified;
+ this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(message);
+ this.properties = Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ }
+ Trace.envelopeType = "Microsoft.ApplicationInsights.{0}.Message";
+ Trace.dataType = "MessageData";
+ return Trace;
+ })(AI.MessageData);
+ Telemetry.Trace = Trace;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var EventData = (function (_super) {
+ __extends(EventData, _super);
+ function EventData() {
+ this.ver = 2;
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return EventData;
+ })(Microsoft.Telemetry.Domain);
+ AI.EventData = EventData;
+})(AI || (AI = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Event = (function (_super) {
+ __extends(Event, _super);
+ function Event(name, properties, measurements) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ name: ApplicationInsights.FieldType.Required,
+ properties: ApplicationInsights.FieldType.Default,
+ measurements: ApplicationInsights.FieldType.Default
+ };
+ this.name = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeString(name);
+ this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
+ }
+ Event.envelopeType = "Microsoft.ApplicationInsights.{0}.Event";
+ Event.dataType = "EventData";
+ return Event;
+ })(AI.EventData);
+ Telemetry.Event = Event;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ var ExceptionDetails = (function () {
+ function ExceptionDetails() {
+ this.hasFullStack = true;
+ this.parsedStack = [];
+ }
+ return ExceptionDetails;
+ })();
+ AI.ExceptionDetails = ExceptionDetails;
+})(AI || (AI = {}));
+///
+///
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var ExceptionData = (function (_super) {
+ __extends(ExceptionData, _super);
+ function ExceptionData() {
+ this.ver = 2;
+ this.exceptions = [];
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return ExceptionData;
+ })(Microsoft.Telemetry.Domain);
+ AI.ExceptionData = ExceptionData;
+})(AI || (AI = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ var StackFrame = (function () {
+ function StackFrame() {
+ }
+ return StackFrame;
+ })();
+ AI.StackFrame = StackFrame;
+})(AI || (AI = {}));
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Exception = (function (_super) {
+ __extends(Exception, _super);
+ function Exception(exception, handledAt, properties, measurements) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ handledAt: ApplicationInsights.FieldType.Required,
+ exceptions: ApplicationInsights.FieldType.Required,
+ severityLevel: ApplicationInsights.FieldType.Default,
+ properties: ApplicationInsights.FieldType.Default,
+ measurements: ApplicationInsights.FieldType.Default
+ };
+ this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
+ this.handledAt = handledAt || "unhandled";
+ this.exceptions = [new _ExceptionDetails(exception)];
+ }
+ Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line, handledAt) {
+ return {
+ handledAt: handledAt || "unhandled",
+ exceptions: [
+ {
+ hasFullStack: true,
+ message: message,
+ stack: details,
+ typeName: typeName,
+ parsedStack: [
+ {
+ level: 0,
+ assembly: assembly,
+ fileName: fileName,
+ line: line,
+ method: "unknown"
+ }
+ ]
+ }
+ ]
+ };
+ };
+ Exception.envelopeType = "Microsoft.ApplicationInsights.{0}.Exception";
+ Exception.dataType = "ExceptionData";
+ return Exception;
+ })(AI.ExceptionData);
+ Telemetry.Exception = Exception;
+ var _ExceptionDetails = (function (_super) {
+ __extends(_ExceptionDetails, _super);
+ function _ExceptionDetails(exception) {
+ _super.call(this);
+ this.aiDataContract = {
+ id: ApplicationInsights.FieldType.Default,
+ outerId: ApplicationInsights.FieldType.Default,
+ typeName: ApplicationInsights.FieldType.Required,
+ message: ApplicationInsights.FieldType.Required,
+ hasFullStack: ApplicationInsights.FieldType.Default,
+ stack: ApplicationInsights.FieldType.Default,
+ parsedStack: ApplicationInsights.FieldType.Array
+ };
+ this.typeName = Telemetry.Common.DataSanitizer.sanitizeString(exception.name || ApplicationInsights.Util.NotSpecified);
+ this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(exception.message || ApplicationInsights.Util.NotSpecified);
+ var stack = exception["stack"];
+ this.parsedStack = this.parseStack(stack);
+ this.stack = Telemetry.Common.DataSanitizer.sanitizeException(stack);
+ this.hasFullStack = ApplicationInsights.Util.isArray(this.parsedStack) && this.parsedStack.length > 0;
+ }
+ _ExceptionDetails.prototype.parseStack = function (stack) {
+ var parsedStack = undefined;
+ if (typeof stack === "string") {
+ var frames = stack.split('\n');
+ parsedStack = [];
+ var level = 0;
+ var totalSizeInBytes = 0;
+ for (var i = 0; i <= frames.length; i++) {
+ var frame = frames[i];
+ if (_StackFrame.regex.test(frame)) {
+ var parsedFrame = new _StackFrame(frames[i], level++);
+ totalSizeInBytes += parsedFrame.sizeInBytes;
+ parsedStack.push(parsedFrame);
+ }
+ }
+ var exceptionParsedStackThreshold = 32 * 1024;
+ if (totalSizeInBytes > exceptionParsedStackThreshold) {
+ var left = 0;
+ var right = parsedStack.length - 1;
+ var size = 0;
+ var acceptedLeft = left;
+ var acceptedRight = right;
+ while (left < right) {
+ var lSize = parsedStack[left].sizeInBytes;
+ var rSize = parsedStack[right].sizeInBytes;
+ size += lSize + rSize;
+ if (size > exceptionParsedStackThreshold) {
+ var howMany = acceptedRight - acceptedLeft + 1;
+ parsedStack.splice(acceptedLeft, howMany);
+ break;
+ }
+ acceptedLeft = left;
+ acceptedRight = right;
+ left++;
+ right--;
+ }
+ }
+ }
+ return parsedStack;
+ };
+ return _ExceptionDetails;
+ })(AI.ExceptionDetails);
+ var _StackFrame = (function (_super) {
+ __extends(_StackFrame, _super);
+ function _StackFrame(frame, level) {
+ _super.call(this);
+ this.sizeInBytes = 0;
+ this.aiDataContract = {
+ level: ApplicationInsights.FieldType.Required,
+ method: ApplicationInsights.FieldType.Required,
+ assembly: ApplicationInsights.FieldType.Default,
+ fileName: ApplicationInsights.FieldType.Default,
+ line: ApplicationInsights.FieldType.Default
+ };
+ this.level = level;
+ this.method = "";
+ this.assembly = ApplicationInsights.Util.trim(frame);
+ var matches = frame.match(_StackFrame.regex);
+ if (matches && matches.length >= 5) {
+ this.method = ApplicationInsights.Util.trim(matches[2]) || this.method;
+ this.fileName = ApplicationInsights.Util.trim(matches[4]);
+ this.line = parseInt(matches[5]) || 0;
+ }
+ this.sizeInBytes += this.method.length;
+ this.sizeInBytes += this.fileName.length;
+ this.sizeInBytes += this.assembly.length;
+ this.sizeInBytes += _StackFrame.baseSize;
+ this.sizeInBytes += this.level.toString().length;
+ this.sizeInBytes += this.line.toString().length;
+ }
+ _StackFrame.regex = /^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/;
+ _StackFrame.baseSize = 58;
+ return _StackFrame;
+ })(AI.StackFrame);
+ Telemetry._StackFrame = _StackFrame;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var MetricData = (function (_super) {
+ __extends(MetricData, _super);
+ function MetricData() {
+ this.ver = 2;
+ this.metrics = [];
+ this.properties = {};
+ _super.call(this);
+ }
+ return MetricData;
+ })(Microsoft.Telemetry.Domain);
+ AI.MetricData = MetricData;
+})(AI || (AI = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ (function (DataPointType) {
+ DataPointType[DataPointType["Measurement"] = 0] = "Measurement";
+ DataPointType[DataPointType["Aggregation"] = 1] = "Aggregation";
+ })(AI.DataPointType || (AI.DataPointType = {}));
+ var DataPointType = AI.DataPointType;
+})(AI || (AI = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var DataPoint = (function () {
+ function DataPoint() {
+ this.kind = AI.DataPointType.Measurement;
+ }
+ return DataPoint;
+ })();
+ AI.DataPoint = DataPoint;
+})(AI || (AI = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ var Common;
+ (function (Common) {
+ "use strict";
+ var DataPoint = (function (_super) {
+ __extends(DataPoint, _super);
+ function DataPoint() {
+ _super.apply(this, arguments);
+ this.aiDataContract = {
+ name: ApplicationInsights.FieldType.Required,
+ kind: ApplicationInsights.FieldType.Default,
+ value: ApplicationInsights.FieldType.Required,
+ count: ApplicationInsights.FieldType.Default,
+ min: ApplicationInsights.FieldType.Default,
+ max: ApplicationInsights.FieldType.Default,
+ stdDev: ApplicationInsights.FieldType.Default
+ };
+ }
+ return DataPoint;
+ })(AI.DataPoint);
+ Common.DataPoint = DataPoint;
+ })(Common = Telemetry.Common || (Telemetry.Common = {}));
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Metric = (function (_super) {
+ __extends(Metric, _super);
+ function Metric(name, value, count, min, max, properties) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ metrics: ApplicationInsights.FieldType.Required,
+ properties: ApplicationInsights.FieldType.Default
+ };
+ var dataPoint = new Microsoft.ApplicationInsights.Telemetry.Common.DataPoint();
+ dataPoint.count = count > 0 ? count : undefined;
+ dataPoint.max = isNaN(max) || max === null ? undefined : max;
+ dataPoint.min = isNaN(min) || min === null ? undefined : min;
+ dataPoint.name = Telemetry.Common.DataSanitizer.sanitizeString(name);
+ dataPoint.value = value;
+ this.metrics = [dataPoint];
+ this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ }
+ Metric.envelopeType = "Microsoft.ApplicationInsights.{0}.Metric";
+ Metric.dataType = "MetricData";
+ return Metric;
+ })(AI.MetricData);
+ Telemetry.Metric = Metric;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var PageViewData = (function (_super) {
+ __extends(PageViewData, _super);
+ function PageViewData() {
+ this.ver = 2;
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return PageViewData;
+ })(AI.EventData);
+ AI.PageViewData = PageViewData;
+})(AI || (AI = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var PageView = (function (_super) {
+ __extends(PageView, _super);
+ function PageView(name, url, durationMs, properties, measurements) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ name: ApplicationInsights.FieldType.Default,
+ url: ApplicationInsights.FieldType.Default,
+ duration: ApplicationInsights.FieldType.Default,
+ properties: ApplicationInsights.FieldType.Default,
+ measurements: ApplicationInsights.FieldType.Default
+ };
+ this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url);
+ this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified);
+ if (!isNaN(durationMs)) {
+ this.duration = ApplicationInsights.Util.msToTimeSpan(durationMs);
+ }
+ this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
+ }
+ PageView.envelopeType = "Microsoft.ApplicationInsights.{0}.Pageview";
+ PageView.dataType = "PageviewData";
+ return PageView;
+ })(AI.PageViewData);
+ Telemetry.PageView = PageView;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var PageViewPerfData = (function (_super) {
+ __extends(PageViewPerfData, _super);
+ function PageViewPerfData() {
+ this.ver = 2;
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return PageViewPerfData;
+ })(AI.PageViewData);
+ AI.PageViewPerfData = PageViewPerfData;
+})(AI || (AI = {}));
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var PageViewPerformance = (function (_super) {
+ __extends(PageViewPerformance, _super);
+ function PageViewPerformance(name, url, unused, properties, measurements) {
+ _super.call(this);
+ this.aiDataContract = {
+ ver: ApplicationInsights.FieldType.Required,
+ name: ApplicationInsights.FieldType.Default,
+ url: ApplicationInsights.FieldType.Default,
+ duration: ApplicationInsights.FieldType.Default,
+ perfTotal: ApplicationInsights.FieldType.Default,
+ networkConnect: ApplicationInsights.FieldType.Default,
+ sentRequest: ApplicationInsights.FieldType.Default,
+ receivedResponse: ApplicationInsights.FieldType.Default,
+ domProcessing: ApplicationInsights.FieldType.Default,
+ properties: ApplicationInsights.FieldType.Default,
+ measurements: ApplicationInsights.FieldType.Default
+ };
+ this.isValid = false;
+ var timing = PageViewPerformance.getPerformanceTiming();
+ if (timing) {
+ var total = PageViewPerformance.getDuration(timing.navigationStart, timing.loadEventEnd);
+ var network = PageViewPerformance.getDuration(timing.navigationStart, timing.connectEnd);
+ var request = PageViewPerformance.getDuration(timing.requestStart, timing.responseStart);
+ var response = PageViewPerformance.getDuration(timing.responseStart, timing.responseEnd);
+ var dom = PageViewPerformance.getDuration(timing.responseEnd, timing.loadEventEnd);
+ if (total == 0) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorPVCalc, "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom }));
+ }
+ else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ClientPerformanceMathError, "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom }));
+ }
+ else {
+ this.durationMs = total;
+ this.perfTotal = this.duration = ApplicationInsights.Util.msToTimeSpan(total);
+ this.networkConnect = ApplicationInsights.Util.msToTimeSpan(network);
+ this.sentRequest = ApplicationInsights.Util.msToTimeSpan(request);
+ this.receivedResponse = ApplicationInsights.Util.msToTimeSpan(response);
+ this.domProcessing = ApplicationInsights.Util.msToTimeSpan(dom);
+ this.isValid = true;
+ }
+ }
+ this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url);
+ this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified);
+ this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties);
+ this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements);
+ }
+ PageViewPerformance.prototype.getIsValid = function () {
+ return this.isValid;
+ };
+ PageViewPerformance.prototype.getDurationMs = function () {
+ return this.durationMs;
+ };
+ PageViewPerformance.getPerformanceTiming = function () {
+ if (typeof window != "undefined" && window.performance && window.performance.timing) {
+ return window.performance.timing;
+ }
+ return null;
+ };
+ PageViewPerformance.isPerformanceTimingSupported = function () {
+ return typeof window != "undefined" && window.performance && window.performance.timing;
+ };
+ PageViewPerformance.isPerformanceTimingDataReady = function () {
+ var timing = window.performance.timing;
+ return timing.domainLookupStart > 0
+ && timing.navigationStart > 0
+ && timing.responseStart > 0
+ && timing.requestStart > 0
+ && timing.loadEventEnd > 0
+ && timing.responseEnd > 0
+ && timing.connectEnd > 0
+ && timing.domLoading > 0;
+ };
+ PageViewPerformance.getDuration = function (start, end) {
+ var duration = 0;
+ if (!(isNaN(start) || isNaN(end))) {
+ duration = Math.max(end - start, 0);
+ }
+ return duration;
+ };
+ PageViewPerformance.envelopeType = "Microsoft.ApplicationInsights.{0}.PageviewPerformance";
+ PageViewPerformance.dataType = "PageviewPerformanceData";
+ return PageViewPerformance;
+ })(AI.PageViewPerfData);
+ Telemetry.PageViewPerformance = PageViewPerformance;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+///
+///
+///
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var TelemetryContext = (function () {
+ function TelemetryContext(config) {
+ this._config = config;
+ this._sender = new ApplicationInsights.Sender(config);
+ if (typeof window !== 'undefined') {
+ this._sessionManager = new ApplicationInsights.Context._SessionManager(config);
+ this.application = new ApplicationInsights.Context.Application();
+ this.device = new ApplicationInsights.Context.Device();
+ this.internal = new ApplicationInsights.Context.Internal();
+ this.location = new ApplicationInsights.Context.Location();
+ this.user = new ApplicationInsights.Context.User(config);
+ this.operation = new ApplicationInsights.Context.Operation();
+ this.session = new ApplicationInsights.Context.Session();
+ this.sample = new ApplicationInsights.Context.Sample(config.sampleRate());
+ }
+ }
+ TelemetryContext.prototype.addTelemetryInitializer = function (telemetryInitializer) {
+ this.telemetryInitializers = this.telemetryInitializers || [];
+ this.telemetryInitializers.push(telemetryInitializer);
+ };
+ TelemetryContext.prototype.track = function (envelope) {
+ if (!envelope) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TrackArgumentsNotSpecified, "cannot call .track() with a null or undefined argument"));
+ }
+ else {
+ if (envelope.name === ApplicationInsights.Telemetry.PageView.envelopeType) {
+ ApplicationInsights._InternalLogging.resetInternalMessageCount();
+ }
+ if (this.session) {
+ if (typeof this.session.id !== "string") {
+ this._sessionManager.update();
+ }
+ }
+ this._track(envelope);
+ }
+ return envelope;
+ };
+ TelemetryContext.prototype._track = function (envelope) {
+ if (this.session) {
+ if (typeof this.session.id === "string") {
+ this._applySessionContext(envelope, this.session);
+ }
+ else {
+ this._applySessionContext(envelope, this._sessionManager.automaticSession);
+ }
+ }
+ this._applyApplicationContext(envelope, this.application);
+ this._applyDeviceContext(envelope, this.device);
+ this._applyInternalContext(envelope, this.internal);
+ this._applyLocationContext(envelope, this.location);
+ this._applySampleContext(envelope, this.sample);
+ this._applyUserContext(envelope, this.user);
+ this._applyOperationContext(envelope, this.operation);
+ envelope.iKey = this._config.instrumentationKey();
+ var doNotSendItem = false;
+ try {
+ this.telemetryInitializers = this.telemetryInitializers || [];
+ var telemetryInitializersCount = this.telemetryInitializers.length;
+ for (var i = 0; i < telemetryInitializersCount; ++i) {
+ var telemetryInitializer = this.telemetryInitializers[i];
+ if (telemetryInitializer) {
+ if (telemetryInitializer.apply(null, [envelope]) === false) {
+ doNotSendItem = true;
+ break;
+ }
+ }
+ }
+ }
+ catch (e) {
+ doNotSendItem = true;
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ if (!doNotSendItem) {
+ if (envelope.name === ApplicationInsights.Telemetry.Metric.envelopeType ||
+ this.sample.isSampledIn(envelope)) {
+ var iKeyNoDashes = this._config.instrumentationKey().replace(/-/g, "");
+ envelope.name = envelope.name.replace("{0}", iKeyNoDashes);
+ this._sender.send(envelope);
+ }
+ else {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TelemetrySampledAndNotSent, "Telemetry is sampled and not sent to the AI service.", { SampleRate: this.sample.sampleRate }));
+ }
+ }
+ return envelope;
+ };
+ TelemetryContext.prototype._applyApplicationContext = function (envelope, appContext) {
+ if (appContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof appContext.ver === "string") {
+ envelope.tags[tagKeys.applicationVersion] = appContext.ver;
+ }
+ if (typeof appContext.build === "string") {
+ envelope.tags[tagKeys.applicationBuild] = appContext.build;
+ }
+ }
+ };
+ TelemetryContext.prototype._applyDeviceContext = function (envelope, deviceContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (deviceContext) {
+ if (typeof deviceContext.id === "string") {
+ envelope.tags[tagKeys.deviceId] = deviceContext.id;
+ }
+ if (typeof deviceContext.ip === "string") {
+ envelope.tags[tagKeys.deviceIp] = deviceContext.ip;
+ }
+ if (typeof deviceContext.language === "string") {
+ envelope.tags[tagKeys.deviceLanguage] = deviceContext.language;
+ }
+ if (typeof deviceContext.locale === "string") {
+ envelope.tags[tagKeys.deviceLocale] = deviceContext.locale;
+ }
+ if (typeof deviceContext.model === "string") {
+ envelope.tags[tagKeys.deviceModel] = deviceContext.model;
+ }
+ if (typeof deviceContext.network !== "undefined") {
+ envelope.tags[tagKeys.deviceNetwork] = deviceContext.network;
+ }
+ if (typeof deviceContext.oemName === "string") {
+ envelope.tags[tagKeys.deviceOEMName] = deviceContext.oemName;
+ }
+ if (typeof deviceContext.os === "string") {
+ envelope.tags[tagKeys.deviceOS] = deviceContext.os;
+ }
+ if (typeof deviceContext.osversion === "string") {
+ envelope.tags[tagKeys.deviceOSVersion] = deviceContext.osversion;
+ }
+ if (typeof deviceContext.resolution === "string") {
+ envelope.tags[tagKeys.deviceScreenResolution] = deviceContext.resolution;
+ }
+ if (typeof deviceContext.type === "string") {
+ envelope.tags[tagKeys.deviceType] = deviceContext.type;
+ }
+ }
+ };
+ TelemetryContext.prototype._applyInternalContext = function (envelope, internalContext) {
+ if (internalContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof internalContext.agentVersion === "string") {
+ envelope.tags[tagKeys.internalAgentVersion] = internalContext.agentVersion;
+ }
+ if (typeof internalContext.sdkVersion === "string") {
+ envelope.tags[tagKeys.internalSdkVersion] = internalContext.sdkVersion;
+ }
+ }
+ };
+ TelemetryContext.prototype._applyLocationContext = function (envelope, locationContext) {
+ if (locationContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof locationContext.ip === "string") {
+ envelope.tags[tagKeys.locationIp] = locationContext.ip;
+ }
+ }
+ };
+ TelemetryContext.prototype._applyOperationContext = function (envelope, operationContext) {
+ if (operationContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof operationContext.id === "string") {
+ envelope.tags[tagKeys.operationId] = operationContext.id;
+ }
+ if (typeof operationContext.name === "string") {
+ envelope.tags[tagKeys.operationName] = operationContext.name;
+ }
+ if (typeof operationContext.parentId === "string") {
+ envelope.tags[tagKeys.operationParentId] = operationContext.parentId;
+ }
+ if (typeof operationContext.rootId === "string") {
+ envelope.tags[tagKeys.operationRootId] = operationContext.rootId;
+ }
+ if (typeof operationContext.syntheticSource === "string") {
+ envelope.tags[tagKeys.operationSyntheticSource] = operationContext.syntheticSource;
+ }
+ }
+ };
+ TelemetryContext.prototype._applySampleContext = function (envelope, sampleContext) {
+ if (sampleContext) {
+ envelope.sampleRate = sampleContext.sampleRate;
+ }
+ };
+ TelemetryContext.prototype._applySessionContext = function (envelope, sessionContext) {
+ if (sessionContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof sessionContext.id === "string") {
+ envelope.tags[tagKeys.sessionId] = sessionContext.id;
+ }
+ if (typeof sessionContext.isFirst !== "undefined") {
+ envelope.tags[tagKeys.sessionIsFirst] = sessionContext.isFirst;
+ }
+ }
+ };
+ TelemetryContext.prototype._applyUserContext = function (envelope, userContext) {
+ if (userContext) {
+ var tagKeys = new AI.ContextTagKeys();
+ if (typeof userContext.accountId === "string") {
+ envelope.tags[tagKeys.userAccountId] = userContext.accountId;
+ }
+ if (typeof userContext.agent === "string") {
+ envelope.tags[tagKeys.userAgent] = userContext.agent;
+ }
+ if (typeof userContext.id === "string") {
+ envelope.tags[tagKeys.userId] = userContext.id;
+ }
+ if (typeof userContext.authenticatedId === "string") {
+ envelope.tags[tagKeys.userAuthUserId] = userContext.authenticatedId;
+ }
+ if (typeof userContext.storeRegion === "string") {
+ envelope.tags[tagKeys.userStoreRegion] = userContext.storeRegion;
+ }
+ }
+ };
+ return TelemetryContext;
+ })();
+ ApplicationInsights.TelemetryContext = TelemetryContext;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var Data = (function (_super) {
+ __extends(Data, _super);
+ function Data() {
+ _super.call(this);
+ }
+ return Data;
+ })(Microsoft.Telemetry.Base);
+ Telemetry.Data = Data;
+ })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ var Common;
+ (function (Common) {
+ "use strict";
+ var Data = (function (_super) {
+ __extends(Data, _super);
+ function Data(type, data) {
+ _super.call(this);
+ this.aiDataContract = {
+ baseType: ApplicationInsights.FieldType.Required,
+ baseData: ApplicationInsights.FieldType.Required
+ };
+ this.baseType = type;
+ this.baseData = data;
+ }
+ return Data;
+ })(Microsoft.Telemetry.Data);
+ Common.Data = Data;
+ })(Common = Telemetry.Common || (Telemetry.Common = {}));
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var PageViewManager = (function () {
+ function PageViewManager(appInsights, overridePageViewDuration) {
+ this.pageViewPerformanceSent = false;
+ this.overridePageViewDuration = false;
+ this.overridePageViewDuration = overridePageViewDuration;
+ this.appInsights = appInsights;
+ }
+ PageViewManager.prototype.trackPageView = function (name, url, properties, measurements, duration) {
+ var _this = this;
+ if (typeof name !== "string") {
+ name = window.document && window.document.title || "";
+ }
+ if (typeof url !== "string") {
+ url = window.location && window.location.href || "";
+ }
+ var pageViewSent = false;
+ var customDuration = 0;
+ if (Telemetry.PageViewPerformance.isPerformanceTimingSupported()) {
+ var start = Telemetry.PageViewPerformance.getPerformanceTiming().navigationStart;
+ customDuration = Telemetry.PageViewPerformance.getDuration(start, +new Date);
+ }
+ else {
+ this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : 0, properties, measurements);
+ this.appInsights.flush();
+ pageViewSent = true;
+ }
+ if (this.overridePageViewDuration || !isNaN(duration)) {
+ this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : customDuration, properties, measurements);
+ this.appInsights.flush();
+ pageViewSent = true;
+ }
+ var maxDurationLimit = 60000;
+ if (!Telemetry.PageViewPerformance.isPerformanceTimingSupported()) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_NavigationTimingNotSupported, "trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info."));
+ return;
+ }
+ var handle = setInterval(function () {
+ try {
+ if (Telemetry.PageViewPerformance.isPerformanceTimingDataReady()) {
+ clearInterval(handle);
+ var pageViewPerformance = new Telemetry.PageViewPerformance(name, url, null, properties, measurements);
+ if (!pageViewPerformance.getIsValid() && !pageViewSent) {
+ _this.appInsights.sendPageViewInternal(name, url, customDuration, properties, measurements);
+ _this.appInsights.flush();
+ }
+ else {
+ if (!pageViewSent) {
+ _this.appInsights.sendPageViewInternal(name, url, pageViewPerformance.getDurationMs(), properties, measurements);
+ }
+ if (!_this.pageViewPerformanceSent) {
+ _this.appInsights.sendPageViewPerformanceInternal(pageViewPerformance);
+ _this.pageViewPerformanceSent = true;
+ }
+ _this.appInsights.flush();
+ }
+ }
+ else if (Telemetry.PageViewPerformance.getDuration(start, +new Date) > maxDurationLimit) {
+ clearInterval(handle);
+ if (!pageViewSent) {
+ _this.appInsights.sendPageViewInternal(name, url, maxDurationLimit, properties, measurements);
+ _this.appInsights.flush();
+ }
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailedCalc, "trackPageView failed on page load calculation: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ }, 100);
+ };
+ return PageViewManager;
+ })();
+ Telemetry.PageViewManager = PageViewManager;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var PageVisitTimeManager = (function () {
+ function PageVisitTimeManager(pageVisitTimeTrackingHandler) {
+ this.prevPageVisitDataKeyName = "prevPageVisitData";
+ this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;
+ }
+ PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {
+ try {
+ var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);
+ if (prevPageVisitTimeData) {
+ this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: " + ApplicationInsights.Util.dump(e));
+ }
+ };
+ PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {
+ try {
+ var prevPageVisitData = this.stopPageVisitTimer();
+ this.startPageVisitTimer(pageName, pageUrl);
+ return prevPageVisitData;
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.warnToConsole("Call to restart failed: " + ApplicationInsights.Util.dump(e));
+ return null;
+ }
+ };
+ PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {
+ try {
+ if (ApplicationInsights.Util.canUseSessionStorage()) {
+ if (ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName) != null) {
+ throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit");
+ }
+ var currPageVisitData = new PageVisitData(pageName, pageUrl);
+ var currPageVisitDataStr = JSON.stringify(currPageVisitData);
+ ApplicationInsights.Util.setSessionStorage(this.prevPageVisitDataKeyName, currPageVisitDataStr);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.warnToConsole("Call to start failed: " + ApplicationInsights.Util.dump(e));
+ }
+ };
+ PageVisitTimeManager.prototype.stopPageVisitTimer = function () {
+ try {
+ if (ApplicationInsights.Util.canUseSessionStorage()) {
+ var pageVisitEndTime = Date.now();
+ var pageVisitDataJsonStr = ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName);
+ if (pageVisitDataJsonStr) {
+ var prevPageVisitData = JSON.parse(pageVisitDataJsonStr);
+ prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;
+ ApplicationInsights.Util.removeSessionStorage(this.prevPageVisitDataKeyName);
+ return prevPageVisitData;
+ }
+ else {
+ return null;
+ }
+ }
+ return null;
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.warnToConsole("Stop page visit timer failed: " + ApplicationInsights.Util.dump(e));
+ return null;
+ }
+ };
+ return PageVisitTimeManager;
+ })();
+ Telemetry.PageVisitTimeManager = PageVisitTimeManager;
+ var PageVisitData = (function () {
+ function PageVisitData(pageName, pageUrl) {
+ this.pageVisitStartTime = Date.now();
+ this.pageName = pageName;
+ this.pageUrl = pageUrl;
+ }
+ return PageVisitData;
+ })();
+ Telemetry.PageVisitData = PageVisitData;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ (function (DependencyKind) {
+ DependencyKind[DependencyKind["SQL"] = 0] = "SQL";
+ DependencyKind[DependencyKind["Http"] = 1] = "Http";
+ DependencyKind[DependencyKind["Other"] = 2] = "Other";
+ })(AI.DependencyKind || (AI.DependencyKind = {}));
+ var DependencyKind = AI.DependencyKind;
+})(AI || (AI = {}));
+var AI;
+(function (AI) {
+ "use strict";
+ (function (DependencySourceType) {
+ DependencySourceType[DependencySourceType["Undefined"] = 0] = "Undefined";
+ DependencySourceType[DependencySourceType["Aic"] = 1] = "Aic";
+ DependencySourceType[DependencySourceType["Apmc"] = 2] = "Apmc";
+ })(AI.DependencySourceType || (AI.DependencySourceType = {}));
+ var DependencySourceType = AI.DependencySourceType;
+})(AI || (AI = {}));
+///
+///
+///
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var RemoteDependencyData = (function (_super) {
+ __extends(RemoteDependencyData, _super);
+ function RemoteDependencyData() {
+ this.ver = 2;
+ this.kind = AI.DataPointType.Aggregation;
+ this.dependencyKind = AI.DependencyKind.Other;
+ this.success = true;
+ this.dependencySource = AI.DependencySourceType.Apmc;
+ this.properties = {};
+ _super.call(this);
+ }
+ return RemoteDependencyData;
+ })(Microsoft.Telemetry.Domain);
+ AI.RemoteDependencyData = RemoteDependencyData;
+})(AI || (AI = {}));
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ var Telemetry;
+ (function (Telemetry) {
+ "use strict";
+ var RemoteDependencyData = (function (_super) {
+ __extends(RemoteDependencyData, _super);
+ function RemoteDependencyData(id, name, commandName, value, success, resultCode) {
+ _super.call(this);
+ this.aiDataContract = {
+ id: ApplicationInsights.FieldType.Required,
+ ver: ApplicationInsights.FieldType.Required,
+ name: ApplicationInsights.FieldType.Default,
+ kind: ApplicationInsights.FieldType.Required,
+ value: ApplicationInsights.FieldType.Default,
+ count: ApplicationInsights.FieldType.Default,
+ min: ApplicationInsights.FieldType.Default,
+ max: ApplicationInsights.FieldType.Default,
+ stdDev: ApplicationInsights.FieldType.Default,
+ dependencyKind: ApplicationInsights.FieldType.Default,
+ success: ApplicationInsights.FieldType.Default,
+ async: ApplicationInsights.FieldType.Default,
+ dependencySource: ApplicationInsights.FieldType.Default,
+ commandName: ApplicationInsights.FieldType.Default,
+ dependencyTypeName: ApplicationInsights.FieldType.Default,
+ properties: ApplicationInsights.FieldType.Default,
+ resultCode: ApplicationInsights.FieldType.Default
+ };
+ this.id = id;
+ this.name = name;
+ this.commandName = commandName;
+ this.value = value;
+ this.success = success;
+ this.resultCode = resultCode + "";
+ this.dependencyKind = AI.DependencyKind.Http;
+ this.dependencyTypeName = "Ajax";
+ }
+ RemoteDependencyData.envelopeType = "Microsoft.ApplicationInsights.{0}.RemoteDependency";
+ RemoteDependencyData.dataType = "RemoteDependencyData";
+ return RemoteDependencyData;
+ })(AI.RemoteDependencyData);
+ Telemetry.RemoteDependencyData = RemoteDependencyData;
+ })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {}));
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ ApplicationInsights.Version = "0.22.9";
+ var AppInsights = (function () {
+ function AppInsights(config) {
+ var _this = this;
+ this._trackAjaxAttempts = 0;
+ this.config = config || {};
+ var defaults = AppInsights.defaultConfig;
+ if (defaults !== undefined) {
+ for (var field in defaults) {
+ if (this.config[field] === undefined) {
+ this.config[field] = defaults[field];
+ }
+ }
+ }
+ ApplicationInsights._InternalLogging.verboseLogging = function () { return _this.config.verboseLogging; };
+ ApplicationInsights._InternalLogging.enableDebugExceptions = function () { return _this.config.enableDebug; };
+ var configGetters = {
+ instrumentationKey: function () { return _this.config.instrumentationKey; },
+ accountId: function () { return _this.config.accountId; },
+ sessionRenewalMs: function () { return _this.config.sessionRenewalMs; },
+ sessionExpirationMs: function () { return _this.config.sessionExpirationMs; },
+ endpointUrl: function () { return _this.config.endpointUrl; },
+ emitLineDelimitedJson: function () { return _this.config.emitLineDelimitedJson; },
+ maxBatchSizeInBytes: function () { return _this.config.maxBatchSizeInBytes; },
+ maxBatchInterval: function () { return _this.config.maxBatchInterval; },
+ disableTelemetry: function () { return _this.config.disableTelemetry; },
+ sampleRate: function () { return _this.config.samplingPercentage; },
+ cookieDomain: function () { return _this.config.cookieDomain; }
+ };
+ this.context = new ApplicationInsights.TelemetryContext(configGetters);
+ this._pageViewManager = new Microsoft.ApplicationInsights.Telemetry.PageViewManager(this, this.config.overridePageViewDuration);
+ this._eventTracking = new Timing("trackEvent");
+ this._eventTracking.action = function (name, url, duration, properties, measurements) {
+ if (!measurements) {
+ measurements = { duration: duration };
+ }
+ else {
+ if (isNaN(measurements["duration"])) {
+ measurements["duration"] = duration;
+ }
+ }
+ var event = new ApplicationInsights.Telemetry.Event(name, properties, measurements);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, event);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType);
+ _this.context.track(envelope);
+ };
+ this._pageTracking = new Timing("trackPageView");
+ this._pageTracking.action = function (name, url, duration, properties, measurements) {
+ _this.sendPageViewInternal(name, url, duration, properties, measurements);
+ };
+ this._pageVisitTimeManager = new ApplicationInsights.Telemetry.PageVisitTimeManager(function (pageName, pageUrl, pageVisitTime) { return _this.trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
+ if (!this.config.disableAjaxTracking) {
+ new Microsoft.ApplicationInsights.AjaxMonitor(this);
+ }
+ }
+ AppInsights.prototype.sendPageViewInternal = function (name, url, duration, properties, measurements) {
+ var pageView = new ApplicationInsights.Telemetry.PageView(name, url, duration, properties, measurements);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageView.dataType, pageView);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.PageView.envelopeType);
+ this.context.track(envelope);
+ this._trackAjaxAttempts = 0;
+ };
+ AppInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance) {
+ var pageViewPerformanceData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageViewPerformance.dataType, pageViewPerformance);
+ var pageViewPerformanceEnvelope = new ApplicationInsights.Telemetry.Common.Envelope(pageViewPerformanceData, ApplicationInsights.Telemetry.PageViewPerformance.envelopeType);
+ this.context.track(pageViewPerformanceEnvelope);
+ };
+ AppInsights.prototype.startTrackPage = function (name) {
+ try {
+ if (typeof name !== "string") {
+ name = window.document && window.document.title || "";
+ }
+ this._pageTracking.start(name);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackFailed, "startTrackPage failed, page view may not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.stopTrackPage = function (name, url, properties, measurements) {
+ try {
+ if (typeof name !== "string") {
+ name = window.document && window.document.title || "";
+ }
+ if (typeof url !== "string") {
+ url = window.location && window.location.href || "";
+ }
+ this._pageTracking.stop(name, url, properties, measurements);
+ if (this.config.autoTrackPageVisitTime) {
+ this._pageVisitTimeManager.trackPreviousPageVisit(name, url);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackPageView = function (name, url, properties, measurements, duration) {
+ try {
+ this._pageViewManager.trackPageView(name, url, properties, measurements, duration);
+ if (this.config.autoTrackPageVisitTime) {
+ this._pageVisitTimeManager.trackPreviousPageVisit(name, url);
+ }
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailed, "trackPageView failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.startTrackEvent = function (name) {
+ try {
+ this._eventTracking.start(name);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.stopTrackEvent = function (name, properties, measurements) {
+ try {
+ this._eventTracking.stop(name, undefined, properties, measurements);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackEvent = function (name, properties, measurements) {
+ try {
+ var eventTelemetry = new ApplicationInsights.Telemetry.Event(name, properties, measurements);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, eventTelemetry);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType);
+ this.context.track(envelope);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackEventFailed, "trackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackAjax = function (id, absoluteUrl, pathName, totalTime, success, resultCode) {
+ if (this.config.maxAjaxCallsPerView === -1 ||
+ this._trackAjaxAttempts < this.config.maxAjaxCallsPerView) {
+ var dependency = new ApplicationInsights.Telemetry.RemoteDependencyData(id, absoluteUrl, pathName, totalTime, success, resultCode);
+ var dependencyData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.RemoteDependencyData.dataType, dependency);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(dependencyData, ApplicationInsights.Telemetry.RemoteDependencyData.envelopeType);
+ this.context.track(envelope);
+ }
+ else if (this._trackAjaxAttempts === this.config.maxAjaxCallsPerView) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MaxAjaxPerPVExceeded, "Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter."));
+ }
+ ++this._trackAjaxAttempts;
+ };
+ AppInsights.prototype.trackException = function (exception, handledAt, properties, measurements) {
+ try {
+ if (!ApplicationInsights.Util.isError(exception)) {
+ try {
+ throw new Error(exception);
+ }
+ catch (error) {
+ exception = error;
+ }
+ }
+ var exceptionTelemetry = new ApplicationInsights.Telemetry.Exception(exception, handledAt, properties, measurements);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionTelemetry);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType);
+ this.context.track(envelope);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackExceptionFailed, "trackException failed, exception will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackMetric = function (name, average, sampleCount, min, max, properties) {
+ try {
+ var telemetry = new ApplicationInsights.Telemetry.Metric(name, average, sampleCount, min, max, properties);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Metric.dataType, telemetry);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Metric.envelopeType);
+ this.context.track(envelope);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackMetricFailed, "trackMetric failed, metric will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackTrace = function (message, properties) {
+ try {
+ var telemetry = new ApplicationInsights.Telemetry.Trace(message, properties);
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Trace.dataType, telemetry);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Trace.envelopeType);
+ this.context.track(envelope);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackTraceFailed, "trackTrace failed, trace will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.trackPageVisitTime = function (pageName, pageUrl, pageVisitTime) {
+ var properties = { PageName: pageName, PageUrl: pageUrl };
+ this.trackMetric("PageVisitTime", pageVisitTime, 1, pageVisitTime, pageVisitTime, properties);
+ };
+ AppInsights.prototype.flush = function () {
+ try {
+ this.context._sender.triggerSend();
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FlushFailed, "flush failed, telemetry will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) {
+ try {
+ this.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId);
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Setting auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.clearAuthenticatedUserContext = function () {
+ try {
+ this.context.user.clearAuthenticatedUserContext();
+ }
+ catch (e) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Clearing auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) }));
+ }
+ };
+ AppInsights.prototype.SendCORSException = function (properties) {
+ var exceptionData = Microsoft.ApplicationInsights.Telemetry.Exception.CreateSimpleException("Script error.", "Error", "unknown", "unknown", "The browser’s same-origin policy prevents us from getting the details of this exception.The exception occurred in a script loaded from an origin different than the web page.For cross- domain error reporting you can use crossorigin attribute together with appropriate CORS HTTP headers.For more information please see http://www.w3.org/TR/cors/.", 0, null);
+ exceptionData.properties = properties;
+ var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionData);
+ var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType);
+ this.context.track(envelope);
+ };
+ AppInsights.prototype._onerror = function (message, url, lineNumber, columnNumber, error) {
+ try {
+ var properties = { url: url ? url : document.URL };
+ if (ApplicationInsights.Util.isCrossOriginError(message, url, lineNumber, columnNumber, error)) {
+ this.SendCORSException(properties);
+ }
+ else {
+ if (!ApplicationInsights.Util.isError(error)) {
+ var stack = "window.onerror@" + properties.url + ":" + lineNumber + ":" + (columnNumber || 0);
+ error = new Error(message);
+ error["stack"] = stack;
+ }
+ this.trackException(error, null, properties);
+ }
+ }
+ catch (exception) {
+ var errorString = error ? (error.name + ", " + error.message) : "null";
+ var exceptionDump = ApplicationInsights.Util.dump(exception);
+ ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ExceptionWhileLoggingError, "_onerror threw exception while logging error, error will not be collected: " + ApplicationInsights.Util.getExceptionName(exception), { exception: exceptionDump, errorString: errorString }));
+ }
+ };
+ return AppInsights;
+ })();
+ ApplicationInsights.AppInsights = AppInsights;
+ var Timing = (function () {
+ function Timing(name) {
+ this._name = name;
+ this._events = {};
+ }
+ Timing.prototype.start = function (name) {
+ if (typeof this._events[name] !== "undefined") {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: this._name, key: name }));
+ }
+ this._events[name] = +new Date;
+ };
+ Timing.prototype.stop = function (name, url, properties, measurements) {
+ var start = this._events[name];
+ if (isNaN(start)) {
+ ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StopCalledWithoutStart, "stop was called without a corresponding start.", { name: this._name, key: name }));
+ }
+ else {
+ var end = +new Date;
+ var duration = ApplicationInsights.Telemetry.PageViewPerformance.getDuration(start, end);
+ this.action(name, url, duration, properties, measurements);
+ }
+ delete this._events[name];
+ this._events[name] = undefined;
+ };
+ return Timing;
+ })();
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var AjaxCallData = (function (_super) {
+ __extends(AjaxCallData, _super);
+ function AjaxCallData() {
+ this.ver = 2;
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return AjaxCallData;
+ })(AI.PageViewData);
+ AI.AjaxCallData = AjaxCallData;
+})(AI || (AI = {}));
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var RequestData = (function (_super) {
+ __extends(RequestData, _super);
+ function RequestData() {
+ this.ver = 2;
+ this.properties = {};
+ this.measurements = {};
+ _super.call(this);
+ }
+ return RequestData;
+ })(Microsoft.Telemetry.Domain);
+ AI.RequestData = RequestData;
+})(AI || (AI = {}));
+///
+///
+var AI;
+(function (AI) {
+ "use strict";
+ var SessionStateData = (function (_super) {
+ __extends(SessionStateData, _super);
+ function SessionStateData() {
+ this.ver = 2;
+ this.state = AI.SessionState.Start;
+ _super.call(this);
+ }
+ return SessionStateData;
+ })(Microsoft.Telemetry.Domain);
+ AI.SessionStateData = SessionStateData;
+})(AI || (AI = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ var Initialization = (function () {
+ function Initialization(snippet) {
+ snippet.queue = snippet.queue || [];
+ var config = snippet.config || {};
+ if (config && !config.instrumentationKey) {
+ config = snippet;
+ if (config["iKey"]) {
+ Microsoft.ApplicationInsights.Version = "0.10.0.0";
+ config.instrumentationKey = config["iKey"];
+ }
+ else if (config["applicationInsightsId"]) {
+ Microsoft.ApplicationInsights.Version = "0.7.2.0";
+ config.instrumentationKey = config["applicationInsightsId"];
+ }
+ else {
+ throw new Error("Cannot load Application Insights SDK, no instrumentationKey was provided.");
+ }
+ }
+ config = Initialization.getDefaultConfig(config);
+ this.snippet = snippet;
+ this.config = config;
+ }
+ Initialization.prototype.loadAppInsights = function () {
+ var appInsights = new Microsoft.ApplicationInsights.AppInsights(this.config);
+ if (this.config["iKey"]) {
+ var originalTrackPageView = appInsights.trackPageView;
+ appInsights.trackPageView = function (pagePath, properties, measurements) {
+ originalTrackPageView.apply(appInsights, [null, pagePath, properties, measurements]);
+ };
+ }
+ var legacyPageView = "logPageView";
+ if (typeof this.snippet[legacyPageView] === "function") {
+ appInsights[legacyPageView] = function (pagePath, properties, measurements) {
+ appInsights.trackPageView(null, pagePath, properties, measurements);
+ };
+ }
+ var legacyEvent = "logEvent";
+ if (typeof this.snippet[legacyEvent] === "function") {
+ appInsights[legacyEvent] = function (name, properties, measurements) {
+ appInsights.trackEvent(name, properties, measurements);
+ };
+ }
+ return appInsights;
+ };
+ Initialization.prototype.emptyQueue = function () {
+ try {
+ if (Microsoft.ApplicationInsights.Util.isArray(this.snippet.queue)) {
+ var length = this.snippet.queue.length;
+ for (var i = 0; i < length; i++) {
+ var call = this.snippet.queue[i];
+ call();
+ }
+ this.snippet.queue = undefined;
+ delete this.snippet.queue;
+ }
+ }
+ catch (exception) {
+ var properties = {};
+ if (exception && typeof exception.toString === "function") {
+ properties.exception = exception.toString();
+ }
+ var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToSendQueuedTelemetry, "Failed to send queued telemetry", properties);
+ Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message);
+ }
+ };
+ Initialization.prototype.pollInteralLogs = function (appInsightsInstance) {
+ return setInterval(function () {
+ var queue = Microsoft.ApplicationInsights._InternalLogging.queue;
+ var length = queue.length;
+ for (var i = 0; i < length; i++) {
+ appInsightsInstance.trackTrace(queue[i].message);
+ }
+ queue.length = 0;
+ }, this.config.diagnosticLogInterval);
+ };
+ Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {
+ // Add callback to push events when the user navigates away
+ if (!appInsightsInstance.config.disableFlushOnBeforeUnload && ('onbeforeunload' in window)) {
+ var performHousekeeping = function () {
+ appInsightsInstance.context._sender.triggerSend();
+ appInsightsInstance.context._sessionManager.backup();
+ };
+ if (!Microsoft.ApplicationInsights.Util.addEventHandler('beforeunload', performHousekeeping)) {
+ Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(Microsoft.ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload'));
+ }
+ }
+ };
+ Initialization.getDefaultConfig = function (config) {
+ if (!config) {
+ config = {};
+ }
+ config.endpointUrl = config.endpointUrl || "//dc.services.visualstudio.com/v2/track";
+ config.sessionRenewalMs = 30 * 60 * 1000;
+ config.sessionExpirationMs = 24 * 60 * 60 * 1000;
+ config.maxBatchSizeInBytes = config.maxBatchSizeInBytes > 0 ? config.maxBatchSizeInBytes : 1000000;
+ config.maxBatchInterval = !isNaN(config.maxBatchInterval) ? config.maxBatchInterval : 15000;
+ config.enableDebug = ApplicationInsights.Util.stringToBoolOrDefault(config.enableDebug);
+ config.disableExceptionTracking = (config.disableExceptionTracking !== undefined && config.disableExceptionTracking !== null) ?
+ ApplicationInsights.Util.stringToBoolOrDefault(config.disableExceptionTracking) :
+ false;
+ config.disableTelemetry = ApplicationInsights.Util.stringToBoolOrDefault(config.disableTelemetry);
+ config.verboseLogging = ApplicationInsights.Util.stringToBoolOrDefault(config.verboseLogging);
+ config.emitLineDelimitedJson = ApplicationInsights.Util.stringToBoolOrDefault(config.emitLineDelimitedJson);
+ config.diagnosticLogInterval = config.diagnosticLogInterval || 10000;
+ config.autoTrackPageVisitTime = ApplicationInsights.Util.stringToBoolOrDefault(config.autoTrackPageVisitTime);
+ if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {
+ config.samplingPercentage = 100;
+ }
+ config.disableAjaxTracking = (config.disableAjaxTracking !== undefined && config.disableAjaxTracking !== null) ?
+ ApplicationInsights.Util.stringToBoolOrDefault(config.disableAjaxTracking) :
+ false;
+ config.maxAjaxCallsPerView = !isNaN(config.maxAjaxCallsPerView) ? config.maxAjaxCallsPerView : 500;
+ config.disableCorrelationHeaders = (config.disableCorrelationHeaders !== undefined && config.disableCorrelationHeaders !== null) ?
+ ApplicationInsights.Util.stringToBoolOrDefault(config.disableCorrelationHeaders) :
+ true;
+ config.disableFlushOnBeforeUnload = (config.disableFlushOnBeforeUnload !== undefined && config.disableFlushOnBeforeUnload !== null) ?
+ ApplicationInsights.Util.stringToBoolOrDefault(config.disableFlushOnBeforeUnload) :
+ false;
+ return config;
+ };
+ return Initialization;
+ })();
+ ApplicationInsights.Initialization = Initialization;
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
+///
+var Microsoft;
+(function (Microsoft) {
+ var ApplicationInsights;
+ (function (ApplicationInsights) {
+ "use strict";
+ try {
+ if (typeof window !== "undefined" && typeof JSON !== "undefined") {
+ var aiName = "appInsights";
+ if (window[aiName] === undefined) {
+ Microsoft.ApplicationInsights.AppInsights.defaultConfig = Microsoft.ApplicationInsights.Initialization.getDefaultConfig();
+ }
+ else {
+ var snippet = window[aiName] || {};
+ var init = new Microsoft.ApplicationInsights.Initialization(snippet);
+ var appInsightsLocal = init.loadAppInsights();
+ for (var field in appInsightsLocal) {
+ snippet[field] = appInsightsLocal[field];
+ }
+ init.emptyQueue();
+ init.pollInteralLogs(appInsightsLocal);
+ init.addHousekeepingBeforeUnload(appInsightsLocal);
+ }
+ }
+ }
+ catch (e) {
+ Microsoft.ApplicationInsights._InternalLogging.warnToConsole('Failed to initialize AppInsights JS SDK: ' + e.message);
+ }
+ })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));
+})(Microsoft || (Microsoft = {}));
diff --git a/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.min.js b/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.min.js
new file mode 100644
index 0000000..4283fa3
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/scripts/ai.0.22.9-build00167.min.js
@@ -0,0 +1 @@
+var __extends,AI,Microsoft;(function(n){var t;(function(n){var r,t,i,u;(function(n){n[n.CRITICAL=0]="CRITICAL";n[n.WARNING=1]="WARNING"})(n.LoggingSeverity||(n.LoggingSeverity={}));r=n.LoggingSeverity,function(n){n[n.NONUSRACT_BrowserDoesNotSupportLocalStorage=0]="NONUSRACT_BrowserDoesNotSupportLocalStorage";n[n.NONUSRACT_BrowserCannotReadLocalStorage=1]="NONUSRACT_BrowserCannotReadLocalStorage";n[n.NONUSRACT_BrowserCannotReadSessionStorage=2]="NONUSRACT_BrowserCannotReadSessionStorage";n[n.NONUSRACT_BrowserCannotWriteLocalStorage=3]="NONUSRACT_BrowserCannotWriteLocalStorage";n[n.NONUSRACT_BrowserCannotWriteSessionStorage=4]="NONUSRACT_BrowserCannotWriteSessionStorage";n[n.NONUSRACT_BrowserFailedRemovalFromLocalStorage=5]="NONUSRACT_BrowserFailedRemovalFromLocalStorage";n[n.NONUSRACT_BrowserFailedRemovalFromSessionStorage=6]="NONUSRACT_BrowserFailedRemovalFromSessionStorage";n[n.NONUSRACT_CannotSendEmptyTelemetry=7]="NONUSRACT_CannotSendEmptyTelemetry";n[n.NONUSRACT_ClientPerformanceMathError=8]="NONUSRACT_ClientPerformanceMathError";n[n.NONUSRACT_ErrorParsingAISessionCookie=9]="NONUSRACT_ErrorParsingAISessionCookie";n[n.NONUSRACT_ErrorPVCalc=10]="NONUSRACT_ErrorPVCalc";n[n.NONUSRACT_ExceptionWhileLoggingError=11]="NONUSRACT_ExceptionWhileLoggingError";n[n.NONUSRACT_FailedAddingTelemetryToBuffer=12]="NONUSRACT_FailedAddingTelemetryToBuffer";n[n.NONUSRACT_FailedMonitorAjaxAbort=13]="NONUSRACT_FailedMonitorAjaxAbort";n[n.NONUSRACT_FailedMonitorAjaxDur=14]="NONUSRACT_FailedMonitorAjaxDur";n[n.NONUSRACT_FailedMonitorAjaxOpen=15]="NONUSRACT_FailedMonitorAjaxOpen";n[n.NONUSRACT_FailedMonitorAjaxRSC=16]="NONUSRACT_FailedMonitorAjaxRSC";n[n.NONUSRACT_FailedMonitorAjaxSend=17]="NONUSRACT_FailedMonitorAjaxSend";n[n.NONUSRACT_FailedToAddHandlerForOnBeforeUnload=18]="NONUSRACT_FailedToAddHandlerForOnBeforeUnload";n[n.NONUSRACT_FailedToSendQueuedTelemetry=19]="NONUSRACT_FailedToSendQueuedTelemetry";n[n.NONUSRACT_FailedToReportDataLoss=20]="NONUSRACT_FailedToReportDataLoss";n[n.NONUSRACT_FlushFailed=21]="NONUSRACT_FlushFailed";n[n.NONUSRACT_MessageLimitPerPVExceeded=22]="NONUSRACT_MessageLimitPerPVExceeded";n[n.NONUSRACT_MissingRequiredFieldSpecification=23]="NONUSRACT_MissingRequiredFieldSpecification";n[n.NONUSRACT_NavigationTimingNotSupported=24]="NONUSRACT_NavigationTimingNotSupported";n[n.NONUSRACT_OnError=25]="NONUSRACT_OnError";n[n.NONUSRACT_SessionRenewalDateIsZero=26]="NONUSRACT_SessionRenewalDateIsZero";n[n.NONUSRACT_SenderNotInitialized=27]="NONUSRACT_SenderNotInitialized";n[n.NONUSRACT_StartTrackEventFailed=28]="NONUSRACT_StartTrackEventFailed";n[n.NONUSRACT_StopTrackEventFailed=29]="NONUSRACT_StopTrackEventFailed";n[n.NONUSRACT_StartTrackFailed=30]="NONUSRACT_StartTrackFailed";n[n.NONUSRACT_StopTrackFailed=31]="NONUSRACT_StopTrackFailed";n[n.NONUSRACT_TelemetrySampledAndNotSent=32]="NONUSRACT_TelemetrySampledAndNotSent";n[n.NONUSRACT_TrackEventFailed=33]="NONUSRACT_TrackEventFailed";n[n.NONUSRACT_TrackExceptionFailed=34]="NONUSRACT_TrackExceptionFailed";n[n.NONUSRACT_TrackMetricFailed=35]="NONUSRACT_TrackMetricFailed";n[n.NONUSRACT_TrackPVFailed=36]="NONUSRACT_TrackPVFailed";n[n.NONUSRACT_TrackPVFailedCalc=37]="NONUSRACT_TrackPVFailedCalc";n[n.NONUSRACT_TrackTraceFailed=38]="NONUSRACT_TrackTraceFailed";n[n.NONUSRACT_TransmissionFailed=39]="NONUSRACT_TransmissionFailed";n[n.USRACT_CannotSerializeObject=40]="USRACT_CannotSerializeObject";n[n.USRACT_CannotSerializeObjectNonSerializable=41]="USRACT_CannotSerializeObjectNonSerializable";n[n.USRACT_CircularReferenceDetected=42]="USRACT_CircularReferenceDetected";n[n.USRACT_ClearAuthContextFailed=43]="USRACT_ClearAuthContextFailed";n[n.USRACT_ExceptionTruncated=44]="USRACT_ExceptionTruncated";n[n.USRACT_IllegalCharsInName=45]="USRACT_IllegalCharsInName";n[n.USRACT_ItemNotInArray=46]="USRACT_ItemNotInArray";n[n.USRACT_MaxAjaxPerPVExceeded=47]="USRACT_MaxAjaxPerPVExceeded";n[n.USRACT_MessageTruncated=48]="USRACT_MessageTruncated";n[n.USRACT_NameTooLong=49]="USRACT_NameTooLong";n[n.USRACT_SampleRateOutOfRange=50]="USRACT_SampleRateOutOfRange";n[n.USRACT_SetAuthContextFailed=51]="USRACT_SetAuthContextFailed";n[n.USRACT_SetAuthContextFailedAccountName=52]="USRACT_SetAuthContextFailedAccountName";n[n.USRACT_StringValueTooLong=53]="USRACT_StringValueTooLong";n[n.USRACT_StartCalledMoreThanOnce=54]="USRACT_StartCalledMoreThanOnce";n[n.USRACT_StopCalledWithoutStart=55]="USRACT_StopCalledWithoutStart";n[n.USRACT_TelemetryInitializerFailed=56]="USRACT_TelemetryInitializerFailed";n[n.USRACT_TrackArgumentsNotSpecified=57]="USRACT_TrackArgumentsNotSpecified";n[n.USRACT_UrlTooLong=58]="USRACT_UrlTooLong"}(n._InternalMessageId||(n._InternalMessageId={}));t=n._InternalMessageId;i=function(){function n(i,r,u){this.message=t[i].toString();this.messageId=i;var f=(r?" message:"+n.sanitizeDiagnosticText(r):"")+(u?" props:"+n.sanitizeDiagnosticText(JSON.stringify(u)):"");this.message+=f}return n.sanitizeDiagnosticText=function(n){return'"'+n.replace(/\"/g,"")+'"'},n}();n._InternalLogMessage=i;u=function(){function u(){}return u.throwInternalNonUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiNonUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.throwInternalUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.warnToConsole=function(n){typeof console=="undefined"||!console||(typeof console.warn=="function"?console.warn(n):typeof console.log=="function"&&console.log(n))},u.resetInternalMessageCount=function(){this._messageCount=0},u.clearInternalMessageLoggedTypes=function(){var i,t;if(n.Util.canUseSessionStorage())for(i=n.Util.getSessionStorageKeys(),t=0;t=this.MAX_INTERNAL_MESSAGE_LIMIT},u.AiUserActionablePrefix="AI: ",u.AIInternalMessagePrefix="AITR_",u.AiNonUserActionablePrefix="AI (Internal): ",u.enableDebugExceptions=function(){return!1},u.verboseLogging=function(){return!1},u.queue=[],u.MAX_INTERNAL_MESSAGE_LIMIT=25,u._messageCount=0,u}();n._InternalLogging=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))})(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t,i,r;(function(n){n[n.LocalStorage=0]="LocalStorage";n[n.SessionStorage=1]="SessionStorage"})(t||(t={}));i=function(){function i(){}return i._getLocalStorageObject=function(){return i._getVerifiedStorageObject(t.LocalStorage)},i._getVerifiedStorageObject=function(n){var i=null,u,r;try{r=new Date;i=n===t.LocalStorage?window.localStorage:window.sessionStorage;i.setItem(r,r);u=i.getItem(r)!=r;i.removeItem(r);u&&(i=null)}catch(f){i=null}return i},i.canUseLocalStorage=function(){return!!i._getLocalStorageObject()},i.getStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage,"Browser failed read of local storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return null},i.setStorage=function(t,r){var u=i._getLocalStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage,"Browser failed write to local storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,e)}return!1},i.removeStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage,"Browser failed removal of local storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return!1},i._getSessionStorageObject=function(){return i._getVerifiedStorageObject(t.SessionStorage)},i.canUseSessionStorage=function(){return!!i._getSessionStorageObject()},i.getSessionStorageKeys=function(){var n=[],t;if(i.canUseSessionStorage())for(t in window.sessionStorage)n.push(t);return n},i.getSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage,"Browser failed read of session storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return null},i.setSessionStorage=function(t,r){var u=i._getSessionStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage,"Browser failed write to session storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,e)}return!1},i.removeSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage,"Browser failed removal of session storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return!1},i.setCookie=function(n,t,r){var u="";r&&(u=";domain="+r);i.document.cookie=n+"="+t+u+";path=/"},i.stringToBoolOrDefault=function(n){return n?n.toString().toLowerCase()==="true":!1},i.getCookie=function(n){var e="",f,u,r,t;if(n&&n.length)for(f=n+"=",u=i.document.cookie.split(";"),r=0;r0;)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n%64),t+=i,n=Math.floor(n/64);return t},i.isArray=function(n){return Object.prototype.toString.call(n)==="[object Array]"},i.isError=function(n){return Object.prototype.toString.call(n)==="[object Error]"},i.isDate=function(n){return Object.prototype.toString.call(n)==="[object Date]"},i.toISOStringForIE8=function(n){if(i.isDate(n)){function t(n){var t=String(n);return t.length===1&&(t="0"+t),t}return Date.prototype.toISOString?n.toISOString():n.getUTCFullYear()+"-"+t(n.getUTCMonth()+1)+"-"+t(n.getUTCDate())+"T"+t(n.getUTCHours())+":"+t(n.getUTCMinutes())+":"+t(n.getUTCSeconds())+"."+String((n.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}},i.getIEVersion=function(n){n===void 0&&(n=null);var t=n?n.toLowerCase():navigator.userAgent.toLowerCase();return t.indexOf("msie")!=-1?parseInt(t.split("msie")[1]):null},i.msToTimeSpan=function(n){(isNaN(n)||n<0)&&(n=0);var t=""+n%1e3,i=""+Math.floor(n/1e3)%60,r=""+Math.floor(n/6e4)%60,u=""+Math.floor(n/36e5)%24;return t=t.length===1?"00"+t:t.length===2?"0"+t:t,i=i.length<2?"0"+i:i,r=r.length<2?"0"+r:r,u=u.length<2?"0"+u:u,u+":"+r+":"+i+"."+t},i.isCrossOriginError=function(n,t,i,r,u){return(n==="Script error."||n==="Script error")&&u===null},i.dump=function(n){var t=Object.prototype.toString.call(n),i=JSON.stringify(n);return t==="[object Error]"&&(i="{ stack: '"+n.stack+"', message: '"+n.message+"', name: '"+n.name+"'"),t+i},i.getExceptionName=function(n){var t=Object.prototype.toString.call(n);return t==="[object Error]"?n.name:""},i.addEventHandler=function(n,t){if(!window||typeof n!="string"||typeof t!="function")return!1;var i="on"+n;if(window.addEventListener)window.addEventListener(n,t,!1);else if(window.attachEvent)window.attachEvent.call(i,t);else return!1;return!0},i.document=typeof document!="undefined"?document:{},i.NotSpecified="not_specified",i}();n.Util=i;r=function(){function n(){}return n.parseUrl=function(t){return n.htmlAnchorElement||(n.htmlAnchorElement=n.document.createElement("a")),n.htmlAnchorElement.href=t,n.htmlAnchorElement},n.getAbsoluteUrl=function(t){var i,r=n.parseUrl(t);return r&&(i=r.href),i},n.getPathName=function(t){var i,r=n.parseUrl(t);return r&&(i=r.pathname),i},n.document=typeof document!="undefined"?document:{},n}();n.UrlHelper=r})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n.IsNullOrUndefined=function(n){return typeof n=="undefined"||n===null},n}(),i,r,u;n.extensions=t;i=function(){function n(){}return n.GetLength=function(n){var i=0,r;if(!t.IsNullOrUndefined(n)){r="";try{r=n.toString()}catch(u){}i=r.length;i=isNaN(i)?0:i}return i},n}();n.stringUtils=i;r=function(){function n(){}return n.Now=window.performance&&window.performance.now?function(){return performance.now()}:function(){return(new Date).getTime()},n.GetDuration=function(n,i){var r=null;return n===0||i===0||t.IsNullOrUndefined(n)||t.IsNullOrUndefined(i)||(r=i-n),r},n}();n.dateTime=r;u=function(){function n(){}return n.AttachEvent=function(n,i,r){var u=!1;return t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.attachEvent)?t.IsNullOrUndefined(n.addEventListener)||(n.addEventListener(i,r,!1),u=!0):(n.attachEvent("on"+i,r),u=!0)),u},n.DetachEvent=function(n,i,r){t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.detachEvent)?t.IsNullOrUndefined(n.removeEventListener)||n.removeEventListener(i,r,!1):n.detachEvent("on"+i,r))},n}();n.EventHelper=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){this.openDone=!1;this.setRequestHeaderDone=!1;this.sendDone=!1;this.abortDone=!1;this.onreadystatechangeCallbackAttached=!1}return n}(),i;n.XHRMonitoringState=t;i=function(){function i(i){this.completed=!1;this.requestHeadersSize=null;this.ttfb=null;this.responseReceivingDuration=null;this.callbackDuration=null;this.ajaxTotalDuration=null;this.aborted=null;this.pageUrl=null;this.requestUrl=null;this.requestSize=0;this.method=null;this.status=null;this.requestSentTime=null;this.responseStartedTime=null;this.responseFinishedTime=null;this.callbackFinishedTime=null;this.endTime=null;this.originalOnreadystatechage=null;this.xhrMonitoringState=new t;this.clientFailure=0;this.CalculateMetrics=function(){var t=this;t.ajaxTotalDuration=n.dateTime.GetDuration(t.requestSentTime,t.responseFinishedTime)};this.id=i}return i.prototype.getAbsoluteUrl=function(){return this.requestUrl?n.UrlHelper.getAbsoluteUrl(this.requestUrl):null},i.prototype.getPathName=function(){return this.requestUrl?n.UrlHelper.getPathName(this.requestUrl):null},i}();n.ajaxRecord=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var i=function(){function i(n){this.currentWindowHost=window.location.host;this.appInsights=n;this.initialized=!1;this.Init()}return i.prototype.Init=function(){this.supportsMonitoring()&&(this.instrumentOpen(),this.instrumentSend(),this.instrumentAbort(),this.initialized=!0)},i.prototype.isMonitoredInstance=function(n,r){return this.initialized&&(r===!0||!t.extensions.IsNullOrUndefined(n.ajaxData))&&n[i.DisabledPropertyName]!==!0},i.prototype.supportsMonitoring=function(){var n=!1;return t.extensions.IsNullOrUndefined(XMLHttpRequest)||(n=!0),n},i.prototype.instrumentOpen=function(){var u=XMLHttpRequest.prototype.open,r=this;XMLHttpRequest.prototype.open=function(f,e,o){try{!r.isMonitoredInstance(this,!0)||this.ajaxData&&this.ajaxData.xhrMonitoringState.openDone||r.openHandler(this,f,e,o)}catch(s){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen,"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(s)}))}return u.apply(this,arguments)}},i.prototype.openHandler=function(n,i,r){var u=new t.ajaxRecord(t.Util.newId());u.method=i;u.requestUrl=r;u.xhrMonitoringState.openDone=!0;n.ajaxData=u;this.attachToOnReadyStateChange(n)},i.getFailedAjaxDiagnosticsMessage=function(n){var i="";try{t.extensions.IsNullOrUndefined(n)||t.extensions.IsNullOrUndefined(n.ajaxData)||t.extensions.IsNullOrUndefined(n.ajaxData.requestUrl)||(i+="(url: '"+n.ajaxData.requestUrl+"')")}catch(r){}return i},i.prototype.instrumentSend=function(){var u=XMLHttpRequest.prototype.send,r=this;XMLHttpRequest.prototype.send=function(f){try{r.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.sendDone&&r.sendHandler(this,f)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend,"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(e)}))}return u.apply(this,arguments)}},i.prototype.sendHandler=function(n){n.ajaxData.requestSentTime=t.dateTime.Now();this.appInsights.config.disableCorrelationHeaders||t.UrlHelper.parseUrl(n.ajaxData.getAbsoluteUrl()).host!=this.currentWindowHost||n.setRequestHeader("x-ms-request-id",n.ajaxData.id);n.ajaxData.xhrMonitoringState.sendDone=!0},i.prototype.instrumentAbort=function(){var r=XMLHttpRequest.prototype.abort,u=this;XMLHttpRequest.prototype.abort=function(){try{u.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.abortDone&&(this.ajaxData.aborted=1,this.ajaxData.xhrMonitoringState.abortDone=!0)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort,"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(f)}))}return r.apply(this,arguments)}},i.prototype.attachToOnReadyStateChange=function(r){var u=this;r.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached=t.EventHelper.AttachEvent(r,"readystatechange",function(){try{if(u.isMonitoredInstance(r)&&r.readyState===4)u.onAjaxComplete(r)}catch(f){var e=n.ApplicationInsights.Util.dump(f);e&&e.toLowerCase().indexOf("c00c023f")!=-1||t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC,"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(r),exception:n.ApplicationInsights.Util.dump(f)}))}})},i.prototype.onAjaxComplete=function(n){n.ajaxData.responseFinishedTime=t.dateTime.Now();n.ajaxData.status=n.status;n.ajaxData.CalculateMetrics();n.ajaxData.ajaxTotalDuration<0?t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur,"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(n),requestSentTime:n.ajaxData.requestSentTime,responseFinishedTime:n.ajaxData.responseFinishedTime})):(this.appInsights.trackAjax(n.ajaxData.id,n.ajaxData.getAbsoluteUrl(),n.ajaxData.getPathName(),n.ajaxData.ajaxTotalDuration,+n.ajaxData.status>=200&&+n.ajaxData.status<400,+n.ajaxData.status),n.ajaxData=null)},i.instrumentedByAppInsightsName="InstrumentedByAppInsights",i.DisabledPropertyName="Microsoft_ApplicationInsights_BypassAjaxInstrumentation",i}();t.AjaxMonitor=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.getHashCodeScore=function(t){var i=this.getHashCode(t)/n.INT_MAX_VALUE;return i*100},n.prototype.getHashCode=function(t){var i,r;if(t=="")return 0;while(t.length100||t<0)&&(n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SampleRateOutOfRange,"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.",{samplingRate:t})),this.sampleRate=100);this.sampleRate=t;this.samplingScoreGenerator=new n.SamplingScoreGenerator}return t.prototype.isSampledIn=function(n){if(this.sampleRate==100)return!0;var t=this.samplingScoreGenerator.getSamplingScore(n);return tthis.config.sessionExpirationMs(),i=n-this.automaticSession.renewalDate>this.config.sessionRenewalMs();t||i?(this.automaticSession.isFirst=undefined,this.renew()):(this.automaticSession.renewalDate=+new Date,this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate))},t.prototype.backup=function(){this.setStorage(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate)},t.prototype.initializeAutomaticSession=function(){var t=n.Util.getCookie("ai_session"),i;t&&typeof t.split=="function"?this.initializeAutomaticSessionWithData(t):(i=n.Util.getStorage("ai_session"),i&&this.initializeAutomaticSessionWithData(i));this.automaticSession.id||(this.automaticSession.isFirst=!0,this.renew())},t.prototype.initializeAutomaticSessionWithData=function(t){var i=t.split("|"),r,u;i.length>0&&(this.automaticSession.id=i[0]);try{i.length>1&&(r=+i[1],this.automaticSession.acquisitionDate=+new Date(r),this.automaticSession.acquisitionDate=this.automaticSession.acquisitionDate>0?this.automaticSession.acquisitionDate:0);i.length>2&&(u=+i[2],this.automaticSession.renewalDate=+new Date(u),this.automaticSession.renewalDate=this.automaticSession.renewalDate>0?this.automaticSession.renewalDate:0)}catch(f){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie,"Error parsing ai_session cookie, session will be reset: "+n.Util.getExceptionName(f),{exception:n.Util.dump(f)}))}this.automaticSession.renewalDate==0&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero,"AI session renewal date is 0, session will be reset."))},t.prototype.renew=function(){var t=+new Date;this.automaticSession.id=n.Util.newId();this.automaticSession.acquisitionDate=t;this.automaticSession.renewalDate=t;this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate);n.Util.canUseLocalStorage()||n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage,"Browser does not support local storage. Session durations will be inaccurate."))},t.prototype.setCookie=function(t,i,r){var f=i+this.config.sessionExpirationMs(),e=r+this.config.sessionRenewalMs(),u=new Date,s=[t,i,r],o;f0&&(this.id=e[0]));this.config=i;this.id||(this.id=n.Util.newId(),u=new Date,o=n.Util.toISOStringForIE8(u),this.accountAcquisitionDate=o,u.setTime(u.getTime()+31536e6),h=[this.id,o],c=this.config.cookieDomain?this.config.cookieDomain():undefined,n.Util.setCookie(t.userCookieName,h.join(t.cookieSeparator)+";expires="+u.toUTCString(),c),n.Util.removeStorage("ai_session"));this.accountId=i.accountId?i.accountId():undefined;f=n.Util.getCookie(t.authUserCookieName);f&&(f=decodeURI(f),r=f.split(t.cookieSeparator),r[0]&&(this.authenticatedId=r[0]),r.length>1&&r[1]&&(this.accountId=r[1]))}return t.prototype.setAuthenticatedUserContext=function(i,r){var f=!this.validateUserInput(i)||r&&!this.validateUserInput(r),u;if(f){n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SetAuthContextFailedAccountName,"Setting auth user context failed. User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars."));return}this.authenticatedId=i;u=this.authenticatedId;r&&(this.accountId=r,u=[this.authenticatedId,this.accountId].join(t.cookieSeparator));n.Util.setCookie(t.authUserCookieName,encodeURI(u),this.config.cookieDomain())},t.prototype.clearAuthenticatedUserContext=function(){this.authenticatedId=null;this.accountId=null;n.Util.deleteCookie(t.authUserCookieName)},t.prototype.validateUserInput=function(n){return typeof n!="string"||!n||n.match(/,|;|=| |\|/)?!1:!0},t.cookieSeparator="|",t.userCookieName="ai_user",t.authUserCookieName="ai_authUser",t}();t.User=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){}return t.reset=function(){t.isEnabled()&&n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,"0")},t.isEnabled=function(){return t.enabled&&t.appInsights!=null&&n.Util.canUseSessionStorage()},t.getIssuesReported=function(){return!t.isEnabled()||isNaN(+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY))?0:+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY)},t.incrementItemsQueued=function(){try{if(t.isEnabled()){var i=t.getNumberOfLostItems();++i;n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,i.toString())}}catch(r){}},t.decrementItemsQueued=function(i){try{if(t.isEnabled()){var r=t.getNumberOfLostItems();r-=i;r<0&&(r=0);n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,r.toString())}}catch(u){}},t.getNumberOfLostItems=function(){var i=0;try{t.isEnabled()&&(i=isNaN(+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))?0:+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))}catch(r){i=0}return i},t.reportLostItems=function(){try{if(t.isEnabled()&&t.getIssuesReported()0){t.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: "+t.getNumberOfLostItems(),null);t.appInsights.flush();var i=t.getIssuesReported();++i;n.Util.setSessionStorage(t.ISSUES_REPORTED_KEY,i.toString())}}catch(r){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedToReportDataLoss,"Failed to report data loss: "+n.Util.getExceptionName(r),{exception:n.Util.dump(r)}))}finally{try{t.reset()}catch(r){}}},t.enabled=!1,t.LIMIT_PER_SESSION=10,t.ITEMS_QUEUED_KEY="AI_itemsQueued",t.ISSUES_REPORTED_KEY="AI_lossIssuesReported",t}();n.DataLossAnalyzer=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(n){if(this._buffer=[],this._lastSend=0,this._config=n,this._sender=null,typeof XMLHttpRequest!="undefined"){var t=new XMLHttpRequest;"withCredentials"in t?this._sender=this._xhrSender:typeof XDomainRequest!="undefined"&&(this._sender=this._xdrSender)}}return t.prototype.send=function(t){var r=this,i;try{if(this._config.disableTelemetry())return;if(!t){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry,"Cannot send empty telemetry"));return}if(!this._sender){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SenderNotInitialized,"Sender was not initialized"));return}i=n.Serializer.serialize(t);this._getSizeInBytes(this._buffer)+i.length>this._config.maxBatchSizeInBytes()&&this.triggerSend();this._buffer.push(i);this._timeoutHandle||(this._timeoutHandle=setTimeout(function(){r._timeoutHandle=null;r.triggerSend()},this._config.maxBatchInterval()));n.DataLossAnalyzer.incrementItemsQueued()}catch(u){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer,"Failed adding telemetry to the sender's buffer, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._getSizeInBytes=function(n){var r=0,t,i;if(n&&n.length)for(t=0;t9)&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TransmissionFailed,"Telemetry transmission failed, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._xhrSender=function(i,r,u){var f=new XMLHttpRequest;f[n.AjaxMonitor.DisabledPropertyName]=!0;f.open("POST",this._config.endpointUrl(),r);f.setRequestHeader("Content-type","application/json");f.onreadystatechange=function(){return t._xhrReadyStateChange(f,i,u)};f.onerror=function(n){return t._onError(i,f.responseText||f.response||"",n)};f.send(i)},t.prototype._xdrSender=function(n){var i=new XDomainRequest;i.onload=function(){return t._xdrOnLoad(i,n)};i.onerror=function(r){return t._onError(n,i.responseText||"",r)};i.open("POST",this._config.endpointUrl());i.send(n)},t._xhrReadyStateChange=function(n,i,r){n.readyState===4&&((n.status<200||n.status>=300)&&n.status!==0?t._onError(i,n.responseText||n.response||""):t._onSuccess(i,r))},t._xdrOnLoad=function(n,i){n&&(n.responseText+""=="200"||n.responseText==="")?t._onSuccess(i,0):t._onError(i,n&&n.responseText||"")},t._onError=function(t,i){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_OnError,"Failed to send telemetry.",{message:i}))},t._onSuccess=function(t,i){n.DataLossAnalyzer.decrementItemsQueued(i)},t}();n.Sender=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){this.hashCodeGeneragor=new n.HashCodeScoreGenerator}return t.prototype.isEnabled=function(n,t){return this.hashCodeGeneragor.getHashCodeScore(n)=0&&(i=i.replace(/[^0-9a-zA-Z-._()\/ ]/g,"_"),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_IllegalCharsInName,"name contains illegal characters. Illegal characters have been replaced with '_'.",{newName:i}))),i.length>t.MAX_NAME_LENGTH&&(i=i.substring(0,t.MAX_NAME_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_NameTooLong,"name is too long. It has been truncated to "+t.MAX_NAME_LENGTH+" characters.",{name:i})))),i},t.sanitizeString=function(i){return i&&(i=n.Util.trim(i),i.toString().length>t.MAX_STRING_LENGTH&&(i=i.toString().substring(0,t.MAX_STRING_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_StringValueTooLong,"string value is too long. It has been truncated to "+t.MAX_STRING_LENGTH+" characters.",{value:i})))),i},t.sanitizeUrl=function(i){return i&&i.length>t.MAX_URL_LENGTH&&(i=i.substring(0,t.MAX_URL_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_UrlTooLong,"url is too long, it has been trucated to "+t.MAX_URL_LENGTH+" characters.",{url:i}))),i},t.sanitizeMessage=function(i){return i&&i.length>t.MAX_MESSAGE_LENGTH&&(i=i.substring(0,t.MAX_MESSAGE_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_MessageTruncated,"message is too long, it has been trucated to "+t.MAX_MESSAGE_LENGTH+" characters.",{message:i}))),i},t.sanitizeException=function(i){return i&&i.length>t.MAX_EXCEPTION_LENGTH&&(i=i.substring(0,t.MAX_EXCEPTION_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_ExceptionTruncated,"exception is too long, it has been trucated to "+t.MAX_EXCEPTION_LENGTH+" characters.",{exception:i}))),i},t.sanitizeProperties=function(n){var r,i,u;if(n){r={};for(i in n)u=t.sanitizeString(n[i]),i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.sanitizeMeasurements=function(n){var r,i,u;if(n){r={};for(i in n)u=n[i],i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.padNumber=function(n){var t="00"+n;return t.substr(t.length-3)},t.MAX_NAME_LENGTH=150,t.MAX_STRING_LENGTH=1024,t.MAX_URL_LENGTH=2048,t.MAX_MESSAGE_LENGTH=32768,t.MAX_EXCEPTION_LENGTH=32768,t}();t.DataSanitizer=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u){i.call(this);this.aiDataContract={ver:n.FieldType.Required,message:n.FieldType.Required,severityLevel:n.FieldType.Default,measurements:n.FieldType.Default,properties:n.FieldType.Default};r=r||n.Util.NotSpecified;this.message=t.Common.DataSanitizer.sanitizeMessage(r);this.properties=t.Common.DataSanitizer.sanitizeProperties(u)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Message",r.dataType="MessageData",r}(AI.MessageData);t.Trace=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.EventData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u){t.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Required,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.name=n.Telemetry.Common.DataSanitizer.sanitizeString(i);this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(r);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(u)}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.Event",i.dataType="EventData",i}(AI.EventData);t.Event=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(){function n(){this.hasFullStack=!0;this.parsedStack=[]}return n}();n.ExceptionDetails=t}(AI||(AI={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.exceptions=[];this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.ExceptionData=t}(AI||(AI={})),function(n){"use strict";var t=function(){function n(){}return n}();n.StackFrame=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var u=function(t){function i(i,u,f,e){t.call(this);this.aiDataContract={ver:n.FieldType.Required,handledAt:n.FieldType.Required,exceptions:n.FieldType.Required,severityLevel:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(f);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(e);this.handledAt=u||"unhandled";this.exceptions=[new r(i)]}return __extends(i,t),i.CreateSimpleException=function(n,t,i,r,u,f,e){return{handledAt:e||"unhandled",exceptions:[{hasFullStack:!0,message:n,stack:u,typeName:t,parsedStack:[{level:0,assembly:i,fileName:r,line:f,method:"unknown"}]}]}},i.envelopeType="Microsoft.ApplicationInsights.{0}.Exception",i.dataType="ExceptionData",i}(AI.ExceptionData),r,i;t.Exception=u;r=function(r){function u(i){r.call(this);this.aiDataContract={id:n.FieldType.Default,outerId:n.FieldType.Default,typeName:n.FieldType.Required,message:n.FieldType.Required,hasFullStack:n.FieldType.Default,stack:n.FieldType.Default,parsedStack:n.FieldType.Array};this.typeName=t.Common.DataSanitizer.sanitizeString(i.name||n.Util.NotSpecified);this.message=t.Common.DataSanitizer.sanitizeMessage(i.message||n.Util.NotSpecified);var u=i.stack;this.parsedStack=this.parseStack(u);this.stack=t.Common.DataSanitizer.sanitizeException(u);this.hasFullStack=n.Util.isArray(this.parsedStack)&&this.parsedStack.length>0}return __extends(u,r),u.prototype.parseStack=function(n){var t=undefined,e,l,o,r,a,s,h,p,w,b;if(typeof n=="string"){for(e=n.split("\n"),t=[],l=0,o=0,r=0;r<=e.length;r++)a=e[r],i.regex.test(a)&&(s=new i(e[r],l++),o+=s.sizeInBytes,t.push(s));if(h=32768,o>h)for(var u=0,f=t.length-1,v=0,c=u,y=f;uh){b=y-c+1;t.splice(c,b);break}c=u;y=f;u++;f--}}return t},u}(AI.ExceptionDetails);i=function(t){function i(r,u){t.call(this);this.sizeInBytes=0;this.aiDataContract={level:n.FieldType.Required,method:n.FieldType.Required,assembly:n.FieldType.Default,fileName:n.FieldType.Default,line:n.FieldType.Default};this.level=u;this.method="";this.assembly=n.Util.trim(r);var f=r.match(i.regex);f&&f.length>=5&&(this.method=n.Util.trim(f[2])||this.method,this.fileName=n.Util.trim(f[4]),this.line=parseInt(f[5])||0);this.sizeInBytes+=this.method.length;this.sizeInBytes+=this.fileName.length;this.sizeInBytes+=this.assembly.length;this.sizeInBytes+=i.baseSize;this.sizeInBytes+=this.level.toString().length;this.sizeInBytes+=this.line.toString().length}return __extends(i,t),i.regex=/^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/,i.baseSize=58,i}(AI.StackFrame);t._StackFrame=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.metrics=[];this.properties={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.MetricData=t}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Measurement=0]="Measurement";n[n.Aggregation=1]="Aggregation"})(n.DataPointType||(n.DataPointType={}));var t=n.DataPointType}(AI||(AI={})),function(n){"use strict";var t=function(){function t(){this.kind=n.DataPointType.Measurement}return t}();n.DataPoint=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(t){function i(){t.apply(this,arguments);this.aiDataContract={name:n.FieldType.Required,kind:n.FieldType.Default,value:n.FieldType.Required,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default}}return __extends(i,t),i}(AI.DataPoint);t.DataPoint=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){var i;(function(i){"use strict";var r=function(r){function u(u,f,e,o,s,h){r.call(this);this.aiDataContract={ver:t.FieldType.Required,metrics:t.FieldType.Required,properties:t.FieldType.Default};var c=new n.ApplicationInsights.Telemetry.Common.DataPoint;c.count=e>0?e:undefined;c.max=isNaN(s)||s===null?undefined:s;c.min=isNaN(o)||o===null?undefined:o;c.name=i.Common.DataSanitizer.sanitizeString(u);c.value=f;this.metrics=[c];this.properties=t.Telemetry.Common.DataSanitizer.sanitizeProperties(h)}return __extends(u,r),u.envelopeType="Microsoft.ApplicationInsights.{0}.Metric",u.dataType="MetricData",u}(AI.MetricData);i.Metric=r})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.EventData);n.PageViewData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u,f,e,o){i.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.url=t.Common.DataSanitizer.sanitizeUrl(u);this.name=t.Common.DataSanitizer.sanitizeString(r||n.Util.NotSpecified);isNaN(f)||(this.duration=n.Util.msToTimeSpan(f));this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(e);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(o)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Pageview",r.dataType="PageviewData",r}(AI.PageViewData);t.PageView=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.PageViewData);n.PageViewPerfData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(u,f,e,o,s){var h;if(i.call(this),this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,perfTotal:n.FieldType.Default,networkConnect:n.FieldType.Default,sentRequest:n.FieldType.Default,receivedResponse:n.FieldType.Default,domProcessing:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default},this.isValid=!1,h=r.getPerformanceTiming(),h){var c=r.getDuration(h.navigationStart,h.loadEventEnd),l=r.getDuration(h.navigationStart,h.connectEnd),a=r.getDuration(h.requestStart,h.responseStart),v=r.getDuration(h.responseStart,h.responseEnd),y=r.getDuration(h.responseEnd,h.loadEventEnd);c==0?n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorPVCalc,"error calculating page view performance.",{total:c,network:l,request:a,response:v,dom:y})):c0&&n.navigationStart>0&&n.responseStart>0&&n.requestStart>0&&n.loadEventEnd>0&&n.responseEnd>0&&n.connectEnd>0&&n.domLoading>0},r.getDuration=function(n,t){var i=0;return isNaN(n)||isNaN(t)||(i=Math.max(t-n,0)),i},r.envelopeType="Microsoft.ApplicationInsights.{0}.PageviewPerformance",r.dataType="PageviewPerformanceData",r}(AI.PageViewPerfData);t.PageViewPerformance=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(t){this._config=t;this._sender=new n.Sender(t);typeof window!="undefined"&&(this._sessionManager=new n.Context._SessionManager(t),this.application=new n.Context.Application,this.device=new n.Context.Device,this.internal=new n.Context.Internal,this.location=new n.Context.Location,this.user=new n.Context.User(t),this.operation=new n.Context.Operation,this.session=new n.Context.Session,this.sample=new n.Context.Sample(t.sampleRate()))}return t.prototype.addTelemetryInitializer=function(n){this.telemetryInitializers=this.telemetryInitializers||[];this.telemetryInitializers.push(n)},t.prototype.track=function(t){return t?(t.name===n.Telemetry.PageView.envelopeType&&n._InternalLogging.resetInternalMessageCount(),this.session&&typeof this.session.id!="string"&&this._sessionManager.update(),this._track(t)):n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_TrackArgumentsNotSpecified,"cannot call .track() with a null or undefined argument")),t},t.prototype._track=function(t){var i,f,r,u,o;this.session&&(typeof this.session.id=="string"?this._applySessionContext(t,this.session):this._applySessionContext(t,this._sessionManager.automaticSession));this._applyApplicationContext(t,this.application);this._applyDeviceContext(t,this.device);this._applyInternalContext(t,this.internal);this._applyLocationContext(t,this.location);this._applySampleContext(t,this.sample);this._applyUserContext(t,this.user);this._applyOperationContext(t,this.operation);t.iKey=this._config.instrumentationKey();i=!1;try{for(this.telemetryInitializers=this.telemetryInitializers||[],f=this.telemetryInitializers.length,r=0;rl&&(clearInterval(a),s||(o.appInsights.sendPageViewInternal(i,r,l,u,f),o.appInsights.flush()))}catch(v){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TrackPVFailedCalc,"trackPageView failed on page load calculation: "+n.Util.getExceptionName(v),{exception:n.Util.dump(v)}))}},100)},i}();t.PageViewManager=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var r=function(){function t(n){this.prevPageVisitDataKeyName="prevPageVisitData";this.pageVisitTimeTrackingHandler=n}return t.prototype.trackPreviousPageVisit=function(t,i){try{var r=this.restartPageVisitTimer(t,i);r&&this.pageVisitTimeTrackingHandler(r.pageName,r.pageUrl,r.pageVisitTime)}catch(u){n._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: "+n.Util.dump(u))}},t.prototype.restartPageVisitTimer=function(t,i){try{var r=this.stopPageVisitTimer();return this.startPageVisitTimer(t,i),r}catch(u){return n._InternalLogging.warnToConsole("Call to restart failed: "+n.Util.dump(u)),null}},t.prototype.startPageVisitTimer=function(t,r){try{if(n.Util.canUseSessionStorage()){if(n.Util.getSessionStorage(this.prevPageVisitDataKeyName)!=null)throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit");var u=new i(t,r),f=JSON.stringify(u);n.Util.setSessionStorage(this.prevPageVisitDataKeyName,f)}}catch(e){n._InternalLogging.warnToConsole("Call to start failed: "+n.Util.dump(e))}},t.prototype.stopPageVisitTimer=function(){var r,i,t;try{return n.Util.canUseSessionStorage()?(r=Date.now(),i=n.Util.getSessionStorage(this.prevPageVisitDataKeyName),i?(t=JSON.parse(i),t.pageVisitTime=r-t.pageVisitStartTime,n.Util.removeSessionStorage(this.prevPageVisitDataKeyName),t):null):null}catch(u){return n._InternalLogging.warnToConsole("Stop page visit timer failed: "+n.Util.dump(u)),null}},t}(),i;t.PageVisitTimeManager=r;i=function(){function n(n,t){this.pageVisitStartTime=Date.now();this.pageName=n;this.pageUrl=t}return n}();t.PageVisitData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";(function(n){n[n.SQL=0]="SQL";n[n.Http=1]="Http";n[n.Other=2]="Other"})(n.DependencyKind||(n.DependencyKind={}));var t=n.DependencyKind}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Undefined=0]="Undefined";n[n.Aic=1]="Aic";n[n.Apmc=2]="Apmc"})(n.DependencySourceType||(n.DependencySourceType={}));var t=n.DependencySourceType}(AI||(AI={})),function(n){"use strict";var t=function(t){function i(){this.ver=2;this.kind=n.DataPointType.Aggregation;this.dependencyKind=n.DependencyKind.Other;this.success=!0;this.dependencySource=n.DependencySourceType.Apmc;this.properties={};t.call(this)}return __extends(i,t),i}(Microsoft.Telemetry.Domain);n.RemoteDependencyData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u,f,e,o){t.call(this);this.aiDataContract={id:n.FieldType.Required,ver:n.FieldType.Required,name:n.FieldType.Default,kind:n.FieldType.Required,value:n.FieldType.Default,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default,dependencyKind:n.FieldType.Default,success:n.FieldType.Default,async:n.FieldType.Default,dependencySource:n.FieldType.Default,commandName:n.FieldType.Default,dependencyTypeName:n.FieldType.Default,properties:n.FieldType.Default,resultCode:n.FieldType.Default};this.id=i;this.name=r;this.commandName=u;this.value=f;this.success=e;this.resultCode=o+"";this.dependencyKind=AI.DependencyKind.Http;this.dependencyTypeName="Ajax"}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.RemoteDependency",i.dataType="RemoteDependencyData",i}(AI.RemoteDependencyData);t.RemoteDependencyData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var r,i;t.Version="0.22.9";r=function(){function r(u){var f=this,e,o,s;if(this._trackAjaxAttempts=0,this.config=u||{},e=r.defaultConfig,e!==undefined)for(o in e)this.config[o]===undefined&&(this.config[o]=e[o]);t._InternalLogging.verboseLogging=function(){return f.config.verboseLogging};t._InternalLogging.enableDebugExceptions=function(){return f.config.enableDebug};s={instrumentationKey:function(){return f.config.instrumentationKey},accountId:function(){return f.config.accountId},sessionRenewalMs:function(){return f.config.sessionRenewalMs},sessionExpirationMs:function(){return f.config.sessionExpirationMs},endpointUrl:function(){return f.config.endpointUrl},emitLineDelimitedJson:function(){return f.config.emitLineDelimitedJson},maxBatchSizeInBytes:function(){return f.config.maxBatchSizeInBytes},maxBatchInterval:function(){return f.config.maxBatchInterval},disableTelemetry:function(){return f.config.disableTelemetry},sampleRate:function(){return f.config.samplingPercentage},cookieDomain:function(){return f.config.cookieDomain}};this.context=new t.TelemetryContext(s);this._pageViewManager=new n.ApplicationInsights.Telemetry.PageViewManager(this,this.config.overridePageViewDuration);this._eventTracking=new i("trackEvent");this._eventTracking.action=function(n,i,r,u,e){e?isNaN(e.duration)&&(e.duration=r):e={duration:r};var o=new t.Telemetry.Event(n,u,e),s=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,o),h=new t.Telemetry.Common.Envelope(s,t.Telemetry.Event.envelopeType);f.context.track(h)};this._pageTracking=new i("trackPageView");this._pageTracking.action=function(n,t,i,r,u){f.sendPageViewInternal(n,t,i,r,u)};this._pageVisitTimeManager=new t.Telemetry.PageVisitTimeManager(function(n,t,i){return f.trackPageVisitTime(n,t,i)});this.config.disableAjaxTracking||new n.ApplicationInsights.AjaxMonitor(this)}return r.prototype.sendPageViewInternal=function(n,i,r,u,f){var e=new t.Telemetry.PageView(n,i,r,u,f),o=new t.Telemetry.Common.Data(t.Telemetry.PageView.dataType,e),s=new t.Telemetry.Common.Envelope(o,t.Telemetry.PageView.envelopeType);this.context.track(s);this._trackAjaxAttempts=0},r.prototype.sendPageViewPerformanceInternal=function(n){var i=new t.Telemetry.Common.Data(t.Telemetry.PageViewPerformance.dataType,n),r=new t.Telemetry.Common.Envelope(i,t.Telemetry.PageViewPerformance.envelopeType);this.context.track(r)},r.prototype.startTrackPage=function(n){try{typeof n!="string"&&(n=window.document&&window.document.title||"");this._pageTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackFailed,"startTrackPage failed, page view may not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackPage=function(n,i,r,u){try{typeof n!="string"&&(n=window.document&&window.document.title||"");typeof i!="string"&&(i=window.location&&window.location.href||"");this._pageTracking.stop(n,i,r,u);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackFailed,"stopTrackPage failed, page view will not be collected: "+t.Util.getExceptionName(f),{exception:t.Util.dump(f)}))}},r.prototype.trackPageView=function(n,i,r,u,f){try{this._pageViewManager.trackPageView(n,i,r,u,f);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackPVFailed,"trackPageView failed, page view will not be collected: "+t.Util.getExceptionName(e),{exception:t.Util.dump(e)}))}},r.prototype.startTrackEvent=function(n){try{this._eventTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackEventFailed,"startTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackEvent=function(n,i,r){try{this._eventTracking.stop(n,undefined,i,r)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackEventFailed,"stopTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackEvent=function(n,i,r){try{var f=new t.Telemetry.Event(n,i,r),e=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,f),o=new t.Telemetry.Common.Envelope(e,t.Telemetry.Event.envelopeType);this.context.track(o)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackEventFailed,"trackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackAjax=function(n,i,r,u,f,e){if(this.config.maxAjaxCallsPerView===-1||this._trackAjaxAttempts0?n.maxBatchSizeInBytes:1e6,n.maxBatchInterval=isNaN(n.maxBatchInterval)?15e3:n.maxBatchInterval,n.enableDebug=t.Util.stringToBoolOrDefault(n.enableDebug),n.disableExceptionTracking=n.disableExceptionTracking!==undefined&&n.disableExceptionTracking!==null?t.Util.stringToBoolOrDefault(n.disableExceptionTracking):!1,n.disableTelemetry=t.Util.stringToBoolOrDefault(n.disableTelemetry),n.verboseLogging=t.Util.stringToBoolOrDefault(n.verboseLogging),n.emitLineDelimitedJson=t.Util.stringToBoolOrDefault(n.emitLineDelimitedJson),n.diagnosticLogInterval=n.diagnosticLogInterval||1e4,n.autoTrackPageVisitTime=t.Util.stringToBoolOrDefault(n.autoTrackPageVisitTime),(isNaN(n.samplingPercentage)||n.samplingPercentage<=0||n.samplingPercentage>=100)&&(n.samplingPercentage=100),n.disableAjaxTracking=n.disableAjaxTracking!==undefined&&n.disableAjaxTracking!==null?t.Util.stringToBoolOrDefault(n.disableAjaxTracking):!1,n.maxAjaxCallsPerView=isNaN(n.maxAjaxCallsPerView)?500:n.maxAjaxCallsPerView,n.disableCorrelationHeaders=n.disableCorrelationHeaders!==undefined&&n.disableCorrelationHeaders!==null?t.Util.stringToBoolOrDefault(n.disableCorrelationHeaders):!0,n.disableFlushOnBeforeUnload=n.disableFlushOnBeforeUnload!==undefined&&n.disableFlushOnBeforeUnload!==null?t.Util.stringToBoolOrDefault(n.disableFlushOnBeforeUnload):!1,n},i}();t.Initialization=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(){"use strict";var r,u;try{if(typeof window!="undefined"&&typeof JSON!="undefined")if(r="appInsights",window[r]===undefined)n.ApplicationInsights.AppInsights.defaultConfig=n.ApplicationInsights.Initialization.getDefaultConfig();else{var f=window[r]||{},t=new n.ApplicationInsights.Initialization(f),i=t.loadAppInsights();for(u in i)f[u]=i[u];t.emptyQueue();t.pollInteralLogs(i);t.addHousekeepingBeforeUnload(i)}}catch(e){n.ApplicationInsights._InternalLogging.warnToConsole("Failed to initialize AppInsights JS SDK: "+e.message)}})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={}))
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/tictactoe.csproj b/KaranINT013/tictactoe/tictactoe/tictactoe.csproj
new file mode 100644
index 0000000..2c0c85f
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/tictactoe.csproj
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ Debug
+ AnyCPU
+
+
+ 2.0
+ {B09A0CD5-2288-4217-95B9-2D419223E939}
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ tictactoe
+ tictactoe
+ v4.5.2
+ true
+
+
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
+ True
+
+
+ ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll
+ True
+
+
+ ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll
+ True
+
+
+ ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
+ True
+
+
+
+
+ ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll
+ True
+
+
+
+
+ ..\packages\Microsoft.AspNet.Cors.5.2.7\lib\net45\System.Web.Cors.dll
+ True
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll
+ True
+
+
+ ..\packages\Microsoft.AspNet.WebApi.Cors.5.2.7\lib\net45\System.Web.Http.Cors.dll
+ True
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll
+
+
+
+
+
+ TextTemplatingFileGenerator
+ Model1.edmx
+ Model1.Context.cs
+
+
+ TextTemplatingFileGenerator
+ Model1.edmx
+ Model1.cs
+
+
+
+
+
+
+
+
+
+ Global.asax
+
+
+ True
+ True
+ Model1.Context.tt
+
+
+ True
+ True
+ Model1.tt
+
+
+ True
+ True
+ Model1.edmx
+
+
+ Model1.tt
+
+
+
+
+
+
+ PreserveNewest
+
+
+ EntityModelCodeGenerator
+ Model1.Designer.cs
+
+
+ Model1.edmx
+
+
+ Web.config
+
+
+ Web.config
+
+
+
+
+
+
+
+
+
+ 10.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+
+
+
+
+ True
+ True
+ 65234
+ /
+ http://localhost:65234/
+ False
+ False
+
+
+ False
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/KaranINT013/tictactoe/tictactoe/tictactoe.csproj.user b/KaranINT013/tictactoe/tictactoe/tictactoe.csproj.user
new file mode 100644
index 0000000..0cbfd71
--- /dev/null
+++ b/KaranINT013/tictactoe/tictactoe/tictactoe.csproj.user
@@ -0,0 +1,38 @@
+
+
+
+ true
+ 600
+ True
+ False
+ True
+
+ tictactoe.Models.tictactoeEntities1
+ False
+
+
+
+
+
+
+
+ CurrentPage
+ True
+ False
+ False
+ False
+
+
+
+
+
+
+
+
+ True
+ True
+
+
+
+
+
\ No newline at end of file