haier-skywalking-client-js
Version:
Client-side JavaScript exception and tracing library for Apache SkyWalking APM
2 lines • 154 kB
JavaScript
(()=>{"use strict";function e(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}var t,r,n;!function(e){e.AJAX_ERROR="ajax",e.RESOURCE_ERROR="resource",e.VUE_ERROR="vue",e.PROMISE_ERROR="promise",e.JS_ERROR="js",e.UNKNOWN_ERROR="unknown"}(t||(t={})),function(e){e.INFO="Info",e.WARNING="Warning",e.ERROR="Error"}(r||(r={})),function(e){e.ERROR="/browser/errorLog",e.ERRORS="/browser/errorLogs",e.PERF="/browser/perfData",e.SEGMENT="/v3/segment",e.SEGMENTS="/v3/segments"}(n||(n={}));var o,a="Http",s="Exit";!function(e){e[e.OPENED=1]="OPENED",e[e.DONE=4]="DONE"}(o||(o={}));var i=10001,c="<browser>";const l=function(){function e(e,t){this.url="",this.knowTargetAddress=!0;var r=localStorage.getItem("clusterInfo");if(console.log("REPORT Getted clusterinfo from local storage is :"+r),r)switch(JSON.parse(r).cluster){case"qd-aliyun":t+="/sw8/browser/qdali";break;case"bj-aliyun":t+="/sw8/browser/bjali";break;case"bj-huaweiyun":t+="/sw8/browser/bjhw";break;case"bj-sjhl-shunguang":t+="/sw8/browser/sg"}else this.knowTargetAddress=!1;"ERROR"===e?this.url=t+n.ERROR:"ERRORS"===e?this.url=t+n.ERRORS:"SEGMENT"===e?this.url=t+n.SEGMENT:"SEGMENTS"===e?this.url=t+n.SEGMENTS:"PERF"===e&&(this.url=t+n.PERF)}return e.prototype.sendByFetch=function(e){if(delete e.collector,this.url&&this.knowTargetAddress){var t=new Request(this.url,{method:"POST",body:JSON.stringify(e)});fetch(t).then((function(e){if(e.status>=400||0===e.status)throw new Error("Something went wrong on api server!")})).catch((function(e){console.error(e)}))}},e.prototype.sendByXhr=function(e){if(this.url&&this.knowTargetAddress){var t=new XMLHttpRequest;t.open("post",this.url,!0),t.setRequestHeader("Content-Type","application/json"),t.onreadystatechange=function(){4===t.readyState&&t.status<400&&console.log("Report successfully")},t.send(JSON.stringify(e))}},e}(),u=new(function(){function e(){this.queues=[],this.collector=""}return e.prototype.addTask=function(e,t){this.queues.push(e),this.collector=t},e.prototype.fireTasks=function(){this.queues&&this.queues.length&&(new l("ERRORS",this.collector).sendByXhr(this.queues),this.queues=[])},e.prototype.finallyFireTasks=function(){var e=this;window.onbeforeunload=function(){e.queues.length&&new l("ERRORS",e.collector).sendByXhr(e.queues)}},e}());var f,p=!1;const h=function(){function e(){this.logInfo={uniqueId:"",service:"",serviceVersion:"",pagePath:"",category:t.UNKNOWN_ERROR,grade:r.INFO,errorUrl:"",line:0,col:0,message:"",firstReportedError:!1,collector:""}}return e.prototype.traceInfo=function(e){this.logInfo=e||this.logInfo;var r=[t.AJAX_ERROR,t.RESOURCE_ERROR,t.UNKNOWN_ERROR];p||r.includes(this.logInfo.category)||(p=!0,this.logInfo.firstReportedError=!0);var n=this.logInfo.collector;delete this.logInfo.collector,u.addTask(this.logInfo,n),u.finallyFireTasks(),f||(f=setInterval((function(){u.fireTasks()}),6e4))},e}();var d,g=(d=function(e,t){return(d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}d(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});const v=new(function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return g(o,n),o.prototype.handleErrors=function(n){var o=this;window.onerror=function(a,s,i,c,l){o.logInfo={uniqueId:e(),service:n.service,serviceVersion:n.serviceVersion,pagePath:n.pagePath,category:t.JS_ERROR,grade:r.ERROR,errorUrl:s,line:i,col:c,message:a,collector:n.collector,stack:l.stack},o.traceInfo()}},o}(h));var m=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();const y=new(function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return m(o,n),o.prototype.handleErrors=function(n){var o=this;window.addEventListener("unhandledrejection",(function(a){try{var s="";if(!a||!a.reason)return;a.reason.config&&a.reason.config.url&&(s=a.reason.config.url),o.logInfo={uniqueId:e(),service:n.service,serviceVersion:n.serviceVersion,pagePath:n.pagePath,category:t.PROMISE_ERROR,grade:r.ERROR,errorUrl:s||location.href,message:a.reason.message,stack:a.reason.stack,collector:n.collector},o.traceInfo()}catch(e){console.log(e)}}))},o}(h));var R=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();const w=new(function(o){function a(){return null!==o&&o.apply(this,arguments)||this}return R(a,o),a.prototype.handleError=function(o){var a=this;window.XMLHttpRequest&&window.addEventListener("xhrReadyStateChange",(function(s){var i=s.detail;4===i.readyState&&i.getRequestConfig[1]!==o.collector+n.ERRORS&&(0!==i.status&&i.status<400||(a.logInfo={uniqueId:e(),service:o.service,serviceVersion:o.serviceVersion,pagePath:o.pagePath,category:t.AJAX_ERROR,grade:r.ERROR,errorUrl:i.getRequestConfig[1],message:"status: "+i.status+"; statusText: "+i.statusText+";",collector:o.collector,stack:i.responseText},a.traceInfo()))}))},a}(h));var E=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();const S=new(function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return E(o,n),o.prototype.handleErrors=function(n){var o=this;window.addEventListener("error",(function(a){try{if(!a)return;var s=a.target||a.srcElement;if(!(s instanceof HTMLScriptElement||s instanceof HTMLLinkElement||s instanceof HTMLImageElement))return;o.logInfo={uniqueId:e(),service:n.service,serviceVersion:n.serviceVersion,pagePath:n.pagePath,category:t.RESOURCE_ERROR,grade:"IMG"===s.tagName?r.WARNING:r.ERROR,errorUrl:s.src||s.href||location.href,message:"load "+s.tagName+" resource error",collector:n.collector,stack:"load "+s.tagName+" resource error"},o.traceInfo()}catch(e){throw e}}))},o}(h));var O=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();const b=new(function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return O(o,n),o.prototype.handleErrors=function(n,o){var a=this;o.config.errorHandler=function(o,s,i){try{a.logInfo={uniqueId:e(),service:n.service,serviceVersion:n.serviceVersion,pagePath:n.pagePath,category:t.VUE_ERROR,grade:r.ERROR,errorUrl:location.href,message:i,collector:n.collector,stack:o.stack},a.traceInfo()}catch(o){throw o}}},o}(h));var I=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();const T=new(function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return I(o,n),o.prototype.handleErrors=function(n,o){this.logInfo={uniqueId:e(),service:n.service,serviceVersion:n.serviceVersion,pagePath:n.pagePath,category:t.JS_ERROR,grade:r.ERROR,errorUrl:o.name||location.href,message:o.message,collector:n.collector||location.origin,stack:o.stack},this.traceInfo()},o}(h)),P=function(){function e(){}return e.prototype.getPerfTiming=function(){try{var e=window.performance.timing;if("function"==typeof window.PerformanceNavigationTiming){var t=performance.getEntriesByType("navigation")[0];t&&(e=t)}return{redirectTime:void 0!==e.navigationStart?parseInt(String(e.fetchStart-e.navigationStart),10):void 0!==e.redirectEnd?parseInt(String(e.redirectEnd-e.redirectStart),10):0,dnsTime:parseInt(String(e.domainLookupEnd-e.domainLookupStart),10),ttfbTime:parseInt(String(e.responseStart-e.requestStart),10),tcpTime:parseInt(String(e.connectEnd-e.connectStart),10),transTime:parseInt(String(e.responseEnd-e.responseStart),10),domAnalysisTime:parseInt(String(e.domInteractive-e.responseEnd),10),fptTime:parseInt(String(e.responseEnd-e.fetchStart),10),domReadyTime:parseInt(String(e.domContentLoadedEventEnd-e.fetchStart),10),loadPageTime:parseInt(String(e.loadEventStart-e.fetchStart),10),resTime:parseInt(String(e.loadEventStart-e.domContentLoadedEventEnd),10),sslTime:"https:"===location.protocol&&e.secureConnectionStart>0?parseInt(String(e.connectEnd-e.secureConnectionStart),10):void 0,ttlTime:parseInt(String(e.domInteractive-e.fetchStart),10),firstPackTime:parseInt(String(e.responseStart-e.domainLookupStart),10),fmpTime:0}}catch(e){throw e}},e}();var _,x=function(e,t){return window.getComputedStyle?window.getComputedStyle(e,null)[t]:e.currentStyle[t]};!function(e){e[e.SVG=2]="SVG",e[e.IMG=2]="IMG",e[e.CANVAS=4]="CANVAS",e[e.OBJECT=4]="OBJECT",e[e.EMBED=4]="EMBED",e[e.VIDEO=4]="VIDEO"}(_||(_={}));var N=performance.now(),C=["SCRIPT","STYLE","META","HEAD","LINK"],k=window.innerWidth,A=window.innerHeight;const L=function(){function e(){this.fmpTime=0,this.statusCollector=[],this.flag=!0,this.observer=null,this.callbackCount=0,this.entries={},performance&&performance.getEntries?this.initObserver():console.log("your browser do not support performance.getEntries")}return e.prototype.getFirstSnapShot=function(){var e=performance.now(),t=document.body;t&&this.setTag(t,this.callbackCount),this.statusCollector.push({time:e})},e.prototype.initObserver=function(){var e=this;this.getFirstSnapShot(),this.observer=new MutationObserver((function(){e.callbackCount+=1;var t=performance.now(),r=document.body;r&&e.setTag(r,e.callbackCount),e.statusCollector.push({time:t})})),this.observer.observe(document,{childList:!0,subtree:!0}),"complete"===document.readyState?this.calculateFinalScore():window.addEventListener("load",(function(){e.calculateFinalScore()}),!1)},e.prototype.calculateFinalScore=function(){var e=this;if(MutationEvent&&this.flag)if(this.checkNeedCancel(N)){this.observer.disconnect(),this.flag=!1;for(var t=null,r=0,n=this.getTreeScore(document.body).dpss;r<n.length;r++){var o=n[r];t&&t.st?t.st<o.st&&(t=o):t=o}if(performance.getEntries().forEach((function(t){e.entries[t.name]=t.responseEnd})),!t)return!1;var a=this.filterResult(t.els),s=this.getFmpTime(a);this.fmpTime=s}else setTimeout((function(){e.calculateFinalScore()}),500)},e.prototype.getFmpTime=function(e){for(var t=0,r=0,n=e;r<n.length;r++){var o=n[r],a=0;if(1===o.weight){var s=parseInt(o.ele.getAttribute("fmp_c"),10);a=this.statusCollector[s].time}else if(2===o.weight)if("IMG"===o.ele.tagName)a=this.entries[o.ele.src];else if("SVG"===o.ele.tagName)s=parseInt(o.ele.getAttribute("fmp_c"),10),a=this.statusCollector[s].time;else{var i=x(o.ele,"background-image").match(/url\(\"(.*?)\"\)/),c=void 0;i&&i[1]&&(c=i[1]),c.includes("http")||(c=location.protocol+i[1]),a=this.entries[c]}else 4===o.weight&&("CANVAS"===o.ele.tagName?(s=parseInt(o.ele.getAttribute("fmp_c"),10),a=this.statusCollector[s]&&this.statusCollector[s].time):"VIDEO"===o.ele.tagName&&((a=this.entries[o.ele.src])||(a=this.entries[o.ele.poster])));"number"!=typeof a&&(a=0),t<a&&(t=a)}return t},e.prototype.filterResult=function(e){if(1===e.length)return e;var t=0;e.forEach((function(e){t+=e.st}));var r=t/e.length;return e.filter((function(e){return e.st>r}))},e.prototype.checkNeedCancel=function(e){var t=performance.now()-e,r=this.statusCollector.length>0?this.statusCollector[this.statusCollector.length-1].time:0;return t>3e3||t-r>1e3},e.prototype.getTreeScore=function(e){if(!e)return{};for(var t=[],r=0,n=e.children;r<n.length;r++){var o=n[r];if(o.getAttribute("fmp_c")){var a=this.getTreeScore(o);a.st&&t.push(a)}}return this.calcaulteGrades(e,t)},e.prototype.calcaulteGrades=function(e,t){var r=e.getBoundingClientRect(),n=r.width,o=r.height,a=r.left,s=r.top,i=!0;(A<s||k<a)&&(i=!1);var c=0;t.forEach((function(e){c+=e.st}));var l=Number(_[e.tagName])||1;1===l&&x(e,"background-image")&&"initial"!==x(e,"background-image")&&"none"!==x(e,"background-image")&&(l=_.IMG);var u=i?n*o*l:0,f=[{ele:e,st:u,weight:l}],p=e,h=this.calculateAreaParent(e);if(c>u*h||0===h){u=c,f=[];for(var d=0,g=t;d<g.length;d++){var v=g[d];f=f.concat(v.els)}}return{dpss:t,st:u,els:f,root:p}},e.prototype.calculateAreaParent=function(e){var t=e.getBoundingClientRect(),r=t.left,n=t.right,o=t.top,a=t.bottom,s=t.width,i=t.height,c=k,l=A,u=n-r+(c-0)-(Math.max(n,c)-Math.min(r,0)),f=a-o+(l-0)-(Math.max(a,l)-Math.min(o,0));return u<=0||f<=0?0:u*f/(s*i)},e.prototype.setTag=function(e,t){var r=e.tagName;if(-1===C.indexOf(r)){var n=e.children;if(n&&n.length>0)for(var o=n.length-1;o>=0;o--){var a=n[o];if(null===a.getAttribute("fmp_c")){var s=a.getBoundingClientRect(),i=s.left,c=s.top,l=s.width,u=s.height;if(A<c||k<i||0===l||0===u)continue;a.setAttribute("fmp_c",""+t)}this.setTag(a,t)}}},e}();var M=function(){return(M=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};const V=new(function(){function e(){this.perfConfig={perfDetail:{}}}return e.prototype.recordPerf=function(e){return t=this,r=void 0,o=function(){var t,r,n=this;return function(e,t){var r,n,o,a,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((o=(o=s.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=t.call(e,s)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}(this,(function(o){switch(o.label){case 0:return t={fmpTime:void 0},e.autoTracePerf?(r=this.perfConfig,[4,(new P).getPerfTiming()]):[3,3];case 1:return r.perfDetail=o.sent(),e.useFmp?[4,new L]:[3,3];case 2:t=o.sent(),o.label=3;case 3:return setTimeout((function(){var r=e.autoTracePerf?M(M({},n.perfConfig.perfDetail),{fmpTime:e.useFmp?parseInt(String(t.fmpTime),10):void 0}):void 0,o=M(M({},r),{pagePath:e.pagePath,serviceVersion:e.serviceVersion,service:e.service});new l("PERF",e.collector).sendByXhr(o),n.clearPerf()}),6e3),[2]}}))},new((n=void 0)||(n=Promise))((function(e,a){function s(e){try{c(o.next(e))}catch(e){a(e)}}function i(e){try{c(o.throw(e))}catch(e){a(e)}}function c(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n((function(e){e(r)}))).then(s,i)}c((o=o.apply(t,r||[])).next())}));var t,r,n,o},e.prototype.clearPerf=function(){window.performance&&window.performance.clearResourceTimings&&(window.performance.clearResourceTimings(),this.perfConfig={perfDetail:{}})},e}()),j="function"==typeof btoa,q="function"==typeof Buffer,D=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder?new TextEncoder:void 0),F=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],U=((e=>{let t={};e.forEach(((e,r)=>t[e]=r))})(F),String.fromCharCode.bind(String)),G=("function"==typeof Uint8Array.from&&Uint8Array.from.bind(Uint8Array),e=>e.replace(/[+\/]/g,(e=>"+"==e?"-":"_")).replace(/=+$/m,"")),H=j?e=>btoa(e):q?e=>Buffer.from(e,"binary").toString("base64"):e=>{let t,r,n,o,a="";const s=e.length%3;for(let s=0;s<e.length;){if((r=e.charCodeAt(s++))>255||(n=e.charCodeAt(s++))>255||(o=e.charCodeAt(s++))>255)throw new TypeError("invalid character found");t=r<<16|n<<8|o,a+=F[t>>18&63]+F[t>>12&63]+F[t>>6&63]+F[63&t]}return s?a.slice(0,s-3)+"===".substring(s):a},B=q?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,n=e.length;r<n;r+=4096)t.push(U.apply(null,e.subarray(r,r+4096)));return H(t.join(""))},J=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?U(192|t>>>6)+U(128|63&t):U(224|t>>>12&15)+U(128|t>>>6&63)+U(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return U(240|t>>>18&7)+U(128|t>>>12&63)+U(128|t>>>6&63)+U(128|63&t)},X=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,W=q?e=>Buffer.from(e,"utf8").toString("base64"):D?e=>B(D.encode(e)):e=>H(e.replace(X,J)),K=(e,t=!1)=>t?G(W(e)):W(e);var Y=function(){return(Y=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function z(t,r){var l=window.XMLHttpRequest,u=XMLHttpRequest.prototype.send,f=XMLHttpRequest.prototype.open;function p(e){var t=new CustomEvent(e,{detail:this});window.dispatchEvent(t)}l.getRequestConfig=[],window.XMLHttpRequest=function(){var e=new l;return e.addEventListener("readystatechange",(function(){p.call(this,"xhrReadyStateChange")}),!1),e.open=function(e,t,r,n,o){return this.getRequestConfig=arguments,f.apply(this,arguments)},e.send=function(e){return u.apply(this,arguments)},e};var h=[];window.addEventListener("xhrReadyStateChange",(function(l){var u={traceId:"",service:t.service+c,spans:[],serviceInstance:t.serviceVersion,traceSegmentId:""},f=l.detail.readyState,p=l.detail.getRequestConfig,d={};if(p[1].startsWith("http://")||p[1].startsWith("https://")?d=new URL(p[1]):p[1].startsWith("//")?d=new URL(""+window.location.protocol+p[1]):(d=new URL(window.location.href)).pathname=p[1],!t.noTraceOrigins.some((function(e){if("string"==typeof e){if(e===d.origin)return!0}else if(e instanceof RegExp&&e.test(d.origin))return!0}))){var g=new URL(t.collector);if(![n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS].includes(d.pathname.replace(new RegExp("^"+g.pathname),""))||t.traceSDKInternal){if(f===o.OPENED){var v=e(),m=e();h.push({event:l.detail,startTime:(new Date).getTime(),traceId:v,traceSegmentId:m});var y=String(K(v)),R=String(K(m)),w=String(K(u.service)),E=String(K(u.serviceInstance)),S=String(K(t.pagePath)),O=String(K(d.host)),b="1-"+y+"-"+R+"-"+u.spans.length+"-"+w+"-"+E+"-"+S+"-"+O;l.detail.setRequestHeader("sw8",b)}if(f===o.DONE){for(var I=(new Date).getTime(),T=0;T<h.length;T++)if(h[T].event.readyState===o.DONE){var P={};h[T].event.status&&(P=new URL(h[T].event.responseURL));var _={operationName:t.pagePath,startTime:h[T].startTime,endTime:I,spanId:u.spans.length,spanLayer:a,spanType:s,isError:0===l.detail.status||l.detail.status>=400,parentSpanId:u.spans.length-1,componentId:i,peer:P.host,tags:t.detailMode?[{key:"http.method",value:p[0]},{key:"url",value:h[T].event.responseURL||d.protocol+"//"+d.host+d.pathname}]:void 0};(u=Y(Y({},u),{traceId:h[T].traceId,traceSegmentId:h[T].traceSegmentId})).spans.push(_),h.splice(T,1)}r.push(u);var x=localStorage.getItem("clusterInfo");console.log("XHR Getted clusterinfo from local storage is :"+x);var N=(new Date).getTime();if(x){if(N-JSON.parse(x).ts>6048e5&&l&&l.detail){console.log("xhr res header deal start: "+l.detail.responseURL),console.log(l.detail.getAllResponseHeaders());var C=l.detail.getResponseHeader("clusterName");console.log("xhr res header deal end, clusterName : "+C),C&&localStorage.setItem("clusterInfo",JSON.stringify({cluster:C,ts:N}))}}else l&&l.detail&&(console.log("xhr res header deal start: "+l.detail.responseURL),console.log(l.detail.getAllResponseHeaders()),C=l.detail.getResponseHeader("clusterName"),console.log("xhr res header deal end, clusterName : "+C),C&&localStorage.setItem("clusterInfo",JSON.stringify({cluster:C,ts:N})))}}}}))}var Q=function(){return(Q=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Z=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function s(e){try{c(n.next(e))}catch(e){a(e)}}function i(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}c((n=n.apply(e,t||[])).next())}))},$=function(e,t){var r,n,o,a,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((o=(o=s.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=t.call(e,s)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}};var ee=function(){return(ee=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};const te={customOptions:{collector:location.origin,jsErrors:!0,apiErrors:!0,resourceErrors:!0,autoTracePerf:!0,useFmp:!1,enableSPA:!1,traceSDKInternal:!1,detailMode:!0,noTraceOrigins:[],traceTimeInterval:6e4},register:function(o){var u,f;this.customOptions=ee(ee({},this.customOptions),o),this.catchErrors(this.customOptions),this.customOptions.enableSPA||this.performance(this.customOptions),z(u=this.customOptions,f=[]),function(o,l){var u=this,f=window.fetch;window.fetch=function(){for(var p=[],d=0;d<arguments.length;d++)p[d]=arguments[d];return Z(u,void 0,void 0,(function(){var u,d,g,v,m,y,R,w,E,S,O,b,I,T,P,_,x,N,C,k,A,L,M,V;return $(this,(function(j){switch(j.label){case 0:u=(new Date).getTime(),d=e(),g=e(),v={traceId:"",service:o.service+c,spans:[],serviceInstance:o.serviceVersion,traceSegmentId:""},m={},p[0].startsWith("http://")||p[0].startsWith("https://")?m=new URL(p[0]):p[0].startsWith("//")?m=new URL(""+window.location.protocol+p[0]):(m=new URL(window.location.href)).pathname=p[0],y=o.noTraceOrigins.some((function(e){if("string"==typeof e){if(e===m.origin)return!0}else if(e instanceof RegExp&&e.test(m.origin))return!0})),R=new URL(o.collector),(w=!(y||[n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS].includes(m.pathname.replace(new RegExp("^"+R.pathname),""))&&!o.traceSDKInternal))&&(E=String(K(d)),S=String(K(g)),O=String(K(v.service)),b=String(K(v.serviceInstance)),I=String(K(o.pagePath)),T=String(K(m.host)),P=v.spans.length,_="1-"+E+"-"+S+"-"+P+"-"+O+"-"+b+"-"+I+"-"+T,p[1]||(p[1]={}),p[1].headers||(p[1].headers={}),p[1].headers.sw8=_),j.label=1;case 1:return j.trys.push([1,3,4,5]),[4,f.apply(void 0,p)];case 2:return[2,(x=j.sent()).clone().json().then((function(e){return e})).catch((function(e){return e}))];case 3:throw j.sent();case 4:return N=localStorage.getItem("clusterInfo"),console.log("FETCH Getted clusterinfo from local storage is :"+N),C=(new Date).getTime(),N?(k=JSON.parse(N),C-k.ts>6048e5&&x&&x.headers&&(console.log("fetch res header deal start: "+m),console.log(x.headers.entries()),A=x.headers.get("clusterName"),console.log("fetch res header deal end, clusterName : "+A),A&&localStorage.setItem("clusterInfo",JSON.stringify({cluster:A,ts:C})))):x&&x.headers&&(console.log("fetch res header deal start: "+m),console.log(x.headers.entries()),A=x.headers.get("clusterName"),console.log("fetch res header deal end, clusterName : "+A),A&&localStorage.setItem("clusterInfo",JSON.stringify({cluster:A,ts:C}))),x&&(0===x.status||x.status>=400)&&(L={uniqueId:e(),service:o.service,serviceVersion:o.serviceVersion,pagePath:o.pagePath,category:t.AJAX_ERROR,grade:r.ERROR,errorUrl:x&&x.url||m.protocol+"//"+m.host+m.pathname,message:"status: "+(x?x.status:0)+"; statusText: "+(x&&x.statusText)+";",collector:o.collector,stack:"Fetch: "+x&&x.statusText},(new h).traceInfo(L)),w&&(M=(new Date).getTime(),V={operationName:o.pagePath,startTime:u,endTime:M,spanId:v.spans.length,spanLayer:a,spanType:s,isError:x&&(0===x.status||x.status>=400),parentSpanId:v.spans.length-1,componentId:i,peer:m.host,tags:o.detailMode?[{key:"http.method",value:p[1].method||"GET"},{key:"url",value:x&&x.url||m.protocol+"//"+m.host+m.pathname}]:void 0},(v=Q(Q({},v),{traceId:d,traceSegmentId:g})).spans.push(V),l.push(v)),[7];case 5:return[2]}}))}))}}(u,f),window.onbeforeunload=function(e){f.length&&new l("SEGMENTS",u.collector).sendByXhr(f)},setInterval((function(){f.length&&(new l("SEGMENTS",u.collector).sendByXhr(f),f.splice(0,f.length))}),u.traceTimeInterval)},performance:function(e){"complete"===document.readyState?V.recordPerf(e):window.addEventListener("load",(function(){V.recordPerf(e)}),!1),this.customOptions.enableSPA&&window.addEventListener("hashchange",(function(){V.recordPerf(e)}),!1)},catchErrors:function(e){var t=e.service,r=e.pagePath,n=e.serviceVersion,o=e.collector;e.jsErrors&&(v.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o}),y.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o}),e.vue&&b.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o},e.vue)),e.apiErrors&&w.handleError({service:t,pagePath:r,serviceVersion:n,collector:o}),e.resourceErrors&&S.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o})},setPerformance:function(e){this.customOptions=ee(ee({},this.customOptions),e),this.performance(this.customOptions)},reportFrameErrors:function(e,t){T.handleErrors(e,t)}};window.ClientMonitor=te})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9oYWllci1za3l3YWxraW5nLWNsaWVudC1qcy8uL3NyYy9zZXJ2aWNlcy91dWlkLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL3NlcnZpY2VzL2NvbnN0YW50LnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL3NlcnZpY2VzL3JlcG9ydC50cyIsIndlYnBhY2s6Ly9oYWllci1za3l3YWxraW5nLWNsaWVudC1qcy8uL3NyYy9zZXJ2aWNlcy90YXNrLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL3NlcnZpY2VzL2Jhc2UudHMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9zcmMvZXJyb3JzL2pzLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL2Vycm9ycy9wcm9taXNlLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL2Vycm9ycy9hamF4LnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL2Vycm9ycy9yZXNvdXJjZS50cyIsIndlYnBhY2s6Ly9oYWllci1za3l3YWxraW5nLWNsaWVudC1qcy8uL3NyYy9lcnJvcnMvdnVlLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL2Vycm9ycy9mcmFtZXMudHMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9zcmMvcGVyZm9ybWFuY2UvcGVyZi50cyIsIndlYnBhY2s6Ly9oYWllci1za3l3YWxraW5nLWNsaWVudC1qcy8uL3NyYy9wZXJmb3JtYW5jZS9mbXAudHMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9zcmMvcGVyZm9ybWFuY2UvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9ub2RlX21vZHVsZXMvanMtYmFzZTY0L2Jhc2U2NC5tanMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9zcmMvdHJhY2UvaW50ZXJjZXB0b3JzL3hoci50cyIsIndlYnBhY2s6Ly9oYWllci1za3l3YWxraW5nLWNsaWVudC1qcy8uL3NyYy9tb25pdG9yLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL3RyYWNlL3NlZ21lbnQudHMiLCJ3ZWJwYWNrOi8vaGFpZXItc2t5d2Fsa2luZy1jbGllbnQtanMvLi9zcmMvdHJhY2UvaW50ZXJjZXB0b3JzL2ZldGNoLnRzIiwid2VicGFjazovL2hhaWVyLXNreXdhbGtpbmctY2xpZW50LWpzLy4vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbInV1aWQiLCJyZXBsYWNlIiwiYyIsInIiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJFcnJvcnNDYXRlZ29yeSIsIkdyYWRlVHlwZUVudW0iLCJSZXBvcnRUeXBlcyIsIlJlYWR5U3RhdHVzIiwiU3BhbkxheWVyIiwiU3BhblR5cGUiLCJDb21wb25lbnRJZCIsIlNlcnZpY2VUYWciLCJ0eXBlIiwiY29sbGVjdG9yIiwidXJsIiwia25vd1RhcmdldEFkZHJlc3MiLCJjbHVzdGVySW5mb1N0ciIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInBhcnNlIiwiY2x1c3RlciIsInRoaXMiLCJFUlJPUiIsIkVSUk9SUyIsIlNFR01FTlQiLCJTRUdNRU5UUyIsIlBFUkYiLCJzZW5kQnlGZXRjaCIsImRhdGEiLCJzZW5kUmVxdWVzdCIsIlJlcXVlc3QiLCJtZXRob2QiLCJib2R5Iiwic3RyaW5naWZ5IiwiZmV0Y2giLCJ0aGVuIiwicmVzcG9uc2UiLCJzdGF0dXMiLCJFcnJvciIsImNhdGNoIiwiZXJyb3IiLCJzZW5kQnlYaHIiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJzZXRSZXF1ZXN0SGVhZGVyIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsInNlbmQiLCJxdWV1ZXMiLCJhZGRUYXNrIiwicHVzaCIsImZpcmVUYXNrcyIsImxlbmd0aCIsImZpbmFsbHlGaXJlVGFza3MiLCJ3aW5kb3ciLCJvbmJlZm9yZXVubG9hZCIsImludGVydmFsIiwianNFcnJvclB2IiwibG9nSW5mbyIsInVuaXF1ZUlkIiwic2VydmljZSIsInNlcnZpY2VWZXJzaW9uIiwicGFnZVBhdGgiLCJjYXRlZ29yeSIsIlVOS05PV05fRVJST1IiLCJncmFkZSIsIklORk8iLCJlcnJvclVybCIsImxpbmUiLCJjb2wiLCJtZXNzYWdlIiwiZmlyc3RSZXBvcnRlZEVycm9yIiwidHJhY2VJbmZvIiwiRXhjbHVkZUVycm9yVHlwZXMiLCJBSkFYX0VSUk9SIiwiUkVTT1VSQ0VfRVJST1IiLCJpbmNsdWRlcyIsInNldEludGVydmFsIiwiaGFuZGxlRXJyb3JzIiwib3B0aW9ucyIsIm9uZXJyb3IiLCJKU19FUlJPUiIsInN0YWNrIiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwicmVhc29uIiwiY29uZmlnIiwiUFJPTUlTRV9FUlJPUiIsImxvY2F0aW9uIiwiaHJlZiIsImhhbmRsZUVycm9yIiwiZGV0YWlsIiwiZ2V0UmVxdWVzdENvbmZpZyIsInN0YXR1c1RleHQiLCJyZXNwb25zZVRleHQiLCJ0YXJnZXQiLCJzcmNFbGVtZW50IiwiSFRNTFNjcmlwdEVsZW1lbnQiLCJIVE1MTGlua0VsZW1lbnQiLCJIVE1MSW1hZ2VFbGVtZW50IiwidGFnTmFtZSIsIldBUk5JTkciLCJzcmMiLCJWdWUiLCJlcnJvckhhbmRsZXIiLCJ2bSIsImluZm8iLCJWVUVfRVJST1IiLCJuYW1lIiwib3JpZ2luIiwiZ2V0UGVyZlRpbWluZyIsInRpbWluZyIsInBlcmZvcm1hbmNlIiwiUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nIiwibnQyVGltaW5nIiwiZ2V0RW50cmllc0J5VHlwZSIsInJlZGlyZWN0VGltZSIsInVuZGVmaW5lZCIsIm5hdmlnYXRpb25TdGFydCIsInBhcnNlSW50IiwiU3RyaW5nIiwiZmV0Y2hTdGFydCIsInJlZGlyZWN0RW5kIiwicmVkaXJlY3RTdGFydCIsImRuc1RpbWUiLCJkb21haW5Mb29rdXBFbmQiLCJkb21haW5Mb29rdXBTdGFydCIsInR0ZmJUaW1lIiwicmVzcG9uc2VTdGFydCIsInJlcXVlc3RTdGFydCIsInRjcFRpbWUiLCJjb25uZWN0RW5kIiwiY29ubmVjdFN0YXJ0IiwidHJhbnNUaW1lIiwicmVzcG9uc2VFbmQiLCJkb21BbmFseXNpc1RpbWUiLCJkb21JbnRlcmFjdGl2ZSIsImZwdFRpbWUiLCJkb21SZWFkeVRpbWUiLCJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQiLCJsb2FkUGFnZVRpbWUiLCJsb2FkRXZlbnRTdGFydCIsInJlc1RpbWUiLCJzc2xUaW1lIiwicHJvdG9jb2wiLCJzZWN1cmVDb25uZWN0aW9uU3RhcnQiLCJ0dGxUaW1lIiwiZmlyc3RQYWNrVGltZSIsImZtcFRpbWUiLCJlIiwiRUxFX1dFSUdIVCIsImdldFN0eWxlIiwiZWxlbWVudCIsImF0dHIiLCJnZXRDb21wdXRlZFN0eWxlIiwiY3VycmVudFN0eWxlIiwiU1RBUlRfVElNRSIsIm5vdyIsIklHTk9SRV9UQUdfU0VUIiwiV1ciLCJpbm5lcldpZHRoIiwiV0giLCJpbm5lckhlaWdodCIsInN0YXR1c0NvbGxlY3RvciIsImZsYWciLCJvYnNlcnZlciIsImNhbGxiYWNrQ291bnQiLCJlbnRyaWVzIiwiZ2V0RW50cmllcyIsImluaXRPYnNlcnZlciIsImdldEZpcnN0U25hcFNob3QiLCJ0aW1lIiwiJGJvZHkiLCJkb2N1bWVudCIsInNldFRhZyIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImNhbGN1bGF0ZUZpbmFsU2NvcmUiLCJNdXRhdGlvbkV2ZW50IiwiY2hlY2tOZWVkQ2FuY2VsIiwiZGlzY29ubmVjdCIsInRwIiwiZ2V0VHJlZVNjb3JlIiwiZHBzcyIsIml0ZW0iLCJzdCIsImZvckVhY2giLCJyZXN1bHRFbHMiLCJmaWx0ZXJSZXN1bHQiLCJlbHMiLCJmbXBUaW1pbmciLCJnZXRGbXBUaW1lIiwic2V0VGltZW91dCIsInJ0Iiwid2VpZ2h0IiwiaW5kZXgiLCJlbGUiLCJnZXRBdHRyaWJ1dGUiLCJtYXRjaCIsInBvc3RlciIsInN1bSIsImF2ZyIsImZpbHRlciIsInN0YXJ0IiwibGFzdENhbFRpbWUiLCJub2RlIiwiY2hpbGRyZW4iLCJjaGlsZCIsInMiLCJjYWxjYXVsdGVHcmFkZXMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJ0b3AiLCJpc0luVmlld1BvcnQiLCJzZHAiLCJOdW1iZXIiLCJJTUciLCJyb290IiwiYXJlYVBlcmNlbnQiLCJjYWxjdWxhdGVBcmVhUGFyZW50IiwiY29uY2F0IiwicmlnaHQiLCJib3R0b20iLCJ3aW5SaWdodCIsIndpbkJvdHRvbSIsIm92ZXJsYXBYIiwibWF4IiwibWluIiwib3ZlcmxhcFkiLCJpbmRleE9mIiwiJGNoaWxkcmVuIiwiaSIsIiRjaGlsZCIsInNldEF0dHJpYnV0ZSIsInBlcmZDb25maWciLCJwZXJmRGV0YWlsIiwicmVjb3JkUGVyZiIsImZtcCIsImF1dG9UcmFjZVBlcmYiLCJ1c2VGbXAiLCJwZXJmSW5mbyIsImNsZWFyUGVyZiIsImNsZWFyUmVzb3VyY2VUaW1pbmdzIiwiX2hhc2J0b2EiLCJidG9hIiwiX2hhc0J1ZmZlciIsIkJ1ZmZlciIsIl9URSIsIlRleHREZWNvZGVyIiwiVGV4dEVuY29kZXIiLCJiNjRjaHMiLCJfZnJvbUNDIiwiYSIsInRhYiIsImZyb21DaGFyQ29kZSIsImJpbmQiLCJfbWtVcmlTYWZlIiwiVWludDhBcnJheSIsImZyb20iLCJtMCIsIl9idG9hIiwiYmluIiwidTMyIiwiYzAiLCJjMSIsImMyIiwiYXNjIiwicGFkIiwiY2hhckNvZGVBdCIsIlR5cGVFcnJvciIsInNsaWNlIiwic3Vic3RyaW5nIiwiX2Zyb21VaW50OEFycmF5IiwidThhIiwic3RycyIsImwiLCJhcHBseSIsInN1YmFycmF5Iiwiam9pbiIsImNiX3V0b2IiLCJjYyIsInJlX3V0b2IiLCJfZW5jb2RlIiwiZW5jb2RlIiwidXJsc2FmZSIsInhockludGVyY2VwdG9yIiwic2VnbWVudHMiLCJvcmlnaW5hbFhIUiIsInhoclNlbmQiLCJwcm90b3R5cGUiLCJ4aHJPcGVuIiwiYWpheEV2ZW50VHJpZ2dlciIsImFqYXhFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGlzcGF0Y2hFdmVudCIsImxpdmVYSFIiLCJjYWxsIiwiYXN5bmMiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiYXJndW1lbnRzIiwic2VnQ29sbGVjdG9yIiwic2VnbWVudCIsInRyYWNlSWQiLCJzcGFucyIsInNlcnZpY2VJbnN0YW5jZSIsInRyYWNlU2VnbWVudElkIiwieGhyU3RhdGUiLCJzdGFydHNXaXRoIiwiVVJMIiwicGF0aG5hbWUiLCJub1RyYWNlT3JpZ2lucyIsInNvbWUiLCJydWxlIiwiUmVnRXhwIiwidGVzdCIsImNvbGxlY3RvclVSTCIsInRyYWNlU0RLSW50ZXJuYWwiLCJPUEVORUQiLCJzdGFydFRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsInRyYWNlSWRTdHIiLCJzZWdtZW50SWQiLCJpbnN0YW5jZSIsImVuZHBvaW50IiwicGVlciIsImhvc3QiLCJ2YWx1ZXMiLCJET05FIiwiZW5kVGltZSIsInJlc3BvbnNlVVJMIiwiZXhpdFNwYW4iLCJvcGVyYXRpb25OYW1lIiwic3BhbklkIiwic3BhbkxheWVyIiwic3BhblR5cGUiLCJpc0Vycm9yIiwicGFyZW50U3BhbklkIiwiY29tcG9uZW50SWQiLCJ0YWdzIiwiZGV0YWlsTW9kZSIsImtleSIsInZhbHVlIiwic3BsaWNlIiwiY3VycmVudFRzIiwidHMiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJjbHVzdGVyTmFtZSIsImdldFJlc3BvbnNlSGVhZGVyIiwic2V0SXRlbSIsImN1c3RvbU9wdGlvbnMiLCJqc0Vycm9ycyIsImFwaUVycm9ycyIsInJlc291cmNlRXJyb3JzIiwiZW5hYmxlU1BBIiwidHJhY2VUaW1lSW50ZXJ2YWwiLCJyZWdpc3RlciIsImNvbmZpZ3MiLCJjYXRjaEVycm9ycyIsIm9yaWdpbkZldGNoIiwiYXJncyIsIm5vVHJhY2UiLCJoYXNUcmFjZSIsImhlYWRlcnMiLCJjbG9uZSIsImpzb24iLCJlcnIiLCJjbHVzdGVySW5mbyIsImdldCIsIndpbmRvd0ZldGNoIiwidnVlIiwic2V0UGVyZm9ybWFuY2UiLCJyZXBvcnRGcmFtZUVycm9ycyIsIkNsaWVudE1vbml0b3IiXSwibWFwcGluZ3MiOiJtQkFpQmUsU0FBU0EsSUFDdEIsTUFBTyx1Q0FBdUNDLFFBQVEsU0FBUyxTQUFDQyxHQUU5RCxJQUFNQyxFQUFxQixHQUFoQkMsS0FBS0MsU0FBaUIsRUFJakMsT0FGZ0IsTUFBTkgsRUFBWUMsRUFBUyxFQUFKQSxFQUFXLEdBRTdCRyxTQUFTLE9DTnRCLElBQVlDLEVBUUFDLEVBS0FDLEdBYlosU0FBWUYsR0FDVixvQkFDQSw0QkFDQSxrQkFDQSwwQkFDQSxnQkFDQSwwQkFORixDQUFZQSxNQUFjLEtBUTFCLFNBQVlDLEdBQ1YsY0FDQSxvQkFDQSxnQkFIRixDQUFZQSxNQUFhLEtBS3pCLFNBQVlDLEdBQ1YsNEJBQ0EsOEJBQ0EsMkJBQ0Esd0JBQ0EsMEJBTEYsQ0FBWUEsTUFBVyxLQVFoQixJQUVLQyxFQUZDQyxFQUFZLE9BQ1pDLEVBQVcsUUFDeEIsU0FBWUYsR0FDVix1QkFDQSxtQkFGRixDQUFZQSxNQUFXLEtBSWhCLElBQU1HLEVBQWMsTUFDZEMsRUFBYSxZQ2lEMUIsUUE5RUEsV0FJRSxXQUFZQyxFQUFjQyxHQUhsQixLQUFBQyxJQUFjLEdBQ2QsS0FBQUMsbUJBQTZCLEVBS25DLElBQUlDLEVBQWlCQyxhQUFhQyxRQUFRLGVBRTFDLEdBREFDLFFBQVFDLElBQUksb0RBQXNESixHQUM5REEsRUFFRixPQURrQkssS0FBS0MsTUFBTU4sR0FDVE8sU0FDbEIsSUFBSyxZQUNIVixHQUF3QixxQkFDeEIs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