File: //volume1/@cloudstation/@sync/repo/S/.2
"use strict";class TimeSpan{constructor(e){this.value=e}ticks(){return this.value}milliseconds(){return this.ticks()/1e4}static fromTicks(e){return new TimeSpan(e)}static fromMilliseconds(e){return TimeSpan.fromTicks(e*1e4)}static fromSeconds(e){return TimeSpan.fromMilliseconds(e*1e3)}static fromMinutes(e){return TimeSpan.fromSeconds(e*60)}static fromHours(e){return TimeSpan.fromMinutes(e*60)}}var $;!function(e){function n(e,n){const t={};return t[e]=n,t}function t(e,n){if(e instanceof Array){for(let t=0;t<e.length;++t)if(n(e[t])===!1)return!1}else for(let i in e)if(e.hasOwnProperty(i)&&n(i,e[i])===!1)return!1;return!0}function i(e,n){return!t(e,((e,t)=>!n(e,t)))}function o(e,n){return e.map(n).reduce(((e,n)=>e.concat(n)),[])}function r(e,n){return e.map(n)}function s(e,n){return o(e,(e=>{const t=n(e);return null!=t?[t]:[]}))}function c(e){function n(t,i){return t<e.length?e[t].then((e=>n(t+1,i.concat([e])))):Promise.resolve(i)}return n(0,[])}function u(e,...n){for(let i=0;i<n.length;++i)t(n[i],((n,t)=>{return e[n]=t,!0}));return e}function a(e,n,t){return n.split(".").reduce(((e,n)=>null==e?e:e[n]),e)||t}e.createObject=n,e.each=t,e.any=i,e.collect=o,e.map=r,e.choose=s,e.sequence=c,e.extend=u,e.get=a}($||($={}));var Base64;!function(e){function n(e){if(!e.match(/(^$)|(^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==))$/g))throw`decodeToString: Invalid base64 string.`;var n=new Uint8Array(.75*e.length);for(let o,r,s,c,u=0,a=0;u<e.length;)o=i.indexOf(e[u++]),r=i.indexOf(e[u++]),s=i.indexOf(e[u++]),c=i.indexOf(e[u++]),n[a++]+=o<<2|r>>4,64!=s&&(n[a++]+=(15&r)<<4|s>>2),64!=c&&(n[a++]+=(3&s)<<6|c);return t(n)}function t(e){var n="";for(let t=0,i=0,o=0,r=0,s=0;t<e.length;){if(i=e[t++],i>127)if(i>191&&224>i){if(t>=e.length)throw"utf8ToString: Invalid 2-byte sequence.";o=e[t++],i=(31&i)<<6|63&o}else if(i>223&&240>i){if(t+1>=e.length)throw"utf8ToString: Invalid 3-byte sequence.";o=e[t++],r=e[t++],i=(15&i)<<12|(63&o)<<6|63&r}else{if(!(i>239&&248>i))throw"utf8ToString: Unknown multibyte sequence";if(t+2>=e.length)throw"utf8ToString: Invalid 4-byte sequence.";o=e[t++],r=e[t++],s=e[t++],i=(7&i)<<18|(63&o)<<12|(63&r)<<6|63&s}if(65535>=i)n+=String.fromCharCode(i);else{if(!(1114111>=i))throw"utf8ToString: Largest UTF8 Code point reached.";i-=65536,n+=String.fromCharCode(i>>10|55296),n+=String.fromCharCode(1023&i|56320)}}return n}const i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.decodeToString=n}(Base64||(Base64={}));class LoggingChannel{constructor(e){e("Windows.Foundation.Diagnostics");this.loggingChannel=new Windows.Foundation.Diagnostics.LoggingChannel("Microsoft.Windows.SmartScreen",new Windows.Foundation.Diagnostics.LoggingChannelOptions("4f50731a-89cf-4782-b3e0-dce8c90476ba"),"39bd9805-3945-4878-aecc-096a23369f68")}logException(e,n){let t=new Windows.Foundation.Diagnostics.LoggingFields;t.addString("name",$.get(e,"name",""));t.addString("message",$.get(e,"message",""));t.addString("stack",$.get(e,"stack",""));t.addString("context",n?n:"");this.loggingChannel.logEvent("Exception",t,Windows.Foundation.Diagnostics.LoggingLevel.Error,new Windows.Foundation.Diagnostics.LoggingOptions(70368744177664))}logInfo(e){this.loggingChannel.logEvent(e.name,e.fields,Windows.Foundation.Diagnostics.LoggingLevel.Information,new Windows.Foundation.Diagnostics.LoggingOptions(70368744177664))}}class ApiBase{constructor(e,n=.01,t=1){this.defaultSamplingRate=n;this.errorSamplingRate=t;this.loggingChannel=new LoggingChannel(e)}sendRequestTimeout(e){return null}shouldSendRequest(e,n){return true}transformRequest(e,n){function t(e,n){if(!e){return e}switch(typeof e){case"object":var i={};if(e.constructor===Array){i=$.map(e,(e=>t(e,n)))}else{$.each(e,((e,o)=>{i[e]=t(o,n)}))}return i;case"string":return e.length>n?e.slice(0,n-3)+"...":e;default:return e}}const i=5e3;if(n.body){n.body=t(n.body,i)}return n}transformResponse(e,n,t){return t}logSendRequest(e,n,t){}getSamplingRates(e){return e.reduce(((n,t)=>{const i=this.getSamplingRate(t,e);if(i===null){switch(t.$type){case"error":return $.extend(n,{error:this.errorSamplingRate});default:return $.extend(n,{none:this.defaultSamplingRate})}}else if(i===0){return n}else{return $.extend(n,i)}}),{})}getDiagnosticEvent(e,n){return null}logFilterEvents(e,n){$.each($.choose(e,(e=>this.getDiagnosticEvent(e,n))),(e=>this.loggingChannel.logInfo(e)))}transformFinalizedEvent(e){return[e]}getPreFinalizedSamplingRate(e){return null}scriptHostTimeout(){return TimeSpan.fromSeconds(5).ticks()}sendRequest(e,n,t){if(this.shouldSendRequest(e,n)){const i=this.transformRequest(e,n);const o=Promise.race([t(e,i),new Promise(((n,t)=>{const i=this.sendRequestTimeout(e);if(i!=null){setTimeout((()=>{n({headers:[],body:null,statusCode:504})}),i.milliseconds())}}))]).then((n=>this.transformResponse(e,i,n)));o.then((n=>this.logSendRequest(e,i,n))).catch((e=>this.loggingChannel.logException(e)));return o}else{return Promise.resolve({headers:[],body:null,statusCode:429})}}filterEvents(e,n,t,i){return new Promise((o=>{function r(e){if(e.hasOwnProperty("$id")){return n(e["$id"]).then((n=>$.extend(e,n))).catch((n=>$.extend(e,{$error:n.message}))).then((e=>delete e.$id?e:e))}else{return Promise.resolve(e)}}this.logFilterEvents(e,i);const s=e.reduce(((e,n)=>{const t=this.getPreFinalizedSamplingRate(n);if(t!=null){return $.extend(e,t)}else{return e}}),{});return o($.sequence(e.map((e=>{if(s[e.$type]!=null&&t<=s[e.$type]){return r(e).then((e=>this.transformFinalizedEvent(e)))}else{return Promise.resolve(e)}}))).then((e=>$.collect(e,(e=>e)))).then((e=>{const n=this.getSamplingRates(e);if($.any(n,((e,n)=>t<=n))){return $.sequence($.map(e,(e=>r(e)))).then((e=>$.collect(e,(e=>{try{return this.transformFinalizedEvent(e)}catch(n){return $.extend(e,{$error:n.message})}})))).then((e=>({events:e,samplingRates:n,random:t})))}else{return Promise.resolve(null)}})))}))}}var V1;!function(e){class n extends ApiBase{constructor(e){super(e,.001)}sendRequestTimeout(e){return e.indexOf("service")!=-1?TimeSpan.fromSeconds(5):null}getSamplingRate(e){switch(e.$type){case"block":return{block:1};case"userAction":return{userAction:1};case"offline":return{offline:1};case"unsupported":return{unsupported:.01};case"onAllowedZoneCheck":if(this.isFileSupported(e["name"])){return{onAllowedZoneCheck:5e-4}}else{return 0}default:return null}}getDiagnosticEvent(e,n){let t=new Windows.Foundation.Diagnostics.LoggingFields;t.addString("CorrelationId",$.get(n,"correlationId",""));switch(e.$type){case"userAction":t.addString("Action",e["action"]);return{name:"AppRepUserAction",fields:t};case"offline":return{name:"AppRepOfflineExperience",fields:t};default:return null}}logFilterEvents(e,n){}isFileSupported(e,n){switch(e.substr(e.lastIndexOf(".")+1).toLowerCase()){case"appref-ms":case"appx":case"appxbundle":case"bat":case"chm":case"cmd":case"com":case"cpl":case"dll":case"drv":case"exe":case"gadget":case"hta":case"iso":case"js":case"jse":case"lnk":case"msc":case"msi":case"msp":case"msu":case"ocx":case"pif":case"ppkg":case"printerexport":case"ps1":case"scf":case"scr":case"settingcontent-ms":case"sys":case"url":case"vb":case"vbe":case"vbs":case"vhd":case"vhdx":case"vxd":case"website":case"wsf":return true;default:return false}}}e.Api=n}(V1||(V1={}));var V2;!function(e){class n extends V1.Api{constructor(e){super(e)}logFilterEvents(e,n){$.each(e,(e=>{if(e.$type=="userAction"){windows.smartScreen.events.logDecision(e["action"],$.get(n,"correlationId",""))}}))}logSendRequest(e,n,t){if(e.toLowerCase().indexOf("beforeexecute")!=-1&&t&&t.body){var i=JSON.parse(Base64.decodeToString(t.body));if(i.$type==="block"){windows.smartScreen.events.logAppLookup(n.body.path.fileName,$.get(n,"body.hash",""),$.get(n,"body.authenticode.hash",""),$.get(n,"body.authenticode.hashAlgo",""),n.body.motw?JSON.stringify(n.body.motw):"",$.get(n,"body.identity.caller.process.id",0),$.get(n,"body.identity.caller.process.creationTime",0),$.get(n,"body.identity.caller.process.owner",""),n.body.correlationId,$.get(n,"body.config.device.appReputation.level","")+($.get(n,"body.config.device.appReputation.enforcedByPolicy",false)?"ByPolicy":""),$.get(i,"responseCategory",""))}}}isFileSupported(e,n){switch(e.substr(e.lastIndexOf(".")+1).toLowerCase()){case"appx":case"appxbundle":return false;default:return super.isFileSupported(e,n)}}}e.Api=n}(V2||(V2={}));