/*! For license information please see background.bundle.js.LICENSE.txt */ (()=>{var e={2376:e=>{var t;self,t=function(){return(()=>{var e={"./node_modules/ably/build/ably-commonjs.js":e=>{var t;window,t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=42)}([function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",(function(){return i})),n.d(t,"__assign",(function(){return o})),n.d(t,"__rest",(function(){return a})),n.d(t,"__decorate",(function(){return s})),n.d(t,"__param",(function(){return A})),n.d(t,"__metadata",(function(){return c})),n.d(t,"__awaiter",(function(){return u})),n.d(t,"__generator",(function(){return l})),n.d(t,"__createBinding",(function(){return d})),n.d(t,"__exportStar",(function(){return p})),n.d(t,"__values",(function(){return h})),n.d(t,"__read",(function(){return f})),n.d(t,"__spread",(function(){return m})),n.d(t,"__spreadArrays",(function(){return g})),n.d(t,"__spreadArray",(function(){return y})),n.d(t,"__await",(function(){return v})),n.d(t,"__asyncGenerator",(function(){return b})),n.d(t,"__asyncDelegator",(function(){return k})),n.d(t,"__asyncValues",(function(){return S})),n.d(t,"__makeTemplateObject",(function(){return T})),n.d(t,"__importStar",(function(){return E})),n.d(t,"__importDefault",(function(){return j})),n.d(t,"__classPrivateFieldGet",(function(){return O})),n.d(t,"__classPrivateFieldSet",(function(){return R}));var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}function A(e,t){return function(n,r){t(n,r,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))}function l(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function m(){for(var e=[],t=0;t1||s(e,t)}))})}function s(e,t){try{(n=i[e](t)).value instanceof v?Promise.resolve(n.value.v).then(A,c):u(o[0][2],n)}catch(e){u(o[0][3],e)}var n}function A(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),o.shift(),o.length&&s(o[0][0],o[0][1])}}function k(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:v(e[r](t)),done:"return"===r}:i?i(t):t}:i}}function S(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=h(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,i){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,i,(t=e[n](t)).done,t.value)}))}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var w=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function E(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&d(t,e,n);return w(t,e),t}function j(e){return e&&e.__esModule?e:{default:e}}function O(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function R(e,t,n,r,i){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?i.call(e,n):i?i.value=n:t.set(e,n),n}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.allToUpperCase=t.allToLowerCase=t.encodeBody=t.decodeBody=t.Format=t.promisify=t.trim=t.arrChooseN=t.randomHexString=t.randomString=t.cheapRandStr=t.dataSizeBytes=t.inspectBody=t.inspectError=t.isErrorInfoOrPartialErrorInfo=t.now=t.parseQueryString=t.toQueryString=t.arrPopRandomElement=t.defaultPostHeaders=t.defaultGetHeaders=t.allSame=t.arrEvery=t.arrFilter=t.arrMap=t.safeArrForEach=t.arrForEach=t.forInOwnNonNullProperties=t.valuesArray=t.keysArray=t.arrWithoutValue=t.arrDeleteValue=t.arrIn=t.arrIndexOf=t.arrSubtract=t.arrIntersectOb=t.arrIntersect=t.intersect=t.containsValue=t.inherits=t.prototypicalClone=t.shallowClone=t.isEmptyArg=t.isOnlyPropIn=t.isEmpty=t.isObject=t.ensureArray=t.isArray=t.copy=t.mixin=void 0,t.toBase64=t.matchDerivedChannel=t.shallowEquals=t.getGlobalObject=t.getRetryTime=t.getJitterCoefficient=t.getBackoffCoefficient=void 0;var r=n(0),i=r.__importDefault(n(3)),o=r.__importStar(n(8)),a=r.__importDefault(n(4)),s=n(11),A=n(31);function c(e){return Math.floor(Math.random()*e.length)}function u(e){for(var t=[],n=1;n-1||(t+="; see "+e.href+" "),t+"]"}var s=function(e){function t(n,r,i,o){var a=e.call(this,n)||this;return void 0!==Object.setPrototypeOf&&Object.setPrototypeOf(a,t.prototype),a.code=r,a.statusCode=i,a.cause=o,a}return r.__extends(t,e),t.prototype.toString=function(){return a(this)},t.fromValues=function(e){var n=e,r=n.message,o=n.code,a=n.statusCode;if("string"!=typeof r||"number"!=typeof o||"number"!=typeof a)throw new Error("ErrorInfo.fromValues(): invalid values: "+i.default.Config.inspect(e));var s=Object.assign(new t(r,o,a),e);return s.code&&!s.href&&(s.href="https://help.ably.io/error/"+s.code),s},t}(Error);t.default=s;var A=function(e){function t(n,r,i,o){var a=e.call(this,n)||this;return void 0!==Object.setPrototypeOf&&Object.setPrototypeOf(a,t.prototype),a.code=r,a.statusCode=i,a.cause=o,a}return r.__extends(t,e),t.prototype.toString=function(){return a(this)},t}(Error);t.PartialErrorInfo=A},function(e,t,n){var r;e.exports=(r=n(6),function(){if("function"==typeof ArrayBuffer){var e=r.lib.WordArray,t=e.init,n=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};n.prototype=e}}(),r.lib.WordArray)},function(e,t,n){(function(t){var r;e.exports=(r=r||function(e){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==t&&t.crypto&&(r=t.crypto),!r)try{r=n(44)}catch(e){}var i=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),a={},s=a.lib={},A=s.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=s.WordArray=A.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[r+o>>>2]|=a<<24-(r+o)%4*8}else for(o=0;o>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=A.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},d=u.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},p=u.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},h=s.BufferedBlockAlgorithm=A.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),A=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,u=e.min(4*A,o);if(A){for(var l=0;l0?(e=e?e+"/base64":"base64",t=i.default.BufferUtils.base64Encode(t)):t=i.default.BufferUtils.toBuffer(t)),{name:this.name,id:this.id,clientId:this.clientId,connectionId:this.connectionId,connectionKey:this.connectionKey,extras:this.extras,encoding:e,data:t}},e.prototype.toString=function(){var e="[Message";return this.name&&(e+="; name="+this.name),this.id&&(e+="; id="+this.id),this.timestamp&&(e+="; timestamp="+this.timestamp),this.clientId&&(e+="; clientId="+this.clientId),this.connectionId&&(e+="; connectionId="+this.connectionId),this.encoding&&(e+="; encoding="+this.encoding),this.extras&&(e+="; extras ="+JSON.stringify(this.extras)),this.data&&("string"==typeof this.data?e+="; data="+this.data:i.default.BufferUtils.isBuffer(this.data)?e+="; data (buffer)="+i.default.BufferUtils.base64Encode(this.data):e+="; data (json)="+JSON.stringify(this.data)),this.extras&&(e+="; extras="+JSON.stringify(this.extras)),e+"]"},e.encrypt=function(e,t,n){var r=e.data,o=e.encoding,a=t.channelCipher;o=o?o+"/":"",i.default.BufferUtils.isBuffer(r)||(r=i.default.BufferUtils.utf8Encode(String(r)),o+="utf-8/"),a.encrypt(r,(function(t,r){t?n(t):(e.data=r,e.encoding=o+"cipher+"+a.algorithm,n(null,e))}))},e.encode=function(t,n,r){var o=t.data;if("string"!=typeof o&&!i.default.BufferUtils.isBuffer(o)&&null!=o){if(!s.isObject(o)&&!s.isArray(o))throw new a.default("Data type is unsupported",40013,400);t.data=JSON.stringify(o),t.encoding=t.encoding?t.encoding+"/json":"json"}null!=n&&n.cipher?e.encrypt(t,n,r):r(null,t)},e.encodeArray=function(t,n,r){for(var i=0,o=0;o0;){var d=s[--c].match(/([-\w]+)(\+([\w-]+))?/);if(!d)break;switch(l=d[1]){case"base64":u=i.default.BufferUtils.base64Decode(String(u)),A==s.length&&(r=u);continue;case"utf-8":u=i.default.BufferUtils.utf8Decode(u);continue;case"json":u=JSON.parse(u);continue;case"cipher":if(null!=n.channelOptions&&n.channelOptions.cipher&&n.channelOptions.channelCipher){var p=d[3],h=n.channelOptions.channelCipher;if(p!=h.algorithm)throw new Error("Unable to decrypt message with given cipher; incompatible cipher params");u=h.decrypt(u);continue}throw new Error("Unable to decrypt message; not an encrypted channel");case"vcdiff":if(!n.plugins||!n.plugins.vcdiff)throw new a.default("Missing Vcdiff decoder (https://github.com/ably-forks/vcdiff-decoder)",40019,400);if("undefined"==typeof Uint8Array)throw new a.default("Delta decoding not supported on this browser (need ArrayBuffer & Uint8Array)",40020,400);try{var f=n.baseEncodedPreviousPayload;"string"==typeof f&&(f=i.default.BufferUtils.utf8Encode(f)),f=i.default.BufferUtils.toBuffer(f),u=i.default.BufferUtils.toBuffer(u),r=u=i.default.BufferUtils.typedArrayToBuffer(n.plugins.vcdiff.decode(u,f))}catch(e){throw new a.default("Vcdiff delta decode failed with "+e,40018,400)}continue;default:throw new Error("Unknown encoding")}}}catch(e){var m=e;throw new a.default("Error processing the "+l+" encoding, decoder returned ‘"+m.message+"’",m.code||40013,400)}finally{e.encoding=A<=0?null:s.slice(0,A).join("/"),e.data=u}}n.baseEncodedPreviousPayload=r},e.fromResponseBody=function(t,n,r){r&&(t=s.decodeBody(t,r));for(var i=0;i0}}return e.prototype.setFlag=function(e){return this.flags=this.flags|u[e]},e.prototype.getMode=function(){return this.flags&&this.flags&u.MODE_ALL},e.prototype.encodeModesToFlags=function(e){var t=this;e.forEach((function(e){return t.setFlag(e)}))},e.prototype.decodeModesFromFlags=function(){var t=this,n=[];return e.channelModes.forEach((function(e){t.hasFlag(e)&&n.push(e)})),n.length>0?n:void 0},e.fromValues=function(t){return Object.assign(new e,t)},e.Action=A,e.channelModes=["PRESENCE","PUBLISH","SUBSCRIBE","PRESENCE_SUBSCRIBE"],e.ActionName=c,e.serialize=i.encodeBody,e.deserialize=function(t,n){var r=i.decodeBody(t,n);return e.fromDeserialized(r)},e.fromDeserialized=function(t){var n=t.error;n&&(t.error=o.default.fromValues(n));var r=t.messages;if(r)for(var i=0;i0&&(c+="; "),c+=e+"="+t.params[e]})),c.length>0&&(r+="; params=["+c+"]")}return r+"]"},e}();t.default=h},function(e,t,n){var r,i,o;e.exports=(r=n(6),o=(i=r).lib.WordArray,i.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var A=r.charAt(64);if(A)for(;i.length%4;)i.push(A);return i.join("")},parse:function(e){var t=e.length,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var i=0;i<65;i++)r[n.charCodeAt(i)]=i}var a=n.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(t=s)}return function(e,t,n){for(var r=[],i=0,a=0;a>>6-a%4*2;r[i>>>2]|=s<<24-i%4*8,i++}return o.create(r,i)}(e,t,r)}},r.enc.Base64)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(10)),a=r.__importDefault(n(26)),s=r.__importDefault(n(2)),A=r.__importDefault(n(8)),c=r.__importDefault(n(19)),u=r.__importDefault(n(16)),l=r.__importDefault(n(4)),d=r.__importDefault(n(20)),p=r.__importDefault(n(3));function h(e){return function(e){return!!e.code&&!u.default.isTokenErr(e)&&(!!i.arrIn([80015,80017,80030],e.code)||e.code>=4e4&&e.code<5e4)}(e)?[o.default.fromValues({action:o.default.Action.ERROR,error:e})]:[o.default.fromValues({action:o.default.Action.DISCONNECTED,error:e})]}var f=function(e){function t(t,n,r){var i=e.call(this,t,n,r,!0)||this;return i.onAuthUpdated=function(e){i.authParams={access_token:e.token}},i.stream=!("stream"in r)||r.stream,i.sendRequest=null,i.recvRequest=null,i.pendingCallback=null,i.pendingItems=null,i}return r.__extends(t,e),t.prototype.connect=function(){var e=this;s.default.logAction(s.default.LOG_MINOR,"CometTransport.connect()","starting"),a.default.prototype.connect.call(this);var t=this.params,n=t.options,r=A.default.getHost(n,t.host),o=A.default.getPort(n),c=n.tls?"https://":"http://";this.baseUri=c+r+":"+o+"/comet/";var u=this.baseUri+"connect";s.default.logAction(s.default.LOG_MINOR,"CometTransport.connect()","uri: "+u),this.auth.getAuthParams((function(t,n){if(t)e.disconnect(t);else if(!e.isDisposed){e.authParams=n;var r=e.params.getConnectParams(n);"stream"in r&&(e.stream=r.stream),s.default.logAction(s.default.LOG_MINOR,"CometTransport.connect()","connectParams:"+i.toQueryString(r));var o=!1,a=e.recvRequest=e.createRequest(u,null,r,null,e.stream?d.default.REQ_RECV_STREAM:d.default.REQ_RECV);a.on("data",(function(t){e.recvRequest&&(o||(o=!0,e.emit("preconnect")),e.onData(t))})),a.on("complete",(function(t){e.recvRequest||(t=t||new l.default("Request cancelled",80003,400)),e.recvRequest=null,o||t||(o=!0,e.emit("preconnect")),e.onActivity(),t?t.code?e.onData(h(t)):e.disconnect(t):p.default.Config.nextTick((function(){e.recv()}))})),a.exec()}}))},t.prototype.requestClose=function(){s.default.logAction(s.default.LOG_MINOR,"CometTransport.requestClose()"),this._requestCloseOrDisconnect(!0)},t.prototype.requestDisconnect=function(){s.default.logAction(s.default.LOG_MINOR,"CometTransport.requestDisconnect()"),this._requestCloseOrDisconnect(!1)},t.prototype._requestCloseOrDisconnect=function(e){var t=this,n=e?this.closeUri:this.disconnectUri;if(n){var r=this.createRequest(n,null,this.authParams,null,d.default.REQ_SEND);r.on("complete",(function(n){n&&(s.default.logAction(s.default.LOG_ERROR,"CometTransport.request"+(e?"Close()":"Disconnect()"),"request returned err = "+i.inspectError(n)),t.finish("disconnected",n))})),r.exec()}},t.prototype.dispose=function(){var e=this;s.default.logAction(s.default.LOG_MINOR,"CometTransport.dispose()",""),this.isDisposed||(this.isDisposed=!0,this.recvRequest&&(s.default.logAction(s.default.LOG_MINOR,"CometTransport.dispose()","aborting recv request"),this.recvRequest.abort(),this.recvRequest=null),this.finish("disconnected",c.default.disconnected()),p.default.Config.nextTick((function(){e.emit("disposed")})))},t.prototype.onConnect=function(e){var t;if(!this.isDisposed){var n=null===(t=e.connectionDetails)||void 0===t?void 0:t.connectionKey;a.default.prototype.onConnect.call(this,e);var r=this.baseUri+n;s.default.logAction(s.default.LOG_MICRO,"CometTransport.onConnect()","baseUri = "+r),this.sendUri=r+"/send",this.recvUri=r+"/recv",this.closeUri=r+"/close",this.disconnectUri=r+"/disconnect"}},t.prototype.send=function(e){if(this.sendRequest)return this.pendingItems=this.pendingItems||[],void this.pendingItems.push(e);var t=this.pendingItems||[];t.push(e),this.pendingItems=null,this.sendItems(t)},t.prototype.sendAnyPending=function(){var e=this.pendingItems;e&&(this.pendingItems=null,this.sendItems(e))},t.prototype.sendItems=function(e){var t=this,n=this.sendRequest=this.createRequest(this.sendUri,null,this.authParams,this.encodeRequest(e),d.default.REQ_SEND);n.on("complete",(function(e,n){e&&s.default.logAction(s.default.LOG_ERROR,"CometTransport.sendItems()","on complete: err = "+i.inspectError(e)),t.sendRequest=null,e?e.code?t.onData(h(e)):t.disconnect(e):(n&&t.onData(n),t.pendingItems&&p.default.Config.nextTick((function(){t.sendRequest||t.sendAnyPending()})))})),n.exec()},t.prototype.recv=function(){var e=this;if(!this.recvRequest&&this.isConnected){var t=this.recvRequest=this.createRequest(this.recvUri,null,this.authParams,null,this.stream?d.default.REQ_RECV_STREAM:d.default.REQ_RECV_POLL);t.on("data",(function(t){e.onData(t)})),t.on("complete",(function(t){e.recvRequest=null,e.onActivity(),t?t.code?e.onData(h(t)):e.disconnect(t):p.default.Config.nextTick((function(){e.recv()}))})),t.exec()}},t.prototype.onData=function(e){try{var t=this.decodeResponse(e);if(t&&t.length)for(var n=0;n0?(t=t?t+"/base64":"base64",e=o.default.BufferUtils.base64Encode(e)):e=o.default.BufferUtils.toBuffer(e)),{id:this.id,clientId:this.clientId,action:A(this.action),data:e,encoding:t}},e.prototype.toString=function(){var e="[PresenceMessage";return e+="; action="+this.action,this.id&&(e+="; id="+this.id),this.timestamp&&(e+="; timestamp="+this.timestamp),this.clientId&&(e+="; clientId="+this.clientId),this.connectionId&&(e+="; connectionId="+this.connectionId),this.encoding&&(e+="; encoding="+this.encoding),this.data&&("string"==typeof this.data?e+="; data="+this.data:o.default.BufferUtils.isBuffer(this.data)?e+="; data (buffer)="+o.default.BufferUtils.base64Encode(this.data):e+="; data (json)="+JSON.stringify(this.data)),e+"]"},e.fromResponseBody=function(t,n,r){var o=[];r&&(t=s.decodeBody(t,r));for(var a=0;a-1&&"string"!=typeof d&&(d=JSON.stringify(d)),A.open(o,this.uri,!0),A.responseType=p,"authorization"in t&&(A.withCredentials=!0),t)A.setRequestHeader(h,t[h]);var f,m,g,y=function(t,n,r,i){var o,A=n+" (event type: "+t.type+")";(null===(o=null==e?void 0:e.xhr)||void 0===o?void 0:o.statusText)&&(A+=", current statusText is "+e.xhr.statusText),s.default.logAction(s.default.LOG_ERROR,"Request.on"+t.type+"()",A),e.complete(new a.PartialErrorInfo(A,r,i))};A.onerror=function(e){y(e,"XHR error occurred",null,400)},A.onabort=function(t){e.timedOut?y(t,"Request aborted due to request timeout expiring",null,408):y(t,"Request cancelled",null,400)},A.ontimeout=function(e){y(e,"Request timed out",null,408)};var v=0,b=!1,k=function(){var n;try{var r=function(e){return e.getResponseHeader&&e.getResponseHeader("content-type")}(A);if(r?r.indexOf("application/json")>=0:"text"==A.responseType){var o="arraybuffer"===A.responseType?u.default.BufferUtils.utf8Decode(A.response):String(A.responseText);n=o.length?JSON.parse(o):o,b=!0}else n=A.response;void 0!==n.response?(m=n.statusCode,g=m<400,t=n.headers,n=n.response):t=function(e){for(var t=i.trim(e.getAllResponseHeaders()).split("\r\n"),n={},r=0;r-1;)t=n.slice(v,e),v=e+1,T(t)}var T=function(t){try{t=JSON.parse(t)}catch(t){return void e.complete(new a.PartialErrorInfo("Malformed response body from server: "+t.message,null,400))}e.emit("data",t)};A.onreadystatechange=function(){var t=A.readyState;t<3||0!==A.status&&(void 0===m&&(1223===(m=A.status)&&(m=204),clearTimeout(r),g=m<400,204!=m?f=e.requestMode==c.default.REQ_RECV_STREAM&&g&&function(e){return e.getResponseHeader&&(e.getResponseHeader("transfer-encoding")||!e.getResponseHeader("content-length"))}(A):e.complete(null,null,null,null,m)),3==t&&f?S():4==t&&(f?(S(),e.streamComplete=!0,u.default.Config.nextTick((function(){e.complete()}))):k()))},A.send(d)},t.prototype.dispose=function(){var e=this.xhr;if(e){e.onreadystatechange=e.onerror=e.onabort=e.ontimeout=l,this.xhr=null;var t=this.timer;t&&(clearTimeout(t),this.timer=null),this.requestComplete||e.abort()}delete p[this.id]},t}(o.default);t.default=f}).call(this,n(13))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importDefault(n(2)),o=r.__importStar(n(1)),a=r.__importDefault(n(22)),s=r.__importDefault(n(4)),A=r.__importDefault(n(45)),c=n(11),u=r.__importDefault(n(17)),l=r.__importDefault(n(24)),d=r.__importDefault(n(3)),p=Math.pow(2,17);function h(){}function f(e){return o.isErrorInfoOrPartialErrorInfo(e)?(e.code||(403===e.statusCode?e.code=40300:(e.code=40170,e.statusCode=401)),e):new s.default(o.inspectError(e),e.code||40170,e.statusCode||401)}var m=function(e,t){if(d.default.Config.createHmac){var n=d.default.Config.createHmac("SHA256",t);return n.update(e),n.digest("base64")}return(0,c.stringify)((0,A.default)(e,t))};function g(e){if(!e)return"";"string"==typeof e&&(e=JSON.parse(e));var t=Object.create(null),n=o.keysArray(e,!0);if(!n)return"";n.sort();for(var r=0;r-1&&(a=o.parseQueryString(t.authUrl.slice(h)),t.authUrl=t.authUrl.slice(0,h),l||(t.authParams=o.mixin(a,t.authParams)));var f=o.mixin({},t.authParams||{},e),m=function(e,t,r,a){var A;if(e?i.default.logAction(i.default.LOG_MICRO,"Auth.requestToken().tokenRequestCallback","Received Error: "+o.inspectError(e)):(A=r["content-type"],i.default.logAction(i.default.LOG_MICRO,"Auth.requestToken().tokenRequestCallback","Received; content-type: "+A+"; body: "+o.inspectBody(t))),e||a)return n(e,t);if(d.default.BufferUtils.isBuffer(t)&&(t=t.toString()),A){var c=A.indexOf("application/json")>-1,u=A.indexOf("text/plain")>-1||A.indexOf("application/jwt")>-1;if(c||u){if(c){if(t.length>p)return void n(new s.default("authUrl response exceeded max permitted length",40170,401));try{t=JSON.parse(t)}catch(e){return void n(new s.default("Unexpected error processing authURL response; err = "+e.message,40170,401))}}n(null,t,A)}else n(new s.default("authUrl responded with unacceptable content-type "+A+", should be either text/plain, application/jwt or application/json",40170,401))}else n(new s.default("authUrl response is missing a content-type header",40170,401))};if(i.default.logAction(i.default.LOG_MICRO,"Auth.requestToken().tokenRequestCallback","Requesting token from "+t.authUrl+"; Params: "+JSON.stringify(f)+"; method: "+(l?"POST":"GET")),l){var g=A||{};g["content-type"]="application/x-www-form-urlencoded";var y=o.toQueryString(f).slice(1);r.client.http.doUri(u.default.Post,c,t.authUrl,g,y,a,m)}else r.client.http.doUri(u.default.Get,c,t.authUrl,A||{},null,f,m)};else{if(!t.key)return i.default.logAction(i.default.LOG_ERROR,"Auth()","library initialized with a token literal without any way to renew the token when it expires (no authUrl, authCallback, or key). See https://help.ably.io/error/40171 for help"),void A(new s.default("Need a new token, but authOptions does not include any way to request one (no authUrl, authCallback, or key)",40171,403));i.default.logAction(i.default.LOG_MINOR,"Auth.requestToken()","using token auth with client-side signing"),a=function(e,n){r.createTokenRequest(e,t,n)}}"capability"in e&&(e.capability=g(e.capability));var l=!1,m=this.client.options.timeouts.realtimeRequestTimeout,y=setTimeout((function(){l=!0;var e="Token request callback timed out after "+m/1e3+" seconds";i.default.logAction(i.default.LOG_ERROR,"Auth.requestToken()",e),A(new s.default(e,40170,401))}),m);a(e,(function(e,n,a){if(!l){if(clearTimeout(y),e)return i.default.logAction(i.default.LOG_ERROR,"Auth.requestToken()","token request signing call returned error; err = "+o.inspectError(e)),void A(f(e));if("string"!=typeof n){if("object"!=typeof n){var d="Expected token request callback to call back with a token string or token request/details object, but got a "+typeof n;return i.default.logAction(i.default.LOG_ERROR,"Auth.requestToken()",d),void A(new s.default(d,40170,401))}var h=JSON.stringify(n).length;if(h>p&&!t.suppressMaxLengthCheck)A(new s.default("Token request/details object exceeded max permitted stringified size (was "+h+" bytes)",40170,401));else if("issued"in n)A(null,n);else{if(!("keyName"in n))return d="Expected token request callback to call back with a token string, token request object, or token details object",i.default.logAction(i.default.LOG_ERROR,"Auth.requestToken()",d),void A(new s.default(d,40170,401));var m,g,v,b;g=function(e,t,n,r){if(e)return i.default.logAction(i.default.LOG_ERROR,"Auth.requestToken()","token request API call returned error; err = "+o.inspectError(e)),void A(f(e));r||(t=JSON.parse(t)),i.default.logAction(i.default.LOG_MINOR,"Auth.getToken()","token received"),A(null,t)},v="/keys/"+(m=n).keyName+"/requestToken",b=o.defaultPostHeaders(r.client.options),t.requestHeaders&&o.mixin(b,t.requestHeaders),i.default.logAction(i.default.LOG_MICRO,"Auth.requestToken().requestToken","Sending POST to "+v+"; Token params: "+JSON.stringify(m)),r.client.http.do(u.default.Post,c,(function(e){return c.baseUri(e)+v}),b,JSON.stringify(m),null,g)}}else 0===n.length?A(new s.default("Token string is empty",40170,401)):n.length>p?A(new s.default("Token string exceeded max permitted length (was "+n.length+" bytes)",40170,401)):"undefined"===n||"null"===n?A(new s.default("Token string was literal null/undefined",40170,401)):"{"!==n[0]||a&&a.indexOf("application/jwt")>-1?A(null,{token:n}):A(new s.default("Token was double-encoded; make sure you're not JSON-encoding an already encoded token request or details",40170,401))}}))},e.prototype.createTokenRequest=function(e,t,n){if("function"!=typeof e||n?"function"!=typeof t||n||(n=t,t=null):(n=e,t=e=null),!n&&this.client.options.promises)return o.promisify(this,"createTokenRequest",arguments);t=t||this.authOptions,e=e||o.copy(this.tokenParams);var r=t.key;if(r){var a=r.split(":"),A=a[0],c=a[1];if(c)if(""!==e.clientId){"capability"in e&&(e.capability=g(e.capability));var u,l=o.mixin({keyName:A},e),d=e.clientId||"",p=e.ttl||"",h=e.capability||"";u=function(){var e=l.nonce||(l.nonce=("000000"+Math.floor(1e16*Math.random())).slice(-16)),t=l.timestamp,r=l.keyName+"\n"+p+"\n"+h+"\n"+d+"\n"+t+"\n"+e+"\n";l.mac=l.mac||m(r,c),i.default.logAction(i.default.LOG_MINOR,"Auth.getTokenRequest()","generated signed request"),n(null,l)},l.timestamp?u():this.getTimestamp(t&&t.queryTime,(function(e,t){e?n(e):(l.timestamp=t,u())}))}else n(new s.default("clientId can’t be an empty string",40012,400));else n(new s.default("Invalid key specified",40101,403))}else n(new s.default("No key specified",40101,403))},e.prototype.getAuthParams=function(e){"basic"==this.method?e(null,{key:this.key}):this._ensureValidAuthCredentials(!1,(function(t,n){if(t)e(t);else{if(!n)throw new Error("Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails");e(null,{access_token:n.token})}}))},e.prototype.getAuthHeaders=function(e){"basic"==this.method?e(null,{authorization:"Basic "+this.basicKey}):this._ensureValidAuthCredentials(!1,(function(t,n){if(t)e(t);else{if(!n)throw new Error("Auth.getAuthParams(): _ensureValidAuthCredentials returned no error or tokenDetails");e(null,{authorization:"Bearer "+o.toBase64(n.token)})}}))},e.prototype.getTimestamp=function(e,t){this.isTimeOffsetSet()||!e&&!this.authOptions.queryTime?t(null,this.getTimestampUsingOffset()):this.client.time(t)},e.prototype.getTimestampUsingOffset=function(){return o.now()+(this.client.serverTimeOffset||0)},e.prototype.isTimeOffsetSet=function(){return null!==this.client.serverTimeOffset},e.prototype._saveBasicOptions=function(e){this.method="basic",this.key=e.key,this.basicKey=o.toBase64(e.key),this.authOptions=e||{},"clientId"in e&&this._userSetClientId(e.clientId)},e.prototype._saveTokenOptions=function(e,t){this.method="token",e&&(this.tokenParams=e),t&&(t.token&&(t.tokenDetails="string"==typeof t.token?{token:t.token}:t.token),t.tokenDetails&&(this.tokenDetails=t.tokenDetails),"clientId"in t&&this._userSetClientId(t.clientId),this.authOptions=t)},e.prototype._ensureValidAuthCredentials=function(e,t){var n=this,r=this.tokenDetails;if(r){if(this._tokenClientIdMismatch(r.clientId))return void t(new s.default("Mismatch between clientId in token ("+r.clientId+") and current clientId ("+this.clientId+")",40102,403));if(!this.isTimeOffsetSet()||!r.expires||r.expires>=this.getTimestampUsingOffset())return i.default.logAction(i.default.LOG_MINOR,"Auth.getToken()","using cached token; expires = "+r.expires),void t(null,r);i.default.logAction(i.default.LOG_MINOR,"Auth.getToken()","deleting expired token"),this.tokenDetails=null}if((this.waitingForTokenRequest||(this.waitingForTokenRequest=a.default.create())).push(t),null===this.currentTokenRequestId||e){var o=this.currentTokenRequestId=v++;this.requestToken(this.tokenParams,this.authOptions,(function(e,t){if(n.currentTokenRequestId>o)i.default.logAction(i.default.LOG_MINOR,"Auth._ensureValidAuthCredentials()","Discarding token request response; overtaken by newer one");else{n.currentTokenRequestId=null;var r=n.waitingForTokenRequest||h;n.waitingForTokenRequest=null,e?r(e):r(null,n.tokenDetails=t)}}))}},e.prototype._userSetClientId=function(e){if("string"!=typeof e&&null!==e)throw new s.default("clientId must be either a string or null",40012,400);if("*"===e)throw new s.default('Can’t use "*" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, instantiate the library with {defaultTokenParams: {clientId: "*"}}), or if calling authorize(), pass it in as a tokenParam: authorize({clientId: "*"}, authOptions)',40012,400);var t=this._uncheckedSetClientId(e);if(t)throw t},e.prototype._uncheckedSetClientId=function(e){if(this._tokenClientIdMismatch(e)){var t="Unexpected clientId mismatch: client has "+this.clientId+", requested "+e,n=new s.default(t,40102,401);return i.default.logAction(i.default.LOG_ERROR,"Auth._uncheckedSetClientId()",t),n}return this.clientId=this.tokenParams.clientId=e,null},e.prototype._tokenClientIdMismatch=function(e){return!(!this.clientId||"*"===this.clientId||!e||"*"===e||this.clientId===e)},e.isTokenErr=function(e){return e.code&&e.code>=40140&&e.code<40150},e}();t.default=b},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Get="get",e.Delete="delete",e.Post="post",e.Put="put",e.Patch="patch"}(r||(r={})),t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HttpPaginatedResponse=t.PaginatedResult=void 0;var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(2)),a=r.__importDefault(n(25)),s=function(){function e(e,t,n,r,i,o){this.rest=e,this.path=t,this.headers=n,this.envelope=null!=r?r:null,this.bodyHandler=i,this.useHttpPaginatedResponse=o||!1}return e.prototype.get=function(e,t){var n=this;a.default.get(this.rest,this.path,this.headers,e,this.envelope,(function(e,r,i,o,a){n.handlePage(e,r,i,o,a,t)}))},e.prototype.delete=function(e,t){var n=this;a.default.delete(this.rest,this.path,this.headers,e,this.envelope,(function(e,r,i,o,a){n.handlePage(e,r,i,o,a,t)}))},e.prototype.post=function(e,t,n){var r=this;a.default.post(this.rest,this.path,t,this.headers,e,this.envelope,(function(e,t,i,o,a){n&&r.handlePage(e,t,i,o,a,n)}))},e.prototype.put=function(e,t,n){var r=this;a.default.put(this.rest,this.path,t,this.headers,e,this.envelope,(function(e,t,i,o,a){n&&r.handlePage(e,t,i,o,a,n)}))},e.prototype.patch=function(e,t,n){var r=this;a.default.patch(this.rest,this.path,t,this.headers,e,this.envelope,(function(e,t,i,o,a){n&&r.handlePage(e,t,i,o,a,n)}))},e.prototype.handlePage=function(e,t,n,r,a,s){if(e&&function(e,t,n){return!(n&&(t||"number"==typeof e.code))}(e,t,this.useHttpPaginatedResponse))return o.default.logAction(o.default.LOG_ERROR,"PaginatedResource.handlePage()","Unexpected error getting resource: err = "+i.inspectError(e)),void(null==s||s(e));var u,l,d;try{u=this.bodyHandler(t,n||{},r)}catch(t){return void(null==s||s(e||t))}n&&(l=n.Link||n.link)&&(d=function(e){"string"==typeof e&&(e=e.split(","));for(var t,n={},r=0;r;\s*rel="(\w+)"$/);if(o){var a=(void 0,(t=o[1].match(/^\.\/(\w+)\?(.*)$/))&&t[2]&&i.parseQueryString(t[2]));a&&(n[o[2]]=a)}}return n}(l)),this.useHttpPaginatedResponse?s(null,new c(this,u,n||{},a,d,e)):s(null,new A(this,u,d))},e}(),A=function(){function e(e,t,n){var r=this;this.resource=e,this.items=t;var o=this;n&&("first"in n&&(this.first=function(e){if(!e&&o.resource.rest.options.promises)return i.promisify(o,"first",[]);o.get(n.first,e)}),"current"in n&&(this.current=function(e){if(!e&&o.resource.rest.options.promises)return i.promisify(o,"current",[]);o.get(n.current,e)}),this.next=function(e){if(!e&&o.resource.rest.options.promises)return i.promisify(o,"next",[]);"next"in n?o.get(n.next,e):e(null)},this.hasNext=function(){return"next"in n},this.isLast=function(){var e;return!(null===(e=r.hasNext)||void 0===e?void 0:e.call(r))})}return e.prototype.get=function(e,t){var n=this.resource;a.default.get(n.rest,n.path,n.headers,e,n.envelope,(function(e,r,i,o,a){n.handlePage(e,r,i,o,a,t)}))},e}();t.PaginatedResult=A;var c=function(e){function t(t,n,r,i,o,a){var s=e.call(this,t,n,o)||this;return s.statusCode=i,s.success=i<300&&i>=200,s.headers=r,s.errorCode=a&&a.code,s.errorMessage=a&&a.message,s}return r.__extends(t,e),t.prototype.toJSON=function(){return{items:this.items,statusCode:this.statusCode,success:this.success,headers:this.headers,errorCode:this.errorCode,errorMessage:this.errorMessage}},t}(A);t.HttpPaginatedResponse=c,t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isRetriable=void 0;var r=n(0).__importDefault(n(4)),i={DISCONNECTED:80003,SUSPENDED:80002,FAILED:8e4,CLOSING:80017,CLOSED:80017,UNKNOWN_CONNECTION_ERR:50002,UNKNOWN_CHANNEL_ERR:50001},o={disconnected:function(){return r.default.fromValues({statusCode:400,code:i.DISCONNECTED,message:"Connection to server temporarily unavailable"})},suspended:function(){return r.default.fromValues({statusCode:400,code:i.SUSPENDED,message:"Connection to server unavailable"})},failed:function(){return r.default.fromValues({statusCode:400,code:i.FAILED,message:"Connection failed or disconnected by server"})},closing:function(){return r.default.fromValues({statusCode:400,code:i.CLOSING,message:"Connection closing"})},closed:function(){return r.default.fromValues({statusCode:400,code:i.CLOSED,message:"Connection closed"})},unknownConnectionErr:function(){return r.default.fromValues({statusCode:500,code:i.UNKNOWN_CONNECTION_ERR,message:"Internal connection error"})},unknownChannelErr:function(){return r.default.fromValues({statusCode:500,code:i.UNKNOWN_CONNECTION_ERR,message:"Internal channel error"})}};t.isRetriable=function(e){return!e.statusCode||!e.code||e.statusCode>=500||Object.values(i).includes(e.code)},t.default=o},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.REQ_SEND=0]="REQ_SEND",e[e.REQ_RECV=1]="REQ_RECV",e[e.REQ_RECV_POLL=2]="REQ_RECV_POLL",e[e.REQ_RECV_STREAM=3]="REQ_RECV_STREAM"}(r||(r={})),t.default=r},function(e,t,n){var r;e.exports=(r=n(6),n(5),n(58),n(11),n(40),n(32),n(23),n(27),n(28),n(59),n(60),r)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0).__importDefault(n(2)),i=function(){function e(e){this.members=e||[]}return e.prototype.call=function(){for(var e=[],t=0;tr&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),s=i.words,A=a.words,c=0;c=r.Success&&e=300){var p=l&&l.error||n;return p||((p=new Error("Error in unenveloping "+r)).statusCode=u),void e(p,l,d,!0,u)}e(n,l,d,!0,u)}else e(n,r,i,!0,s)}else e(new c.PartialErrorInfo("unenvelope(): Response body is missing",null))}else e(n)}}(f,h),(p=p||{}).envelope=h),u(t,A,p,f,(function A(c,l){var p;if(a.default.shouldLog(a.default.LOG_MICRO)&&a.default.logAction(a.default.LOG_MICRO,"Resource."+e+"()","Sending; "+d(n,l)),a.default.shouldLog(a.default.LOG_MICRO)){var h=r;if((null===(p=c["content-type"])||void 0===p?void 0:p.indexOf("msgpack"))>0)try{h=i.default.Config.msgpack.decode(r)}catch(t){a.default.logAction(a.default.LOG_MICRO,"Resource."+e+"()","Sending MsgPack Decoding Error: "+o.inspectError(t))}a.default.logAction(a.default.LOG_MICRO,"Resource."+e+"()","Sending; "+d(n,l)+"; Body: "+h)}t.http.do(e,t,n,c,r,l,(function(e,n,r,i,o){e&&s.default.isTokenErr(e)?t.auth.authorize(null,null,(function(e){e?f(e):u(t,r,l,f,A)})):f(e,n,r,i,o)}))}))},e}();t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importDefault(n(10)),o=r.__importStar(n(1)),a=r.__importDefault(n(7)),s=r.__importDefault(n(2)),A=r.__importDefault(n(19)),c=r.__importDefault(n(4)),u=r.__importDefault(n(3)),l=i.default.Action,d=i.default.fromValues({action:l.CLOSE}),p=i.default.fromValues({action:l.DISCONNECT}),h=function(e){function t(t,n,r,i){var o=e.call(this)||this;return i&&(r.format=void 0,r.heartbeats=!0),o.connectionManager=t,t.registerProposedTransport(o),o.auth=n,o.params=r,o.timeouts=r.options.timeouts,o.format=r.format,o.isConnected=!1,o.isFinished=!1,o.isDisposed=!1,o.maxIdleInterval=null,o.idleTimer=null,o.lastActivity=null,o}return r.__extends(t,e),t.prototype.connect=function(){},t.prototype.close=function(){this.isConnected&&this.requestClose(),this.finish("closed",A.default.closed())},t.prototype.disconnect=function(e){this.isConnected&&this.requestDisconnect(),this.finish("disconnected",e||A.default.disconnected())},t.prototype.fail=function(e){this.isConnected&&this.requestDisconnect(),this.finish("failed",e||A.default.failed())},t.prototype.finish=function(e,t){var n;this.isFinished||(this.isFinished=!0,this.isConnected=!1,this.maxIdleInterval=null,clearTimeout(null!==(n=this.idleTimer)&&void 0!==n?n:void 0),this.idleTimer=null,this.emit(e,t),this.dispose())},t.prototype.onProtocolMessage=function(e){switch(s.default.shouldLog(s.default.LOG_MICRO)&&s.default.logAction(s.default.LOG_MICRO,"Transport.onProtocolMessage()","received on "+this.shortName+": "+i.default.stringify(e)+"; connectionId = "+this.connectionManager.connectionId),this.onActivity(),e.action){case l.HEARTBEAT:s.default.logAction(s.default.LOG_MICRO,"Transport.onProtocolMessage()",this.shortName+" heartbeat; connectionId = "+this.connectionManager.connectionId),this.emit("heartbeat",e.id);break;case l.CONNECTED:this.onConnect(e),this.emit("connected",e.error,e.connectionId,e.connectionDetails,e);break;case l.CLOSED:this.onClose(e);break;case l.DISCONNECTED:this.onDisconnect(e);break;case l.ACK:this.emit("ack",e.msgSerial,e.count);break;case l.NACK:this.emit("nack",e.msgSerial,e.count,e.error);break;case l.SYNC:this.connectionManager.onChannelMessage(e,this);break;case l.ACTIVATE:break;case l.AUTH:this.auth.authorize((function(e){e&&s.default.logAction(s.default.LOG_ERROR,"Transport.onProtocolMessage()","Ably requested re-authentication, but unable to obtain a new token: "+o.inspectError(e))}));break;case l.ERROR:if(s.default.logAction(s.default.LOG_MINOR,"Transport.onProtocolMessage()","received error action; connectionId = "+this.connectionManager.connectionId+"; err = "+u.default.Config.inspect(e.error)+(e.channel?", channel: "+e.channel:"")),void 0===e.channel){this.onFatalError(e);break}this.connectionManager.onChannelMessage(e,this);break;default:this.connectionManager.onChannelMessage(e,this)}},t.prototype.onConnect=function(e){if(this.isConnected=!0,!e.connectionDetails)throw new Error("Transport.onConnect(): Connect message recieved without connectionDetails");var t=e.connectionDetails.maxIdleInterval;t&&(this.maxIdleInterval=t+this.timeouts.realtimeRequestTimeout,this.onActivity())},t.prototype.onDisconnect=function(e){var t=e&&e.error;s.default.logAction(s.default.LOG_MINOR,"Transport.onDisconnect()","err = "+o.inspectError(t)),this.finish("disconnected",t)},t.prototype.onFatalError=function(e){var t=e&&e.error;s.default.logAction(s.default.LOG_MINOR,"Transport.onFatalError()","err = "+o.inspectError(t)),this.finish("failed",t)},t.prototype.onClose=function(e){var t=e&&e.error;s.default.logAction(s.default.LOG_MINOR,"Transport.onClose()","err = "+o.inspectError(t)),this.finish("closed",t)},t.prototype.requestClose=function(){s.default.logAction(s.default.LOG_MINOR,"Transport.requestClose()",""),this.send(d)},t.prototype.requestDisconnect=function(){s.default.logAction(s.default.LOG_MINOR,"Transport.requestDisconnect()",""),this.send(p)},t.prototype.ping=function(e){var t={action:i.default.Action.HEARTBEAT};e&&(t.id=e),this.send(i.default.fromValues(t))},t.prototype.dispose=function(){s.default.logAction(s.default.LOG_MINOR,"Transport.dispose()",""),this.isDisposed=!0,this.off()},t.prototype.onActivity=function(){this.maxIdleInterval&&(this.lastActivity=this.connectionManager.lastActivity=o.now(),this.setIdleTimer(this.maxIdleInterval+100))},t.prototype.setIdleTimer=function(e){var t=this;this.idleTimer||(this.idleTimer=setTimeout((function(){t.onIdleTimerExpire()}),e))},t.prototype.onIdleTimerExpire=function(){if(!this.lastActivity||!this.maxIdleInterval)throw new Error("Transport.onIdleTimerExpire(): lastActivity/maxIdleInterval not set");this.idleTimer=null;var e=o.now()-this.lastActivity,t=this.maxIdleInterval-e;if(t<=0){var n="No activity seen from realtime in "+e+"ms; assuming connection has dropped";s.default.logAction(s.default.LOG_ERROR,"Transport.onIdleTimerExpire()",n),this.disconnect(new c.default(n,80003,408))}else this.setIdleTimer(t+100)},t.tryConnect=function(e,t,n,r,i){var o,a=new e(t,n,r),A=function(e){clearTimeout(o),i({event:this.event,error:e})},u=t.options.timeouts.realtimeRequestTimeout;o=setTimeout((function(){a.off(["preconnect","disconnected","failed"]),a.dispose(),A.call({event:"disconnected"},new c.default("Timeout waiting for transport to indicate itself viable",5e4,500))}),u),a.on(["failed","disconnected"],A),a.on("preconnect",(function(){s.default.logAction(s.default.LOG_MINOR,"Transport.tryConnect()","viable transport "+a),clearTimeout(o),a.off(["failed","disconnected"],A),i(null,a)})),a.connect()},t}(a.default);t.default=h},function(e,t,n){var r,i,o,a,s,A,c,u;e.exports=(u=n(6),n(40),n(23),o=(i=(r=u).lib).Base,a=i.WordArray,A=(s=r.algo).MD5,c=s.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:A,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,r=this.cfg,i=r.hasher.create(),o=a.create(),s=o.words,A=r.keySize,c=r.iterations;s.length>>2];e.sigBytes-=t}},o.BlockCipher=d.extend({cfg:d.cfg.extend({mode:f,padding:m}),reset:function(){var e;d.reset.call(this);var t=this.cfg,n=t.iv,r=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=r.createEncryptor:(e=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(r,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),g=o.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(i.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?s.create([1398893684,1701076831]).concat(n).concat(t):t).toString(u)},parse:function(e){var t,n=u.parse(e),r=n.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=s.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),g.create({ciphertext:n,salt:t})}},v=o.SerializableCipher=a.extend({cfg:a.extend({format:y}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),o=i.finalize(t),a=i.cfg;return g.create({ciphertext:o,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=(i.kdf={}).OpenSSL={execute:function(e,t,n,r){r||(r=s.random(8));var i=l.create({keySize:t+n}).compute(e,r),o=s.create(i.words.slice(t),4*n);return i.sigBytes=4*t,g.create({key:i,iv:o,salt:r})}},k=o.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:b}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize);r.iv=i.iv;var o=v.encrypt.call(this,e,t,i.key,r);return o.mixIn(i),o},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);return r.iv=i.iv,v.decrypt.call(this,e,t,i.key,r)}}))))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Request=t.createRequest=void 0;var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(12)),a=r.__importDefault(n(3)),s=r.__importDefault(n(7)),A=n(4),c=r.__importDefault(n(8)),u=r.__importDefault(n(2)),l=r.__importDefault(n(20)),d=i.getGlobalObject(),p=function(){},h=d._ablyjs_jsonp={};h._=function(e){return h["_"+e]||p};var f=1,m="jsonp";function g(e,t,n,r,o,a,s){return a=a||c.default.TIMEOUTS,new v(void 0,e,t,i.copy(n),r,o,a,s)}t.createRequest=g;var y=function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.shortName=m,r.stream=!1,i}return r.__extends(t,e),t.isAvailable=function(){return a.default.Config.jsonpSupported&&a.default.Config.allowComet},t.prototype.toString=function(){return"JSONPTransport; uri="+this.baseUri+"; isConnected="+this.isConnected},t.prototype.createRequest=function(e,t,n,r,i,o,a){return g(e,t,n,r,i,o=(null==this?void 0:this.timeouts)||o||c.default.TIMEOUTS,a)},t}(o.default),v=function(e){function t(t,n,r,o,a,s,A,c){var u=e.call(this)||this;return void 0===t&&(t=f++),u.id=t,u.uri=n,u.params=o||{},u.params.rnd=i.cheapRandStr(),r&&(r["X-Ably-Version"]&&(u.params.v=r["X-Ably-Version"]),r["X-Ably-Lib"]&&(u.params.lib=r["X-Ably-Lib"])),u.body=a,u.method=c,u.requestMode=s,u.timeouts=A,u.requestComplete=!1,u}return r.__extends(t,e),t.prototype.exec=function(){var e=this,t=this.id,n=this.body,r=this.method,o=this.uri,s=this.params;s.callback="_ablyjs_jsonp._("+t+")",s.envelope="jsonp",n&&(s.body=n),r&&"get"!==r&&(s.method=r);var c=this.script=document.createElement("script"),d=o+i.toQueryString(s);c.src=d,c.src.split("/").slice(-1)[0]!==d.split("/").slice(-1)[0]&&u.default.logAction(u.default.LOG_ERROR,"JSONP Request.exec()","Warning: the browser appears to have truncated the script URI. This will likely result in the request failing due to an unparseable body param"),c.async=!0,c.type="text/javascript",c.charset="UTF-8",c.onerror=function(t){e.complete(new A.PartialErrorInfo("JSONP script error (event: "+a.default.Config.inspect(t)+")",null,400))},h["_"+t]=function(t){if(t.statusCode){var n=t.response;if(204==t.statusCode)e.complete(null,null,null,t.statusCode);else if(n)if(t.statusCode<400||i.isArray(n))e.complete(null,n,t.headers,t.statusCode);else{var r=n.error||new A.PartialErrorInfo("Error response received from server",null,t.statusCode);e.complete(r)}else e.complete(new A.PartialErrorInfo("Invalid server response: no envelope detected",null,500))}else e.complete(null,t)};var p=this.requestMode==l.default.REQ_SEND?this.timeouts.httpRequestTimeout:this.timeouts.recvTimeout;this.timer=setTimeout(this.abort.bind(this),p);var f=document.getElementsByTagName("head")[0];f.insertBefore(c,f.firstChild)},t.prototype.complete=function(e,t,n,r){if(n=n||{},!this.requestComplete){this.requestComplete=!0;var i=void 0;t&&(i="string"==typeof t?"text/plain":"application/json",n["content-type"]=i,this.emit("data",t)),this.emit("complete",e,t,n,!0,r),this.dispose()}},t.prototype.abort=function(){this.dispose()},t.prototype.dispose=function(){var e=this.timer;e&&(clearTimeout(e),this.timer=null);var t=this.script;t.parentNode&&t.parentNode.removeChild(t),delete h[this.id],this.emit("disposed")},t}(s.default);t.Request=v,t.default=function(e){return d.JSONPTransport=y,y.isAvailable()&&(e.supportedTransports[m]=y),y}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(2)),a=r.__importDefault(n(8)),s=r.__importDefault(n(16)),A=r.__importDefault(n(46)),c=r.__importDefault(n(18)),u=r.__importDefault(n(33)),l=r.__importDefault(n(4)),d=r.__importDefault(n(49)),p=r.__importDefault(n(17)),h=r.__importDefault(n(3)),f=r.__importDefault(n(9)),m=r.__importDefault(n(14)),g=function(){},y=function(){function e(e){if(!e){var t="no options provided";throw o.default.logAction(o.default.LOG_ERROR,"Rest()",t),new Error(t)}var n=a.default.objectifyOptions(e);n.log&&o.default.setLog(n.log.level,n.log.handler),o.default.logAction(o.default.LOG_MICRO,"Rest()","initialized with clientOptions "+h.default.Config.inspect(e));var r=this.options=a.default.normaliseOptions(n);if(r.key){var i=r.key.match(/^([^:\s]+):([^:.\s]+)$/);if(!i)throw t="invalid key parameter",o.default.logAction(o.default.LOG_ERROR,"Rest()",t),new l.default(t,40400,404);r.keyName=i[1],r.keySecret=i[2]}if("clientId"in r){if("string"!=typeof r.clientId&&null!==r.clientId)throw new l.default("clientId must be either a string or null",40012,400);if("*"===r.clientId)throw new l.default('Can’t use "*" as a clientId as that string is reserved. (To change the default token request behaviour to use a wildcard clientId, use {defaultTokenParams: {clientId: "*"}})',40012,400)}o.default.logAction(o.default.LOG_MINOR,"Rest()","started; version = "+a.default.version),this.baseUri=this.authority=function(e){return a.default.getHttpScheme(r)+e+":"+a.default.getPort(r,!1)},this._currentFallback=null,this.serverTimeOffset=null,this.http=new h.default.Http(r),this.auth=new s.default(this,r),this.channels=new v(this),this.push=new A.default(this)}return e.prototype.stats=function(e,t){if(void 0===t)if("function"==typeof e)t=e,e=null;else{if(this.options.promises)return i.promisify(this,"stats",[e]);t=g}var n=i.defaultGetHeaders(this.options),r=this.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.http.supportsLinkHeaders?void 0:r;this.options.headers&&i.mixin(n,this.options.headers),new c.default(this,"/stats",n,o,(function(e,t,n){for(var r=n?e:JSON.parse(e),i=0;i>>7)^(h<<14|h>>>18)^h>>>3,m=c[p-2],g=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;c[p]=f+c[p-7]+g+c[p-16]}var y=r&i^r&o^i&o,v=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),b=d+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&u^~s&l)+A[p]+c[p];d=l,l=u,u=s,s=a+b|0,a=o,o=i,i=r,r=b+(v+y)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+u|0,n[6]=n[6]+l|0,n[7]=n[7]+d|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(u),t.HmacSHA256=o._createHmacHelper(u)}(Math),r.SHA256)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(7)),a=r.__importDefault(n(2)),s=r.__importDefault(n(34)),A=r.__importDefault(n(9)),c=r.__importDefault(n(4)),u=r.__importDefault(n(18)),l=r.__importDefault(n(25)),d=r.__importDefault(n(3));function p(){}function h(e){var t=e||{};if(t.cipher){if(!d.default.Crypto)throw new Error("Encryption not enabled; use ably.encryption.js instead");var n=d.default.Crypto.getCipher(t.cipher);t.cipher=n.cipherParams,t.channelCipher=n.cipher}else"cipher"in t&&(t.cipher=void 0,t.channelCipher=null);return t}var f=function(e){function t(t,n,r){var i=e.call(this)||this;return a.default.logAction(a.default.LOG_MINOR,"Channel()","started; name = "+n),i.rest=t,i.name=n,i.basePath="/channels/"+encodeURIComponent(n),i.presence=new s.default(i),i.channelOptions=h(r),i}return r.__extends(t,e),t.prototype.setOptions=function(e){this.channelOptions=h(e)},t.prototype.history=function(e,t){if(a.default.logAction(a.default.LOG_MICRO,"Channel.history()","channel = "+this.name),void 0===t)if("function"==typeof e)t=e,e=null;else{if(this.rest.options.promises)return i.promisify(this,"history",arguments);t=p}this._history(e,t)},t.prototype._history=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.rest.http.supportsLinkHeaders?void 0:r,a=i.defaultGetHeaders(n.options,r);n.options.headers&&i.mixin(a,n.options.headers);var s=this.channelOptions;new u.default(n,this.basePath+"/messages",a,o,(function(e,t,n){return A.default.fromResponseBody(e,s,n?void 0:r)})).get(e,t)},t.prototype.publish=function(){var e,t,n=this,r=arguments[0],o=arguments[1],a=arguments[arguments.length-1];if("function"!=typeof a){if(this.rest.options.promises)return i.promisify(this,"publish",arguments);a=p}if("string"==typeof r||null===r)e=[A.default.fromValues({name:r,data:o})],t=arguments[2];else if(i.isObject(r))e=[A.default.fromValues(r)],t=arguments[1];else{if(!i.isArray(r))throw new c.default("The single-argument form of publish() expects a message object or an array of message objects",40013,400);e=A.default.fromValuesArray(r),t=arguments[1]}"object"==typeof t&&t||(t={});var s=this.rest,u=s.options,l=u.useBinaryProtocol?i.Format.msgpack:i.Format.json,d=s.options.idempotentRestPublishing,h=i.defaultPostHeaders(s.options,l);if(u.headers&&i.mixin(h,u.headers),d&&function(e){return i.arrEvery(e,(function(e){return!e.id}))}(e)){var f=i.randomString(9);i.arrForEach(e,(function(e,t){e.id=f+":"+t.toString()}))}A.default.encodeArray(e,this.channelOptions,(function(r){if(r)a(r);else{var i=A.default.getMessagesSize(e),o=u.maxMessageSize;i>o?a(new c.default("Maximum size of messages that can be published at once exceeded ( was "+i+" bytes; limit is "+o+" bytes)",40009,400)):n._publish(A.default.serialize(e,l),h,t,a)}}))},t.prototype._publish=function(e,t,n,r){l.default.post(this.rest,this.basePath+"/messages",e,t,n,null,r)},t.prototype.status=function(e){if("function"!=typeof e&&this.rest.options.promises)return i.promisify(this,"status",[]);var t=this.rest.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,n=i.defaultPostHeaders(this.rest.options,t);l.default.get(this.rest,this.basePath,n,{},t,e||p)},t}(o.default);t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(7)),a=r.__importDefault(n(2)),s=r.__importDefault(n(18)),A=r.__importDefault(n(14));function c(){}var u=function(e){function t(t){var n=e.call(this)||this;return n.channel=t,n.basePath=t.basePath+"/presence",n}return r.__extends(t,e),t.prototype.get=function(e,t){if(a.default.logAction(a.default.LOG_MICRO,"Presence.get()","channel = "+this.channel.name),void 0===t)if("function"==typeof e)t=e,e=null;else{if(this.channel.rest.options.promises)return i.promisify(this,"get",arguments);t=c}var n=this.channel.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.channel.rest.http.supportsLinkHeaders?void 0:r,u=i.defaultGetHeaders(n.options,r);n.options.headers&&i.mixin(u,n.options.headers);var l=this.channel.channelOptions;new s.default(n,this.basePath,u,o,(function(e,t,n){return A.default.fromResponseBody(e,l,n?void 0:r)})).get(e,t)},t.prototype.history=function(e,t){return a.default.logAction(a.default.LOG_MICRO,"Presence.history()","channel = "+this.channel.name),this._history(e,t)},t.prototype._history=function(e,t){if(void 0===t)if("function"==typeof e)t=e,e=null;else{if(this.channel.rest.options.promises)return i.promisify(this,"_history",[e]);t=c}var n=this.channel.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.channel.rest.http.supportsLinkHeaders?void 0:r,a=i.defaultGetHeaders(n.options,r);n.options.headers&&i.mixin(a,n.options.headers);var u=this.channel.channelOptions;new s.default(n,this.basePath+"/history",a,o,(function(e,t,n){return A.default.fromResponseBody(e,u,n?void 0:r)})).get(e,t)},t}(o.default);t.default=u},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.TransportParams=void 0;var r=n(0),i=r.__importDefault(n(10)),o=r.__importStar(n(1)),a=r.__importStar(n(52)),s=r.__importStar(n(8)),A=r.__importDefault(n(3)),c=r.__importDefault(n(7)),u=r.__importDefault(n(36)),l=r.__importDefault(n(2)),d=r.__importDefault(n(37)),p=r.__importStar(n(19)),h=r.__importStar(n(4)),f=r.__importDefault(n(16)),m=r.__importDefault(n(9)),g=r.__importDefault(n(22)),y=r.__importDefault(n(53)),v=r.__importDefault(n(26)),b=r.__importDefault(n(24)),k=function(){var e;return void 0!==A.default.WebStorage&&(null===(e=A.default.WebStorage)||void 0===e?void 0:e.localSupported)},S=function(){var e;return void 0!==A.default.WebStorage&&(null===(e=A.default.WebStorage)||void 0===e?void 0:e.sessionSupported)},T=i.default.Action,w=function(){},E="ably-transport-preference",j="ably-connection-recovery";function O(e){try{return JSON.parse(e)}catch(e){return null}}var R=function(){function e(e,t,n,r){this.options=e,this.host=t,this.mode=n,this.connectionKey=r,this.format=e.useBinaryProtocol?o.Format.msgpack:o.Format.json}return e.prototype.getConnectParams=function(e){var t=e?o.copy(e):{},n=this.options;switch(this.mode){case"upgrade":t.upgrade=this.connectionKey;break;case"resume":t.resume=this.connectionKey;break;case"recover":var r=O(n.recover);r&&(t.recover=r.connectionKey)}return void 0!==n.clientId&&(t.clientId=n.clientId),!1===n.echoMessages&&(t.echo="false"),void 0!==this.format&&(t.format=this.format),void 0!==this.stream&&(t.stream=this.stream),void 0!==this.heartbeats&&(t.heartbeats=this.heartbeats),t.v=s.default.protocolVersion,t.agent=encodeURIComponent((0,s.getAgentString)(this.options)),void 0!==n.transportParams&&o.mixin(t,n.transportParams),t},e.prototype.toString=function(){var e="[mode="+this.mode;return this.host&&(e+=",host="+this.host),this.connectionKey&&(e+=",connectionKey="+this.connectionKey),this.format&&(e+=",format="+this.format),e+"]"},e}();t.TransportParams=R;var P=function(t){function n(e,r){var i=t.call(this)||this;i.disconnectedRetryCount=0,n.initTransports(),i.realtime=e,i.options=r;var a=r.timeouts,c=a.preferenceConnectTimeout+a.realtimeRequestTimeout;if(i.states={initialized:{state:"initialized",terminal:!1,queueEvents:!0,sendEvents:!1,failState:"disconnected"},connecting:{state:"connecting",terminal:!1,queueEvents:!0,sendEvents:!1,retryDelay:c,failState:"disconnected"},connected:{state:"connected",terminal:!1,queueEvents:!1,sendEvents:!0,failState:"disconnected"},synchronizing:{state:"connected",terminal:!1,queueEvents:!0,sendEvents:!1,forceQueueEvents:!0,failState:"disconnected"},disconnected:{state:"disconnected",terminal:!1,queueEvents:!0,sendEvents:!1,retryDelay:a.disconnectedRetryTimeout,failState:"disconnected"},suspended:{state:"suspended",terminal:!1,queueEvents:!1,sendEvents:!1,retryDelay:a.suspendedRetryTimeout,failState:"suspended"},closing:{state:"closing",terminal:!1,queueEvents:!1,sendEvents:!1,retryDelay:a.realtimeRequestTimeout,failState:"closed"},closed:{state:"closed",terminal:!0,queueEvents:!1,sendEvents:!1,failState:"closed"},failed:{state:"failed",terminal:!0,queueEvents:!1,sendEvents:!1,failState:"failed"}},i.state=i.states.initialized,i.errorReason=null,i.queuedMessages=new u.default,i.msgSerial=0,i.connectionDetails=void 0,i.connectionId=void 0,i.connectionKey=void 0,i.connectionStateTtl=a.connectionStateTtl,i.maxIdleInterval=null,i.transports=o.intersect(r.transports||s.default.defaultTransports,n.supportedTransports),i.baseTransport=o.intersect(s.default.baseTransportOrder,i.transports)[0],i.upgradeTransports=o.intersect(i.transports,s.default.upgradeTransports),i.transportPreference=null,i.httpHosts=s.default.getHosts(r),i.activeProtocol=null,i.proposedTransports=[],i.pendingTransports=[],i.host=null,i.lastAutoReconnectAttempt=null,i.lastActivity=null,i.forceFallbackHost=!1,i.connectCounter=0,l.default.logAction(l.default.LOG_MINOR,"Realtime.ConnectionManager()","started"),l.default.logAction(l.default.LOG_MICRO,"Realtime.ConnectionManager()","requested transports = ["+(r.transports||s.default.defaultTransports)+"]"),l.default.logAction(l.default.LOG_MICRO,"Realtime.ConnectionManager()","available transports = ["+i.transports+"]"),l.default.logAction(l.default.LOG_MICRO,"Realtime.ConnectionManager()","http hosts = ["+i.httpHosts+"]"),!i.transports.length){var d="no requested transports available";throw l.default.logAction(l.default.LOG_ERROR,"realtime.ConnectionManager()",d),new Error(d)}var p=A.default.Config.addEventListener;return p&&(S()&&"function"==typeof r.recover&&p("beforeunload",i.persistConnection.bind(i)),!0===r.closeOnUnload&&p("beforeunload",(function(){l.default.logAction(l.default.LOG_MAJOR,"Realtime.ConnectionManager()","beforeunload event has triggered the connection to close as closeOnUnload is true"),i.requestState({state:"closing"})})),p("online",(function(){i.state==i.states.disconnected||i.state==i.states.suspended?(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager caught browser ‘online’ event","reattempting connection"),i.requestState({state:"connecting"})):i.state==i.states.connecting&&(i.pendingTransports.forEach((function(e){e.off()})),i.disconnectAllTransports(),i.startConnect())})),p("offline",(function(){i.state==i.states.connected&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager caught browser ‘offline’ event","disconnecting active transport"),i.disconnectAllTransports())}))),i}return r.__extends(n,t),n.initTransports=function(){(0,y.default)(n),o.arrForEach(A.default.Transports,(function(e){e(n)}))},n.prototype.createTransportParams=function(e,t){return new R(this.options,e,t,this.connectionKey)},n.prototype.getTransportParams=function(e){var t=this;!function(e){if(t.connectionKey)e("resume");else if("string"!=typeof t.options.recover){var n,r,i=t.options.recover,o=S()&&(null===(r=null===(n=A.default.WebStorage)||void 0===n?void 0:n.getSession)||void 0===r?void 0:r.call(n,j));if(o&&"function"==typeof i)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.getTransportParams()","Calling clientOptions-provided recover function with last session data"),void i(o,(function(n){n?(t.options.recover=o.recoveryKey,e("recover")):e("clean")}));e("clean")}else e("recover")}((function(n){var r=t.createTransportParams(null,n);if("recover"===n){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.getTransportParams()","Transport recovery mode = recover; recoveryKey = "+t.options.recover);var i=O(t.options.recover);i&&(t.msgSerial=i.msgSerial)}else l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.getTransportParams()","Transport params = "+r.toString());e(r)}))},n.prototype.tryATransport=function(e,t,r){var i=this;l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.tryATransport()","trying "+t),v.default.tryConnect(n.supportedTransports[t],this,this.realtime.auth,e,(function(n,o){var a=i.state;return a==i.states.closing||a==i.states.closed||a==i.states.failed?(o&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.tryATransport()","connection "+a.state+" while we were attempting the transport; closing "+o),o.close()),void r(!0)):n?(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.tryATransport()","transport "+t+" "+n.event+", err: "+n.error.toString()),void(!f.default.isTokenErr(n.error)||i.errorReason&&f.default.isTokenErr(i.errorReason)?"failed"===n.event?(i.notifyState({state:"failed",error:n.error}),r(!0)):"disconnected"===n.event&&((0,p.isRetriable)(n.error)?r(!1):(i.notifyState({state:i.states.connecting.failState,error:n.error}),r(!0))):(i.errorReason=n.error,i.realtime.auth._forceNewToken(null,null,(function(n){n?i.actOnErrorFromAuthorize(n):i.tryATransport(e,t,r)}))))):(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.tryATransport()","viable transport "+t+"; setting pending"),i.setTransportPending(o,e),void r(null,o))}))},n.prototype.setTransportPending=function(e,t){var n=this,r=t.mode;l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.setTransportPending()","transport = "+e+"; mode = "+r),o.arrDeleteValue(this.proposedTransports,e),this.pendingTransports.push(e);var i=A.default.Defaults.transportPreferenceOrder[A.default.Defaults.transportPreferenceOrder.length-1];e.once("connected",(function(a,s,c){"upgrade"==r&&n.activeProtocol?e.shortName!==i&&o.arrIn(n.getUpgradePossibilities(),i)&&n.activeProtocol?setTimeout((function(){n.scheduleTransportActivation(a,e,s,c)}),n.options.timeouts.parallelUpgradeDelay):n.scheduleTransportActivation(a,e,s,c):(n.activateTransport(a,e,s,c),A.default.Config.nextTick((function(){n.connectImpl(t)}))),"recover"===r&&n.options.recover&&(n.options.recover=null,n.unpersistConnection())}));var a=this;e.on(["disconnected","closed","failed"],(function(t){a.deactivateTransport(e,this.event,t)})),this.emit("transport.pending",e)},n.prototype.scheduleTransportActivation=function(e,t,n,r){var a,s,c=this,u=this.activeProtocol&&this.activeProtocol.getTransport(),d=function(){t.disconnect(),o.arrDeleteValue(c.pendingTransports,t)};if(this.state!==this.states.connected&&this.state!==this.states.connecting)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Current connection state ("+this.state.state+(this.state===this.states.synchronizing?", but with an upgrade already in progress":"")+") is not valid to upgrade in; abandoning upgrade to "+t.shortName),void d();if(u&&(a=t,s=u,!(o.arrIndexOf(A.default.Defaults.transportPreferenceOrder,a.shortName)>o.arrIndexOf(A.default.Defaults.transportPreferenceOrder,s.shortName))))return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Proposed transport "+t.shortName+" is no better than current active transport "+u.shortName+" - abandoning upgrade"),void d();l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Scheduling transport upgrade; transport = "+t);var p=null;if(!t.isConnected)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Proposed transport "+t.shortName+"is no longer connected; abandoning upgrade"),void d();if(this.state===this.states.connected)l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.scheduleTransportActivation()","Currently connected, so temporarily pausing events until the upgrade is complete"),this.state=this.states.synchronizing,p=this.activeProtocol;else if(this.state!==this.states.connecting)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Current connection state ("+this.state.state+(this.state===this.states.synchronizing?", but with an upgrade already in progress":"")+") is not valid to upgrade in; abandoning upgrade to "+t.shortName),void d();l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Syncing transport; transport = "+t);var h=function(){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Activating transport; transport = "+t),t.send(i.default.fromValues({action:T.ACTIVATE})),c.activateTransport(e,t,n,r),c.state===c.states.synchronizing?(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.scheduleTransportActivation()","Pre-upgrade protocol idle, sending queued messages on upgraded transport; transport = "+t),c.state=c.states.connected):l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.scheduleTransportActivation()","Pre-upgrade protocol idle, but state is now "+c.state.state+", so leaving unchanged"),c.state.sendEvents&&c.sendQueuedMessages()};p?p.onceIdle(h):h()},n.prototype.activateTransport=function(e,t,n,r){var i=this;l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.activateTransport()","transport = "+t),e&&l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.activateTransport()","error = "+e),n&&l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.activateTransport()","connectionId = "+n),r&&l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.activateTransport()","connectionDetails = "+JSON.stringify(r)),this.persistTransportPreference(t);var s=this.state,c=this.states.connected.state;if(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.activateTransport()","current state = "+s.state),s.state==this.states.closing.state||s.state==this.states.closed.state||s.state==this.states.failed.state)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.activateTransport()","Disconnecting transport and abandoning"),t.disconnect(),!1;if(o.arrDeleteValue(this.pendingTransports,t),!t.isConnected)return l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.activateTransport()","Declining to activate transport "+t+" since it appears to no longer be connected"),!1;var u=this.activeProtocol;this.activeProtocol=new a.default(t),this.host=t.params.host;var p=r.connectionKey;if(p&&this.connectionKey!=p&&this.setConnection(n,r,!!e),this.onConnectionDetailsUpdate(r,t),A.default.Config.nextTick((function(){t.on("connected",(function(e,n,r){i.onConnectionDetailsUpdate(r,t),i.emit("update",new d.default(c,c,null,e))}))})),s.state===this.states.connected.state?e&&(this.errorReason=this.realtime.connection.errorReason=e,this.emit("update",new d.default(c,c,null,e))):(this.notifyState({state:"connected",error:e}),this.errorReason=this.realtime.connection.errorReason=e||null),this.emit("transport.active",t),u)if(u.messageQueue.count()>0&&l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.activateTransport()","Previous active protocol (for transport "+u.transport.shortName+", new one is "+t.shortName+") finishing with "+u.messageQueue.count()+" messages still pending"),u.transport===t){var h="Assumption violated: activating a transport that was also the transport for the previous active protocol; transport = "+t.shortName+"; stack = "+(new Error).stack;l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.activateTransport()",h)}else u.finish();return o.safeArrForEach(this.pendingTransports,(function(e){if(e===t){var n="Assumption violated: activating a transport that is still marked as a pending transport; transport = "+t.shortName+"; stack = "+(new Error).stack;l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.activateTransport()",n),o.arrDeleteValue(i.pendingTransports,t)}else e.disconnect()})),o.safeArrForEach(this.proposedTransports,(function(e){e===t?(l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.activateTransport()","Assumption violated: activating a transport that is still marked as a proposed transport; transport = "+t.shortName+"; stack = "+(new Error).stack),o.arrDeleteValue(i.proposedTransports,t)):e.dispose()})),!0},n.prototype.deactivateTransport=function(e,t,n){var r=this.activeProtocol,i=r&&r.getTransport()===e,a=o.arrDeleteValue(this.pendingTransports,e),s=o.arrDeleteValue(this.proposedTransports,e),c=this.noTransportsScheduledForActivation();if(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.deactivateTransport()","transport = "+e),l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.deactivateTransport()","state = "+t+(i?"; was active":a?"; was pending":s?"; was proposed":"")+(c?"":"; another transport is scheduled for activation")),n&&n.message&&l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.deactivateTransport()","reason = "+n.message),i&&(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.deactivateTransport()","Getting, clearing, and requeuing "+this.activeProtocol.messageQueue.count()+" pending messages"),this.queuePendingMessages(r.getPendingMessages()),A.default.Config.nextTick((function(){r.clearPendingMessages()})),this.activeProtocol=this.host=null),this.emit("transport.inactive",e),i&&c||i&&"failed"===t||"closed"===t||null===r&&a&&0===this.pendingTransports.length){if("disconnected"===t&&n&&n.statusCode>500&&this.httpHosts.length>1)return this.unpersistTransportPreference(),this.forceFallbackHost=!0,void this.notifyState({state:t,error:n,retryImmediately:!0});var u="failed"===t&&f.default.isTokenErr(n)?"disconnected":t;this.notifyState({state:u,error:n})}else i&&"disconnected"===t&&this.state!==this.states.synchronizing&&(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.deactivateTransport()","wasActive but another transport is connected and scheduled for activation, so going into the connecting state until it activates"),this.startSuspendTimer(),this.startTransitionTimer(this.states.connecting),this.notifyState({state:"connecting",error:n}))},n.prototype.noTransportsScheduledForActivation=function(){return o.isEmpty(this.pendingTransports)||this.pendingTransports.every((function(e){return!e.isConnected}))},n.prototype.setConnection=function(e,t,n){var r=this.connectionId;(r&&r!==e||!r&&n)&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.setConnection()","Resetting msgSerial"),this.msgSerial=0,this.queuedMessages.resetSendAttempted()),this.connectionId!==e&&l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.setConnection()","New connectionId; reattaching any attached channels"),this.realtime.connection.id=this.connectionId=e,this.realtime.connection.key=this.connectionKey=t.connectionKey},n.prototype.clearConnection=function(){this.realtime.connection.id=this.connectionId=void 0,this.realtime.connection.key=this.connectionKey=void 0,this.msgSerial=0,this.unpersistConnection()},n.prototype.createRecoveryKey=function(){return this.connectionKey?JSON.stringify({connectionKey:this.connectionKey,msgSerial:this.msgSerial,channelSerials:this.realtime.channels.channelSerials()}):null},n.prototype.checkConnectionStateFreshness=function(){if(this.lastActivity&&this.connectionId){var e=o.now()-this.lastActivity;e>this.connectionStateTtl+this.maxIdleInterval&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.checkConnectionStateFreshness()","Last known activity from realtime was "+e+"ms ago; discarding connection state"),this.clearConnection(),this.states.connecting.failState="suspended")}},n.prototype.persistConnection=function(){if(S()){var t=this.createRecoveryKey();t&&(n={recoveryKey:t,disconnectedAt:o.now(),location:e.location,clientId:this.realtime.auth.clientId},S()&&(null===(i=null===(r=A.default.WebStorage)||void 0===r?void 0:r.setSession)||void 0===i||i.call(r,j,n)))}var n,r,i},n.prototype.unpersistConnection=function(){var e,t;S()&&(null===(t=null===(e=A.default.WebStorage)||void 0===e?void 0:e.removeSession)||void 0===t||t.call(e,j))},n.prototype.getError=function(){return this.errorReason||this.getStateError()},n.prototype.getStateError=function(){var e,t;return null===(t=(e=p.default)[this.state.state])||void 0===t?void 0:t.call(e)},n.prototype.activeState=function(){return this.state.queueEvents||this.state.sendEvents},n.prototype.enactStateChange=function(e){var t="failed"===e.current?l.default.LOG_ERROR:l.default.LOG_MAJOR;l.default.logAction(t,"Connection state",e.current+(e.reason?"; reason: "+e.reason:"")),l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.enactStateChange","setting new state: "+e.current+"; reason = "+(e.reason&&e.reason.message));var n=this.state=this.states[e.current];e.reason&&(this.errorReason=e.reason,this.realtime.connection.errorReason=e.reason),(n.terminal||"suspended"===n.state)&&this.clearConnection(),this.emit("connectionstate",e)},n.prototype.startTransitionTimer=function(e){var t=this;l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.startTransitionTimer()","transitionState: "+e.state),this.transitionTimer&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.startTransitionTimer()","clearing already-running timer"),clearTimeout(this.transitionTimer)),this.transitionTimer=setTimeout((function(){t.transitionTimer&&(t.transitionTimer=null,l.default.logAction(l.default.LOG_MINOR,"ConnectionManager "+e.state+" timer expired","requesting new state: "+e.failState),t.notifyState({state:e.failState}))}),e.retryDelay)},n.prototype.cancelTransitionTimer=function(){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.cancelTransitionTimer()",""),this.transitionTimer&&(clearTimeout(this.transitionTimer),this.transitionTimer=null)},n.prototype.startSuspendTimer=function(){var e=this;this.suspendTimer||(this.suspendTimer=setTimeout((function(){e.suspendTimer&&(e.suspendTimer=null,l.default.logAction(l.default.LOG_MINOR,"ConnectionManager suspend timer expired","requesting new state: suspended"),e.states.connecting.failState="suspended",e.notifyState({state:"suspended"}))}),this.connectionStateTtl))},n.prototype.checkSuspendTimer=function(e){"disconnected"!==e&&"suspended"!==e&&"connecting"!==e&&this.cancelSuspendTimer()},n.prototype.cancelSuspendTimer=function(){this.states.connecting.failState="disconnected",this.suspendTimer&&(clearTimeout(this.suspendTimer),this.suspendTimer=null)},n.prototype.startRetryTimer=function(e){var t=this;this.retryTimer=setTimeout((function(){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager retry timer expired","retrying"),t.retryTimer=null,t.requestState({state:"connecting"})}),e)},n.prototype.cancelRetryTimer=function(){this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)},n.prototype.notifyState=function(e){var t,n,r=this,i=e.state,a="disconnected"===i&&(this.state===this.states.connected||this.state===this.states.synchronizing||e.retryImmediately||this.state===this.states.connecting&&e.error&&f.default.isTokenErr(e.error)&&!(this.errorReason&&f.default.isTokenErr(this.errorReason)));if(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.notifyState()","new state: "+i+(a?"; will retry connection immediately":"")),i!=this.state.state&&(this.cancelTransitionTimer(),this.cancelRetryTimer(),this.checkSuspendTimer(e.state),"suspended"!==i&&"connected"!==i||(this.disconnectedRetryCount=0),!this.state.terminal)){var s=this.states[e.state],c=s.retryDelay;"disconnected"===s.state&&(this.disconnectedRetryCount++,c=o.getRetryTime(s.retryDelay,this.disconnectedRetryCount));var u=new d.default(this.state.state,s.state,c,e.error||(null===(n=(t=p.default)[s.state])||void 0===n?void 0:n.call(t)));if(a){var h=function(){r.state===r.states.disconnected&&(r.lastAutoReconnectAttempt=o.now(),r.requestState({state:"connecting"}))},m=this.lastAutoReconnectAttempt&&o.now()-this.lastAutoReconnectAttempt+1;m&&m<1e3?(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.notifyState()","Last reconnect attempt was only "+m+"ms ago, waiting another "+(1e3-m)+"ms before trying again"),setTimeout(h,1e3-m)):A.default.Config.nextTick(h)}else"disconnected"!==i&&"suspended"!==i||this.startRetryTimer(c);("disconnected"===i&&!a||"suspended"===i||s.terminal)&&A.default.Config.nextTick((function(){r.disconnectAllTransports()})),"connected"!=i||this.activeProtocol||l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.notifyState()","Broken invariant: attempted to go into connected state, but there is no active protocol"),this.enactStateChange(u),this.state.sendEvents?this.sendQueuedMessages():this.state.queueEvents||(this.realtime.channels.propogateConnectionInterruption(i,u.reason),this.failQueuedMessages(u.reason))}},n.prototype.requestState=function(e){var t,n,r=this,i=e.state;if(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.requestState()","requested state: "+i+"; current state: "+this.state.state),i!=this.state.state&&(this.cancelTransitionTimer(),this.cancelRetryTimer(),this.checkSuspendTimer(i),!("connecting"==i&&"connected"==this.state.state||"closing"==i&&"closed"==this.state.state))){var o=this.states[i],a=new d.default(this.state.state,o.state,null,e.error||(null===(n=(t=p.default)[o.state])||void 0===n?void 0:n.call(t)));this.enactStateChange(a),"connecting"==i&&A.default.Config.nextTick((function(){r.startConnect()})),"closing"==i&&this.closeImpl()}},n.prototype.startConnect=function(){var e=this;if(this.state===this.states.connecting){var t=this.realtime.auth,n=++this.connectCounter,r=function(){e.checkConnectionStateFreshness(),e.getTransportParams((function(t){if("recover"===t.mode&&t.options.recover){var r=O(t.options.recover);r&&e.realtime.channels.recoverChannels(r.channelSerials)}n===e.connectCounter&&e.connectImpl(t,n)}))};if(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.startConnect()","starting connection"),this.startSuspendTimer(),this.startTransitionTimer(this.states.connecting),"basic"===t.method)r();else{var i=function(t){n===e.connectCounter&&(t?e.actOnErrorFromAuthorize(t):r())};this.errorReason&&f.default.isTokenErr(this.errorReason)?t._forceNewToken(null,null,i):t._ensureValidAuthCredentials(!1,i)}}else l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.startConnect()","Must be in connecting state to connect, but was "+this.state.state)},n.prototype.connectImpl=function(e,t){var n=this.state.state;n!==this.states.connecting.state&&n!==this.states.connected.state?l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.connectImpl()","Must be in connecting state to connect (or connected to upgrade), but was "+n):this.pendingTransports.length?l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.connectImpl()","Transports "+this.pendingTransports[0].toString()+" currently pending; taking no action"):n==this.states.connected.state?this.upgradeIfNeeded(e):this.transports.length>1&&this.getTransportPreference()?this.connectPreference(e,t):this.connectBase(e,t)},n.prototype.connectPreference=function(e,t){var n=this,r=this.getTransportPreference(),i=!1;o.arrIn(this.transports,r)||(this.unpersistTransportPreference(),this.connectImpl(e,t)),l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.connectPreference()","Trying to connect with stored transport preference "+r);var a=setTimeout((function(){i=!0,n.state.state!==n.states.connected.state&&(l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.connectPreference()","Shortcircuit connection attempt with "+r+" failed; clearing preference and trying from scratch"),n.disconnectAllTransports(),n.unpersistTransportPreference()),n.connectImpl(e,t)}),this.options.timeouts.preferenceConnectTimeout);e.host=this.httpHosts[0],this.tryATransport(e,r,(function(r,s){clearTimeout(a),i&&s?(s.off(),s.disconnect(),o.arrDeleteValue(n.pendingTransports,s)):s||r||(n.unpersistTransportPreference(),n.connectImpl(e,t))}))},n.prototype.connectBase=function(e,t){var n=this,r=function(e){n.notifyState({state:n.states.connecting.failState,error:e})},i=this.httpHosts.slice(),a=function(e,r){t===n.connectCounter&&(r||e||A())};l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.connectBase()","Trying to connect with base transport "+this.baseTransport);var s=i.shift();if(s){e.host=s;var A=function(){i.length?n.realtime.http.checkConnectivity?n.realtime.http.checkConnectivity((function(s,A){t===n.connectCounter&&(s?r(s):A?(e.host=o.arrPopRandomElement(i),n.tryATransport(e,n.baseTransport,a)):r(new h.default("Unable to connect (network unreachable)",80003,404)))})):r(new h.PartialErrorInfo("Internal error: Http.checkConnectivity not set",null,500)):r(new h.default("Unable to connect (and no more fallback hosts to try)",80003,404))};if(this.forceFallbackHost&&i.length)return this.forceFallbackHost=!1,void A();this.tryATransport(e,this.baseTransport,a)}else r(new h.default("Unable to connect (no available host)",80003,404))},n.prototype.getUpgradePossibilities=function(){var e=this.activeProtocol.getTransport().shortName,t=o.arrIndexOf(this.upgradeTransports,e);return this.upgradeTransports.slice(t+1)},n.prototype.upgradeIfNeeded=function(e){var t=this,n=this.getUpgradePossibilities();l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.upgradeIfNeeded()","upgrade possibilities: "+A.default.Config.inspect(n)),n.length&&o.arrForEach(n,(function(n){var r=t.createTransportParams(e.host,"upgrade");t.tryATransport(r,n,w)}))},n.prototype.closeImpl=function(){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.closeImpl()","closing connection"),this.cancelSuspendTimer(),this.startTransitionTimer(this.states.closing),o.safeArrForEach(this.pendingTransports,(function(e){l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.closeImpl()","Closing pending transport: "+e),e&&e.close()})),o.safeArrForEach(this.proposedTransports,(function(e){l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.closeImpl()","Disposing of proposed transport: "+e),e&&e.dispose()})),this.activeProtocol&&(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.closeImpl()","Closing active transport: "+this.activeProtocol.getTransport()),this.activeProtocol.getTransport().close()),this.notifyState({state:"closed"})},n.prototype.onAuthUpdated=function(e,t){var n,r=this;switch(this.state.state){case"connected":if(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.onAuthUpdated()","Sending AUTH message on active transport"),(this.pendingTransports.length||this.proposedTransports.length)&&this.state!==this.states.synchronizing){this.disconnectAllTransports(!0);var o=this.activeProtocol.getTransport().params;A.default.Config.nextTick((function(){"connected"===r.state.state&&r.upgradeIfNeeded(o)}))}var a=null===(n=this.activeProtocol)||void 0===n?void 0:n.getTransport();a&&a.onAuthUpdated&&a.onAuthUpdated(e);var s=i.default.fromValues({action:T.AUTH,auth:{accessToken:e.token}});this.send(s);var c=function(){r.off(u),t(null,e)},u=function(e){"failed"===e.current&&(r.off(c),r.off(u),t(e.reason||r.getStateError()))};this.once("connectiondetails",c),this.on("connectionstate",u);break;case"connecting":l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.onAuthUpdated()","Aborting current connection attempts in order to start again with the new auth details"),this.disconnectAllTransports();default:l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.onAuthUpdated()","Connection state is "+this.state.state+"; waiting until either connected or failed");var d=function(n){switch(n.current){case"connected":r.off(d),t(null,e);break;case"failed":case"closed":case"suspended":r.off(d),t(n.reason||r.getStateError())}};this.on("connectionstate",d),"connecting"===this.state.state?this.startConnect():this.requestState({state:"connecting"})}},n.prototype.disconnectAllTransports=function(e){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.disconnectAllTransports()","Disconnecting all transports"+(e?" except the active transport":"")),this.connectCounter++,o.safeArrForEach(this.pendingTransports,(function(e){l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.disconnectAllTransports()","Disconnecting pending transport: "+e),e&&e.disconnect()})),this.pendingTransports=[],o.safeArrForEach(this.proposedTransports,(function(e){l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.disconnectAllTransports()","Disposing of proposed transport: "+e),e&&e.dispose()})),this.proposedTransports=[],this.activeProtocol&&!e&&(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.disconnectAllTransports()","Disconnecting active transport: "+this.activeProtocol.getTransport()),this.activeProtocol.getTransport().disconnect())},n.prototype.send=function(e,t,n){n=n||w;var r=this.state;if(r.sendEvents)return l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.send()","sending event"),void this.sendImpl(new a.PendingMessage(e,n));if(!(t&&r.queueEvents||r.forceQueueEvents)){var o="rejecting event, queueEvent was "+t+", state was "+r.state;return l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.send()",o),void n(this.errorReason||new h.default(o,9e4,400))}l.default.shouldLog(l.default.LOG_MICRO)&&l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.send()","queueing msg; "+i.default.stringify(e)),this.queue(e,n)},n.prototype.sendImpl=function(e){var t=e.message;e.ackRequired&&!e.sendAttempted&&(t.msgSerial=this.msgSerial++);try{this.activeProtocol.send(e)}catch(e){l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.sendImpl()","Unexpected exception in transport.send(): "+e.stack)}},n.prototype.queue=function(e,t){l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.queue()","queueing event");var n=this.queuedMessages.last(),r=this.options.maxMessageSize;n&&!n.sendAttempted&&function(e,t,n){var r;if(e.channel!==t.channel)return!1;if((r=e.action)!==T.PRESENCE&&r!==T.MESSAGE)return!1;if(r!==t.action)return!1;var i=r===T.PRESENCE?"presence":"messages",a=e[i].concat(t[i]);return!(m.default.getMessagesSize(a)>n||!o.allSame(a,"clientId")||!o.arrEvery(a,(function(e){return!e.id}))||(e[i]=a,0))}(n.message,e,r)?(n.merged||(n.callback=g.default.create([n.callback]),n.merged=!0),n.callback.push(t)):this.queuedMessages.push(new a.PendingMessage(e,t))},n.prototype.sendQueuedMessages=function(){var e;for(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.sendQueuedMessages()","sending "+this.queuedMessages.count()+" queued messages");e=this.queuedMessages.shift();)this.sendImpl(e)},n.prototype.queuePendingMessages=function(e){e&&e.length&&(l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.queuePendingMessages()","queueing "+e.length+" pending messages"),this.queuedMessages.prepend(e))},n.prototype.failQueuedMessages=function(e){var t=this.queuedMessages.count();t>0&&(l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.failQueuedMessages()","failing "+t+" queued messages, err = "+o.inspectError(e)),this.queuedMessages.completeAllMessages(e))},n.prototype.onChannelMessage=function(e,t){var n=this.activeProtocol&&t===this.activeProtocol.getTransport(),r=o.arrIn(this.pendingTransports,t)&&this.state==this.states.synchronizing;n||r||o.arrIndexOf([T.ACK,T.NACK,T.ERROR],e.action)>-1?this.realtime.channels.onChannelMessage(e):l.default.logAction(l.default.LOG_MICRO,"ConnectionManager.onChannelMessage()","received message "+JSON.stringify(e)+"on defunct transport; discarding")},n.prototype.ping=function(e,t){var n=this;if(e){l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.ping()","transport = "+e);var r=o.now(),i=o.cheapRandStr(),a=function(n){if(n===i){e.off("heartbeat",a),clearTimeout(s);var A=o.now()-r;t(null,A)}},s=setTimeout((function(){e.off("heartbeat",a),t(new h.default("Timeout waiting for heartbeat response",5e4,500))}),this.options.timeouts.realtimeRequestTimeout);return e.on("heartbeat",a),void e.ping(i)}if("connected"===this.state.state){var c=!1,u=function(){c||(c=!0,A.default.Config.nextTick((function(){n.ping(null,t)})))};this.on("transport.active",u),this.ping(this.activeProtocol.getTransport(),(function(e,r){n.off("transport.active",u),c||(c=!0,t(e,r))}))}else t(new h.default("Unable to ping service; not connected",4e4,400))},n.prototype.abort=function(e){this.activeProtocol.getTransport().fail(e)},n.prototype.registerProposedTransport=function(e){this.proposedTransports.push(e)},n.prototype.getTransportPreference=function(){var e,t;return this.transportPreference||k()&&(null===(t=null===(e=A.default.WebStorage)||void 0===e?void 0:e.get)||void 0===t?void 0:t.call(e,E))},n.prototype.persistTransportPreference=function(e){var t,n;o.arrIn(s.default.upgradeTransports,e.shortName)&&(this.transportPreference=e.shortName,k()&&(null===(n=null===(t=A.default.WebStorage)||void 0===t?void 0:t.set)||void 0===n||n.call(t,E,e.shortName)))},n.prototype.unpersistTransportPreference=function(){var e,t;this.transportPreference=null,k()&&(null===(t=null===(e=A.default.WebStorage)||void 0===e?void 0:e.remove)||void 0===t||t.call(e,E))},n.prototype.actOnErrorFromAuthorize=function(e){if(40171===e.code)this.notifyState({state:"failed",error:e});else if(40102===e.code)this.notifyState({state:"failed",error:e});else if(e.statusCode===b.default.Forbidden){var t="Client configured authentication provider returned 403; failing the connection";l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.actOnErrorFromAuthorize()",t),this.notifyState({state:"failed",error:new h.default(t,80019,403,e)})}else t="Client configured authentication provider request failed",l.default.logAction(l.default.LOG_MINOR,"ConnectionManager.actOnErrorFromAuthorize",t),this.notifyState({state:this.state.failState,error:new h.default(t,80019,401,e)})},n.prototype.onConnectionDetailsUpdate=function(e,t){if(e){this.connectionDetails=e,e.maxMessageSize&&(this.options.maxMessageSize=e.maxMessageSize);var n=e.clientId;if(n){var r=this.realtime.auth._uncheckedSetClientId(n);if(r)return l.default.logAction(l.default.LOG_ERROR,"ConnectionManager.onConnectionDetailsUpdate()",r.message),void t.fail(r)}var i=e.connectionStateTtl;i&&(this.connectionStateTtl=i),this.maxIdleInterval=e.maxIdleInterval,this.emit("connectiondetails",e)}},n.supportedTransports={},n}(c.default);t.default=P}).call(this,n(13))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importDefault(n(7)),o=r.__importDefault(n(2)),a=function(e){function t(){var t=e.call(this)||this;return t.messages=[],t}return r.__extends(t,e),t.prototype.count=function(){return this.messages.length},t.prototype.push=function(e){this.messages.push(e)},t.prototype.shift=function(){return this.messages.shift()},t.prototype.last=function(){return this.messages[this.messages.length-1]},t.prototype.copyAll=function(){return this.messages.slice()},t.prototype.append=function(e){this.messages.push.apply(this.messages,e)},t.prototype.prepend=function(e){this.messages.unshift.apply(this.messages,e)},t.prototype.completeMessages=function(e,t,n){o.default.logAction(o.default.LOG_MICRO,"MessageQueue.completeMessages()","serial = "+e+"; count = "+t),n=n||null;var r=this.messages;if(0===r.length)throw new Error("MessageQueue.completeMessages(): completeMessages called on any empty MessageQueue");var i=r[0];if(i){var a=i.message.msgSerial,s=e+t;if(s>a)for(var A=0,c=r.splice(0,s-a);As?o(new d.default("Maximum size of messages that can be published at once exceeded ( was "+n+" bytes; limit is "+s+" bytes)",40009,400)):e.__publish(r,o)}}))}else o(this.connectionManager.getError())},t.prototype.__publish=function(e,t){A.default.logAction(A.default.LOG_MICRO,"RealtimeChannel.publish()","message count = "+e.length);var n=this.state;switch(n){case"failed":case"suspended":t(d.default.fromValues(this.invalidStateError()));break;default:A.default.logAction(A.default.LOG_MICRO,"RealtimeChannel.publish()","sending message; channel state is "+n);var r=new i.default;r.action=f.MESSAGE,r.channel=this.name,r.messages=e,this.sendMessage(r,t)}},t.prototype.onEvent=function(e){A.default.logAction(A.default.LOG_MICRO,"RealtimeChannel.onEvent()","received message");for(var t=this.subscriptions,n=0;n>>31}var l=(r<<5|r>>>27)+s+A[c];l+=c<20?1518500249+(i&o|~i&a):c<40?1859775393+(i^o^a):c<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=r,r=l}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),r.SHA1=a._createHelper(c),r.HmacSHA1=a._createHmacHelper(c),u.SHA1)},function(e,t,n){"use strict";function r(e,t,n){for(var r=0,i=n.length;r>>0&127);else if(o<2048)e.setUint8(t++,o>>>6&31|192),e.setUint8(t++,o>>>0&63|128);else if(o<65536)e.setUint8(t++,o>>>12&15|224),e.setUint8(t++,o>>>6&63|128),e.setUint8(t++,o>>>0&63|128);else{if(!(o<1114112))throw new Error("bad codepoint "+o);e.setUint8(t++,o>>>18&7|240),e.setUint8(t++,o>>>12&63|128),e.setUint8(t++,o>>>6&63|128),e.setUint8(t++,o>>>0&63|128)}}}function i(e,t,n){for(var r="",i=t,o=t+n;i=0){if(e<128)return t.setUint8(n,e),1;if(e<256)return t.setUint8(n,204),t.setUint8(n+1,e),2;if(e<65536)return t.setUint8(n,205),t.setUint16(n+1,e),3;if(e<4294967296)return t.setUint8(n,206),t.setUint32(n+1,e),5;if(e<0x10000000000000000)return t.setUint8(n,207),function(e,t,n){n<0x10000000000000000?(e.setUint32(t,Math.floor(n*s)),e.setInt32(t+4,-1&n)):(e.setUint32(t,4294967295),e.setUint32(t+4,4294967295))}(t,n+1,e),9;throw new Error("Number too big 0x"+e.toString(16))}if(e>=-32)return t.setInt8(n,e),1;if(e>=-128)return t.setUint8(n,208),t.setInt8(n+1,e),2;if(e>=-32768)return t.setUint8(n,209),t.setInt16(n+1,e),3;if(e>=-2147483648)return t.setUint8(n,210),t.setInt32(n+1,e),5;if(e>=-0x8000000000000000)return t.setUint8(n,211),function(e,t,n){n<0x8000000000000000?(e.setInt32(t,Math.floor(n*s)),e.setInt32(t+4,-1&n)):(e.setUint32(t,2147483647),e.setUint32(t+4,2147483647))}(t,n+1,e),9;throw new Error("Number too small -0x"+(-e).toString(16).substr(1))}if("undefined"===a)return i?0:(t.setUint8(n,212),t.setUint8(n+1,0),t.setUint8(n+2,0),3);if(null===e)return i?0:(t.setUint8(n,192),1);if("boolean"===a)return t.setUint8(n,e?195:194),1;if("function"==typeof e.toJSON)return u(e.toJSON(),t,n,i);if("object"===a){var d,p=0,h=void 0,f=Array.isArray(e);if((d=f?e.length:(h=c(e,i)).length)<16?(t.setUint8(n,d|(f?144:128)),p=1):d<65536?(t.setUint8(n,f?220:222),t.setUint16(n+1,d),p=3):d<4294967296&&(t.setUint8(n,f?221:223),t.setUint32(n+1,d),p=5),f)for(var m=0;m=0){if(e<128)return 1;if(e<256)return 2;if(e<65536)return 3;if(e<4294967296)return 5;if(e<0x10000000000000000)return 9;throw new Error("Number too big 0x"+e.toString(16))}if(e>=-32)return 1;if(e>=-128)return 2;if(e>=-32768)return 3;if(e>=-2147483648)return 5;if(e>=-0x8000000000000000)return 9;throw new Error("Number too small -0x"+e.toString(16).substr(1))}if("boolean"===n)return 1;if(null===e)return t?0:1;if(void 0===e)return t?0:3;if("function"==typeof e.toJSON)return l(e.toJSON(),t);if("object"===n){var a,s=0;if(Array.isArray(e)){a=e.length;for(var A=0;A20){r.push("...");break}var o=t.getUint8(i).toString(16);1===o.length&&(o="0"+o),r.push(o)}return"<"+n+" "+r.join(" ")+">"},utf8Write:r,utf8Read:i,utf8ByteCount:o}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importDefault(n(30)),o=r.__importDefault(n(50)),a=r.__importDefault(n(3)),s=r.__importDefault(n(55)),A=r.__importDefault(n(57)),c=r.__importDefault(n(62)),u=r.__importDefault(n(64)),l=r.__importDefault(n(68)),d=r.__importDefault(n(2)),p=n(8),h=r.__importDefault(n(65)),f=r.__importDefault(n(66)),m=r.__importDefault(n(41)),g=(0,A.default)(u.default,s.default);a.default.Crypto=g,a.default.BufferUtils=s.default,a.default.Http=c.default,a.default.Config=u.default,a.default.Transports=l.default,a.default.WebStorage=h.default,i.default.Crypto=g,o.default.Crypto=g,d.default.initLogHandlers(),a.default.Defaults=(0,p.getDefaults)(f.default),a.default.Config.agent&&(a.default.Defaults.agent+=" "+a.default.Config.agent),a.default.Config.noUpgrade&&(a.default.Defaults.upgradeTransports=[]),t.default={Rest:i.default,Realtime:o.default,msgpack:m.default}},function(e){e.exports=JSON.parse('{"name":"ably","description":"Realtime client library for Ably, the realtime messaging service","version":"1.2.42","license":"Apache-2.0","bugs":{"url":"https://github.com/ably/ably-js/issues","email":"support@ably.com"},"main":"./build/ably-node.js","typings":"./ably.d.ts","react-native":{"./build/ably-node.js":"./build/ably-reactnative.js"},"browser":{"./build/ably-node.js":"./build/ably-commonjs.js"},"files":["build/**","ably.d.ts","callbacks.d.ts","callbacks.js","promises.d.ts","promises.js","resources/**"],"dependencies":{"@ably/msgpack-js":"^0.4.0","got":"^11.8.5","ws":"^5.1"},"devDependencies":{"@ably/vcdiff-decoder":"1.0.4","@types/crypto-js":"^4.0.1","@types/node":"^15.0.0","@types/request":"^2.48.7","@types/ws":"^8.2.0","@typescript-eslint/eslint-plugin":"^5.14.0","@typescript-eslint/parser":"^5.14.0","async":"ably-forks/async#requirejs","aws-sdk":"^2.1413.0","chai":"^4.2.0","copy-webpack-plugin":"^6.4.1","cors":"^2.8.5","crypto-js":"ably-forks/crypto-js#crypto-lite","eslint":"^7.13.0","eslint-plugin-jsdoc":"^40.0.0","eslint-plugin-security":"^1.4.0","express":"^4.17.1","glob":"~4.4","google-closure-compiler":"^20180610.0.1","grunt":"^1.6.1","grunt-bump":"^0.3.1","grunt-cli":"~1.2.0","grunt-closure-tools":"^1.0.0","grunt-contrib-concat":"~0.5","grunt-shell":"~1.1","grunt-webpack":"^4.0.2","hexy":"~0.2","kexec":"ably-forks/node-kexec#update-for-node-12","minimist":"^1.2.5","mocha":"^8.1.3","null-loader":"^4.0.1","playwright":"^1.10.0","prettier":"^2.5.1","requirejs":"~2.1","shelljs":"~0.8","source-map-explorer":"^2.5.2","ts-loader":"^8.2.0","tsconfig-paths-webpack-plugin":"^4.0.1","tslib":"^2.3.1","typedoc":"^0.23.8","typescript":"^4.6.4","webpack":"^4.44.2","webpack-cli":"^4.2.0"},"engines":{"node":">=5.10.x"},"repository":"ably/ably-js","jspm":{"registry":"npm","directories":{"lib":"build"},"main":"ably"},"scripts":{"grunt":"grunt","test":"grunt test","test:node":"grunt test:node","test:node:skip-build":"grunt mocha","test:webserver":"grunt test:webserver","test:playwright":"node test/support/runPlaywrightTests.js","concat":"grunt concat","build":"grunt build:all","build:node":"grunt build:node","build:browser":"grunt build:browser","requirejs":"grunt requirejs","lint":"eslint .","lint:fix":"eslint --fix .","check-closure-compiler":"grunt check-closure-compiler","prepare":"npm run build","format":"prettier --write --ignore-path .gitignore --ignore-path .prettierignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js docs/chrome-mv3.md","format:check":"prettier --check --ignore-path .gitignore --ignore-path .prettierignore src test ably.d.ts webpack.config.js Gruntfile.js scripts/cdn_deploy.js","sourcemap":"source-map-explorer build/ably.min.js","sourcemap:noencryption":"source-map-explorer build/ably.noencryption.min.js","docs":"typedoc --entryPoints ably.d.ts --out docs/generated/default --readme docs/landing-pages/default.md && typedoc --entryPoints promises.d.ts --out docs/generated/promises --name \\"ably (Promise-based)\\" --readme docs/landing-pages/promises.md && cp docs/landing-pages/choose-library.html docs/generated/index.html"}}')},function(e,t){},function(e,t,n){var r;e.exports=(r=n(6),n(32),n(23),r.HmacSHA256)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importStar(n(1)),o=r.__importDefault(n(47)),a=r.__importDefault(n(25)),s=r.__importDefault(n(18)),A=r.__importDefault(n(4)),c=r.__importDefault(n(48)),u=function(){},l=function(){function e(e){this.rest=e,this.deviceRegistrations=new d(e),this.channelSubscriptions=new p(e)}return e.prototype.publish=function(e,t,n){var r=this.rest,o=r.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,s=i.defaultPostHeaders(r.options,o),A={},c=i.mixin({recipient:e},t);if("function"!=typeof n){if(this.rest.options.promises)return i.promisify(this,"publish",arguments);n=u}r.options.headers&&i.mixin(s,r.options.headers),r.options.pushFullWait&&i.mixin(A,{fullWait:"true"});var l=i.encodeBody(c,o);a.default.post(r,"/push/publish",l,s,A,null,(function(e){return n(e)}))},e}(),d=function(){function e(e){this.rest=e}return e.prototype.save=function(e,t){var n=this.rest,r=o.default.fromValues(e),s=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,A=i.defaultPostHeaders(n.options,s),c={};if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"save",arguments);t=u}n.options.headers&&i.mixin(A,n.options.headers),n.options.pushFullWait&&i.mixin(c,{fullWait:"true"});var l=i.encodeBody(r,s);a.default.put(n,"/push/deviceRegistrations/"+encodeURIComponent(e.id),l,A,c,null,(function(e,n,r,i){t(e,e?void 0:o.default.fromResponseBody(n,i?void 0:s))}))},e.prototype.get=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,s=i.defaultGetHeaders(n.options,r),c=e.id||e;if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"get",arguments);t=u}"string"==typeof c&&c.length?(n.options.headers&&i.mixin(s,n.options.headers),a.default.get(n,"/push/deviceRegistrations/"+encodeURIComponent(c),s,{},null,(function(e,n,i,a){t(e,e?void 0:o.default.fromResponseBody(n,a?void 0:r))}))):t(new A.default("First argument to DeviceRegistrations#get must be a deviceId string or DeviceDetails",4e4,400))},e.prototype.list=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,a=this.rest.http.supportsLinkHeaders?void 0:r,A=i.defaultGetHeaders(n.options,r);if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"list",arguments);t=u}n.options.headers&&i.mixin(A,n.options.headers),new s.default(n,"/push/deviceRegistrations",A,a,(function(e,t,n){return o.default.fromResponseBody(e,n?void 0:r)})).get(e,t)},e.prototype.remove=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=i.defaultGetHeaders(n.options,r),s={},c=e.id||e;if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"remove",arguments);t=u}"string"==typeof c&&c.length?(n.options.headers&&i.mixin(o,n.options.headers),n.options.pushFullWait&&i.mixin(s,{fullWait:"true"}),a.default.delete(n,"/push/deviceRegistrations/"+encodeURIComponent(c),o,s,null,(function(e){return t(e)}))):t(new A.default("First argument to DeviceRegistrations#remove must be a deviceId string or DeviceDetails",4e4,400))},e.prototype.removeWhere=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=i.defaultGetHeaders(n.options,r);if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"removeWhere",arguments);t=u}n.options.headers&&i.mixin(o,n.options.headers),n.options.pushFullWait&&i.mixin(e,{fullWait:"true"}),a.default.delete(n,"/push/deviceRegistrations",o,e,null,(function(e){return t(e)}))},e}(),p=function(){function e(t){this.remove=e.prototype.removeWhere,this.rest=t}return e.prototype.save=function(e,t){var n=this.rest,r=c.default.fromValues(e),o=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,s=i.defaultPostHeaders(n.options,o),A={};if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"save",arguments);t=u}n.options.headers&&i.mixin(s,n.options.headers),n.options.pushFullWait&&i.mixin(A,{fullWait:"true"});var l=i.encodeBody(r,o);a.default.post(n,"/push/channelSubscriptions",l,s,A,null,(function(e,n,r,i){t(e,!e&&c.default.fromResponseBody(n,i?void 0:o))}))},e.prototype.list=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.rest.http.supportsLinkHeaders?void 0:r,a=i.defaultGetHeaders(n.options,r);if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"list",arguments);t=u}n.options.headers&&i.mixin(a,n.options.headers),new s.default(n,"/push/channelSubscriptions",a,o,(function(e,t,n){return c.default.fromResponseBody(e,n?void 0:r)})).get(e,t)},e.prototype.removeWhere=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=i.defaultGetHeaders(n.options,r);if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"removeWhere",arguments);t=u}n.options.headers&&i.mixin(o,n.options.headers),n.options.pushFullWait&&i.mixin(e,{fullWait:"true"}),a.default.delete(n,"/push/channelSubscriptions",o,e,null,(function(e){return t(e)}))},e.prototype.listChannels=function(e,t){var n=this.rest,r=n.options.useBinaryProtocol?i.Format.msgpack:i.Format.json,o=this.rest.http.supportsLinkHeaders?void 0:r,a=i.defaultGetHeaders(n.options,r);if("function"!=typeof t){if(this.rest.options.promises)return i.promisify(this,"listChannels",arguments);t=u}n.options.headers&&i.mixin(a,n.options.headers),n.options.pushFullWait&&i.mixin(e,{fullWait:"true"}),new s.default(n,"/push/channels",a,o,(function(e,t,n){for(var o=!n&&r?i.decodeBody(e,r):e,a=0;a=t.timestamp;var n=e.parseId(),r=t.parseId();return n.msgSerial===r.msgSerial?n.index>r.index:n.msgSerial>r.msgSerial}var m=function(e){function t(t){var n=e.call(this,t)||this;return n.channel=t,n.syncComplete=!1,n.members=new g(n,(function(e){return e.clientId+":"+e.connectionId})),n._myMembers=new g(n,(function(e){return e.clientId})),n.subscriptions=new a.default,n.pendingPresence=[],n}return r.__extends(t,e),t.prototype.enter=function(e,t){if(h(this))throw new c.default("clientId must be specified to enter a presence channel",40012,400);return this._enterOrUpdateClient(void 0,void 0,e,"enter",t)},t.prototype.update=function(e,t){if(h(this))throw new c.default("clientId must be specified to update presence data",40012,400);return this._enterOrUpdateClient(void 0,void 0,e,"update",t)},t.prototype.enterClient=function(e,t,n){return this._enterOrUpdateClient(void 0,e,t,"enter",n)},t.prototype.updateClient=function(e,t,n){return this._enterOrUpdateClient(void 0,e,t,"update",n)},t.prototype._enterOrUpdateClient=function(e,t,n,r,o){var a=this;if(!o)if("function"==typeof n)o=n,n=null;else{if(this.channel.realtime.options.promises)return i.promisify(this,"_enterOrUpdateClient",[e,t,n,r]);o=p}var u=this.channel;if(u.connectionManager.activeState()){s.default.logAction(s.default.LOG_MICRO,"RealtimePresence."+r+"Client()","channel = "+u.name+", id = "+e+", client = "+(t||"(implicit) "+this.channel.realtime.auth.clientId));var l=A.default.fromValues({action:r,data:n});e&&(l.id=e),t&&(l.clientId=t),A.default.encode(l,u.channelOptions,(function(e){if(e)o(e);else switch(u.state){case"attached":u.sendPresence(l,o);break;case"initialized":case"detached":u.attach();case"attaching":a.pendingPresence.push({presence:l,callback:o});break;default:(e=new c.PartialErrorInfo("Unable to "+r+" presence channel while in "+u.state+" state",90001)).code=90001,o(e)}}))}else o(u.connectionManager.getError())},t.prototype.leave=function(e,t){if(h(this))throw new c.default("clientId must have been specified to enter or leave a presence channel",40012,400);return this.leaveClient(void 0,e,t)},t.prototype.leaveClient=function(e,t,n){if(!n)if("function"==typeof t)n=t,t=null;else{if(this.channel.realtime.options.promises)return i.promisify(this,"leaveClient",[e,t]);n=p}var r=this.channel;if(r.connectionManager.activeState()){s.default.logAction(s.default.LOG_MICRO,"RealtimePresence.leaveClient()","leaving; channel = "+this.channel.name+", client = "+e);var o=A.default.fromValues({action:"leave",data:t});switch(e&&(o.clientId=e),r.state){case"attached":r.sendPresence(o,n);break;case"attaching":this.pendingPresence.push({presence:o,callback:n});break;case"initialized":case"failed":var a=new c.PartialErrorInfo("Unable to leave presence channel (incompatible state)",90001);null==n||n(a);break;default:null==n||n(r.invalidStateError())}}else null==n||n(r.connectionManager.getError())},t.prototype.get=function(e,t){var n=this,r=Array.prototype.slice.call(arguments);1==r.length&&"function"==typeof r[0]&&r.unshift(null),e=r[0],t=r[1];var o=!e||!("waitForSync"in e)||e.waitForSync;if(!t){if(this.channel.realtime.options.promises)return i.promisify(this,"get",r);t=p}function a(n){t(null,e?n.list(e):n.values())}"suspended"!==this.channel.state?function(e,t,n){switch(e.state){case"attached":case"suspended":n();break;case"initialized":case"detached":case"detaching":case"attaching":e.attach((function(e){e?t(e):n()}));break;default:t(c.default.fromValues(e.invalidStateError()))}}(this.channel,t,(function(){var e=n.members;o?e.waitSync((function(){a(e)})):a(e)})):o?t(c.default.fromValues({statusCode:400,code:91005,message:"Presence state is out of sync due to channel being in the SUSPENDED state"})):a(this.members)},t.prototype.history=function(e,t){if(s.default.logAction(s.default.LOG_MICRO,"RealtimePresence.history()","channel = "+this.name),void 0===t)if("function"==typeof e)t=e,e=null;else{if(this.channel.realtime.options.promises)return i.promisify(this,"history",arguments);t=p}e&&e.untilAttach&&("attached"===this.channel.state?(delete e.untilAttach,e.from_serial=this.channel.properties.attachSerial):t(new c.default("option untilAttach requires the channel to be attached, was: "+this.channel.state,4e4,400))),o.default.prototype._history.call(this,e,t)},t.prototype.setPresence=function(e,t,n){var r,i;s.default.logAction(s.default.LOG_MICRO,"RealtimePresence.setPresence()","received presence for "+e.length+" participants; syncChannelSerial = "+n);var o=this.members,a=this._myMembers,c=[],u=this.channel.connectionManager.connectionId;t&&(this.members.startSync(),n&&(i=n.match(/^[\w-]+:(.*)$/))&&(r=i[1]));for(var l=0;l>12,n=(4032&i)>>6,r=63&i,o+=a[(16515072&i)>>18]+a[t]+a[n]+a[r];return 1==A?(t=(3&(i=e[c]))<<4,o+=a[(252&i)>>2]+a[t]+"=="):2==A&&(t=(1008&(i=e[c]<<8|e[c+1]))>>4,n=(15&i)<<2,o+=a[(64512&i)>>10]+a[t]+a[n]+"="),o},e.prototype.base64ToArrayBuffer=function(e){for(var t=null===atob||void 0===atob?void 0:atob(e),n=t.length,r=new Uint8Array(n),i=0;i>>2]>>>24-r%4*8&255;return n}throw new Error("BufferUtils.toBuffer expected an arraybuffer, typed array, or CryptoJS wordarray")},e.prototype.toArrayBuffer=function(e){return this.isArrayBuffer(e)?e:this.toBuffer(e).buffer},e.prototype.toWordArray=function(e){return this.isTypedArray(e)&&(e=e.buffer),this.isWordArray(e)?e:s.default.create(e)},e.prototype.base64Encode=function(e){return this.isWordArray(e)?(0,a.stringify)(e):this.uint8ViewToBase64(this.toBuffer(e))},e.prototype.base64Decode=function(e){return ArrayBuffer&&A.default.Config.atob?this.base64ToArrayBuffer(e):(0,a.parse)(e)},e.prototype.hexEncode=function(e){return(0,i.stringify)(this.toWordArray(e))},e.prototype.hexDecode=function(e){var t=(0,i.parse)(e);return ArrayBuffer?this.toArrayBuffer(t):t},e.prototype.utf8Encode=function(e){return A.default.Config.TextEncoder?(new A.default.Config.TextEncoder).encode(e).buffer:(0,o.parse)(e)},e.prototype.utf8Decode=function(e){if(!this.isBuffer(e))throw new Error("Expected input of utf8decode to be an arraybuffer, typed array, or CryptoJS wordarray");return TextDecoder&&!this.isWordArray(e)?(new TextDecoder).decode(e):(e=this.toWordArray(e),(0,o.stringify)(e))},e.prototype.bufferCompare=function(e,t){if(!e)return-1;if(!t)return 1;var n=this.toWordArray(e),r=this.toWordArray(t);n.clamp(),r.clamp();var i=n.sigBytes-r.sigBytes;if(0!=i)return i;for(var o=n.words,a=r.words,s=0;s>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},n.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],o=0;o>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var n=e.length,r=[],o=0;o>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(r,2*n)}}}(),r.enc.Utf16)},function(e,t,n){var r,i,o,a;e.exports=(a=n(6),n(28),i=(r=a).lib.CipherParams,o=r.enc.Hex,r.format.Hex={stringify:function(e){return e.ciphertext.toString(o)},parse:function(e){var t=o.parse(e);return i.create({ciphertext:t})}},a.format.Hex)},function(e,t,n){var r;e.exports=(r=n(6),n(11),n(61),n(27),n(28),function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],o=[],a=[],s=[],A=[],c=[],u=[],l=[],d=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,o[h]=n;var f=e[n],m=e[f],g=e[m],y=257*e[h]^16843008*h;a[n]=y<<24|y>>>8,s[n]=y<<16|y>>>16,A[n]=y<<8|y>>>24,c[n]=y,y=16843009*g^65537*m^257*f^16843008*n,u[h]=y<<24|y>>>8,l[h]=y<<16|y>>>16,d[h]=y<<8|y>>>24,p[h]=y,n?(n=f^e[e[e[g^f]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],f=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),o=this._keySchedule=[],a=0;a6&&a%n==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=h[a/n|0]<<24),o[a]=o[a-n]^c);for(var s=this._invKeySchedule=[],A=0;A>>24]]^l[i[c>>>16&255]]^d[i[c>>>8&255]]^p[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,s,A,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,l,d,p,o),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,o,a,s){for(var A=this._nRounds,c=e[t]^n[0],u=e[t+1]^n[1],l=e[t+2]^n[2],d=e[t+3]^n[3],p=4,h=1;h>>24]^i[u>>>16&255]^o[l>>>8&255]^a[255&d]^n[p++],m=r[u>>>24]^i[l>>>16&255]^o[d>>>8&255]^a[255&c]^n[p++],g=r[l>>>24]^i[d>>>16&255]^o[c>>>8&255]^a[255&u]^n[p++],y=r[d>>>24]^i[c>>>16&255]^o[u>>>8&255]^a[255&l]^n[p++];c=f,u=m,l=g,d=y}f=(s[c>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],m=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&c])^n[p++],g=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[c>>>8&255]<<8|s[255&u])^n[p++],y=(s[d>>>24]<<24|s[c>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[p++],e[t]=f,e[t+1]=m,e[t+2]=g,e[t+3]=y},keySize:8});e.AES=t._createHelper(f)}(),r.AES)},function(e,t,n){var r;e.exports=(r=n(6),function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var A=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],A=e[t+1],p=e[t+2],h=e[t+3],f=e[t+4],m=e[t+5],g=e[t+6],y=e[t+7],v=e[t+8],b=e[t+9],k=e[t+10],S=e[t+11],T=e[t+12],w=e[t+13],E=e[t+14],j=e[t+15],O=o[0],R=o[1],P=o[2],C=o[3];O=c(O,R,P,C,a,7,s[0]),C=c(C,O,R,P,A,12,s[1]),P=c(P,C,O,R,p,17,s[2]),R=c(R,P,C,O,h,22,s[3]),O=c(O,R,P,C,f,7,s[4]),C=c(C,O,R,P,m,12,s[5]),P=c(P,C,O,R,g,17,s[6]),R=c(R,P,C,O,y,22,s[7]),O=c(O,R,P,C,v,7,s[8]),C=c(C,O,R,P,b,12,s[9]),P=c(P,C,O,R,k,17,s[10]),R=c(R,P,C,O,S,22,s[11]),O=c(O,R,P,C,T,7,s[12]),C=c(C,O,R,P,w,12,s[13]),P=c(P,C,O,R,E,17,s[14]),O=u(O,R=c(R,P,C,O,j,22,s[15]),P,C,A,5,s[16]),C=u(C,O,R,P,g,9,s[17]),P=u(P,C,O,R,S,14,s[18]),R=u(R,P,C,O,a,20,s[19]),O=u(O,R,P,C,m,5,s[20]),C=u(C,O,R,P,k,9,s[21]),P=u(P,C,O,R,j,14,s[22]),R=u(R,P,C,O,f,20,s[23]),O=u(O,R,P,C,b,5,s[24]),C=u(C,O,R,P,E,9,s[25]),P=u(P,C,O,R,h,14,s[26]),R=u(R,P,C,O,v,20,s[27]),O=u(O,R,P,C,w,5,s[28]),C=u(C,O,R,P,p,9,s[29]),P=u(P,C,O,R,y,14,s[30]),O=l(O,R=u(R,P,C,O,T,20,s[31]),P,C,m,4,s[32]),C=l(C,O,R,P,v,11,s[33]),P=l(P,C,O,R,S,16,s[34]),R=l(R,P,C,O,E,23,s[35]),O=l(O,R,P,C,A,4,s[36]),C=l(C,O,R,P,f,11,s[37]),P=l(P,C,O,R,y,16,s[38]),R=l(R,P,C,O,k,23,s[39]),O=l(O,R,P,C,w,4,s[40]),C=l(C,O,R,P,a,11,s[41]),P=l(P,C,O,R,h,16,s[42]),R=l(R,P,C,O,g,23,s[43]),O=l(O,R,P,C,b,4,s[44]),C=l(C,O,R,P,T,11,s[45]),P=l(P,C,O,R,j,16,s[46]),O=d(O,R=l(R,P,C,O,p,23,s[47]),P,C,a,6,s[48]),C=d(C,O,R,P,y,10,s[49]),P=d(P,C,O,R,E,15,s[50]),R=d(R,P,C,O,m,21,s[51]),O=d(O,R,P,C,T,6,s[52]),C=d(C,O,R,P,h,10,s[53]),P=d(P,C,O,R,k,15,s[54]),R=d(R,P,C,O,A,21,s[55]),O=d(O,R,P,C,v,6,s[56]),C=d(C,O,R,P,j,10,s[57]),P=d(P,C,O,R,g,15,s[58]),R=d(R,P,C,O,w,21,s[59]),O=d(O,R,P,C,f,6,s[60]),C=d(C,O,R,P,S,10,s[61]),P=d(P,C,O,R,p,15,s[62]),R=d(R,P,C,O,b,21,s[63]),o[0]=o[0]+O|0,o[1]=o[1]+R|0,o[2]=o[2]+P|0,o[3]=o[3]+C|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var o=e.floor(r/4294967296),a=r;n[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,A=s.words,c=0;c<4;c++){var u=A[c];A[c]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+i+a;return(s<>>32-o)+t}function u(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+i+a;return(s<>>32-o)+t}function l(e,t,n,r,i,o,a){var s=e+(t^n^r)+i+a;return(s<>>32-o)+t}function d(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+i+a;return(s<>>32-o)+t}t.MD5=o._createHelper(A),t.HmacMD5=o._createHmacHelper(A)}(Math),r.MD5)},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),o=i.__importDefault(n(3)),a=i.__importStar(n(1)),s=i.__importDefault(n(8)),A=n(4),c=i.__importDefault(n(17)),u=i.__importDefault(n(15)),l=i.__importDefault(n(20)),d=i.__importDefault(n(2)),p=n(29),h=i.__importDefault(n(63)),f=n(24);function m(e){var t=e.statusCode;return 408===t&&!e.code||400===t&&!e.code||t>=500&&t<=504}function g(e){var t=e.connection,n=t&&t.connectionManager.host;return n?[n].concat(s.default.getFallbackHosts(e.options)):s.default.getHosts(e.options)}var y=(r=function(){function e(e){this.checksInProgress=null,this.checkConnectivity=void 0,this.supportsAuthHeaders=!1,this.supportsLinkHeaders=!1,this._getHosts=g,this.options=e||{};var t=this.options.connectivityCheckUrl||s.default.connectivityCheckUrl,n=this.options.connectivityCheckParams,r=!this.options.connectivityCheckUrl;o.default.Config.xhrSupported?(this.supportsAuthHeaders=!0,this.Request=function(e,t,n,r,i,o,a){var s=u.default.createRequest(n,r,i,o,l.default.REQ_SEND,t&&t.options.timeouts,e);return s.once("complete",a),s.exec(),s},this.options.disableConnectivityCheck?this.checkConnectivity=function(e){e(null,!0)}:this.checkConnectivity=function(e){d.default.logAction(d.default.LOG_MICRO,"(XHRRequest)Http.checkConnectivity()","Sending; "+t),this.doUri(c.default.Get,null,t,null,null,n,(function(t,n,i,o,a){var s;s=r?!t&&"yes"==(null==n?void 0:n.replace(/\n/,"")):!t&&(0,f.isSuccessCode)(a),d.default.logAction(d.default.LOG_MICRO,"(XHRRequest)Http.checkConnectivity()","Result: "+s),e(null,s)}))}):o.default.Config.jsonpSupported?(this.Request=function(e,t,n,r,i,a,s){var A=(0,p.createRequest)(n,r,i,a,l.default.REQ_SEND,t&&t.options.timeouts,e);return A.once("complete",s),o.default.Config.nextTick((function(){A.exec()})),A},this.options.disableConnectivityCheck?this.checkConnectivity=function(e){e(null,!0)}:this.checkConnectivity=function(e){var t=this,n=s.default.jsonpInternetUpUrl;if(this.checksInProgress)this.checksInProgress.push(e);else{this.checksInProgress=[e],d.default.logAction(d.default.LOG_MICRO,"(JSONP)Http.checkConnectivity()","Sending; "+n);var r=new p.Request("isTheInternetUp",n,null,null,null,l.default.REQ_SEND,s.default.TIMEOUTS);r.once("complete",(function(e,n){var r=!e&&n;d.default.logAction(d.default.LOG_MICRO,"(JSONP)Http.checkConnectivity()","Result: "+r);for(var i=0;ia.now())return this.Request?void this.Request(e,t,l(d.host),r,s,o,(function(a){for(var A=[],l=1;l-1?e.arrayBuffer():t&&t.indexOf("application/json")>-1?e.json():e.text()).then((function(n){var r=!!t&&-1===t.indexOf("application/x-msgpack");if(e.ok)l(null,n,e.headers,r,e.status);else{var a=function(e,t){if(function(e,t){return!!t.get("x-ably-errorcode")}(0,t))return e.error&&i.default.fromValues(e.error)}(n,e.headers)||new i.PartialErrorInfo("Error response received from server: "+e.status+" body was: "+o.default.Config.inspect(n),null,e.status);l(a,n,e.headers,r,e.status)}}))})).catch((function(e){clearTimeout(f),l(e)}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=r.__importDefault(n(41)),o=r.__importStar(n(1)).getGlobalObject();"undefined"==typeof Window&&"undefined"==typeof WorkerGlobalScope&&console.log("Warning: this distribution of Ably is intended for browsers. On nodejs, please use the 'ably' package on npm");var a,s=o.navigator&&o.navigator.userAgent.toString(),A={agent:"browser",logTimestamps:!0,userAgent:s,currentUrl:o.location&&o.location.href,noUpgrade:s&&!!s.match(/MSIE\s8\.0/),binaryType:"arraybuffer",WebSocket:o.WebSocket,fetchSupported:!!o.fetch,xhrSupported:o.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest,jsonpSupported:"undefined"!=typeof document,allowComet:(a=o.location,!o.WebSocket||!a||!a.origin||a.origin.indexOf("http")>-1),streamingSupported:!0,useProtocolHeartbeats:!0,createHmac:null,msgpack:i.default,supportsBinary:!!o.TextDecoder,preferBinary:!1,ArrayBuffer:o.ArrayBuffer,atob:o.atob,nextTick:void 0!==o.setImmediate?o.setImmediate.bind(o):function(e){setTimeout(e,0)},addEventListener:o.addEventListener,inspect:JSON.stringify,stringByteSize:function(e){return o.TextDecoder&&(new o.TextEncoder).encode(e).length||e.length},TextEncoder:o.TextEncoder,TextDecoder:o.TextDecoder,Promise:o.Promise,getRandomValues:function(e){if(void 0!==e)return function(t,n){e.getRandomValues(t),n&&n(null)}}(o.crypto||msCrypto)};t.default=A},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var r=n(0).__importStar(n(1)),i="ablyjs-storage-test",o=function(){function t(){try{e.sessionStorage.setItem(i,i),e.sessionStorage.removeItem(i),this.sessionSupported=!0}catch(e){this.sessionSupported=!1}try{e.localStorage.setItem(i,i),e.localStorage.removeItem(i),this.localSupported=!0}catch(e){this.localSupported=!1}}return t.prototype.get=function(e){return this._get(e,!1)},t.prototype.getSession=function(e){return this._get(e,!0)},t.prototype.remove=function(e){return this._remove(e,!1)},t.prototype.removeSession=function(e){return this._remove(e,!0)},t.prototype.set=function(e,t,n){return this._set(e,t,n,!1)},t.prototype.setSession=function(e,t,n){return this._set(e,t,n,!0)},t.prototype._set=function(e,t,n,i){var o={value:t};return n&&(o.expires=r.now()+n),this.storageInterface(i).setItem(e,JSON.stringify(o))},t.prototype._get=function(e,t){if(t&&!this.sessionSupported)throw new Error("Session Storage not supported");if(!t&&!this.localSupported)throw new Error("Local Storage not supported");var n=this.storageInterface(t).getItem(e);if(!n)return null;var i=JSON.parse(n);return i.expires&&i.expires{"use strict";function r(e){return"string"==typeof e&&(e=-1==e.indexOf(":")?{token:e}:{key:e}),e.promises=!0,e}var i=n("./node_modules/ably/build/ably-commonjs.js"),o=function(e){return new i.Rest(r(e))};Object.assign(o,i.Rest);var a=function(e){return new i.Realtime(r(e))};Object.assign(a,i.Realtime),e.exports={Rest:o,Realtime:a}},"./node_modules/rtcpeerconnection-shim/rtcpeerconnection.js":(e,t,n)=>{"use strict";var r=n("./node_modules/sdp/sdp.js");function i(e,t,n,i,o){var a=r.writeRtpDescription(e.kind,t);if(a+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),a+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===n?"actpass":o||"active"),a+="a=mid:"+e.mid+"\r\n",e.rtpSender&&e.rtpReceiver?a+="a=sendrecv\r\n":e.rtpSender?a+="a=sendonly\r\n":e.rtpReceiver?a+="a=recvonly\r\n":a+="a=inactive\r\n",e.rtpSender){var s=e.rtpSender._initialTrackId||e.rtpSender.track.id;e.rtpSender._initialTrackId=s;var A="msid:"+(i?i.id:"-")+" "+s+"\r\n";a+="a="+A,a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+A,e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+A,a+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+r.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+r.localCName+"\r\n"),a}function o(e,t){var n={codecs:[],headerExtensions:[],fecMechanisms:[]},r=function(e,t){e=parseInt(e,10);for(var n=0;n=14393&&-1===e.indexOf("?transport=udp"):(n=!0,!0)})),delete e.url,e.urls=i?r[0]:r,!!r.length}}))}(n.iceServers||[],t),this._iceGatherers=[],n.iceCandidatePoolSize)for(var a=n.iceCandidatePoolSize;a>0;a--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:n.iceServers,gatherPolicy:n.iceTransportPolicy}));else n.iceCandidatePoolSize=0;this._config=n,this.transceivers=[],this._sdpSessionId=r.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(u.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(u.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),u.prototype.onicecandidate=null,u.prototype.onaddstream=null,u.prototype.ontrack=null,u.prototype.onremovestream=null,u.prototype.onsignalingstatechange=null,u.prototype.oniceconnectionstatechange=null,u.prototype.onconnectionstatechange=null,u.prototype.onicegatheringstatechange=null,u.prototype.onnegotiationneeded=null,u.prototype.ondatachannel=null,u.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),"function"==typeof this["on"+e]&&this["on"+e](t))},u.prototype._emitGatheringStateChange=function(){var e=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",e)},u.prototype.getConfiguration=function(){return this._config},u.prototype.getLocalStreams=function(){return this.localStreams},u.prototype.getRemoteStreams=function(){return this.remoteStreams},u.prototype._createTransceiver=function(e,t){var n=this.transceivers.length>0,r={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&n)r.iceTransport=this.transceivers[0].iceTransport,r.dtlsTransport=this.transceivers[0].dtlsTransport;else{var i=this._createIceAndDtlsTransports();r.iceTransport=i.iceTransport,r.dtlsTransport=i.dtlsTransport}return t||this.transceivers.push(r),r},u.prototype.addTrack=function(t,n){if(this._isClosed)throw A("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var r;if(this.transceivers.find((function(e){return e.track===t})))throw A("InvalidAccessError","Track already exists.");for(var i=0;i=15025)e.getTracks().forEach((function(t){n.addTrack(t,e)}));else{var r=e.clone();e.getTracks().forEach((function(e,t){var n=r.getTracks()[t];e.addEventListener("enabled",(function(e){n.enabled=e.enabled}))})),r.getTracks().forEach((function(e){n.addTrack(e,r)}))}},u.prototype.removeTrack=function(t){if(this._isClosed)throw A("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(t instanceof e.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var n=this.transceivers.find((function(e){return e.rtpSender===t}));if(!n)throw A("InvalidAccessError","Sender was not created by this connection.");var r=n.stream;n.rtpSender.stop(),n.rtpSender=null,n.track=null,n.stream=null,-1===this.transceivers.map((function(e){return e.stream})).indexOf(r)&&this.localStreams.indexOf(r)>-1&&this.localStreams.splice(this.localStreams.indexOf(r),1),this._maybeFireNegotiationNeeded()},u.prototype.removeStream=function(e){var t=this;e.getTracks().forEach((function(e){var n=t.getSenders().find((function(t){return t.track===e}));n&&t.removeTrack(n)}))},u.prototype.getSenders=function(){return this.transceivers.filter((function(e){return!!e.rtpSender})).map((function(e){return e.rtpSender}))},u.prototype.getReceivers=function(){return this.transceivers.filter((function(e){return!!e.rtpReceiver})).map((function(e){return e.rtpReceiver}))},u.prototype._createIceGatherer=function(t,n){var r=this;if(n&&t>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var i=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(i,"state",{value:"new",writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){var n=!e.candidate||0===Object.keys(e.candidate).length;i.state=n?"completed":"gathering",null!==r.transceivers[t].bufferedCandidateEvents&&r.transceivers[t].bufferedCandidateEvents.push(e)},i.addEventListener("localcandidate",this.transceivers[t].bufferCandidates),i},u.prototype._gather=function(t,n){var i=this,o=this.transceivers[n].iceGatherer;if(!o.onlocalcandidate){var a=this.transceivers[n].bufferedCandidateEvents;this.transceivers[n].bufferedCandidateEvents=null,o.removeEventListener("localcandidate",this.transceivers[n].bufferCandidates),o.onlocalcandidate=function(e){if(!(i.usingBundle&&n>0)){var a=new Event("icecandidate");a.candidate={sdpMid:t,sdpMLineIndex:n};var s=e.candidate,A=!s||0===Object.keys(s).length;if(A)"new"!==o.state&&"gathering"!==o.state||(o.state="completed");else{"new"===o.state&&(o.state="gathering"),s.component=1,s.ufrag=o.getLocalParameters().usernameFragment;var c=r.writeCandidate(s);a.candidate=Object.assign(a.candidate,r.parseCandidate(c)),a.candidate.candidate=c,a.candidate.toJSON=function(){return{candidate:a.candidate.candidate,sdpMid:a.candidate.sdpMid,sdpMLineIndex:a.candidate.sdpMLineIndex,usernameFragment:a.candidate.usernameFragment}}}var u=r.getMediaSections(i._localDescription.sdp);u[a.candidate.sdpMLineIndex]+=A?"a=end-of-candidates\r\n":"a="+a.candidate.candidate+"\r\n",i._localDescription.sdp=r.getDescription(i._localDescription.sdp)+u.join("");var l=i.transceivers.every((function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state}));"gathering"!==i.iceGatheringState&&(i.iceGatheringState="gathering",i._emitGatheringStateChange()),A||i._dispatchEvent("icecandidate",a),l&&(i._dispatchEvent("icecandidate",new Event("icecandidate")),i.iceGatheringState="complete",i._emitGatheringStateChange())}},e.setTimeout((function(){a.forEach((function(e){o.onlocalcandidate(e)}))}),0)}},u.prototype._createIceAndDtlsTransports=function(){var t=this,n=new e.RTCIceTransport(null);n.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var r=new e.RTCDtlsTransport(n);return r.ondtlsstatechange=function(){t._updateConnectionState()},r.onerror=function(){Object.defineProperty(r,"state",{value:"failed",writable:!0}),t._updateConnectionState()},{iceTransport:n,dtlsTransport:r}},u.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var n=this.transceivers[e].iceTransport;n&&(delete n.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlsstatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},u.prototype._transceive=function(e,n,i){var a=o(e.localCapabilities,e.remoteCapabilities);n&&e.rtpSender&&(a.encodings=e.sendEncodingParameters,a.rtcp={cname:r.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(a.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(a)),i&&e.rtpReceiver&&a.codecs.length>0&&("video"===e.kind&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach((function(e){delete e.rtx})),e.recvEncodingParameters.length?a.encodings=e.recvEncodingParameters:a.encodings=[{}],a.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(a.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(a.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(a))},u.prototype.setLocalDescription=function(e){var t,n,i=this;if(-1===["offer","answer"].indexOf(e.type))return Promise.reject(A("TypeError",'Unsupported type "'+e.type+'"'));if(!a("setLocalDescription",e.type,i.signalingState)||i._isClosed)return Promise.reject(A("InvalidStateError","Can not set local "+e.type+" in state "+i.signalingState));if("offer"===e.type)t=r.splitSections(e.sdp),n=t.shift(),t.forEach((function(e,t){var n=r.parseRtpParameters(e);i.transceivers[t].localCapabilities=n})),i.transceivers.forEach((function(e,t){i._gather(e.mid,t)}));else if("answer"===e.type){t=r.splitSections(i._remoteDescription.sdp),n=t.shift();var s=r.matchPrefix(n,"a=ice-lite").length>0;t.forEach((function(e,t){var a=i.transceivers[t],A=a.iceGatherer,c=a.iceTransport,u=a.dtlsTransport,l=a.localCapabilities,d=a.remoteCapabilities;if(!(r.isRejected(e)&&0===r.matchPrefix(e,"a=bundle-only").length||a.rejected)){var p=r.getIceParameters(e,n),h=r.getDtlsParameters(e,n);s&&(h.role="server"),i.usingBundle&&0!==t||(i._gather(a.mid,t),"new"===c.state&&c.start(A,p,s?"controlling":"controlled"),"new"===u.state&&u.start(h));var f=o(l,d);i._transceive(a,f.codecs.length>0,!1)}}))}return i._localDescription={type:e.type,sdp:e.sdp},"offer"===e.type?i._updateSignalingState("have-local-offer"):i._updateSignalingState("stable"),Promise.resolve()},u.prototype.setRemoteDescription=function(i){var u=this;if(-1===["offer","answer"].indexOf(i.type))return Promise.reject(A("TypeError",'Unsupported type "'+i.type+'"'));if(!a("setRemoteDescription",i.type,u.signalingState)||u._isClosed)return Promise.reject(A("InvalidStateError","Can not set remote "+i.type+" in state "+u.signalingState));var l={};u.remoteStreams.forEach((function(e){l[e.id]=e}));var d=[],p=r.splitSections(i.sdp),h=p.shift(),f=r.matchPrefix(h,"a=ice-lite").length>0,m=r.matchPrefix(h,"a=group:BUNDLE ").length>0;u.usingBundle=m;var g=r.matchPrefix(h,"a=ice-options:")[0];return u.canTrickleIceCandidates=!!g&&g.substr(14).split(" ").indexOf("trickle")>=0,p.forEach((function(a,A){var c=r.splitLines(a),p=r.getKind(a),g=r.isRejected(a)&&0===r.matchPrefix(a,"a=bundle-only").length,y=c[0].substr(2).split(" ")[2],v=r.getDirection(a,h),b=r.parseMsid(a),k=r.getMid(a)||r.generateIdentifier();if(g||"application"===p&&("DTLS/SCTP"===y||"UDP/DTLS/SCTP"===y))u.transceivers[A]={mid:k,kind:p,protocol:y,rejected:!0};else{var S,T,w,E,j,O,R,P,C;!g&&u.transceivers[A]&&u.transceivers[A].rejected&&(u.transceivers[A]=u._createTransceiver(p,!0));var L,N,x=r.parseRtpParameters(a);g||(L=r.getIceParameters(a,h),(N=r.getDtlsParameters(a,h)).role="client"),R=r.parseRtpEncodingParameters(a);var M=r.parseRtcpParameters(a),U=r.matchPrefix(a,"a=end-of-candidates",h).length>0,I=r.matchPrefix(a,"a=candidate:").map((function(e){return r.parseCandidate(e)})).filter((function(e){return 1===e.component}));if(("offer"===i.type||"answer"===i.type)&&!g&&m&&A>0&&u.transceivers[A]&&(u._disposeIceAndDtlsTransports(A),u.transceivers[A].iceGatherer=u.transceivers[0].iceGatherer,u.transceivers[A].iceTransport=u.transceivers[0].iceTransport,u.transceivers[A].dtlsTransport=u.transceivers[0].dtlsTransport,u.transceivers[A].rtpSender&&u.transceivers[A].rtpSender.setTransport(u.transceivers[0].dtlsTransport),u.transceivers[A].rtpReceiver&&u.transceivers[A].rtpReceiver.setTransport(u.transceivers[0].dtlsTransport)),"offer"!==i.type||g)"answer"!==i.type||g||(T=(S=u.transceivers[A]).iceGatherer,w=S.iceTransport,E=S.dtlsTransport,j=S.rtpReceiver,O=S.sendEncodingParameters,P=S.localCapabilities,u.transceivers[A].recvEncodingParameters=R,u.transceivers[A].remoteCapabilities=x,u.transceivers[A].rtcpParameters=M,I.length&&"new"===w.state&&(!f&&!U||m&&0!==A?I.forEach((function(e){s(S.iceTransport,e)})):w.setRemoteCandidates(I)),m&&0!==A||("new"===w.state&&w.start(T,L,"controlling"),"new"===E.state&&E.start(N)),!o(S.localCapabilities,S.remoteCapabilities).codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&S.sendEncodingParameters[0].rtx&&delete S.sendEncodingParameters[0].rtx,u._transceive(S,"sendrecv"===v||"recvonly"===v,"sendrecv"===v||"sendonly"===v),!j||"sendrecv"!==v&&"sendonly"!==v?delete S.rtpReceiver:(C=j.track,b?(l[b.stream]||(l[b.stream]=new e.MediaStream),n(C,l[b.stream]),d.push([C,j,l[b.stream]])):(l.default||(l.default=new e.MediaStream),n(C,l.default),d.push([C,j,l.default]))));else{(S=u.transceivers[A]||u._createTransceiver(p)).mid=k,S.iceGatherer||(S.iceGatherer=u._createIceGatherer(A,m)),I.length&&"new"===S.iceTransport.state&&(!U||m&&0!==A?I.forEach((function(e){s(S.iceTransport,e)})):S.iceTransport.setRemoteCandidates(I)),P=e.RTCRtpReceiver.getCapabilities(p),t<15019&&(P.codecs=P.codecs.filter((function(e){return"rtx"!==e.name}))),O=S.sendEncodingParameters||[{ssrc:1001*(2*A+2)}];var _,W=!1;"sendrecv"===v||"sendonly"===v?(W=!S.rtpReceiver,j=S.rtpReceiver||new e.RTCRtpReceiver(S.dtlsTransport,p),W&&(C=j.track,b&&"-"===b.stream||(b?(l[b.stream]||(l[b.stream]=new e.MediaStream,Object.defineProperty(l[b.stream],"id",{get:function(){return b.stream}})),Object.defineProperty(C,"id",{get:function(){return b.track}}),_=l[b.stream]):(l.default||(l.default=new e.MediaStream),_=l.default)),_&&(n(C,_),S.associatedRemoteMediaStreams.push(_)),d.push([C,j,_]))):S.rtpReceiver&&S.rtpReceiver.track&&(S.associatedRemoteMediaStreams.forEach((function(t){var n=t.getTracks().find((function(e){return e.id===S.rtpReceiver.track.id}));n&&function(t,n){n.removeTrack(t),n.dispatchEvent(new e.MediaStreamTrackEvent("removetrack",{track:t}))}(n,t)})),S.associatedRemoteMediaStreams=[]),S.localCapabilities=P,S.remoteCapabilities=x,S.rtpReceiver=j,S.rtcpParameters=M,S.sendEncodingParameters=O,S.recvEncodingParameters=R,u._transceive(u.transceivers[A],!1,W)}}})),void 0===u._dtlsRole&&(u._dtlsRole="offer"===i.type?"active":"passive"),u._remoteDescription={type:i.type,sdp:i.sdp},"offer"===i.type?u._updateSignalingState("have-remote-offer"):u._updateSignalingState("stable"),Object.keys(l).forEach((function(t){var n=l[t];if(n.getTracks().length){if(-1===u.remoteStreams.indexOf(n)){u.remoteStreams.push(n);var r=new Event("addstream");r.stream=n,e.setTimeout((function(){u._dispatchEvent("addstream",r)}))}d.forEach((function(e){var t=e[0],r=e[1];n.id===e[2].id&&c(u,t,r,[n])}))}})),d.forEach((function(e){e[2]||c(u,e[0],e[1],[])})),e.setTimeout((function(){u&&u.transceivers&&u.transceivers.forEach((function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))}))}),4e3),Promise.resolve()},u.prototype.close=function(){this.transceivers.forEach((function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()})),this._isClosed=!0,this._updateSignalingState("closed")},u.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",t)},u.prototype._maybeFireNegotiationNeeded=function(){var t=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout((function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event("negotiationneeded");t._dispatchEvent("negotiationneeded",e)}}),0))},u.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&!e.rejected&&t[e.iceTransport.state]++})),e="new",t.failed>0?e="failed":t.checking>0?e="checking":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0?e="connected":t.completed>0&&(e="completed"),e!==this.iceConnectionState){this.iceConnectionState=e;var n=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",n)}},u.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach((function(e){e.iceTransport&&e.dtlsTransport&&!e.rejected&&(t[e.iceTransport.state]++,t[e.dtlsTransport.state]++)})),t.connected+=t.completed,e="new",t.failed>0?e="failed":t.connecting>0?e="connecting":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0&&(e="connected"),e!==this.connectionState){this.connectionState=e;var n=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",n)}},u.prototype.createOffer=function(){var n=this;if(n._isClosed)return Promise.reject(A("InvalidStateError","Can not call createOffer after close"));var o=n.transceivers.filter((function(e){return"audio"===e.kind})).length,a=n.transceivers.filter((function(e){return"video"===e.kind})).length,s=arguments[0];if(s){if(s.mandatory||s.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==s.offerToReceiveAudio&&(o=!0===s.offerToReceiveAudio?1:!1===s.offerToReceiveAudio?0:s.offerToReceiveAudio),void 0!==s.offerToReceiveVideo&&(a=!0===s.offerToReceiveVideo?1:!1===s.offerToReceiveVideo?0:s.offerToReceiveVideo)}for(n.transceivers.forEach((function(e){"audio"===e.kind?--o<0&&(e.wantReceive=!1):"video"===e.kind&&--a<0&&(e.wantReceive=!1)}));o>0||a>0;)o>0&&(n._createTransceiver("audio"),o--),a>0&&(n._createTransceiver("video"),a--);var c=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.transceivers.forEach((function(i,o){var a=i.track,s=i.kind,A=i.mid||r.generateIdentifier();i.mid=A,i.iceGatherer||(i.iceGatherer=n._createIceGatherer(o,n.usingBundle));var c=e.RTCRtpSender.getCapabilities(s);t<15019&&(c.codecs=c.codecs.filter((function(e){return"rtx"!==e.name}))),c.codecs.forEach((function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1"),i.remoteCapabilities&&i.remoteCapabilities.codecs&&i.remoteCapabilities.codecs.forEach((function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)}))})),c.headerExtensions.forEach((function(e){(i.remoteCapabilities&&i.remoteCapabilities.headerExtensions||[]).forEach((function(t){e.uri===t.uri&&(e.id=t.id)}))}));var u=i.sendEncodingParameters||[{ssrc:1001*(2*o+1)}];a&&t>=15019&&"video"===s&&!u[0].rtx&&(u[0].rtx={ssrc:u[0].ssrc+1}),i.wantReceive&&(i.rtpReceiver=new e.RTCRtpReceiver(i.dtlsTransport,s)),i.localCapabilities=c,i.sendEncodingParameters=u})),"max-compat"!==n._config.bundlePolicy&&(c+="a=group:BUNDLE "+n.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),c+="a=ice-options:trickle\r\n",n.transceivers.forEach((function(e,t){c+=i(e,e.localCapabilities,"offer",e.stream,n._dtlsRole),c+="a=rtcp-rsize\r\n",!e.iceGatherer||"new"===n.iceGatheringState||0!==t&&n.usingBundle||(e.iceGatherer.getLocalCandidates().forEach((function(e){e.component=1,c+="a="+r.writeCandidate(e)+"\r\n"})),"completed"===e.iceGatherer.state&&(c+="a=end-of-candidates\r\n"))}));var u=new e.RTCSessionDescription({type:"offer",sdp:c});return Promise.resolve(u)},u.prototype.createAnswer=function(){var n=this;if(n._isClosed)return Promise.reject(A("InvalidStateError","Can not call createAnswer after close"));if("have-remote-offer"!==n.signalingState&&"have-local-pranswer"!==n.signalingState)return Promise.reject(A("InvalidStateError","Can not call createAnswer in signalingState "+n.signalingState));var a=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.usingBundle&&(a+="a=group:BUNDLE "+n.transceivers.map((function(e){return e.mid})).join(" ")+"\r\n"),a+="a=ice-options:trickle\r\n";var s=r.getMediaSections(n._remoteDescription.sdp).length;n.transceivers.forEach((function(e,r){if(!(r+1>s)){if(e.rejected)return"application"===e.kind?"DTLS/SCTP"===e.protocol?a+="m=application 0 DTLS/SCTP 5000\r\n":a+="m=application 0 "+e.protocol+" webrtc-datachannel\r\n":"audio"===e.kind?a+="m=audio 0 UDP/TLS/RTP/SAVPF 0\r\na=rtpmap:0 PCMU/8000\r\n":"video"===e.kind&&(a+="m=video 0 UDP/TLS/RTP/SAVPF 120\r\na=rtpmap:120 VP8/90000\r\n"),void(a+="c=IN IP4 0.0.0.0\r\na=inactive\r\na=mid:"+e.mid+"\r\n");var A;e.stream&&("audio"===e.kind?A=e.stream.getAudioTracks()[0]:"video"===e.kind&&(A=e.stream.getVideoTracks()[0]),A&&t>=15019&&"video"===e.kind&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1}));var c=o(e.localCapabilities,e.remoteCapabilities);!c.codecs.filter((function(e){return"rtx"===e.name.toLowerCase()})).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,a+=i(e,c,"answer",e.stream,n._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(a+="a=rtcp-rsize\r\n")}}));var c=new e.RTCSessionDescription({type:"answer",sdp:a});return Promise.resolve(c)},u.prototype.addIceCandidate=function(e){var t,n=this;return e&&void 0===e.sdpMLineIndex&&!e.sdpMid?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise((function(i,o){if(!n._remoteDescription)return o(A("InvalidStateError","Can not add ICE candidate without a remote description"));if(e&&""!==e.candidate){var a=e.sdpMLineIndex;if(e.sdpMid)for(var c=0;c0?r.parseCandidate(e.candidate):{};if("tcp"===l.protocol&&(0===l.port||9===l.port))return i();if(l.component&&1!==l.component)return i();if((0===a||a>0&&u.iceTransport!==n.transceivers[0].iceTransport)&&!s(u.iceTransport,l))return o(A("OperationError","Can not add ICE candidate"));var d=e.candidate.trim();0===d.indexOf("a=")&&(d=d.substr(2)),(t=r.getMediaSections(n._remoteDescription.sdp))[a]+="a="+(l.type?d:"end-of-candidates")+"\r\n",n._remoteDescription.sdp=r.getDescription(n._remoteDescription.sdp)+t.join("")}else for(var p=0;p{"use strict";var t={generateIdentifier:function(){return Math.random().toString(36).substr(2,10)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map((function(e){return e.trim()}))},t.splitSections=function(e){return e.split("\nm=").map((function(e,t){return(t>0?"m="+e:e).trim()+"\r\n"}))},t.getDescription=function(e){var n=t.splitSections(e);return n&&n[0]},t.getMediaSections=function(e){var n=t.splitSections(e);return n.shift(),n},t.matchPrefix=function(e,n){return t.splitLines(e).filter((function(e){return 0===e.indexOf(n)}))},t.parseCandidate=function(e){for(var t,n={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:parseInt(t[1],10),protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]},r=8;r0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},t.parseFmtp=function(e){for(var t,n={},r=e.substr(e.indexOf(" ")+1).split(";"),i=0;i-1?(n.attribute=e.substr(t+1,r-t-1),n.value=e.substr(r+1)):n.attribute=e.substr(t+1),n},t.parseSsrcGroup=function(e){var t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map((function(e){return parseInt(e,10)}))}},t.getMid=function(e){var n=t.matchPrefix(e,"a=mid:")[0];if(n)return n.substr(6)},t.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},t.getDtlsParameters=function(e,n){return{role:"auto",fingerprints:t.matchPrefix(e+n,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){var n="a=setup:"+t+"\r\n";return e.fingerprints.forEach((function(e){n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"})),n},t.parseCryptoLine=function(e){var t=e.substr(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;var t=e.substr(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,n){return t.matchPrefix(e+n,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,n){var r=t.matchPrefix(e+n,"a=ice-ufrag:")[0],i=t.matchPrefix(e+n,"a=ice-pwd:")[0];return r&&i?{usernameFragment:r.substr(12),password:i.substr(10)}:null},t.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},t.parseRtpParameters=function(e){for(var n={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=t.splitLines(e)[0].split(" "),i=3;i0?"9":"0",r+=" UDP/TLS/RTP/SAVPF ",r+=n.codecs.map((function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType})).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",n.codecs.forEach((function(e){r+=t.writeRtpMap(e),r+=t.writeFmtp(e),r+=t.writeRtcpFb(e)}));var i=0;return n.codecs.forEach((function(e){e.maxptime>i&&(i=e.maxptime)})),i>0&&(r+="a=maxptime:"+i+"\r\n"),r+="a=rtcp-mux\r\n",n.headerExtensions&&n.headerExtensions.forEach((function(e){r+=t.writeExtmap(e)})),r},t.parseRtpEncodingParameters=function(e){var n,r=[],i=t.parseRtpParameters(e),o=-1!==i.fecMechanisms.indexOf("RED"),a=-1!==i.fecMechanisms.indexOf("ULPFEC"),s=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute})),A=s.length>0&&s[0].ssrc,c=t.matchPrefix(e,"a=ssrc-group:FID").map((function(e){return e.substr(17).split(" ").map((function(e){return parseInt(e,10)}))}));c.length>0&&c[0].length>1&&c[0][0]===A&&(n=c[0][1]),i.codecs.forEach((function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var t={ssrc:A,codecPayloadType:parseInt(e.parameters.apt,10)};A&&n&&(t.rtx={ssrc:n}),r.push(t),o&&((t=JSON.parse(JSON.stringify(t))).fec={ssrc:A,mechanism:a?"red+ulpfec":"red"},r.push(t))}})),0===r.length&&A&&r.push({ssrc:A});var u=t.matchPrefix(e,"b=");return u.length&&(u=0===u[0].indexOf("b=TIAS:")?parseInt(u[0].substr(7),10):0===u[0].indexOf("b=AS:")?1e3*parseInt(u[0].substr(5),10)*.95-16e3:void 0,r.forEach((function(e){e.maxBitrate=u}))),r},t.parseRtcpParameters=function(e){var n={},r=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"cname"===e.attribute}))[0];r&&(n.cname=r.value,n.ssrc=r.ssrc);var i=t.matchPrefix(e,"a=rtcp-rsize");n.reducedSize=i.length>0,n.compound=0===i.length;var o=t.matchPrefix(e,"a=rtcp-mux");return n.mux=o.length>0,n},t.parseMsid=function(e){var n,r=t.matchPrefix(e,"a=msid:");if(1===r.length)return{stream:(n=r[0].substr(7).split(" "))[0],track:n[1]};var i=t.matchPrefix(e,"a=ssrc:").map((function(e){return t.parseSsrcMedia(e)})).filter((function(e){return"msid"===e.attribute}));return i.length>0?{stream:(n=i[0].value.split(" "))[0],track:n[1]}:void 0},t.parseSctpDescription=function(e){var n,r=t.parseMLine(e),i=t.matchPrefix(e,"a=max-message-size:");i.length>0&&(n=parseInt(i[0].substr(19),10)),isNaN(n)&&(n=65536);var o=t.matchPrefix(e,"a=sctp-port:");if(o.length>0)return{port:parseInt(o[0].substr(12),10),protocol:r.fmt,maxMessageSize:n};if(t.matchPrefix(e,"a=sctpmap:").length>0){var a=t.matchPrefix(e,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(a[0],10),protocol:a[1],maxMessageSize:n}}},t.writeSctpDescription=function(e,t){var n=[];return n="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&n.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),n.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,21)},t.writeSessionBoilerplate=function(e,n,r){var i=void 0!==n?n:2;return"v=0\r\no="+(r||"thisisadapterortc")+" "+(e||t.generateSessionId())+" "+i+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.writeMediaSection=function(e,n,r,i){var o=t.writeRtpDescription(e.kind,n);if(o+=t.writeIceParameters(e.iceGatherer.getLocalParameters()),o+=t.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===r?"actpass":"active"),o+="a=mid:"+e.mid+"\r\n",e.direction?o+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?o+="a=sendrecv\r\n":e.rtpSender?o+="a=sendonly\r\n":e.rtpReceiver?o+="a=recvonly\r\n":o+="a=inactive\r\n",e.rtpSender){var a="msid:"+i.id+" "+e.rtpSender.track.id+"\r\n";o+="a="+a,o+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+a,e.sendEncodingParameters[0].rtx&&(o+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+a,o+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return o+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+t.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(o+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+t.localCName+"\r\n"),o},t.getDirection=function(e,n){for(var r=t.splitLines(e),i=0;i{"use strict";n.r(t),n.d(t,{default:()=>r});const r=(0,n("./node_modules/webrtc-adapter/src/js/adapter_factory.js").adapterFactory)({window:"undefined"==typeof window?void 0:window})},"./node_modules/webrtc-adapter/src/js/adapter_factory.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{adapterFactory:()=>c});var r=n("./node_modules/webrtc-adapter/src/js/utils.js"),i=n("./node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js"),o=n("./node_modules/webrtc-adapter/src/js/edge/edge_shim.js"),a=n("./node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js"),s=n("./node_modules/webrtc-adapter/src/js/safari/safari_shim.js"),A=n("./node_modules/webrtc-adapter/src/js/common_shim.js");function c(){let{window:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0};const n=r.log,c=r.detectBrowser(e),u={browserDetails:c,commonShim:A,extractVersion:r.extractVersion,disableLog:r.disableLog,disableWarnings:r.disableWarnings};switch(c.browser){case"chrome":if(!i||!i.shimPeerConnection||!t.shimChrome)return n("Chrome shim is not included in this adapter release."),u;if(null===c.version)return n("Chrome shim can not determine version, not shimming."),u;n("adapter.js shimming chrome."),u.browserShim=i,A.shimAddIceCandidateNullOrEmpty(e,c),i.shimGetUserMedia(e,c),i.shimMediaStream(e,c),i.shimPeerConnection(e,c),i.shimOnTrack(e,c),i.shimAddTrackRemoveTrack(e,c),i.shimGetSendersWithDtmf(e,c),i.shimGetStats(e,c),i.shimSenderReceiverGetStats(e,c),i.fixNegotiationNeeded(e,c),A.shimRTCIceCandidate(e,c),A.shimConnectionState(e,c),A.shimMaxMessageSize(e,c),A.shimSendThrowTypeError(e,c),A.removeExtmapAllowMixed(e,c);break;case"firefox":if(!a||!a.shimPeerConnection||!t.shimFirefox)return n("Firefox shim is not included in this adapter release."),u;n("adapter.js shimming firefox."),u.browserShim=a,A.shimAddIceCandidateNullOrEmpty(e,c),a.shimGetUserMedia(e,c),a.shimPeerConnection(e,c),a.shimOnTrack(e,c),a.shimRemoveStream(e,c),a.shimSenderGetStats(e,c),a.shimReceiverGetStats(e,c),a.shimRTCDataChannel(e,c),a.shimAddTransceiver(e,c),a.shimGetParameters(e,c),a.shimCreateOffer(e,c),a.shimCreateAnswer(e,c),A.shimRTCIceCandidate(e,c),A.shimConnectionState(e,c),A.shimMaxMessageSize(e,c),A.shimSendThrowTypeError(e,c);break;case"edge":if(!o||!o.shimPeerConnection||!t.shimEdge)return n("MS edge shim is not included in this adapter release."),u;n("adapter.js shimming edge."),u.browserShim=o,o.shimGetUserMedia(e,c),o.shimGetDisplayMedia(e,c),o.shimPeerConnection(e,c),o.shimReplaceTrack(e,c),A.shimMaxMessageSize(e,c),A.shimSendThrowTypeError(e,c);break;case"safari":if(!s||!t.shimSafari)return n("Safari shim is not included in this adapter release."),u;n("adapter.js shimming safari."),u.browserShim=s,A.shimAddIceCandidateNullOrEmpty(e,c),s.shimRTCIceServerUrls(e,c),s.shimCreateOfferLegacy(e,c),s.shimCallbacksAPI(e,c),s.shimLocalStreamsAPI(e,c),s.shimRemoteStreamsAPI(e,c),s.shimTrackEventTransceiver(e,c),s.shimGetUserMedia(e,c),s.shimAudioContext(e,c),A.shimRTCIceCandidate(e,c),A.shimMaxMessageSize(e,c),A.shimSendThrowTypeError(e,c),A.removeExtmapAllowMixed(e,c);break;default:n("Unsupported browser!")}return u}},"./node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimGetUserMedia:()=>i.shimGetUserMedia,shimGetDisplayMedia:()=>o.shimGetDisplayMedia,shimMediaStream:()=>a,shimOnTrack:()=>s,shimGetSendersWithDtmf:()=>A,shimGetStats:()=>c,shimSenderReceiverGetStats:()=>u,shimAddTrackRemoveTrackWithNative:()=>l,shimAddTrackRemoveTrack:()=>d,shimPeerConnection:()=>p,fixNegotiationNeeded:()=>h});var r=n("./node_modules/webrtc-adapter/src/js/utils.js"),i=n("./node_modules/webrtc-adapter/src/js/chrome/getusermedia.js"),o=n("./node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js");function a(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function s(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===n.track.id)):{track:n.track};const i=new Event("track");i.track=n.track,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)})),t.stream.getTracks().forEach((n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===n.id)):{track:n};const i=new Event("track");i.track=n,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)}))},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else r.wrapPeerConnectionEvent(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function A(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let i=n.apply(this,arguments);return i||(i=t(this,e),this._senders.push(i)),i};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function c(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,n,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const i=function(e){const t={};return e.result().forEach((e=>{const n={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach((t=>{n[t]=e.stat(t)})),t[n.id]=n})),t},o=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const r=function(e){n(o(i(e)))};return t.apply(this,[r,e])}return new Promise(((e,n)=>{t.apply(this,[function(t){e(o(i(t)))},n])})).then(n,r)}}function u(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>r.filterStats(t,e.track,!0)))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),r.wrapPeerConnectionEvent(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>r.filterStats(t,e.track,!1)))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,n,r;return this.getSenders().forEach((n=>{n.track===e&&(t?r=!0:t=n)})),this.getReceivers().forEach((t=>(t.track===e&&(n?r=!0:n=t),t.track===e))),r||t&&n?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():n?n.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function l(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const r=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?-1===this._shimmedLocalStreams[n.id].indexOf(r)&&this._shimmedLocalStreams[n.id].push(r):this._shimmedLocalStreams[n.id]=[n,r],r};const n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();n.apply(this,arguments);const r=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(r)};const r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};const i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const n=this._shimmedLocalStreams[t].indexOf(e);-1!==n&&this._shimmedLocalStreams[t].splice(n,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),i.apply(this,arguments)}}function d(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return l(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const n=new e.MediaStream(t.getTracks());this._streams[t.id]=n,this._reverseStreams[n.id]=t,t=n}r.apply(this,[t])};const i=e.RTCPeerConnection.prototype.removeStream;function o(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(i.id,"g"),r.id)})),new RTCSessionDescription({type:t.type,sdp:n})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const i=this._streams[n.id];if(i)i.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const r=new e.MediaStream([t]);this._streams[n.id]=r,this._reverseStreams[r.id]=n,this.addStream(r)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const n=e.RTCPeerConnection.prototype[t],r={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?n.apply(this,[t=>{const n=o(this,t);e[0].apply(null,[n])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):n.apply(this,arguments).then((e=>o(this,e)))}};e.RTCPeerConnection.prototype[t]=r[t]}));const a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(r.id,"g"),i.id)})),new RTCSessionDescription({type:t.type,sdp:n})}(this,arguments[0]),a.apply(this,arguments)):a.apply(this,arguments)};const s=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=s.get.apply(this);return""===e.type?e:o(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((n=>{this._streams[n].getTracks().find((t=>e.track===t))&&(t=this._streams[n])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function p(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}))}function h(e,t){r.wrapPeerConnectionEvent(e,"negotiationneeded",(e=>{const n=e.target;if(!(t.version<72||n.getConfiguration&&"plan-b"===n.getConfiguration().sdpSemantics)||"stable"===n.signalingState)return e}))}},"./node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js":(e,t,n)=>{"use strict";function r(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(n){return t(n).then((t=>{const r=n.video&&n.video.width,i=n.video&&n.video.height,o=n.video&&n.video.frameRate;return n.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:o||3}},r&&(n.video.mandatory.maxWidth=r),i&&(n.video.mandatory.maxHeight=i),e.navigator.mediaDevices.getUserMedia(n)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}n.r(t),n.d(t,{shimGetDisplayMedia:()=>r})},"./node_modules/webrtc-adapter/src/js/chrome/getusermedia.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimGetUserMedia:()=>i});const r=n("./node_modules/webrtc-adapter/src/js/utils.js").log;function i(e,t){const n=e&&e.navigator;if(!n.mediaDevices)return;const i=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach((n=>{if("require"===n||"advanced"===n||"mediaSource"===n)return;const r="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);const i=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[i("min",n)]=r.ideal,t.optional.push(e),e={},e[i("max",n)]=r.ideal,t.optional.push(e)):(e[i("",n)]=r.ideal,t.optional.push(e))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[i("",n)]=r.exact):["min","max"].forEach((e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[i(e,n)]=r[e])}))})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},o=function(e,o){if(t.version>=61)return o(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=i(e.audio)}if(e&&"object"==typeof e.video){let a=e.video.facingMode;a=a&&("object"==typeof a?a:{ideal:a});const s=t.version<66;if(a&&("user"===a.exact||"environment"===a.exact||"user"===a.ideal||"environment"===a.ideal)&&(!n.mediaDevices.getSupportedConstraints||!n.mediaDevices.getSupportedConstraints().facingMode||s)){let t;if(delete e.video.facingMode,"environment"===a.exact||"environment"===a.ideal?t=["back","rear"]:"user"!==a.exact&&"user"!==a.ideal||(t=["front"]),t)return n.mediaDevices.enumerateDevices().then((n=>{let s=(n=n.filter((e=>"videoinput"===e.kind))).find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!s&&n.length&&t.includes("back")&&(s=n[n.length-1]),s&&(e.video.deviceId=a.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=i(e.video),r("chrome: "+JSON.stringify(e)),o(e)}))}e.video=i(e.video)}return r("chrome: "+JSON.stringify(e)),o(e)},a=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(n.getUserMedia=function(e,t,r){o(e,(e=>{n.webkitGetUserMedia(e,t,(e=>{r&&r(a(e))}))}))}.bind(n),n.mediaDevices.getUserMedia){const e=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(t){return o(t,(t=>e(t).then((e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(a(e))))))}}}},"./node_modules/webrtc-adapter/src/js/common_shim.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimRTCIceCandidate:()=>a,shimMaxMessageSize:()=>s,shimSendThrowTypeError:()=>A,shimConnectionState:()=>c,removeExtmapAllowMixed:()=>u,shimAddIceCandidateNullOrEmpty:()=>l});var r=n("./node_modules/sdp/sdp.js"),i=n.n(r),o=n("./node_modules/webrtc-adapter/src/js/utils.js");function a(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substr(2)),e.candidate&&e.candidate.length){const n=new t(e),r=i().parseCandidate(e.candidate),o=Object.assign(n,r);return o.toJSON=function(){return{candidate:o.candidate,sdpMid:o.sdpMid,sdpMLineIndex:o.sdpMLineIndex,usernameFragment:o.usernameFragment}},o}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,o.wrapPeerConnectionEvent(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function s(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(e){if(!e||!e.sdp)return!1;const t=i().splitSections(e.sdp);return t.shift(),t.some((e=>{const t=i().parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")}))}(arguments[0])){const e=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),n=function(e){let n=65536;return"firefox"===t.browser&&(n=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),n}(e),r=function(e,n){let r=65536;"firefox"===t.browser&&57===t.version&&(r=65535);const o=i().matchPrefix(e.sdp,"a=max-message-size:");return o.length>0?r=parseInt(o[0].substr(19),10):"firefox"===t.browser&&-1!==n&&(r=2147483637),r}(arguments[0],e);let o;o=0===n&&0===r?Number.POSITIVE_INFINITY:0===n||0===r?Math.max(n,r):Math.min(n,r);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>o}),this._sctp=a}return n.apply(this,arguments)}}function A(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const n=e.send;e.send=function(){const r=arguments[0],i=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const n=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=n.apply(this,arguments);return t(e,this),e},o.wrapPeerConnectionEvent(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function c(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}}))}function u(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t.version>=605)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}}function l(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}},"./node_modules/webrtc-adapter/src/js/edge/edge_shim.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimGetUserMedia:()=>s.shimGetUserMedia,shimGetDisplayMedia:()=>A.shimGetDisplayMedia,shimPeerConnection:()=>c,shimReplaceTrack:()=>u});var r=n("./node_modules/webrtc-adapter/src/js/utils.js"),i=n("./node_modules/webrtc-adapter/src/js/edge/filtericeservers.js"),o=n("./node_modules/rtcpeerconnection-shim/rtcpeerconnection.js"),a=n.n(o),s=n("./node_modules/webrtc-adapter/src/js/edge/getusermedia.js"),A=n("./node_modules/webrtc-adapter/src/js/edge/getdisplaymedia.js");function c(e,t){if(e.RTCIceGatherer&&(e.RTCIceCandidate||(e.RTCIceCandidate=function(e){return e}),e.RTCSessionDescription||(e.RTCSessionDescription=function(e){return e}),t.version<15025)){const t=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,"enabled");Object.defineProperty(e.MediaStreamTrack.prototype,"enabled",{set(e){t.set.call(this,e);const n=new Event("enabled");n.enabled=e,this.dispatchEvent(n)}})}e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)&&Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new e.RTCDtmfSender(this):"video"===this.track.kind&&(this._dtmf=null)),this._dtmf}}),e.RTCDtmfSender&&!e.RTCDTMFSender&&(e.RTCDTMFSender=e.RTCDtmfSender);const n=a()(e,t.version);e.RTCPeerConnection=function(e){return e&&e.iceServers&&(e.iceServers=(0,i.filterIceServers)(e.iceServers,t.version),r.log("ICE servers after filtering:",e.iceServers)),new n(e)},e.RTCPeerConnection.prototype=n.prototype}function u(e){e.RTCRtpSender&&!("replaceTrack"in e.RTCRtpSender.prototype)&&(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)}},"./node_modules/webrtc-adapter/src/js/edge/filtericeservers.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{filterIceServers:()=>i});var r=n("./node_modules/webrtc-adapter/src/js/utils.js");function i(e,t){let n=!1;return(e=JSON.parse(JSON.stringify(e))).filter((e=>{if(e&&(e.urls||e.url)){let t=e.urls||e.url;e.url&&!e.urls&&r.deprecated("RTCIceServer.url","RTCIceServer.urls");const i="string"==typeof t;return i&&(t=[t]),t=t.filter((e=>{if(0===e.indexOf("stun:"))return!1;const t=e.startsWith("turn")&&!e.startsWith("turn:[")&&e.includes("transport=udp");return t&&!n?(n=!0,!0):t&&!n})),delete e.url,e.urls=i?t[0]:t,!!t.length}}))}},"./node_modules/webrtc-adapter/src/js/edge/getdisplaymedia.js":(e,t,n)=>{"use strict";function r(e){"getDisplayMedia"in e.navigator&&e.navigator.mediaDevices&&(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=e.navigator.getDisplayMedia.bind(e.navigator)))}n.r(t),n.d(t,{shimGetDisplayMedia:()=>r})},"./node_modules/webrtc-adapter/src/js/edge/getusermedia.js":(e,t,n)=>{"use strict";function r(e){const t=e&&e.navigator,n=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return n(e).catch((e=>Promise.reject(function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString(){return this.name}}}(e))))}}n.r(t),n.d(t,{shimGetUserMedia:()=>r})},"./node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimGetUserMedia:()=>i.shimGetUserMedia,shimGetDisplayMedia:()=>o.shimGetDisplayMedia,shimOnTrack:()=>a,shimPeerConnection:()=>s,shimSenderGetStats:()=>A,shimReceiverGetStats:()=>c,shimRemoveStream:()=>u,shimRTCDataChannel:()=>l,shimAddTransceiver:()=>d,shimGetParameters:()=>p,shimCreateOffer:()=>h,shimCreateAnswer:()=>f});var r=n("./node_modules/webrtc-adapter/src/js/utils.js"),i=n("./node_modules/webrtc-adapter/src/js/firefox/getusermedia.js"),o=n("./node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js");function a(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function s(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}));const n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,o]=arguments;return r.apply(this,[e||null]).then((e=>{if(t.version<53&&!i)try{e.forEach((e=>{e.type=n[e.type]||e.type}))}catch(t){if("TypeError"!==t.name)throw t;e.forEach(((t,r)=>{e.set(r,Object.assign({},t,{type:n[t.type]||t.type}))}))}return e})).then(i,o)}}function A(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function c(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),r.wrapPeerConnectionEvent(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function u(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){r.deprecated("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function l(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function d(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];const e=arguments[1],n=e&&"sendEncodings"in e;n&&e.sendEncodings.forEach((e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const r=t.apply(this,arguments);if(n){const{sender:t}=r,n=t.getParameters();(!("encodings"in n)||1===n.encodings.length&&0===Object.keys(n.encodings[0]).length)&&(n.encodings=e.sendEncodings,t.sendEncodings=e.sendEncodings,this.setParametersPromises.push(t.setParameters(n).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return r})}function p(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function h(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function f(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}},"./node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js":(e,t,n)=>{"use strict";function r(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(n){if(!n||!n.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===n.video?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n)})}n.r(t),n.d(t,{shimGetDisplayMedia:()=>r})},"./node_modules/webrtc-adapter/src/js/firefox/getusermedia.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimGetUserMedia:()=>i});var r=n("./node_modules/webrtc-adapter/src/js/utils.js");function i(e,t){const n=e&&e.navigator,i=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,i){r.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(e).then(t,i)},!(t.version>55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){const e=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},t=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(n){return"object"==typeof n&&"object"==typeof n.audio&&(n=JSON.parse(JSON.stringify(n)),e(n.audio,"autoGainControl","mozAutoGainControl"),e(n.audio,"noiseSuppression","mozNoiseSuppression")),t(n)},i&&i.prototype.getSettings){const t=i.prototype.getSettings;i.prototype.getSettings=function(){const n=t.apply(this,arguments);return e(n,"mozAutoGainControl","autoGainControl"),e(n,"mozNoiseSuppression","noiseSuppression"),n}}if(i&&i.prototype.applyConstraints){const t=i.prototype.applyConstraints;i.prototype.applyConstraints=function(n){return"audio"===this.kind&&"object"==typeof n&&(n=JSON.parse(JSON.stringify(n)),e(n,"autoGainControl","mozAutoGainControl"),e(n,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[n])}}}}},"./node_modules/webrtc-adapter/src/js/safari/safari_shim.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{shimLocalStreamsAPI:()=>i,shimRemoteStreamsAPI:()=>o,shimCallbacksAPI:()=>a,shimGetUserMedia:()=>s,shimConstraints:()=>A,shimRTCIceServerUrls:()=>c,shimTrackEventTransceiver:()=>u,shimCreateOfferLegacy:()=>l,shimAudioContext:()=>d});var r=n("./node_modules/webrtc-adapter/src/js/utils.js");function i(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((n=>t.call(this,n,e))),e.getVideoTracks().forEach((n=>t.call(this,n,e)))},e.RTCPeerConnection.prototype.addTrack=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const n=e.getTracks();this.getSenders().forEach((e=>{n.includes(e.track)&&this.removeTrack(e)}))})}}function o(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const n=new Event("addstream");n.stream=t,e.dispatchEvent(n)}))}),t.apply(e,arguments)}}}function a(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,n=t.createOffer,r=t.createAnswer,i=t.setLocalDescription,o=t.setRemoteDescription,a=t.addIceCandidate;t.createOffer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],i=n.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){const n=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[n]);return t?(i.then(e,t),Promise.resolve()):i};let s=function(e,t,n){const r=i.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r};t.setLocalDescription=s,s=function(e,t,n){const r=o.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.setRemoteDescription=s,s=function(e,t,n){const r=a.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.addIceCandidate=s}function s(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,n=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>n(A(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,n,r){t.mediaDevices.getUserMedia(e).then(n,r)}.bind(t))}function A(e){return e&&void 0!==e.video?Object.assign({},e,{video:r.compactObject(e.video)}):e}function c(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){const t=[];for(let n=0;nt.generateCertificate})}function u(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function l(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio"),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const n=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&n?"sendrecv"===n.direction?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":"recvonly"===n.direction&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):!0!==e.offerToReceiveVideo||n||this.addTransceiver("video")}return t.apply(this,arguments)}}function d(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}},"./node_modules/webrtc-adapter/src/js/utils.js":(e,t,n)=>{"use strict";n.r(t),n.d(t,{extractVersion:()=>o,wrapPeerConnectionEvent:()=>a,disableLog:()=>s,disableWarnings:()=>A,log:()=>c,deprecated:()=>u,detectBrowser:()=>l,compactObject:()=>p,walkStats:()=>h,filterStats:()=>f});let r=!0,i=!0;function o(e,t,n){const r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)}function a(e,t,n){if(!e.RTCPeerConnection)return;const r=e.RTCPeerConnection.prototype,i=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return i.apply(this,arguments);const o=e=>{const t=n(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),i.apply(this,[e,o])};const o=r.removeEventListener;r.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(n))return o.apply(this,arguments);const r=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,o.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function s(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(r=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function A(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(i=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function c(){if("object"==typeof window){if(r)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function u(e,t){i&&console.warn(e+" is deprecated, please use "+t+" instead.")}function l(e){const t={browser:null,version:null};if(void 0===e||!e.navigator)return t.browser="Not a browser.",t;const{navigator:n}=e;if(n.mozGetUserMedia)t.browser="firefox",t.version=o(n.userAgent,/Firefox\/(\d+)\./,1);else if(n.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=o(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(n.mediaDevices&&n.userAgent.match(/Edge\/(\d+).(\d+)$/))t.browser="edge",t.version=o(n.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!n.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=o(n.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}function d(e){return"[object Object]"===Object.prototype.toString.call(e)}function p(e){return d(e)?Object.keys(e).reduce((function(t,n){const r=d(e[n]),i=r?p(e[n]):e[n],o=r&&!Object.keys(i).length;return void 0===i||o?t:Object.assign(t,{[n]:i})}),{}):e}function h(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach((r=>{r.endsWith("Id")?h(e,e.get(t[r]),n):r.endsWith("Ids")&&t[r].forEach((t=>{h(e,e.get(t),n)}))})))}function f(e,t,n){const r=n?"outbound-rtp":"inbound-rtp",i=new Map;if(null===t)return i;const o=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&o.push(e)})),o.forEach((t=>{e.forEach((n=>{n.type===r&&n.trackId===t.id&&h(e,n,i)}))})),i}}},t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{createSignalMessage:()=>t,P2P_CONNECT_MESSAGE:()=>i,P2P_ICE_CANDIDATE_MESSAGE:()=>o,Signaler:()=>a,PeerConnection:()=>s}),n("./node_modules/webrtc-adapter/src/js/adapter_core.js");var e=n("./node_modules/ably/promises.js");function t(e,t){return{timestamp:(new Date).getTime(),receiver:e,...t}}const i="connect",o="candidate";class a{constructor(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;this.token=t,this.client=new e.Realtime.Promise({token:t,autoConnect:!1,idempotentRestPublishing:!0,queueMessages:!1,disconnectedRetryTimeout:3e3,suspendedRetryTimeout:15e3,echoMessages:!1,log:{level:n}}),this.channel=this.channel.bind(this)}channel(e){return this.client.channels.get(e)}}class s{constructor(e,t,n,r){this.connectionId=r,this.signalerChannel=e,this.ice=t,this.isPolite=n,this.pc=null,this.queuedCandidates=[],this.onNegotiationNeeded=null,this.onIceCandidate=null,this.onSignalerMessage=null,this._flushQueuedCandidates=this._flushQueuedCandidates.bind(this),this._pruneIce=this._pruneIce.bind(this),this.close=this.close.bind(this),this.sendReadyMessage=this.sendReadyMessage.bind(this),this._handleConnectMessage=this._handleConnectMessage.bind(this),this._handleCandidateMessage=this._handleCandidateMessage.bind(this),this.makingOffer=!1,this.ignoreOffer=!1,this._pruneIce();const i={...this.ice};Array.isArray(i.iceServers)||(i.iceServers=[i.iceServers]),this.pc=new RTCPeerConnection(i)}connect(e,n){this.remotePeerId=e,this.makingOffer=!1,this.pc.onnegotiationneeded=async()=>{try{this.makingOffer=!0,await this.pc.setLocalDescription(),this.signalerChannel.publish(i,t(e,{description:this.pc.localDescription}))}catch(e){console.error(e)}finally{this.makingOffer=!1}},this.pc.onicecandidate=n=>{let{candidate:r}=n;r&&this.signalerChannel.publish(o,t(e,{candidate:r}))},this.signalerChannel.subscribe(i,this._handleConnectMessage),this.signalerChannel.subscribe(o,this._handleCandidateMessage),n&&this._handleConnectMessage(n)}close(){this.signalerChannel.unsubscribe(this._handleCandidateMessage),this.signalerChannel.unsubscribe(this._handleConnectMessage),this.signalerChannel=null,this.pc.onnegotiationneeded=null,this.pc.onicecandidate=null,this.pc.ontrack=null,this.queuedCandidates=[],this.ice=null,this.pc.close(),this.pc=null}sendReadyMessage(){this.signalerChannel.publish(i,t(this.remotePeerId,{}))}async _handleConnectMessage(e){const n=e.data,r=e.clientId;if(n.receiver!==this.signalerChannel.connectionManager.connectionDetails.clientId)return;if(void 0!==this.remotePeerId&&r!==this.remotePeerId)return;const o=e.data.description,a="offer"===o.type&&(this.makingOffer||"stable"!==this.pc.signalingState);try{if(this.ignoreOffer=!this.isPolite&&a,this.ignoreOffer)return;if(await this.pc.setRemoteDescription(o),this._flushQueuedCandidates(),"offer"===o.type){await this.pc.setLocalDescription();const n=e.clientId;this.signalerChannel.publish(i,t(n,{description:this.pc.localDescription}))}}catch(e){console.error(e)}}async _handleCandidateMessage(e){const t=e.data,n=e.clientId;if(t.receiver===this.signalerChannel.connectionManager.connectionDetails.clientId)if(void 0===this.remotePeerId||n===this.remotePeerId)try{if(!this.pc.remoteDescription)return void this.queuedCandidates.push(t.candidate);try{await this.pc.addIceCandidate(t.candidate)}catch(e){if(!this.ignoreOffer)throw e}}catch(e){console.error(e)}else console.error(`SenderId does not match Remote peer id for ICE candidate: ${n}`)}_flushQueuedCandidates(){this.queuedCandidates.forEach((e=>{this.pc.addIceCandidate(e)})),this.queuedCandidates.length=0}_pruneIce(){const e=this.ice.iceServers.urls,t=[];let n=!1;e.forEach((e=>{if(e.startsWith("stun")&&!n)return n=!0,void t.push(e);(e.startsWith("turn")&&e.endsWith(":80?transport=tcp")||e.startsWith("turns")&&e.endsWith(":443?transport=tcp"))&&t.push(e)})),this.ice.iceServers.urls=t}}})(),r})()},e.exports=t()},5737:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(n(2217)),a=i(n(1580)),s={};(()=>{try{o.default.addOnAlarmListener((e=>{var t,n;const r=null!==(n=null===(t=s[e.name])||void 0===t?void 0:t.callback)&&void 0!==n?n:null;if(null!==r)try{r(e)}catch(e){console.warn("AlarmScheduler found an invalid callback!",e)}else s[e.name]={callback:null,noCallBackAlarm:e}}))}catch(e){}})();class A{static getInvalidTimeMsError(e){return`Can't set the alarm with name ${e}. timeInMs needs to be a positive integer more than 0`}static registerAlarmCallback(e,t){return r(this,void 0,void 0,(function*(){s[e]={callback:t,noCallBackAlarm:null}}))}static setChromeAlarm(e,t,n,i,c,u){var l,d;return r(this,void 0,void 0,(function*(){yield a.default.waitTillStartUp();const r=a.default.isSessionRestart();if(void 0===i&&(i=r),void 0===c&&(c=!r),!e)throw new Error(A.invalidAlarmNameError);if(n<=0)throw new Error(A.getInvalidTimeMsError(e));const p=null!==(d=null===(l=s[e])||void 0===l?void 0:l.noCallBackAlarm)&&void 0!==d?d:null;p&&c&&t(p),i&&(yield A.clearAlarm(e)),s[e]={callback:t,noCallBackAlarm:null};let h=yield o.default.getAlarm(e);if(h&&(h.periodInMinutes&&!u||!h.periodInMinutes&&u)&&(console.warn("Existing "+(u?"timeout":"interval")+` with name "${e}" found. Changing it to ${u?"an interval":"a timeout"}`),h=void 0),void 0===h){const t=n/6e4;u?o.default.createAlarm(e,t):o.default.createAlarm(e,null,t)}}))}static setInterval(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;return r(this,void 0,void 0,(function*(){yield A.setChromeAlarm(e,t,n,i,o,!0)}))}static setTimeout(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;return r(this,void 0,void 0,(function*(){yield A.setChromeAlarm(e,t,n,i,o,!1)}))}static clearAlarm(e){return r(this,void 0,void 0,(function*(){s[e]&&delete s[e],yield o.default.clearAlarm(e)}))}}t.default=A,A.invalidAlarmNameError="alarmName can't be empty."},2217:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{static throwErrorIfAlarmsNotSupported(){if(!r.isAlarmsSupported())throw new Error(r.noChromeAlarmsError)}static isAlarmsSupported(){var e;return!!(null===(e=n.g.chrome)||void 0===e?void 0:e.alarms)}static createAlarm(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!t&&!n&&!i)throw new Error(r.noAlarmOptions);const o={periodInMinutes:t&&t>0?t:void 0,delayInMinutes:n&&n>0?n:void 0,when:i&&i>0?i:void 0};o.delayInMinutes&&(o.when=void 0),r.throwErrorIfAlarmsNotSupported(),chrome.alarms.create(e,o)}static addOnAlarmListener(e){r.throwErrorIfAlarmsNotSupported(),chrome.alarms.onAlarm.addListener(e)}static removeOnAlarm(e){r.throwErrorIfAlarmsNotSupported(),chrome.alarms.onAlarm.removeListener(e)}static getAlarm(e){return new Promise(((t,n)=>{try{r.throwErrorIfAlarmsNotSupported(),chrome.alarms.get(e,(e=>{t(e)}))}catch(e){n(e)}}))}static getAllAlarms(){return new Promise((e=>{r.throwErrorIfAlarmsNotSupported(),chrome.alarms.getAll((t=>{e(t)}))}))}static clearAlarm(e){return new Promise((t=>{r.throwErrorIfAlarmsNotSupported(),chrome.alarms.clear(e,(()=>{t()}))}))}static clearAllAlarms(){return new Promise((e=>{r.throwErrorIfAlarmsNotSupported(),chrome.alarms.clearAll((()=>{e()}))}))}}t.default=r,r.noChromeAlarmsError='chrome.alarms API not available. Please make sure the "alarms" permission is given in the chrome extension manifest.',r.noAlarmOptions="Not enough options given to create an alarm"},1320:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=n(3067),a=i(n(3434)),s=i(n(7945)),A=i(n(1006)),c=new a.default("cached-schedules-ee236fce-1426-4975-9d56-2ce4e8becd02"),u={},l=()=>r(void 0,void 0,void 0,(function*(){var e,t;yield c.waitTillCacheLoaded();let n=!1;const r=Object.keys(c.getCache());for(let i=0;ie===t.split(":")[0]));for(const e of n){const n=c.getValue(e);n&&d.setSchedulerCallback(n,t)}yield l()}))}static broadcastNextScheduleTime(e,t,n){A.default.isChromeSendMessageSupported()&&chrome.runtime.sendMessage({type:o.MessageTypes.BroadcastScheduleTime,scheduleName:e,timeInMs:t,isInterval:0===n})}static sendWakeUpCall(e,t){A.default.isChromeSendMessageSupported()&&setTimeout((()=>{chrome.runtime.sendMessage({type:e})}),t)}static setInterval(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return r(this,void 0,void 0,(function*(){yield d.setChromeAlarm(e,t,n,null,i,o,0)}))}static setTimeout(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return r(this,void 0,void 0,(function*(){yield d.setChromeAlarm(e,t,n,null,i,o,1)}))}static setUniqueTimeout(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return r(this,void 0,void 0,(function*(){yield d.setChromeAlarm(`${e}:${i}:${Date.now()}`,t,i,n,!1,o,1)}))}static clearSchedule(e){return r(this,void 0,void 0,(function*(){yield c.waitTillCacheLoaded(),c.removeValue(e),c.flush()}))}static clearAllSchedules(){return r(this,void 0,void 0,(function*(){yield c.waitTillCacheLoaded();const e=Object.keys(c.getCache());for(let t=0;te.argData?t(...e.argData):t()}}}t.default=d,d.invalidScheduleNameError="scheduleName can't be empty."},3434:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(n(1580)),a=i(n(7945));t.default=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;this.cacheName=e,this.resetCache=t,this.saveFrequency=n,this.inMemoryCache={},this.updatedValueKeys=[],this.cacheLoaded=!1,this.cacheLoadedCallbacks=[],this.cacheUuid="2729f6a0-0395-45a6-9790-dcacfef110d9",this.initStore()}initStore(){return r(this,void 0,void 0,(function*(){try{yield o.default.waitTillStartUp();const e=o.default.isSessionRestart();let t=this.resetCache;void 0===t&&(t=e);let n=yield a.default.getData(this.getCacheIndexName());!0===t&&n&&(this.resetCacheData(n),n=void 0),null==n?yield a.default.setData(this.getCacheIndexName(),[]):yield this.loadInMemoryCache(n),this.saveFrequency&&this.saveFrequency>0&&setInterval((()=>{this.updateLocalStorage()}),this.saveFrequency)}catch(e){console.warn("Local storage is not supported, only using in-memory cache.")}this.cacheLoaded=!0,this.cacheLoadedCallbacks.forEach((e=>{e()})),this.cacheLoadedCallbacks=[]}))}isCacheLoaded(){return this.cacheLoaded}waitTillCacheLoaded(){return r(this,void 0,void 0,(function*(){return new Promise((e=>{!0===this.cacheLoaded?e():this.cacheLoadedCallbacks.push((()=>{e()}))}))}))}getCache(){return Object.assign({},this.inMemoryCache)}setCache(e){e&&"object"==typeof e&&(this.updatedValueKeys=Array.from(new Set(Object.keys(this.inMemoryCache).concat(Object.keys(e)))),this.inMemoryCache=e)}getValue(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return void 0===this.inMemoryCache[e]&&void 0!==t?t:this.inMemoryCache[e]}setValue(e,t){this.inMemoryCache[e]=t,this.addUpdatedValue(e)}removeValue(e){e in this.inMemoryCache&&(delete this.inMemoryCache[e],this.addUpdatedValue(e))}flush(){return r(this,void 0,void 0,(function*(){yield this.updateLocalStorage()}))}addUpdatedValue(e){this.updatedValueKeys.includes(e)||this.updatedValueKeys.push(e)}getCacheIndexName(){return`${this.cacheUuid}_${this.cacheName}`}getCacheKeys(e){return e.map((e=>`${this.cacheUuid}_${this.cacheName}_${e}`))}resetCacheData(e){a.default.removeData(e),a.default.removeData(this.getCacheIndexName())}loadInMemoryCache(e){return r(this,void 0,void 0,(function*(){const t=yield a.default.getDataList(this.getCacheKeys(e)),n={};if(t&&t.length===e.length)for(let r=0;r0){const e={},t=this.updatedValueKeys.filter((e=>void 0===this.inMemoryCache[e])),n=this.updatedValueKeys.filter((e=>void 0!==this.inMemoryCache[e])),r=this.getCacheKeys(t),i=this.getCacheKeys(n);for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageTypes=void 0,(t.MessageTypes||(t.MessageTypes={})).BroadcastScheduleTime="schedule-time-ee236fce-1426-4975-9d56-2ce4e8becd02"},4622:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MessageTypes=t.ServiceWorkerHelper=t.CacheScheduler=t.AlarmScheduler=t.CachedStorage=t.RuntimeUtils=t.AlarmUtils=t.StorageUtils=void 0,n(1695);const i=r(n(7945));t.StorageUtils=i.default;const o=r(n(2217));t.AlarmUtils=o.default;const a=r(n(1006));t.RuntimeUtils=a.default;const s=r(n(3434));t.CachedStorage=s.default;const A=r(n(5737));t.AlarmScheduler=A.default;const c=r(n(1320));t.CacheScheduler=c.default;const u=r(n(1580));t.ServiceWorkerHelper=u.default;const l=n(3067);Object.defineProperty(t,"MessageTypes",{enumerable:!0,get:function(){return l.MessageTypes}})},4999:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.api=void 0;class n{constructor(e,t,r){var i=this;this.addPromiseWrapper=e=>{null!=this.original?"function"==typeof this.original?this.value=function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&"function"==typeof n[n.length-1]?i.original.call(i.parent,...n):new Promise((t=>{i.original.call(i.parent,...n,(function(){if(null!=chrome.runtime.lastError)return t(void 0),void console.warn(`shim: ${i.fullName}: ${chrome.runtime.lastError.message}`);for(var n=arguments.length,r=new Array(n),o=0;o1&&console.warn("shim: Promise wrapper cannot resolve multiple results automatically. A results processor function is required.",i.fullName),t(r[0])):t(void 0):t(e(r))}))}))}:console.warn("mv2-shim: Cannot create a promise wrapper. Named item is not a function.",this.fullName):console.debug("mv2-shim: Skipping promise wrapper. Named function not found.",this.fullName)},this.addAlias=e=>{if(null==this.original)return void console.debug("shim: Skipping alias. Original API entry does not exist.",this.fullName);const t=n.find(e,!0);void 0!==t?(null!=t.value&&console.warn("shim: Skipping alias. A value already exists at the alias location.",e),t.value=this.value):console.debug("shim: Skipping alias. Alias does not specify a valid location.",e)},this.addStub=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];null==i.value?i.value=function(){var o,a;return t&&!n.stubWarningsLogged.has(i.fullName)&&(console.warn("shim: Extension called a stubbed API which is not available in mv2.",i.fullName),n.stubWarningsLogged.add(i.fullName)),r?arguments.length>0&&"function"==typeof((o=arguments.length-1)<0||arguments.length<=o?void 0:arguments[o])?void((a=arguments.length-1)<0||arguments.length<=a?void 0:arguments[a])(e):Promise.resolve(e):e}:console.warn("shim: Skipping stub. A value already exists at the API location.",i.fullName)},this.fullName=e,this.parent=t,this.name=r,this.original=this.value}get value(){return this.parent[this.name]}set value(e){this.parent[this.name]=e}}t.default=n,n.find=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e)throw new Error("The fully qualified name of an API entry cannot be an empty string.");const r=e.split("."),i=r.pop();let o=globalThis;for(const n of r){if(Object.prototype.hasOwnProperty.call(o,n)){if("object"!=typeof o[n])return void console.warn(`mv2-shim: Invalid API path: "${e}". "${n}" is not an object.`)}else{if(!t)return;o[n]={}}o=o[n]}return new n(e,o,i)},n.stubWarningsLogged=new Set,t.api=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n.find(e,t)}},1695:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4999);var i,o,a,s,A,c,u,l,d,p,h,f,m,g,y,v,b,k,S,T,w,E,j,O,R,P,C,L,N,x,M,U,I,_,W,z,D,F,q,V,X,J,Z,K,G,H,B,Y,Q,$,ee,te,ne,re,ie,oe,ae,se,Ae,ce,ue,le,de,pe,he,fe,me,ge,ye,ve,be,ke,Se,Te,we,Ee,je,Oe,Re,Pe,Ce,Le,Ne,xe,Me,Ue,Ie,_e,We,ze,De,Fe,qe,Ve,Xe,Je,Ze,Ke,Ge,He,Be,Ye,Qe,$e,et,tt,nt,rt,it,ot,at,st,At,ct,ut,lt,dt,pt,ht,ft,mt,gt,yt,vt,bt,kt,St,Tt,wt,Et,jt,Ot,Rt,Pt,Ct,Lt,Nt,xt,Mt,Ut,It,_t,Wt,zt,Dt,Ft,qt,Vt,Xt,Jt,Zt,Kt,Gt,Ht,Bt,Yt,Qt,$t,en,tn,nn,rn,on,an,sn,An,cn,un,ln,dn,pn,hn,fn,mn,gn,yn,vn,bn,kn,Sn,Tn,wn,En,jn,On,Rn,Pn,Cn,Ln,Nn,xn,Mn,Un,In,_n,Wn,zn,Dn,Fn,qn,Vn,Xn,Jn,Zn,Kn,Gn,Hn,Bn,Yn,Qn,$n,er,tr,nr,rr,ir,or,ar,sr,Ar,cr,ur,lr,dr,pr,hr,fr,mr,gr,yr,vr,br,kr,Sr,Tr,wr,Er,jr,Or,Rr,Pr,Cr,Lr,Nr,xr,Mr,Ur,Ir,_r,Wr,zr,Dr,Fr,qr,Vr,Xr,Jr,Zr,Kr,Gr,Hr,Br,Yr,Qr,$r,ei,ti,ni,ri,ii,oi,ai,si,Ai,ci,ui,li,di,pi,hi,fi,mi,gi,yi,vi,bi,ki,Si,Ti,wi,Ei,ji,Oi,Ri,Pi,Ci,Li,Ni,xi,Mi,Ui,Ii,_i,Wi,zi,Di,Fi,qi,Vi,Xi,Ji,Zi,Ki,Gi,Hi,Bi,Yi,Qi,$i,eo,to,no,ro,io,oo,ao,so,Ao,co,uo,lo,po,ho,fo,mo,go,yo,vo,bo,ko,So,To,wo,Eo,jo,Oo,Ro,Po,Co,Lo,No,xo,Mo,Uo,Io,_o,Wo,zo,Do,Fo,qo,Vo,Xo,Jo,Zo,Ko,Go,Ho,Bo,Yo,Qo,$o,ea,ta,na,ra,ia,oa,aa,sa,Aa,ca,ua,la,da,pa,ha,fa,ma,ga,ya,va,ba,ka,Sa,Ta,wa,Ea,ja,Oa,Ra,Pa,Ca,La,Na,xa,Ma,Ua,Ia,_a,Wa,za,Da,Fa,qa,Va,Xa,Ja,Za,Ka,Ga,Ha,Ba,Ya,Qa,$a,es,ts,ns,rs,is,os,as,ss,As,cs,us,ls,ds,ps,hs,fs,ms,gs,ys,vs,bs,ks,Ss,Ts,ws,Es,js,Os,Rs,Ps,Cs,Ls,Ns,xs,Ms,Us,Is,_s,Ws,zs,Ds,Fs,qs,Vs,Xs,Js,Zs,Ks,Gs;2===(null===(a=null===(o=null===(i=null===n.g||void 0===n.g?void 0:n.g.chrome)||void 0===i?void 0:i.runtime)||void 0===o?void 0:o.getManifest())||void 0===a?void 0:a.manifest_version)&&(console.info("Applying manifest v2 shim."),null!=chrome.accessibilityFeatures&&(null===(s=(0,r.api)("chrome.accessibilityFeatures.animationPolicy.clear"))||void 0===s||s.addPromiseWrapper(),null===(A=(0,r.api)("chrome.accessibilityFeatures.animationPolicy.get"))||void 0===A||A.addPromiseWrapper(),null===(c=(0,r.api)("chrome.accessibilityFeatures.animationPolicy.set"))||void 0===c||c.addPromiseWrapper()),null!=(null===(u=chrome.accessibilityFeatures)||void 0===u?void 0:u.autoclick)&&(null===(l=(0,r.api)("chrome.accessibilityFeatures.autoclick.clear"))||void 0===l||l.addPromiseWrapper(),null===(d=(0,r.api)("chrome.accessibilityFeatures.autoclick.get"))||void 0===d||d.addPromiseWrapper(),null===(p=(0,r.api)("chrome.accessibilityFeatures.autoclick.set"))||void 0===p||p.addPromiseWrapper(),null===(h=(0,r.api)("chrome.accessibilityFeatures.caretHighlight.clear"))||void 0===h||h.addPromiseWrapper(),null===(f=(0,r.api)("chrome.accessibilityFeatures.caretHighlight.get"))||void 0===f||f.addPromiseWrapper(),null===(m=(0,r.api)("chrome.accessibilityFeatures.caretHighlight.set"))||void 0===m||m.addPromiseWrapper(),null===(g=(0,r.api)("chrome.accessibilityFeatures.cursorColor.clear"))||void 0===g||g.addPromiseWrapper(),null===(y=(0,r.api)("chrome.accessibilityFeatures.cursorColor.get"))||void 0===y||y.addPromiseWrapper(),null===(v=(0,r.api)("chrome.accessibilityFeatures.cursorColor.set"))||void 0===v||v.addPromiseWrapper(),null===(b=(0,r.api)("chrome.accessibilityFeatures.cursorHighlight.clear"))||void 0===b||b.addPromiseWrapper(),null===(k=(0,r.api)("chrome.accessibilityFeatures.cursorHighlight.get"))||void 0===k||k.addPromiseWrapper(),null===(S=(0,r.api)("chrome.accessibilityFeatures.cursorHighlight.set"))||void 0===S||S.addPromiseWrapper(),null===(T=(0,r.api)("chrome.accessibilityFeatures.dictation.clear"))||void 0===T||T.addPromiseWrapper(),null===(w=(0,r.api)("chrome.accessibilityFeatures.dictation.get"))||void 0===w||w.addPromiseWrapper(),null===(E=(0,r.api)("chrome.accessibilityFeatures.dictation.set"))||void 0===E||E.addPromiseWrapper(),null===(j=(0,r.api)("chrome.accessibilityFeatures.dockedMagnifier.clear"))||void 0===j||j.addPromiseWrapper(),null===(O=(0,r.api)("chrome.accessibilityFeatures.dockedMagnifier.get"))||void 0===O||O.addPromiseWrapper(),null===(R=(0,r.api)("chrome.accessibilityFeatures.dockedMagnifier.set"))||void 0===R||R.addPromiseWrapper(),null===(P=(0,r.api)("chrome.accessibilityFeatures.focusHighlight.clear"))||void 0===P||P.addPromiseWrapper(),null===(C=(0,r.api)("chrome.accessibilityFeatures.focusHighlight.get"))||void 0===C||C.addPromiseWrapper(),null===(L=(0,r.api)("chrome.accessibilityFeatures.focusHighlight.set"))||void 0===L||L.addPromiseWrapper(),null===(N=(0,r.api)("chrome.accessibilityFeatures.highContrast.clear"))||void 0===N||N.addPromiseWrapper(),null===(x=(0,r.api)("chrome.accessibilityFeatures.highContrast.get"))||void 0===x||x.addPromiseWrapper(),null===(M=(0,r.api)("chrome.accessibilityFeatures.highContrast.set"))||void 0===M||M.addPromiseWrapper(),null===(U=(0,r.api)("chrome.accessibilityFeatures.largeCursor.clear"))||void 0===U||U.addPromiseWrapper(),null===(I=(0,r.api)("chrome.accessibilityFeatures.largeCursor.get"))||void 0===I||I.addPromiseWrapper(),null===(_=(0,r.api)("chrome.accessibilityFeatures.largeCursor.set"))||void 0===_||_.addPromiseWrapper(),null===(W=(0,r.api)("chrome.accessibilityFeatures.screenMagnifier.clear"))||void 0===W||W.addPromiseWrapper(),null===(z=(0,r.api)("chrome.accessibilityFeatures.screenMagnifier.get"))||void 0===z||z.addPromiseWrapper(),null===(D=(0,r.api)("chrome.accessibilityFeatures.screenMagnifier.set"))||void 0===D||D.addPromiseWrapper(),null===(F=(0,r.api)("chrome.accessibilityFeatures.selectToSpeak.clear"))||void 0===F||F.addPromiseWrapper(),null===(q=(0,r.api)("chrome.accessibilityFeatures.selectToSpeak.get"))||void 0===q||q.addPromiseWrapper(),null===(V=(0,r.api)("chrome.accessibilityFeatures.selectToSpeak.set"))||void 0===V||V.addPromiseWrapper(),null===(X=(0,r.api)("chrome.accessibilityFeatures.spokenFeedback.clear"))||void 0===X||X.addPromiseWrapper(),null===(J=(0,r.api)("chrome.accessibilityFeatures.spokenFeedback.get"))||void 0===J||J.addPromiseWrapper(),null===(Z=(0,r.api)("chrome.accessibilityFeatures.spokenFeedback.set"))||void 0===Z||Z.addPromiseWrapper(),null===(K=(0,r.api)("chrome.accessibilityFeatures.stickyKeys.clear"))||void 0===K||K.addPromiseWrapper(),null===(G=(0,r.api)("chrome.accessibilityFeatures.stickyKeys.get"))||void 0===G||G.addPromiseWrapper(),null===(H=(0,r.api)("chrome.accessibilityFeatures.stickyKeys.set"))||void 0===H||H.addPromiseWrapper(),null===(B=(0,r.api)("chrome.accessibilityFeatures.switchAccess.clear"))||void 0===B||B.addPromiseWrapper(),null===(Y=(0,r.api)("chrome.accessibilityFeatures.switchAccess.get"))||void 0===Y||Y.addPromiseWrapper(),null===(Q=(0,r.api)("chrome.accessibilityFeatures.switchAccess.set"))||void 0===Q||Q.addPromiseWrapper(),null===($=(0,r.api)("chrome.accessibilityFeatures.virtualKeyboard.clear"))||void 0===$||$.addPromiseWrapper(),null===(ee=(0,r.api)("chrome.accessibilityFeatures.virtualKeyboard.get"))||void 0===ee||ee.addPromiseWrapper(),null===(te=(0,r.api)("chrome.accessibilityFeatures.virtualKeyboard.set"))||void 0===te||te.addPromiseWrapper()),null!=chrome.alarms&&(null===(ne=(0,r.api)("chrome.alarms.getAll"))||void 0===ne||ne.addPromiseWrapper(),null===(re=(0,r.api)("chrome.alarms.clearAll"))||void 0===re||re.addPromiseWrapper(),null===(ie=(0,r.api)("chrome.alarms.clear"))||void 0===ie||ie.addPromiseWrapper(),null===(oe=(0,r.api)("chrome.alarms.get"))||void 0===oe||oe.addPromiseWrapper()),null!=chrome.audio&&(null===(ae=(0,r.api)("chrome.audio.getDevices"))||void 0===ae||ae.addPromiseWrapper(),null===(se=(0,r.api)("chrome.audio.getMute"))||void 0===se||se.addPromiseWrapper(),null===(Ae=(0,r.api)("chrome.audio.setActiveDevices"))||void 0===Ae||Ae.addPromiseWrapper(),null===(ce=(0,r.api)("chrome.audio.setMute"))||void 0===ce||ce.addPromiseWrapper(),null===(ue=(0,r.api)("chrome.audio.setProperties"))||void 0===ue||ue.addPromiseWrapper()),null!=chrome.bookmarks&&(null===(le=(0,r.api)("chrome.bookmarks.create"))||void 0===le||le.addPromiseWrapper(),null===(de=(0,r.api)("chrome.bookmarks.get"))||void 0===de||de.addPromiseWrapper(),null===(pe=(0,r.api)("chrome.bookmarks.getChildren"))||void 0===pe||pe.addPromiseWrapper(),null===(he=(0,r.api)("chrome.bookmarks.getRecent"))||void 0===he||he.addPromiseWrapper(),null===(fe=(0,r.api)("chrome.bookmarks.getSubTree"))||void 0===fe||fe.addPromiseWrapper(),null===(me=(0,r.api)("chrome.bookmarks.getTree"))||void 0===me||me.addPromiseWrapper(),null===(ge=(0,r.api)("chrome.bookmarks.move"))||void 0===ge||ge.addPromiseWrapper(),null===(ye=(0,r.api)("chrome.bookmarks.remove"))||void 0===ye||ye.addPromiseWrapper(),null===(ve=(0,r.api)("chrome.bookmarks.removeTree"))||void 0===ve||ve.addPromiseWrapper(),null===(be=(0,r.api)("chrome.bookmarks.search"))||void 0===be||be.addPromiseWrapper(),null===(ke=(0,r.api)("chrome.bookmarks.update"))||void 0===ke||ke.addPromiseWrapper()),null!=chrome.browsingData&&(null===(Se=(0,r.api)("chrome.browsingData.remove"))||void 0===Se||Se.addPromiseWrapper(),null===(Te=(0,r.api)("chrome.browsingData.removeAppcache"))||void 0===Te||Te.addPromiseWrapper(),null===(we=(0,r.api)("chrome.browsingData.removeCache"))||void 0===we||we.addPromiseWrapper(),null===(Ee=(0,r.api)("chrome.browsingData.removeCacheStorage"))||void 0===Ee||Ee.addPromiseWrapper(),null===(je=(0,r.api)("chrome.browsingData.removeCookies"))||void 0===je||je.addPromiseWrapper(),null===(Oe=(0,r.api)("chrome.browsingData.removeDownloads"))||void 0===Oe||Oe.addPromiseWrapper(),null===(Re=(0,r.api)("chrome.browsingData.removeFileSystems"))||void 0===Re||Re.addPromiseWrapper(),null===(Pe=(0,r.api)("chrome.browsingData.removeFormData"))||void 0===Pe||Pe.addPromiseWrapper(),null===(Ce=(0,r.api)("chrome.browsingData.removeHistory"))||void 0===Ce||Ce.addPromiseWrapper(),null===(Le=(0,r.api)("chrome.browsingData.removeIndexedDB"))||void 0===Le||Le.addPromiseWrapper(),null===(Ne=(0,r.api)("chrome.browsingData.removeLocalStorage"))||void 0===Ne||Ne.addPromiseWrapper(),null===(xe=(0,r.api)("chrome.browsingData.removePasswords"))||void 0===xe||xe.addPromiseWrapper(),null===(Me=(0,r.api)("chrome.browsingData.removePluginData"))||void 0===Me||Me.addPromiseWrapper(),null===(Ue=(0,r.api)("chrome.browsingData.removeServiceWorkers"))||void 0===Ue||Ue.addPromiseWrapper(),null===(Ie=(0,r.api)("chrome.browsingData.removeWebSQL"))||void 0===Ie||Ie.addPromiseWrapper(),null===(_e=(0,r.api)("chrome.browsingData.settings"))||void 0===_e||_e.addPromiseWrapper()),null!=chrome.certificateProvider&&(null===(We=(0,r.api)("chrome.certificateProvider.reportSignature"))||void 0===We||We.addPromiseWrapper(),null===(ze=(0,r.api)("chrome.certificateProvider.requestPin"))||void 0===ze||ze.addPromiseWrapper(),null===(De=(0,r.api)("chrome.certificateProvider.setCertificates"))||void 0===De||De.addPromiseWrapper(),null===(Fe=(0,r.api)("chrome.certificateProvider.stopPinRequest"))||void 0===Fe||Fe.addPromiseWrapper()),null!=chrome.commands&&(null===(qe=(0,r.api)("chrome.commands.getAll"))||void 0===qe||qe.addPromiseWrapper()),null!=chrome.contentSettings&&(null===(Ve=(0,r.api)("chrome.contentSettings.automaticDownloads.clear"))||void 0===Ve||Ve.addPromiseWrapper(),null===(Xe=(0,r.api)("chrome.contentSettings.automaticDownloads.get"))||void 0===Xe||Xe.addPromiseWrapper(),null===(Je=(0,r.api)("chrome.contentSettings.automaticDownloads.getResourceIdentifiers"))||void 0===Je||Je.addPromiseWrapper(),null===(Ze=(0,r.api)("chrome.contentSettings.automaticDownloads.set"))||void 0===Ze||Ze.addPromiseWrapper(),null===(Ke=(0,r.api)("chrome.contentSettings.autoVerify.clear"))||void 0===Ke||Ke.addPromiseWrapper(),null===(Ge=(0,r.api)("chrome.contentSettings.autoVerify.get"))||void 0===Ge||Ge.addPromiseWrapper(),null===(He=(0,r.api)("chrome.contentSettings.autoVerify.getResourceIdentifiers"))||void 0===He||He.addPromiseWrapper(),null===(Be=(0,r.api)("chrome.contentSettings.autoVerify.set"))||void 0===Be||Be.addPromiseWrapper(),null===(Ye=(0,r.api)("chrome.contentSettings.camera.clear"))||void 0===Ye||Ye.addPromiseWrapper(),null===(Qe=(0,r.api)("chrome.contentSettings.camera.get"))||void 0===Qe||Qe.addPromiseWrapper(),null===($e=(0,r.api)("chrome.contentSettings.camera.getResourceIdentifiers"))||void 0===$e||$e.addPromiseWrapper(),null===(et=(0,r.api)("chrome.contentSettings.camera.set"))||void 0===et||et.addPromiseWrapper(),null===(tt=(0,r.api)("chrome.contentSettings.cookies.clear"))||void 0===tt||tt.addPromiseWrapper(),null===(nt=(0,r.api)("chrome.contentSettings.cookies.get"))||void 0===nt||nt.addPromiseWrapper(),null===(rt=(0,r.api)("chrome.contentSettings.cookies.getResourceIdentifiers"))||void 0===rt||rt.addPromiseWrapper(),null===(it=(0,r.api)("chrome.contentSettings.cookies.set"))||void 0===it||it.addPromiseWrapper(),null===(ot=(0,r.api)("chrome.contentSettings.fullscreen.clear"))||void 0===ot||ot.addPromiseWrapper(),null===(at=(0,r.api)("chrome.contentSettings.fullscreen.get"))||void 0===at||at.addPromiseWrapper(),null===(st=(0,r.api)("chrome.contentSettings.fullscreen.getResourceIdentifiers"))||void 0===st||st.addPromiseWrapper(),null===(At=(0,r.api)("chrome.contentSettings.fullscreen.set"))||void 0===At||At.addPromiseWrapper(),null===(ct=(0,r.api)("chrome.contentSettings.images.clear"))||void 0===ct||ct.addPromiseWrapper(),null===(ut=(0,r.api)("chrome.contentSettings.images.get"))||void 0===ut||ut.addPromiseWrapper(),null===(lt=(0,r.api)("chrome.contentSettings.images.getResourceIdentifiers"))||void 0===lt||lt.addPromiseWrapper(),null===(dt=(0,r.api)("chrome.contentSettings.images.set"))||void 0===dt||dt.addPromiseWrapper(),null===(pt=(0,r.api)("chrome.contentSettings.javascript.clear"))||void 0===pt||pt.addPromiseWrapper(),null===(ht=(0,r.api)("chrome.contentSettings.javascript.get"))||void 0===ht||ht.addPromiseWrapper(),null===(ft=(0,r.api)("chrome.contentSettings.javascript.getResourceIdentifiers"))||void 0===ft||ft.addPromiseWrapper(),null===(mt=(0,r.api)("chrome.contentSettings.javascript.set"))||void 0===mt||mt.addPromiseWrapper(),null===(gt=(0,r.api)("chrome.contentSettings.location.clear"))||void 0===gt||gt.addPromiseWrapper(),null===(yt=(0,r.api)("chrome.contentSettings.location.get"))||void 0===yt||yt.addPromiseWrapper(),null===(vt=(0,r.api)("chrome.contentSettings.location.getResourceIdentifiers"))||void 0===vt||vt.addPromiseWrapper(),null===(bt=(0,r.api)("chrome.contentSettings.location.set"))||void 0===bt||bt.addPromiseWrapper(),null===(kt=(0,r.api)("chrome.contentSettings.microphone.clear"))||void 0===kt||kt.addPromiseWrapper(),null===(St=(0,r.api)("chrome.contentSettings.microphone.get"))||void 0===St||St.addPromiseWrapper(),null===(Tt=(0,r.api)("chrome.contentSettings.microphone.getResourceIdentifiers"))||void 0===Tt||Tt.addPromiseWrapper(),null===(wt=(0,r.api)("chrome.contentSettings.microphone.set"))||void 0===wt||wt.addPromiseWrapper(),null===(Et=(0,r.api)("chrome.contentSettings.mouselock.clear"))||void 0===Et||Et.addPromiseWrapper(),null===(jt=(0,r.api)("chrome.contentSettings.mouselock.get"))||void 0===jt||jt.addPromiseWrapper(),null===(Ot=(0,r.api)("chrome.contentSettings.mouselock.getResourceIdentifiers"))||void 0===Ot||Ot.addPromiseWrapper(),null===(Rt=(0,r.api)("chrome.contentSettings.mouselock.set"))||void 0===Rt||Rt.addPromiseWrapper(),null===(Pt=(0,r.api)("chrome.contentSettings.notifications.clear"))||void 0===Pt||Pt.addPromiseWrapper(),null===(Ct=(0,r.api)("chrome.contentSettings.notifications.get"))||void 0===Ct||Ct.addPromiseWrapper(),null===(Lt=(0,r.api)("chrome.contentSettings.notifications.getResourceIdentifiers"))||void 0===Lt||Lt.addPromiseWrapper(),null===(Nt=(0,r.api)("chrome.contentSettings.notifications.set"))||void 0===Nt||Nt.addPromiseWrapper(),null===(xt=(0,r.api)("chrome.contentSettings.plugins.clear"))||void 0===xt||xt.addPromiseWrapper(),null===(Mt=(0,r.api)("chrome.contentSettings.plugins.get"))||void 0===Mt||Mt.addPromiseWrapper(),null===(Ut=(0,r.api)("chrome.contentSettings.plugins.getResourceIdentifiers"))||void 0===Ut||Ut.addPromiseWrapper(),null===(It=(0,r.api)("chrome.contentSettings.plugins.set"))||void 0===It||It.addPromiseWrapper(),null===(_t=(0,r.api)("chrome.contentSettings.popups.clear"))||void 0===_t||_t.addPromiseWrapper(),null===(Wt=(0,r.api)("chrome.contentSettings.popups.get"))||void 0===Wt||Wt.addPromiseWrapper(),null===(zt=(0,r.api)("chrome.contentSettings.popups.getResourceIdentifiers"))||void 0===zt||zt.addPromiseWrapper(),null===(Dt=(0,r.api)("chrome.contentSettings.popups.set"))||void 0===Dt||Dt.addPromiseWrapper(),null===(Ft=(0,r.api)("chrome.contentSettings.unsandboxedPlugins.clear"))||void 0===Ft||Ft.addPromiseWrapper(),null===(qt=(0,r.api)("chrome.contentSettings.unsandboxedPlugins.get"))||void 0===qt||qt.addPromiseWrapper(),null===(Vt=(0,r.api)("chrome.contentSettings.unsandboxedPlugins.getResourceIdentifiers"))||void 0===Vt||Vt.addPromiseWrapper(),null===(Xt=(0,r.api)("chrome.contentSettings.unsandboxedPlugins.set"))||void 0===Xt||Xt.addPromiseWrapper()),null!=chrome.contextMenus&&(null===(Jt=(0,r.api)("chrome.contextMenus.create"))||void 0===Jt||Jt.addPromiseWrapper(),null===(Zt=(0,r.api)("chrome.contextMenus.remove"))||void 0===Zt||Zt.addPromiseWrapper(),null===(Kt=(0,r.api)("chrome.contextMenus.removeAll"))||void 0===Kt||Kt.addPromiseWrapper(),null===(Gt=(0,r.api)("chrome.contextMenus.update"))||void 0===Gt||Gt.addPromiseWrapper()),null!=chrome.cookies&&(null===(Ht=(0,r.api)("chrome.cookies.get"))||void 0===Ht||Ht.addPromiseWrapper(),null===(Bt=(0,r.api)("chrome.cookies.getAll"))||void 0===Bt||Bt.addPromiseWrapper(),null===(Yt=(0,r.api)("chrome.cookies.getAllCookieStores"))||void 0===Yt||Yt.addPromiseWrapper(),null===(Qt=(0,r.api)("chrome.cookies.remove"))||void 0===Qt||Qt.addPromiseWrapper(),null===($t=(0,r.api)("chrome.cookies.set"))||void 0===$t||$t.addPromiseWrapper()),null!=chrome.debugger&&(null===(en=(0,r.api)("chrome.debugger.attach"))||void 0===en||en.addPromiseWrapper(),null===(tn=(0,r.api)("chrome.debugger.detach"))||void 0===tn||tn.addPromiseWrapper(),null===(nn=(0,r.api)("chrome.debugger.getTargets"))||void 0===nn||nn.addPromiseWrapper(),null===(rn=(0,r.api)("chrome.debugger.sendCommand"))||void 0===rn||rn.addPromiseWrapper()),null!=chrome.declarativeNetRequest&&(null===(on=(0,r.api)("chrome.declarativeNetRequest.getAvailableStaticRuleCount"))||void 0===on||on.addPromiseWrapper(),null===(an=(0,r.api)("chrome.declarativeNetRequest.getDynamicRules"))||void 0===an||an.addPromiseWrapper(),null===(sn=(0,r.api)("chrome.declarativeNetRequest.getEnabledRulesets"))||void 0===sn||sn.addPromiseWrapper(),null===(An=(0,r.api)("chrome.declarativeNetRequest.getMatchedRules"))||void 0===An||An.addPromiseWrapper(),null===(cn=(0,r.api)("chrome.declarativeNetRequest.getSessionRules"))||void 0===cn||cn.addPromiseWrapper(),null===(un=(0,r.api)("chrome.declarativeNetRequest.isRegexSupported"))||void 0===un||un.addPromiseWrapper(),null===(ln=(0,r.api)("chrome.declarativeNetRequest.setExtensionActionOptions"))||void 0===ln||ln.addPromiseWrapper(),null===(dn=(0,r.api)("chrome.declarativeNetRequest.testMatchOutcome"))||void 0===dn||dn.addPromiseWrapper(),null===(pn=(0,r.api)("chrome.declarativeNetRequest.updateDynamicRules"))||void 0===pn||pn.addPromiseWrapper(),null===(hn=(0,r.api)("chrome.declarativeNetRequest.updateEnabledRulesets"))||void 0===hn||hn.addPromiseWrapper(),null===(fn=(0,r.api)("chrome.declarativeNetRequest.updateSessionRules"))||void 0===fn||fn.addPromiseWrapper()),null!=chrome.desktopCapture&&(null===(mn=(0,r.api)("chrome.desktopCapture.chooseDesktopMedia"))||void 0===mn||mn.addPromiseWrapper()),null!=chrome.documentScan&&(null===(gn=(0,r.api)("chrome.documentScan.scan"))||void 0===gn||gn.addPromiseWrapper()),null!=chrome.downloads&&(null===(yn=(0,r.api)("chrome.downloads.acceptDanger"))||void 0===yn||yn.addPromiseWrapper(),null===(vn=(0,r.api)("chrome.downloads.cancel"))||void 0===vn||vn.addPromiseWrapper(),null===(bn=(0,r.api)("chrome.downloads.download"))||void 0===bn||bn.addPromiseWrapper(),null===(kn=(0,r.api)("chrome.downloads.erase"))||void 0===kn||kn.addPromiseWrapper(),null===(Sn=(0,r.api)("chrome.downloads.getFileIcon"))||void 0===Sn||Sn.addPromiseWrapper(),null===(Tn=(0,r.api)("chrome.downloads.pause"))||void 0===Tn||Tn.addPromiseWrapper(),null===(wn=(0,r.api)("chrome.downloads.removeFile"))||void 0===wn||wn.addPromiseWrapper(),null===(En=(0,r.api)("chrome.downloads.resume"))||void 0===En||En.addPromiseWrapper(),null===(jn=(0,r.api)("chrome.downloads.search"))||void 0===jn||jn.addPromiseWrapper(),null===(On=(0,r.api)("chrome.downloads.setUiOptions"))||void 0===On||On.addPromiseWrapper()),null!=(null===(Rn=chrome.enterprise)||void 0===Rn?void 0:Rn.deviceAttributes)&&(null===(Pn=(0,r.api)("chrome.enterprise.deviceAttributes.getDeviceAnnotatedLocation"))||void 0===Pn||Pn.addPromiseWrapper(),null===(Cn=(0,r.api)("chrome.enterprise.deviceAttributes.getDeviceAssetId"))||void 0===Cn||Cn.addPromiseWrapper(),null===(Ln=(0,r.api)("chrome.enterprise.deviceAttributes.getDeviceHostname"))||void 0===Ln||Ln.addPromiseWrapper(),null===(Nn=(0,r.api)("chrome.enterprise.deviceAttributes.getDeviceSerialNumber"))||void 0===Nn||Nn.addPromiseWrapper(),null===(xn=(0,r.api)("chrome.enterprise.deviceAttributes.getDirectoryDeviceId"))||void 0===xn||xn.addPromiseWrapper()),null!=(null===(Mn=chrome.enterprise)||void 0===Mn?void 0:Mn.hardwarePlatform)&&(null===(Un=(0,r.api)("chrome.enterprise.hardwarePlatform.getHardwarePlatformInfo"))||void 0===Un||Un.addPromiseWrapper()),null!=(null===(In=chrome.enterprise)||void 0===In?void 0:In.networkingAttributes)&&(null===(_n=(0,r.api)("chrome.enterprise.networkingAttributes.getNetworkDetails"))||void 0===_n||_n.addPromiseWrapper()),null!=(null===(Wn=chrome.enterprise)||void 0===Wn?void 0:Wn.platformKeys)&&(null===(zn=(0,r.api)("chrome.enterprise.platformKeys.challengeKey"))||void 0===zn||zn.addPromiseWrapper(),null===(Dn=(0,r.api)("chrome.enterprise.platformKeys.challengeMachineKey"))||void 0===Dn||Dn.addPromiseWrapper(),null===(Fn=(0,r.api)("chrome.enterprise.platformKeys.challengeUserKey"))||void 0===Fn||Fn.addPromiseWrapper(),null===(qn=(0,r.api)("chrome.enterprise.platformKeys.getCertificates"))||void 0===qn||qn.addPromiseWrapper(),null===(Vn=(0,r.api)("chrome.enterprise.platformKeys.getTokens"))||void 0===Vn||Vn.addPromiseWrapper(),null===(Xn=(0,r.api)("chrome.enterprise.platformKeys.importCertificate"))||void 0===Xn||Xn.addPromiseWrapper(),null===(Jn=(0,r.api)("chrome.enterprise.platformKeys.removeCertificate"))||void 0===Jn||Jn.addPromiseWrapper()),null!=chrome.extension&&(null===(Zn=(0,r.api)("chrome.extension.isAllowedFileSchemeAccess"))||void 0===Zn||Zn.addPromiseWrapper(),null===(Kn=(0,r.api)("chrome.extension.isAllowedIncognitoAccess"))||void 0===Kn||Kn.addPromiseWrapper()),null!=chrome.fileSystemProvider&&(null===(Gn=(0,r.api)("chrome.fileSystemProvider.get"))||void 0===Gn||Gn.addPromiseWrapper(),null===(Hn=(0,r.api)("chrome.fileSystemProvider.getAll"))||void 0===Hn||Hn.addPromiseWrapper(),null===(Bn=(0,r.api)("chrome.fileSystemProvider.mount"))||void 0===Bn||Bn.addPromiseWrapper(),null===(Yn=(0,r.api)("chrome.fileSystemProvider.notify"))||void 0===Yn||Yn.addPromiseWrapper(),null===(Qn=(0,r.api)("chrome.fileSystemProvider.unmount"))||void 0===Qn||Qn.addPromiseWrapper()),null!=chrome.fontSettings&&(null===($n=(0,r.api)("chrome.fontSettings.clearDefaultFixedFontSize"))||void 0===$n||$n.addPromiseWrapper(),null===(er=(0,r.api)("chrome.fontSettings.clearDefaultFontSize"))||void 0===er||er.addPromiseWrapper(),null===(tr=(0,r.api)("chrome.fontSettings.clearFont"))||void 0===tr||tr.addPromiseWrapper(),null===(nr=(0,r.api)("chrome.fontSettings.clearMinimumFontSize"))||void 0===nr||nr.addPromiseWrapper(),null===(rr=(0,r.api)("chrome.fontSettings.getDefaultFixedFontSize"))||void 0===rr||rr.addPromiseWrapper(),null===(ir=(0,r.api)("chrome.fontSettings.getDefaultFontSize"))||void 0===ir||ir.addPromiseWrapper(),null===(or=(0,r.api)("chrome.fontSettings.getFont"))||void 0===or||or.addPromiseWrapper(),null===(ar=(0,r.api)("chrome.fontSettings.getFontList"))||void 0===ar||ar.addPromiseWrapper(),null===(sr=(0,r.api)("chrome.fontSettings.getMinimumFontSize"))||void 0===sr||sr.addPromiseWrapper(),null===(Ar=(0,r.api)("chrome.fontSettings.setDefaultFixedFontSize"))||void 0===Ar||Ar.addPromiseWrapper(),null===(cr=(0,r.api)("chrome.fontSettings.setDefaultFontSize"))||void 0===cr||cr.addPromiseWrapper(),null===(ur=(0,r.api)("chrome.fontSettings.setFont"))||void 0===ur||ur.addPromiseWrapper(),null===(lr=(0,r.api)("chrome.fontSettings.setMinimumFontSize"))||void 0===lr||lr.addPromiseWrapper()),null!=chrome.gcm&&(null===(dr=(0,r.api)("chrome.gcm.register"))||void 0===dr||dr.addPromiseWrapper(),null===(pr=(0,r.api)("chrome.gcm.unregister"))||void 0===pr||pr.addPromiseWrapper(),null===(hr=(0,r.api)("chrome.gcm.send"))||void 0===hr||hr.addPromiseWrapper()),null!=chrome.history&&(null===(fr=(0,r.api)("chrome.history.addUrl"))||void 0===fr||fr.addPromiseWrapper(),null===(mr=(0,r.api)("chrome.history.deleteAll"))||void 0===mr||mr.addPromiseWrapper(),null===(gr=(0,r.api)("chrome.history.deleteRange"))||void 0===gr||gr.addPromiseWrapper(),null===(yr=(0,r.api)("chrome.history.deleteUrl"))||void 0===yr||yr.addPromiseWrapper(),null===(vr=(0,r.api)("chrome.history.getVisits"))||void 0===vr||vr.addPromiseWrapper(),null===(br=(0,r.api)("chrome.history.search"))||void 0===br||br.addPromiseWrapper()),null!=chrome.i18n&&(null===(kr=(0,r.api)("chrome.i18n.detectLanguage"))||void 0===kr||kr.addPromiseWrapper(),null===(Sr=(0,r.api)("chrome.i18n.getAcceptLanguages"))||void 0===Sr||Sr.addPromiseWrapper()),null!=chrome.identity&&(null===(Tr=(0,r.api)("chrome.identity.clearAllCachedAuthTokens"))||void 0===Tr||Tr.addPromiseWrapper(),null===(wr=(0,r.api)("chrome.identity.getAuthToken"))||void 0===wr||wr.addPromiseWrapper(((e,t)=>({token:e,grantedScopes:t}))),null===(Er=(0,r.api)("chrome.identity.getProfileUserInfo"))||void 0===Er||Er.addPromiseWrapper(),null===(jr=(0,r.api)("chrome.identity.launchWebAuthFlow"))||void 0===jr||jr.addPromiseWrapper(),null===(Or=(0,r.api)("chrome.identity.removeCachedAuthToken"))||void 0===Or||Or.addPromiseWrapper()),null!=chrome.idle&&(null===(Rr=(0,r.api)("chrome.idle.getAutoLockDelay"))||void 0===Rr||Rr.addPromiseWrapper(),null===(Pr=(0,r.api)("chrome.idle.queryState"))||void 0===Pr||Pr.addPromiseWrapper()),null!=(null===(Cr=chrome.input)||void 0===Cr?void 0:Cr.ime)&&(null===(Lr=(0,r.api)("chrome.input.ime.clearComposition"))||void 0===Lr||Lr.addPromiseWrapper(),null===(Nr=(0,r.api)("chrome.input.ime.commitText"))||void 0===Nr||Nr.addPromiseWrapper(),null===(xr=(0,r.api)("chrome.input.ime.deleteSurroundingText"))||void 0===xr||xr.addPromiseWrapper(),null===(Mr=(0,r.api)("chrome.input.ime.sendKeyEvents"))||void 0===Mr||Mr.addPromiseWrapper(),null===(Ur=(0,r.api)("chrome.input.ime.setAssistiveWindowButtonHighlighted"))||void 0===Ur||Ur.addPromiseWrapper(),null===(Ir=(0,r.api)("chrome.input.ime.setAssistiveWindowProperties"))||void 0===Ir||Ir.addPromiseWrapper(),null===(_r=(0,r.api)("chrome.input.ime.setCandidates"))||void 0===_r||_r.addPromiseWrapper(),null===(Wr=(0,r.api)("chrome.input.ime.setCandidateWindowProperties"))||void 0===Wr||Wr.addPromiseWrapper(),null===(zr=(0,r.api)("chrome.input.ime.setComposition"))||void 0===zr||zr.addPromiseWrapper(),null===(Dr=(0,r.api)("chrome.input.ime.setCursorPosition"))||void 0===Dr||Dr.addPromiseWrapper(),null===(Fr=(0,r.api)("chrome.input.ime.setMenuItems"))||void 0===Fr||Fr.addPromiseWrapper(),null===(qr=(0,r.api)("chrome.input.ime.updateMenuItems"))||void 0===qr||qr.addPromiseWrapper()),null!=chrome.loginState&&(null===(Vr=(0,r.api)("chrome.loginState.getProfileType"))||void 0===Vr||Vr.addPromiseWrapper(),null===(Xr=(0,r.api)("chrome.loginState.getSessionState"))||void 0===Xr||Xr.addPromiseWrapper()),null===(Jr=(0,r.api)("chrome.management.getPermissionWarningsByManifest"))||void 0===Jr||Jr.addPromiseWrapper(),null===(Zr=(0,r.api)("chrome.management.getSelf"))||void 0===Zr||Zr.addPromiseWrapper(),null===(Kr=(0,r.api)("chrome.management.uninstallSelf"))||void 0===Kr||Kr.addPromiseWrapper(),null!=(null===(Gr=chrome.management)||void 0===Gr?void 0:Gr.get)&&(null===(Hr=(0,r.api)("chrome.management.createAppShortcut"))||void 0===Hr||Hr.addPromiseWrapper(),null===(Br=(0,r.api)("chrome.management.generateAppForLink"))||void 0===Br||Br.addPromiseWrapper(),null===(Yr=(0,r.api)("chrome.management.get"))||void 0===Yr||Yr.addPromiseWrapper(),null===(Qr=(0,r.api)("chrome.management.getAll"))||void 0===Qr||Qr.addPromiseWrapper(),null===($r=(0,r.api)("chrome.management.getPermissionWarningsById"))||void 0===$r||$r.addPromiseWrapper(),null===(ei=(0,r.api)("chrome.management.launchApp"))||void 0===ei||ei.addPromiseWrapper(),null===(ti=(0,r.api)("chrome.management.setEnabled"))||void 0===ti||ti.addPromiseWrapper(),null===(ni=(0,r.api)("chrome.management.setLaunchType"))||void 0===ni||ni.addPromiseWrapper(),null===(ri=(0,r.api)("chrome.management.uninstall"))||void 0===ri||ri.addPromiseWrapper()),null!=chrome.notifications&&(null===(ii=(0,r.api)("chrome.notifications.clear"))||void 0===ii||ii.addPromiseWrapper(),null===(oi=(0,r.api)("chrome.notifications.create"))||void 0===oi||oi.addPromiseWrapper(),null===(ai=(0,r.api)("chrome.notifications.getAll"))||void 0===ai||ai.addPromiseWrapper(),null===(si=(0,r.api)("chrome.notifications.getPermissionLevel"))||void 0===si||si.addPromiseWrapper(),null===(Ai=(0,r.api)("chrome.notifications.update"))||void 0===Ai||Ai.addPromiseWrapper()),null!=chrome.omnibox&&(null===(ci=(0,r.api)("chrome.omnibox.setDefaultSuggestion"))||void 0===ci||ci.addPromiseWrapper()),null!=chrome.pageCapture&&(null===(ui=(0,r.api)("chrome.pageCapture.saveAsMHTML"))||void 0===ui||ui.addPromiseWrapper()),null!=chrome.permissions&&(null===(li=(0,r.api)("chrome.permissions.contains"))||void 0===li||li.addPromiseWrapper(),null===(di=(0,r.api)("chrome.permissions.getAll"))||void 0===di||di.addPromiseWrapper(),null===(pi=(0,r.api)("chrome.permissions.remove"))||void 0===pi||pi.addPromiseWrapper(),null===(hi=(0,r.api)("chrome.permissions.request"))||void 0===hi||hi.addPromiseWrapper()),null!=chrome.platformKeys&&(null===(fi=(0,r.api)("chrome.platformKeys.getKeyPair"))||void 0===fi||fi.addPromiseWrapper(),null===(mi=(0,r.api)("chrome.platformKeys.getKeyPairBySpki"))||void 0===mi||mi.addPromiseWrapper(),null===(gi=(0,r.api)("chrome.platformKeys.selectClientCertificates"))||void 0===gi||gi.addPromiseWrapper(),null===(yi=(0,r.api)("chrome.platformKeys.subtleCrypto"))||void 0===yi||yi.addPromiseWrapper(),null===(vi=(0,r.api)("chrome.platformKeys.verifyTLSServerCertificate"))||void 0===vi||vi.addPromiseWrapper()),null!=chrome.power&&(null===(bi=(0,r.api)("chrome.power.releaseKeepAwake"))||void 0===bi||bi.addPromiseWrapper(),null===(ki=(0,r.api)("chrome.power.reportActivity"))||void 0===ki||ki.addPromiseWrapper()),null!=chrome.printing&&(null===(Si=(0,r.api)("chrome.printing.cancelJob"))||void 0===Si||Si.addPromiseWrapper(),null===(Ti=(0,r.api)("chrome.printing.getPrinterInfo"))||void 0===Ti||Ti.addPromiseWrapper(),null===(wi=(0,r.api)("chrome.printing.getPrinters"))||void 0===wi||wi.addPromiseWrapper(),null===(Ei=(0,r.api)("chrome.printing.submitJob"))||void 0===Ei||Ei.addPromiseWrapper()),null!=chrome.printingMetrics&&(null===(ji=(0,r.api)("chrome.printingMetrics.getPrintJobs"))||void 0===ji||ji.addPromiseWrapper()),null!=chrome.privacy&&(null===(Oi=(0,r.api)("chrome.privacy.network.networkPredictionEnabled.clear"))||void 0===Oi||Oi.addPromiseWrapper(),null===(Ri=(0,r.api)("chrome.privacy.network.networkPredictionEnabled.get"))||void 0===Ri||Ri.addPromiseWrapper(),null===(Pi=(0,r.api)("chrome.privacy.network.networkPredictionEnabled.set"))||void 0===Pi||Pi.addPromiseWrapper(),null===(Ci=(0,r.api)("chrome.privacy.network.webRTCIPHandlingPolicy.clear"))||void 0===Ci||Ci.addPromiseWrapper(),null===(Li=(0,r.api)("chrome.privacy.network.webRTCIPHandlingPolicy.get"))||void 0===Li||Li.addPromiseWrapper(),null===(Ni=(0,r.api)("chrome.privacy.network.webRTCIPHandlingPolicy.set"))||void 0===Ni||Ni.addPromiseWrapper(),null===(xi=(0,r.api)("chrome.privacy.services.alternateErrorPagesEnabled.clear"))||void 0===xi||xi.addPromiseWrapper(),null===(Mi=(0,r.api)("chrome.privacy.services.alternateErrorPagesEnabled.get"))||void 0===Mi||Mi.addPromiseWrapper(),null===(Ui=(0,r.api)("chrome.privacy.services.alternateErrorPagesEnabled.set"))||void 0===Ui||Ui.addPromiseWrapper(),null===(Ii=(0,r.api)("chrome.privacy.services.autofillAddressEnabled.clear"))||void 0===Ii||Ii.addPromiseWrapper(),null===(_i=(0,r.api)("chrome.privacy.services.autofillAddressEnabled.get"))||void 0===_i||_i.addPromiseWrapper(),null===(Wi=(0,r.api)("chrome.privacy.services.autofillAddressEnabled.set"))||void 0===Wi||Wi.addPromiseWrapper(),null===(zi=(0,r.api)("chrome.privacy.services.autofillCreditCardEnabled.clear"))||void 0===zi||zi.addPromiseWrapper(),null===(Di=(0,r.api)("chrome.privacy.services.autofillCreditCardEnabled.get"))||void 0===Di||Di.addPromiseWrapper(),null===(Fi=(0,r.api)("chrome.privacy.services.autofillCreditCardEnabled.set"))||void 0===Fi||Fi.addPromiseWrapper(),null===(qi=(0,r.api)("chrome.privacy.services.autofillEnabled.clear"))||void 0===qi||qi.addPromiseWrapper(),null===(Vi=(0,r.api)("chrome.privacy.services.autofillEnabled.get"))||void 0===Vi||Vi.addPromiseWrapper(),null===(Xi=(0,r.api)("chrome.privacy.services.autofillEnabled.set"))||void 0===Xi||Xi.addPromiseWrapper(),null===(Ji=(0,r.api)("chrome.privacy.services.passwordSavingEnabled.clear"))||void 0===Ji||Ji.addPromiseWrapper(),null===(Zi=(0,r.api)("chrome.privacy.services.passwordSavingEnabled.get"))||void 0===Zi||Zi.addPromiseWrapper(),null===(Ki=(0,r.api)("chrome.privacy.services.passwordSavingEnabled.set"))||void 0===Ki||Ki.addPromiseWrapper(),null===(Gi=(0,r.api)("chrome.privacy.services.safeBrowsingEnabled.clear"))||void 0===Gi||Gi.addPromiseWrapper(),null===(Hi=(0,r.api)("chrome.privacy.services.safeBrowsingEnabled.get"))||void 0===Hi||Hi.addPromiseWrapper(),null===(Bi=(0,r.api)("chrome.privacy.services.safeBrowsingEnabled.set"))||void 0===Bi||Bi.addPromiseWrapper(),null===(Yi=(0,r.api)("chrome.privacy.services.safeBrowsingExtendedReportingEnabled.clear"))||void 0===Yi||Yi.addPromiseWrapper(),null===(Qi=(0,r.api)("chrome.privacy.services.safeBrowsingExtendedReportingEnabled.get"))||void 0===Qi||Qi.addPromiseWrapper(),null===($i=(0,r.api)("chrome.privacy.services.safeBrowsingExtendedReportingEnabled.set"))||void 0===$i||$i.addPromiseWrapper(),null===(eo=(0,r.api)("chrome.privacy.services.searchSuggestEnabled.clear"))||void 0===eo||eo.addPromiseWrapper(),null===(to=(0,r.api)("chrome.privacy.services.searchSuggestEnabled.get"))||void 0===to||to.addPromiseWrapper(),null===(no=(0,r.api)("chrome.privacy.services.searchSuggestEnabled.set"))||void 0===no||no.addPromiseWrapper(),null===(ro=(0,r.api)("chrome.privacy.services.spellingServiceEnabled.clear"))||void 0===ro||ro.addPromiseWrapper(),null===(io=(0,r.api)("chrome.privacy.services.spellingServiceEnabled.get"))||void 0===io||io.addPromiseWrapper(),null===(oo=(0,r.api)("chrome.privacy.services.spellingServiceEnabled.set"))||void 0===oo||oo.addPromiseWrapper(),null===(ao=(0,r.api)("chrome.privacy.services.translationServiceEnabled.clear"))||void 0===ao||ao.addPromiseWrapper(),null===(so=(0,r.api)("chrome.privacy.services.translationServiceEnabled.get"))||void 0===so||so.addPromiseWrapper(),null===(Ao=(0,r.api)("chrome.privacy.services.translationServiceEnabled.set"))||void 0===Ao||Ao.addPromiseWrapper(),null===(co=(0,r.api)("chrome.privacy.websites.adMeasurementEnabled.clear"))||void 0===co||co.addPromiseWrapper(),null===(uo=(0,r.api)("chrome.privacy.websites.adMeasurementEnabled.get"))||void 0===uo||uo.addPromiseWrapper(),null===(lo=(0,r.api)("chrome.privacy.websites.adMeasurementEnabled.set"))||void 0===lo||lo.addPromiseWrapper(),null===(po=(0,r.api)("chrome.privacy.websites.doNotTrackEnabled.clear"))||void 0===po||po.addPromiseWrapper(),null===(ho=(0,r.api)("chrome.privacy.websites.doNotTrackEnabled.get"))||void 0===ho||ho.addPromiseWrapper(),null===(fo=(0,r.api)("chrome.privacy.websites.doNotTrackEnabled.set"))||void 0===fo||fo.addPromiseWrapper(),null===(mo=(0,r.api)("chrome.privacy.websites.fledgeEnabled.clear"))||void 0===mo||mo.addPromiseWrapper(),null===(go=(0,r.api)("chrome.privacy.websites.fledgeEnabled.get"))||void 0===go||go.addPromiseWrapper(),null===(yo=(0,r.api)("chrome.privacy.websites.fledgeEnabled.set"))||void 0===yo||yo.addPromiseWrapper(),null===(vo=(0,r.api)("chrome.privacy.websites.hyperlinkAuditingEnabled.clear"))||void 0===vo||vo.addPromiseWrapper(),null===(bo=(0,r.api)("chrome.privacy.websites.hyperlinkAuditingEnabled.get"))||void 0===bo||bo.addPromiseWrapper(),null===(ko=(0,r.api)("chrome.privacy.websites.hyperlinkAuditingEnabled.set"))||void 0===ko||ko.addPromiseWrapper(),null===(So=(0,r.api)("chrome.privacy.websites.privacySandboxEnabled.clear"))||void 0===So||So.addPromiseWrapper(),null===(To=(0,r.api)("chrome.privacy.websites.privacySandboxEnabled.get"))||void 0===To||To.addPromiseWrapper(),null===(wo=(0,r.api)("chrome.privacy.websites.privacySandboxEnabled.set"))||void 0===wo||wo.addPromiseWrapper(),null===(Eo=(0,r.api)("chrome.privacy.websites.protectedContentEnabled.clear"))||void 0===Eo||Eo.addPromiseWrapper(),null===(jo=(0,r.api)("chrome.privacy.websites.protectedContentEnabled.get"))||void 0===jo||jo.addPromiseWrapper(),null===(Oo=(0,r.api)("chrome.privacy.websites.protectedContentEnabled.set"))||void 0===Oo||Oo.addPromiseWrapper(),null===(Ro=(0,r.api)("chrome.privacy.websites.referrersEnabled.clear"))||void 0===Ro||Ro.addPromiseWrapper(),null===(Po=(0,r.api)("chrome.privacy.websites.referrersEnabled.get"))||void 0===Po||Po.addPromiseWrapper(),null===(Co=(0,r.api)("chrome.privacy.websites.referrersEnabled.set"))||void 0===Co||Co.addPromiseWrapper(),null===(Lo=(0,r.api)("chrome.privacy.websites.thirdPartyCookiesAllowed.clear"))||void 0===Lo||Lo.addPromiseWrapper(),null===(No=(0,r.api)("chrome.privacy.websites.thirdPartyCookiesAllowed.get"))||void 0===No||No.addPromiseWrapper(),null===(xo=(0,r.api)("chrome.privacy.websites.thirdPartyCookiesAllowed.set"))||void 0===xo||xo.addPromiseWrapper(),null===(Mo=(0,r.api)("chrome.privacy.websites.topicsEnabled.clear"))||void 0===Mo||Mo.addPromiseWrapper(),null===(Uo=(0,r.api)("chrome.privacy.websites.topicsEnabled.get"))||void 0===Uo||Uo.addPromiseWrapper(),null===(Io=(0,r.api)("chrome.privacy.websites.topicsEnabled.set"))||void 0===Io||Io.addPromiseWrapper()),null!=chrome.proxy&&(null===(_o=(0,r.api)("chrome.proxy.settings.clear"))||void 0===_o||_o.addPromiseWrapper(),null===(Wo=(0,r.api)("chrome.proxy.settings.get"))||void 0===Wo||Wo.addPromiseWrapper(),null===(zo=(0,r.api)("chrome.proxy.settings.set"))||void 0===zo||zo.addPromiseWrapper()),null===(Do=(0,r.api)("chrome.runtime.getBackgroundPage"))||void 0===Do||Do.addPromiseWrapper(),null===(Fo=(0,r.api)("chrome.runtime.getPackageDirectoryEntry"))||void 0===Fo||Fo.addPromiseWrapper(),null===(qo=(0,r.api)("chrome.runtime.getPlatformInfo"))||void 0===qo||qo.addPromiseWrapper(),null===(Vo=(0,r.api)("chrome.runtime.openOptionsPage"))||void 0===Vo||Vo.addPromiseWrapper(),null===(Xo=(0,r.api)("chrome.runtime.requestUpdateCheck"))||void 0===Xo||Xo.addPromiseWrapper(),null===(Jo=(0,r.api)("chrome.runtime.restartAfterDelay"))||void 0===Jo||Jo.addPromiseWrapper(),null===(Zo=(0,r.api)("chrome.runtime.sendMessage"))||void 0===Zo||Zo.addPromiseWrapper(),null===(Ko=(0,r.api)("chrome.runtime.sendNativeMessage"))||void 0===Ko||Ko.addPromiseWrapper(),null===(Go=(0,r.api)("chrome.runtime.setUninstallURL"))||void 0===Go||Go.addPromiseWrapper(),null!=chrome.scripting&&(null===(Ho=(0,r.api)("chrome.scripting.executeScript"))||void 0===Ho||Ho.addPromiseWrapper(),null===(Bo=(0,r.api)("chrome.scripting.getRegisteredContentScripts"))||void 0===Bo||Bo.addPromiseWrapper(),null===(Yo=(0,r.api)("chrome.scripting.insertCSS"))||void 0===Yo||Yo.addPromiseWrapper(),null===(Qo=(0,r.api)("chrome.scripting.registerContentScripts"))||void 0===Qo||Qo.addPromiseWrapper(),null===($o=(0,r.api)("chrome.scripting.removeCSS"))||void 0===$o||$o.addPromiseWrapper(),null===(ea=(0,r.api)("chrome.scripting.unregisterContentScripts"))||void 0===ea||ea.addPromiseWrapper(),null===(ta=(0,r.api)("chrome.scripting.updateContentScripts"))||void 0===ta||ta.addPromiseWrapper()),null!=chrome.search&&(null===(na=(0,r.api)("chrome.search.query"))||void 0===na||na.addPromiseWrapper()),null!=chrome.sessions&&(null===(ra=(0,r.api)("chrome.sessions.getDevices"))||void 0===ra||ra.addPromiseWrapper(),null===(ia=(0,r.api)("chrome.sessions.getRecentlyClosed"))||void 0===ia||ia.addPromiseWrapper(),null===(oa=(0,r.api)("chrome.sessions.restore"))||void 0===oa||oa.addPromiseWrapper()),null!=chrome.storage&&(null===(aa=(0,r.api)("chrome.storage.local.getBytesInUse"))||void 0===aa||aa.addPromiseWrapper(),null===(sa=(0,r.api)("chrome.storage.local.clear"))||void 0===sa||sa.addPromiseWrapper(),null===(Aa=(0,r.api)("chrome.storage.local.set"))||void 0===Aa||Aa.addPromiseWrapper(),null===(ca=(0,r.api)("chrome.storage.local.remove"))||void 0===ca||ca.addPromiseWrapper(),null===(ua=(0,r.api)("chrome.storage.local.get"))||void 0===ua||ua.addPromiseWrapper(),null===(la=(0,r.api)("chrome.storage.managed.getBytesInUse"))||void 0===la||la.addPromiseWrapper(),null===(da=(0,r.api)("chrome.storage.managed.clear"))||void 0===da||da.addPromiseWrapper(),null===(pa=(0,r.api)("chrome.storage.managed.set"))||void 0===pa||pa.addPromiseWrapper(),null===(ha=(0,r.api)("chrome.storage.managed.remove"))||void 0===ha||ha.addPromiseWrapper(),null===(fa=(0,r.api)("chrome.storage.managed.get"))||void 0===fa||fa.addPromiseWrapper(),null===(ma=(0,r.api)("chrome.storage.sync.getBytesInUse"))||void 0===ma||ma.addPromiseWrapper(),null===(ga=(0,r.api)("chrome.storage.sync.clear"))||void 0===ga||ga.addPromiseWrapper(),null===(ya=(0,r.api)("chrome.storage.sync.set"))||void 0===ya||ya.addPromiseWrapper(),null===(va=(0,r.api)("chrome.storage.sync.remove"))||void 0===va||va.addPromiseWrapper(),null===(ba=(0,r.api)("chrome.storage.sync.get"))||void 0===ba||ba.addPromiseWrapper()),null!=(null===(ka=chrome.system)||void 0===ka?void 0:ka.cpu)&&(null===(Sa=(0,r.api)("chrome.system.cpu.getInfo"))||void 0===Sa||Sa.addPromiseWrapper()),null!=(null===(Ta=chrome.system)||void 0===Ta?void 0:Ta.display)&&(null===(wa=(0,r.api)("chrome.system.display.getDisplayLayout"))||void 0===wa||wa.addPromiseWrapper(),null===(Ea=(0,r.api)("chrome.system.display.getInfo"))||void 0===Ea||Ea.addPromiseWrapper(),null===(ja=(0,r.api)("chrome.system.display.setDisplayLayout"))||void 0===ja||ja.addPromiseWrapper(),null===(Oa=(0,r.api)("chrome.system.display.setDisplayProperties"))||void 0===Oa||Oa.addPromiseWrapper(),null===(Ra=(0,r.api)("chrome.system.display.setMirrorMode"))||void 0===Ra||Ra.addPromiseWrapper(),null===(Pa=(0,r.api)("chrome.system.display.showNativeTouchCalibration"))||void 0===Pa||Pa.addPromiseWrapper()),null!=(null===(Ca=chrome.system)||void 0===Ca?void 0:Ca.memory)&&(null===(La=(0,r.api)("chrome.system.memory.getInfo"))||void 0===La||La.addPromiseWrapper()),null!=(null===(Na=chrome.system)||void 0===Na?void 0:Na.storage)&&(null===(xa=(0,r.api)("chrome.system.storage.ejectDevice"))||void 0===xa||xa.addPromiseWrapper(),null===(Ma=(0,r.api)("chrome.system.storage.getInfo"))||void 0===Ma||Ma.addPromiseWrapper()),null!=chrome.tabCapture&&(null===(Ua=(0,r.api)("chrome.tabCapture.capture"))||void 0===Ua||Ua.addPromiseWrapper(),null===(Ia=(0,r.api)("chrome.tabCapture.getCapturedTabs"))||void 0===Ia||Ia.addPromiseWrapper(),null===(_a=(0,r.api)("chrome.tabCapture.getMediaStreamId"))||void 0===_a||_a.addPromiseWrapper()),null!=chrome.tabGroups&&(null===(Wa=(0,r.api)("chrome.tabGroups.get"))||void 0===Wa||Wa.addPromiseWrapper(),null===(za=(0,r.api)("chrome.tabGroups.move"))||void 0===za||za.addPromiseWrapper(),null===(Da=(0,r.api)("chrome.tabGroups.query"))||void 0===Da||Da.addPromiseWrapper(),null===(Fa=(0,r.api)("chrome.tabGroups.update"))||void 0===Fa||Fa.addPromiseWrapper()),null!=chrome.tabs&&(null===(qa=(0,r.api)("chrome.tabs.captureVisibleTab"))||void 0===qa||qa.addPromiseWrapper(),null===(Va=(0,r.api)("chrome.tabs.create"))||void 0===Va||Va.addPromiseWrapper(),null===(Xa=(0,r.api)("chrome.tabs.detectLanguage"))||void 0===Xa||Xa.addPromiseWrapper(),null===(Ja=(0,r.api)("chrome.tabs.discard"))||void 0===Ja||Ja.addPromiseWrapper(),null===(Za=(0,r.api)("chrome.tabs.duplicate"))||void 0===Za||Za.addPromiseWrapper(),null===(Ka=(0,r.api)("chrome.tabs.executeScript"))||void 0===Ka||Ka.addPromiseWrapper(),null===(Ga=(0,r.api)("chrome.tabs.get"))||void 0===Ga||Ga.addPromiseWrapper(),null===(Ha=(0,r.api)("chrome.tabs.getAllInWindow"))||void 0===Ha||Ha.addPromiseWrapper(),null===(Ba=(0,r.api)("chrome.tabs.getSelected"))||void 0===Ba||Ba.addPromiseWrapper(),null===(Ya=(0,r.api)("chrome.tabs.getCurrent"))||void 0===Ya||Ya.addPromiseWrapper(),null===(Qa=(0,r.api)("chrome.tabs.getZoom"))||void 0===Qa||Qa.addPromiseWrapper(),null===($a=(0,r.api)("chrome.tabs.getZoomSettings"))||void 0===$a||$a.addPromiseWrapper(),null===(es=(0,r.api)("chrome.tabs.goBack"))||void 0===es||es.addPromiseWrapper(),null===(ts=(0,r.api)("chrome.tabs.goForward"))||void 0===ts||ts.addPromiseWrapper(),null===(ns=(0,r.api)("chrome.tabs.group"))||void 0===ns||ns.addPromiseWrapper(),null===(rs=(0,r.api)("chrome.tabs.highlight"))||void 0===rs||rs.addPromiseWrapper(),null===(is=(0,r.api)("chrome.tabs.insertCSS"))||void 0===is||is.addPromiseWrapper(),null===(os=(0,r.api)("chrome.tabs.move"))||void 0===os||os.addPromiseWrapper(),null===(as=(0,r.api)("chrome.tabs.query"))||void 0===as||as.addPromiseWrapper(),null===(ss=(0,r.api)("chrome.tabs.reload"))||void 0===ss||ss.addPromiseWrapper(),null===(As=(0,r.api)("chrome.tabs.remove"))||void 0===As||As.addPromiseWrapper(),null===(cs=(0,r.api)("chrome.tabs.sendMessage"))||void 0===cs||cs.addPromiseWrapper(),null===(us=(0,r.api)("chrome.tabs.ungroup"))||void 0===us||us.addPromiseWrapper(),null===(ls=(0,r.api)("chrome.tabs.update"))||void 0===ls||ls.addPromiseWrapper()),null!=chrome.topSites&&(null===(ds=(0,r.api)("chrome.topSites.get"))||void 0===ds||ds.addPromiseWrapper()),null!=chrome.tts&&(null===(ps=(0,r.api)("chrome.tts.getVoices"))||void 0===ps||ps.addPromiseWrapper(),null===(hs=(0,r.api)("chrome.tts.isSpeaking"))||void 0===hs||hs.addPromiseWrapper(),null===(fs=(0,r.api)("chrome.tts.speak"))||void 0===fs||fs.addPromiseWrapper()),null!=chrome.vpnProvider&&(null===(ms=(0,r.api)("chrome.vpnProvider.createConfig"))||void 0===ms||ms.addPromiseWrapper(),null===(gs=(0,r.api)("chrome.vpnProvider.destroyConfig"))||void 0===gs||gs.addPromiseWrapper(),null===(ys=(0,r.api)("chrome.vpnProvider.notifyConnectionStateChanged"))||void 0===ys||ys.addPromiseWrapper(),null===(vs=(0,r.api)("chrome.vpnProvider.sendPacket"))||void 0===vs||vs.addPromiseWrapper(),null===(bs=(0,r.api)("chrome.vpnProvider.setParameters"))||void 0===bs||bs.addPromiseWrapper()),null!=chrome.wallpaper&&(null===(ks=(0,r.api)("chrome.wallpaper.setWallpaper"))||void 0===ks||ks.addPromiseWrapper()),null!=chrome.webNavigation&&(null===(Ss=(0,r.api)("chrome.webNavigation.getAllFrames"))||void 0===Ss||Ss.addPromiseWrapper(),null===(Ts=(0,r.api)("chrome.webNavigation.getFrame"))||void 0===Ts||Ts.addPromiseWrapper()),null!=chrome.webRequest&&(null===(ws=(0,r.api)("chrome.webRequest.handlerBehaviorChanged"))||void 0===ws||ws.addPromiseWrapper()),null!=chrome.windows&&(null===(Es=(0,r.api)("chrome.windows.create"))||void 0===Es||Es.addPromiseWrapper(),null===(js=(0,r.api)("chrome.windows.get"))||void 0===js||js.addPromiseWrapper(),null===(Os=(0,r.api)("chrome.windows.getAll"))||void 0===Os||Os.addPromiseWrapper(),null===(Rs=(0,r.api)("chrome.windows.getCurrent"))||void 0===Rs||Rs.addPromiseWrapper(),null===(Ps=(0,r.api)("chrome.windows.getLastFocused"))||void 0===Ps||Ps.addPromiseWrapper(),null===(Cs=(0,r.api)("chrome.windows.remove"))||void 0===Cs||Cs.addPromiseWrapper(),null===(Ls=(0,r.api)("chrome.windows.update"))||void 0===Ls||Ls.addPromiseWrapper()),null!=chrome.browserAction&&(null===(Ns=(0,r.api)("chrome.browserAction.disable"))||void 0===Ns||Ns.addAlias("chrome.action.disable"),null===(xs=(0,r.api)("chrome.browserAction.enable"))||void 0===xs||xs.addAlias("chrome.action.enable"),null===(Ms=(0,r.api)("chrome.browserAction.getBadgeBackgroundColor"))||void 0===Ms||Ms.addAlias("chrome.action.getBadgeBackgroundColor"),null===(Us=(0,r.api)("chrome.browserAction.getBadgeText"))||void 0===Us||Us.addAlias("chrome.action.getBadgeText"),null===(Is=(0,r.api)("chrome.browserAction.getPopup"))||void 0===Is||Is.addAlias("chrome.action.getPopup"),null===(_s=(0,r.api)("chrome.browserAction.getTitle"))||void 0===_s||_s.addAlias("chrome.action.getTitle"),null===(Ws=(0,r.api)("chrome.browserAction.setBadgeBackgroundColor"))||void 0===Ws||Ws.addAlias("chrome.action.setBadgeBackgroundColor"),null===(zs=(0,r.api)("chrome.browserAction.setBadgeText"))||void 0===zs||zs.addAlias("chrome.action.setBadgeText"),null===(Ds=(0,r.api)("chrome.browserAction.setIcon"))||void 0===Ds||Ds.addAlias("chrome.action.setIcon"),null===(Fs=(0,r.api)("chrome.browserAction.setPopup"))||void 0===Fs||Fs.addAlias("chrome.action.setPopup"),null===(qs=(0,r.api)("chrome.browserAction.setTitle"))||void 0===qs||qs.addAlias("chrome.action.setTitle")),null===(Vs=(0,r.api)("chrome.action.getBadgeTextColor"))||void 0===Vs||Vs.addStub([0,0,0,1]),null===(Xs=(0,r.api)("chrome.action.getUserSettings"))||void 0===Xs||Xs.addStub({isOnToolbar:!1}),null===(Js=(0,r.api)("chrome.action.isEnabled"))||void 0===Js||Js.addStub(!0),null===(Zs=(0,r.api)("chrome.action.openPopup"))||void 0===Zs||Zs.addStub(),null===(Ks=(0,r.api)("chrome.action.setBadgeTextColor"))||void 0===Ks||Ks.addStub(),null===(Gs=(0,r.api)("chrome.system.storage.getAvailableCapacity"))||void 0===Gs||Gs.addPromiseWrapper())},1006:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{static throwErrorIfChromeRuntimeNotSupported(){if(!r.isChromeRuntimeSupported())throw new Error(r.noChromeRuntimeError)}static isChromeRuntimeSupported(){var e;return!!(null===(e=n.g.chrome)||void 0===e?void 0:e.runtime)}static isChromeOnStartupSupported(){var e,t;return!!(null===(t=null===(e=n.g.chrome)||void 0===e?void 0:e.runtime)||void 0===t?void 0:t.onStartup)}static isChromeSendMessageSupported(){var e,t;return void 0!==(null===(t=null===(e=n.g.chrome)||void 0===e?void 0:e.runtime)||void 0===t?void 0:t.sendMessage)}static addOnInstalledListener(e){r.throwErrorIfChromeRuntimeNotSupported(),chrome.runtime.onInstalled.addListener(e)}static addOnStartupListener(e){r.throwErrorIfChromeRuntimeNotSupported(),chrome.runtime.onStartup.addListener(e)}}t.default=r,r.noChromeRuntimeError="chrome.runtime API not available. Please make sure this module is running inside a chrome extension"},1580:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(n(1006));let o=null,a=[];const s=()=>{a.forEach((e=>{e()})),a=[]};i.default.isChromeOnStartupSupported()&&(i.default.addOnStartupListener((()=>{null===o&&(o=!0,s())})),i.default.addOnInstalledListener((()=>{null===o&&(o=!0,s())})),setTimeout((()=>{null===o&&(o=!1,s())}),100)),t.default=class{static waitTillStartUp(){return new Promise((e=>{null===o&&i.default.isChromeOnStartupSupported()?a.push((()=>{e()})):e()}))}static isSessionRestart(){return null===o||o}}},7945:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{static throwErrorIfStorageNotSupported(){if(!r.isStorageSupported())throw new Error(r.noChromeLocalStorageError)}static isStorageSupported(){var e;return!!(null===(e=n.g.chrome)||void 0===e?void 0:e.storage)}static setData(e,t){return new Promise(((n,i)=>{r.throwErrorIfStorageNotSupported();const o={};o[e]=t,chrome.storage.local.set(o,(()=>{chrome.runtime.lastError?i(chrome.runtime.lastError):n()}))}))}static setDataObject(e){return new Promise(((t,n)=>{r.throwErrorIfStorageNotSupported(),chrome.storage.local.set(e,(()=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t()}))}))}static getData(e){return new Promise(((t,n)=>{r.throwErrorIfStorageNotSupported(),chrome.storage.local.get(e,(r=>{chrome.runtime.lastError?n(chrome.runtime.lastError):t(r[e])}))}))}static getDataList(e){return new Promise(((t,n)=>{r.throwErrorIfStorageNotSupported(),chrome.storage.local.get(e,(r=>{if(chrome.runtime.lastError)return void n(chrome.runtime.lastError);const i=e.map((e=>r[e]));t(i)}))}))}static removeData(e){return new Promise((t=>{r.throwErrorIfStorageNotSupported(),chrome.storage.local.remove(e,(()=>{t()}))}))}}t.default=r,r.noChromeLocalStorageError='chrome.storage API not available. Please make sure the "storage" permission is given in the chrome extension manifest.'},9723:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getChromeRuntime=void 0,t.getChromeRuntime=function(){return chrome.runtime}},12:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3376:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(A){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DelegationListener=void 0;var r=n(2789),i=n(9723);t.DelegationListener=function(e,t){var n=this;this.setupListeners=function(){(0,i.getChromeRuntime)().onMessageExternal.addListener((function(e,t,i){var o;return console.log("Message received from extension with ID:",t.id),n.isExtensionAllowed(t.id)?(n.processAction(e,i),!0):(console.warn("Extension ID ".concat(null!==(o=t.id)&&void 0!==o?o:""," is not allowed by the listener.")),n.sendErrorMessage(i,new r.GenericError("EXTENSION_ID_NOT_ALLOWED",void 0,"Message was received but the extension ID is not allowed.")),!1)}))},this.isExtensionAllowed=function(e){return void 0!==e&&n.extensionIds.includes(e)},this.processAction=function(e,t){switch(console.log("Processing delegation action:",e.action),e.action){case"IS_LOGGED_IN":n.onIsLoggedIn(t);break;case"LOGIN":n.onLogin(t,e);break;case"LOGOUT":n.onLogout(t);break;case"IS_DELEGATION_ACTIVE":n.onIsDelegationActive(t);break;case"START_DELEGATION":n.onStartDelegation(t);break;case"STOP_DELEGATION":n.onStopDelegation(t);break;case"SEND_VERDICT":n.onSendVerdict(t,e);break;case"SHOULD_IGNORE_SAFETY_NET":n.onShouldIgnoreSafetyNet(t)}},this.onIsLoggedIn=function(e){n.runAction(e,n.callbacks.onIsLoggedIn())},this.onLogin=function(e,t){n.runAction(e,n.callbacks.onLogin(t.token))},this.onLogout=function(e){n.runAction(e,n.callbacks.onLogout())},this.onIsDelegationActive=function(e){n.runAction(e,n.callbacks.onIsDelegationActive())},this.onStartDelegation=function(e){n.runAction(e,n.callbacks.onStartDelegation())},this.onStopDelegation=function(e){n.runAction(e,n.callbacks.onStopDelegation())},this.onSendVerdict=function(e,t){n.runAction(e,n.callbacks.onSendVerdict(t.requestId,t.safeSearch,t.verdict))},this.onShouldIgnoreSafetyNet=function(e){n.runAction(e,n.callbacks.onShouldIgnoreSafetyNet())},this.runAction=function(e,t){t.then((function(t){n.sendResponseMessage(e,t)})).catch((function(t){n.sendErrorMessage(e,t)}))},this.sendResponseMessage=function(e,t){e({response:t,error:void 0})},this.sendErrorMessage=function(e,t){e({response:void 0,error:t})},this.extensionIds=e,this.callbacks=t,this.setupListeners()}},3999:function(e,t){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},n(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0}),t.BaseError=void 0;var i=function(e){function t(t,n){void 0===t&&(t=""),void 0===n&&(n=void 0);var r=e.call(this,t)||this;return r.extensionVersion=n,r}return r(t,e),t}(Error);t.BaseError=i},2789:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.GenericError=void 0;var o=function(e){function t(n,r,i){void 0===r&&(r=void 0),void 0===i&&(i="");var o=e.call(this,i,r)||this;return o.type=n,Object.setPrototypeOf(o,t.prototype),Object.defineProperty(o,"name",{value:"GenericError"}),o}return i(t,e),t}(n(3999).BaseError);t.GenericError=o},8425:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.LoginError=void 0;var o=function(e){function t(n,r,i){void 0===i&&(i="");var o=e.call(this,i,r)||this;return o.type=n,Object.setPrototypeOf(o,t.prototype),Object.defineProperty(o,"name",{value:"LoginError"}),o}return i(t,e),t}(n(3999).BaseError);t.LoginError=o},4608:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.StartDelegationError=void 0;var o=function(e){function t(n,r,i){void 0===i&&(i="");var o=e.call(this,i,r)||this;return o.type=n,Object.setPrototypeOf(o,t.prototype),Object.defineProperty(o,"name",{value:"StartDelegationError"}),o}return i(t,e),t}(n(3999).BaseError);t.StartDelegationError=o},822:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0}),t.StopDelegationError=void 0;var o=function(e){function t(n,r,i){void 0===i&&(i="");var o=e.call(this,i,r)||this;return o.type=n,Object.setPrototypeOf(o,t.prototype),Object.defineProperty(o,"name",{value:"StopDelegationError"}),o}return i(t,e),t}(n(3999).BaseError);t.StopDelegationError=o},6048:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(12),t),i(n(3376),t),i(n(9044),t),i(n(8414),t),i(n(3999),t),i(n(2789),t),i(n(8425),t),i(n(4608),t),i(n(822),t)},2097:function(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(A){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Verdict=void 0,function(e){e[e.Blocked=0]="Blocked",e[e.Allowed=1]="Allowed",e[e.BlockedByTime=2]="BlockedByTime"}(n||(t.Verdict=n={}))},6013:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.safeStringify=void 0,t.safeStringify=function(e){try{return JSON.stringify(e)}catch(e){return console.error("Error while stringifying:",e),""}}},7198:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();i.exportSymbol("proto.api.models.v1.user_details.User",null,o),i.exportSymbol("proto.api.models.v1.user_details.UserLocation",null,o),i.exportSymbol("proto.api.models.v1.user_details.UserName",null,o),i.exportSymbol("proto.api.models.v1.user_details.UserPhone",null,o),proto.api.models.v1.user_details.User=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.models.v1.user_details.User,r.Message),i.DEBUG&&!COMPILED&&(proto.api.models.v1.user_details.User.displayName="proto.api.models.v1.user_details.User"),proto.api.models.v1.user_details.UserName=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.models.v1.user_details.UserName,r.Message),i.DEBUG&&!COMPILED&&(proto.api.models.v1.user_details.UserName.displayName="proto.api.models.v1.user_details.UserName"),proto.api.models.v1.user_details.UserPhone=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.models.v1.user_details.UserPhone,r.Message),i.DEBUG&&!COMPILED&&(proto.api.models.v1.user_details.UserPhone.displayName="proto.api.models.v1.user_details.UserPhone"),proto.api.models.v1.user_details.UserLocation=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.models.v1.user_details.UserLocation,r.Message),i.DEBUG&&!COMPILED&&(proto.api.models.v1.user_details.UserLocation.displayName="proto.api.models.v1.user_details.UserLocation"),r.Message.GENERATE_TO_OBJECT&&(proto.api.models.v1.user_details.User.prototype.toObject=function(e){return proto.api.models.v1.user_details.User.toObject(e,this)},proto.api.models.v1.user_details.User.toObject=function(e,t){var n,i={id:r.Message.getFieldWithDefault(t,1,""),username:r.Message.getFieldWithDefault(t,2,""),email:r.Message.getFieldWithDefault(t,3,""),name:(n=t.getName())&&proto.api.models.v1.user_details.UserName.toObject(e,n),date:r.Message.getFieldWithDefault(t,5,""),timezone:r.Message.getFieldWithDefault(t,6,""),trackusage:r.Message.getBooleanFieldWithDefault(t,7,!1),phone:(n=t.getPhone())&&proto.api.models.v1.user_details.UserPhone.toObject(e,n),location:(n=t.getLocation())&&proto.api.models.v1.user_details.UserLocation.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.api.models.v1.user_details.User.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.models.v1.user_details.User;return proto.api.models.v1.user_details.User.deserializeBinaryFromReader(n,t)},proto.api.models.v1.user_details.User.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setId(n);break;case 2:n=t.readString(),e.setUsername(n);break;case 3:n=t.readString(),e.setEmail(n);break;case 4:n=new proto.api.models.v1.user_details.UserName,t.readMessage(n,proto.api.models.v1.user_details.UserName.deserializeBinaryFromReader),e.setName(n);break;case 5:n=t.readString(),e.setDate(n);break;case 6:n=t.readString(),e.setTimezone(n);break;case 7:n=t.readBool(),e.setTrackusage(n);break;case 8:n=new proto.api.models.v1.user_details.UserPhone,t.readMessage(n,proto.api.models.v1.user_details.UserPhone.deserializeBinaryFromReader),e.setPhone(n);break;case 9:n=new proto.api.models.v1.user_details.UserLocation,t.readMessage(n,proto.api.models.v1.user_details.UserLocation.deserializeBinaryFromReader),e.setLocation(n);break;default:t.skipField()}return e},proto.api.models.v1.user_details.User.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.models.v1.user_details.User.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.models.v1.user_details.User.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getId()).length>0&&t.writeString(1,n),(n=e.getUsername()).length>0&&t.writeString(2,n),(n=e.getEmail()).length>0&&t.writeString(3,n),null!=(n=e.getName())&&t.writeMessage(4,n,proto.api.models.v1.user_details.UserName.serializeBinaryToWriter),(n=e.getDate()).length>0&&t.writeString(5,n),(n=e.getTimezone()).length>0&&t.writeString(6,n),(n=e.getTrackusage())&&t.writeBool(7,n),null!=(n=e.getPhone())&&t.writeMessage(8,n,proto.api.models.v1.user_details.UserPhone.serializeBinaryToWriter),null!=(n=e.getLocation())&&t.writeMessage(9,n,proto.api.models.v1.user_details.UserLocation.serializeBinaryToWriter)},proto.api.models.v1.user_details.User.prototype.getId=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.models.v1.user_details.User.prototype.setId=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.models.v1.user_details.User.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.models.v1.user_details.User.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.models.v1.user_details.User.prototype.getEmail=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.models.v1.user_details.User.prototype.setEmail=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.models.v1.user_details.User.prototype.getName=function(){return r.Message.getWrapperField(this,proto.api.models.v1.user_details.UserName,4)},proto.api.models.v1.user_details.User.prototype.setName=function(e){return r.Message.setWrapperField(this,4,e)},proto.api.models.v1.user_details.User.prototype.clearName=function(){return this.setName(void 0)},proto.api.models.v1.user_details.User.prototype.hasName=function(){return null!=r.Message.getField(this,4)},proto.api.models.v1.user_details.User.prototype.getDate=function(){return r.Message.getFieldWithDefault(this,5,"")},proto.api.models.v1.user_details.User.prototype.setDate=function(e){return r.Message.setProto3StringField(this,5,e)},proto.api.models.v1.user_details.User.prototype.getTimezone=function(){return r.Message.getFieldWithDefault(this,6,"")},proto.api.models.v1.user_details.User.prototype.setTimezone=function(e){return r.Message.setProto3StringField(this,6,e)},proto.api.models.v1.user_details.User.prototype.getTrackusage=function(){return r.Message.getBooleanFieldWithDefault(this,7,!1)},proto.api.models.v1.user_details.User.prototype.setTrackusage=function(e){return r.Message.setProto3BooleanField(this,7,e)},proto.api.models.v1.user_details.User.prototype.getPhone=function(){return r.Message.getWrapperField(this,proto.api.models.v1.user_details.UserPhone,8)},proto.api.models.v1.user_details.User.prototype.setPhone=function(e){return r.Message.setWrapperField(this,8,e)},proto.api.models.v1.user_details.User.prototype.clearPhone=function(){return this.setPhone(void 0)},proto.api.models.v1.user_details.User.prototype.hasPhone=function(){return null!=r.Message.getField(this,8)},proto.api.models.v1.user_details.User.prototype.getLocation=function(){return r.Message.getWrapperField(this,proto.api.models.v1.user_details.UserLocation,9)},proto.api.models.v1.user_details.User.prototype.setLocation=function(e){return r.Message.setWrapperField(this,9,e)},proto.api.models.v1.user_details.User.prototype.clearLocation=function(){return this.setLocation(void 0)},proto.api.models.v1.user_details.User.prototype.hasLocation=function(){return null!=r.Message.getField(this,9)},r.Message.GENERATE_TO_OBJECT&&(proto.api.models.v1.user_details.UserName.prototype.toObject=function(e){return proto.api.models.v1.user_details.UserName.toObject(e,this)},proto.api.models.v1.user_details.UserName.toObject=function(e,t){var n={firstname:r.Message.getFieldWithDefault(t,1,""),lastname:r.Message.getFieldWithDefault(t,2,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.models.v1.user_details.UserName.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.models.v1.user_details.UserName;return proto.api.models.v1.user_details.UserName.deserializeBinaryFromReader(n,t)},proto.api.models.v1.user_details.UserName.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setFirstname(n);break;case 2:n=t.readString(),e.setLastname(n);break;default:t.skipField()}return e},proto.api.models.v1.user_details.UserName.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.models.v1.user_details.UserName.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.models.v1.user_details.UserName.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getFirstname()).length>0&&t.writeString(1,n),(n=e.getLastname()).length>0&&t.writeString(2,n)},proto.api.models.v1.user_details.UserName.prototype.getFirstname=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.models.v1.user_details.UserName.prototype.setFirstname=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.models.v1.user_details.UserName.prototype.getLastname=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.models.v1.user_details.UserName.prototype.setLastname=function(e){return r.Message.setProto3StringField(this,2,e)},r.Message.GENERATE_TO_OBJECT&&(proto.api.models.v1.user_details.UserPhone.prototype.toObject=function(e){return proto.api.models.v1.user_details.UserPhone.toObject(e,this)},proto.api.models.v1.user_details.UserPhone.toObject=function(e,t){var n={countrycode:r.Message.getFieldWithDefault(t,1,""),number:r.Message.getFieldWithDefault(t,2,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.models.v1.user_details.UserPhone.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.models.v1.user_details.UserPhone;return proto.api.models.v1.user_details.UserPhone.deserializeBinaryFromReader(n,t)},proto.api.models.v1.user_details.UserPhone.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setCountrycode(n);break;case 2:n=t.readString(),e.setNumber(n);break;default:t.skipField()}return e},proto.api.models.v1.user_details.UserPhone.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.models.v1.user_details.UserPhone.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.models.v1.user_details.UserPhone.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getCountrycode()).length>0&&t.writeString(1,n),(n=e.getNumber()).length>0&&t.writeString(2,n)},proto.api.models.v1.user_details.UserPhone.prototype.getCountrycode=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.models.v1.user_details.UserPhone.prototype.setCountrycode=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.models.v1.user_details.UserPhone.prototype.getNumber=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.models.v1.user_details.UserPhone.prototype.setNumber=function(e){return r.Message.setProto3StringField(this,2,e)},r.Message.GENERATE_TO_OBJECT&&(proto.api.models.v1.user_details.UserLocation.prototype.toObject=function(e){return proto.api.models.v1.user_details.UserLocation.toObject(e,this)},proto.api.models.v1.user_details.UserLocation.toObject=function(e,t){var n={country:r.Message.getFieldWithDefault(t,1,""),suburb:r.Message.getFieldWithDefault(t,2,""),postcode:r.Message.getFieldWithDefault(t,3,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.models.v1.user_details.UserLocation.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.models.v1.user_details.UserLocation;return proto.api.models.v1.user_details.UserLocation.deserializeBinaryFromReader(n,t)},proto.api.models.v1.user_details.UserLocation.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setCountry(n);break;case 2:n=t.readString(),e.setSuburb(n);break;case 3:n=t.readString(),e.setPostcode(n);break;default:t.skipField()}return e},proto.api.models.v1.user_details.UserLocation.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.models.v1.user_details.UserLocation.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.models.v1.user_details.UserLocation.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getCountry()).length>0&&t.writeString(1,n),(n=e.getSuburb()).length>0&&t.writeString(2,n),(n=e.getPostcode()).length>0&&t.writeString(3,n)},proto.api.models.v1.user_details.UserLocation.prototype.getCountry=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.models.v1.user_details.UserLocation.prototype.setCountry=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.models.v1.user_details.UserLocation.prototype.getSuburb=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.models.v1.user_details.UserLocation.prototype.setSuburb=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.models.v1.user_details.UserLocation.prototype.getPostcode=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.models.v1.user_details.UserLocation.prototype.setPostcode=function(e){return r.Message.setProto3StringField(this,3,e)},i.object.extend(t,proto.api.models.v1.user_details)},7741:(e,t,n)=>{var r=n(3157),i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==i&&i||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.api.models.v2.ManagedDeviceState",null,i),proto.api.models.v2.ManagedDeviceState={CREATED:0,ENROLMENT_STARTED:1,ENROLLED:2},r.object.extend(t,proto.api.models.v2)},245:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();i.exportSymbol("proto.api.requests.school_manager.WindowUpdate",null,o),i.exportSymbol("proto.api.requests.school_manager.WindowUpdate.BackgroundTab",null,o),i.exportSymbol("proto.api.requests.school_manager.WindowUpdate.Restricted",null,o),i.exportSymbol("proto.api.requests.school_manager.WindowUpdateRequest",null,o),proto.api.requests.school_manager.WindowUpdateRequest=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.requests.school_manager.WindowUpdateRequest,r.Message),i.DEBUG&&!COMPILED&&(proto.api.requests.school_manager.WindowUpdateRequest.displayName="proto.api.requests.school_manager.WindowUpdateRequest"),proto.api.requests.school_manager.WindowUpdate=function(e){r.Message.initialize(this,e,0,-1,proto.api.requests.school_manager.WindowUpdate.repeatedFields_,null)},i.inherits(proto.api.requests.school_manager.WindowUpdate,r.Message),i.DEBUG&&!COMPILED&&(proto.api.requests.school_manager.WindowUpdate.displayName="proto.api.requests.school_manager.WindowUpdate"),proto.api.requests.school_manager.WindowUpdate.BackgroundTab=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.requests.school_manager.WindowUpdate.BackgroundTab,r.Message),i.DEBUG&&!COMPILED&&(proto.api.requests.school_manager.WindowUpdate.BackgroundTab.displayName="proto.api.requests.school_manager.WindowUpdate.BackgroundTab"),proto.api.requests.school_manager.WindowUpdate.Restricted=function(e){r.Message.initialize(this,e,0,-1,proto.api.requests.school_manager.WindowUpdate.Restricted.repeatedFields_,null)},i.inherits(proto.api.requests.school_manager.WindowUpdate.Restricted,r.Message),i.DEBUG&&!COMPILED&&(proto.api.requests.school_manager.WindowUpdate.Restricted.displayName="proto.api.requests.school_manager.WindowUpdate.Restricted"),r.Message.GENERATE_TO_OBJECT&&(proto.api.requests.school_manager.WindowUpdateRequest.prototype.toObject=function(e){return proto.api.requests.school_manager.WindowUpdateRequest.toObject(e,this)},proto.api.requests.school_manager.WindowUpdateRequest.toObject=function(e,t){var n,i={windowEndpoint:r.Message.getFieldWithDefault(t,1,""),window:(n=t.getWindow())&&proto.api.requests.school_manager.WindowUpdate.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.api.requests.school_manager.WindowUpdateRequest.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.requests.school_manager.WindowUpdateRequest;return proto.api.requests.school_manager.WindowUpdateRequest.deserializeBinaryFromReader(n,t)},proto.api.requests.school_manager.WindowUpdateRequest.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setWindowEndpoint(n);break;case 2:n=new proto.api.requests.school_manager.WindowUpdate,t.readMessage(n,proto.api.requests.school_manager.WindowUpdate.deserializeBinaryFromReader),e.setWindow(n);break;default:t.skipField()}return e},proto.api.requests.school_manager.WindowUpdateRequest.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.requests.school_manager.WindowUpdateRequest.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.requests.school_manager.WindowUpdateRequest.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getWindowEndpoint()).length>0&&t.writeString(1,n),null!=(n=e.getWindow())&&t.writeMessage(2,n,proto.api.requests.school_manager.WindowUpdate.serializeBinaryToWriter)},proto.api.requests.school_manager.WindowUpdateRequest.prototype.getWindowEndpoint=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.requests.school_manager.WindowUpdateRequest.prototype.setWindowEndpoint=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.requests.school_manager.WindowUpdateRequest.prototype.getWindow=function(){return r.Message.getWrapperField(this,proto.api.requests.school_manager.WindowUpdate,2)},proto.api.requests.school_manager.WindowUpdateRequest.prototype.setWindow=function(e){return r.Message.setWrapperField(this,2,e)},proto.api.requests.school_manager.WindowUpdateRequest.prototype.clearWindow=function(){return this.setWindow(void 0)},proto.api.requests.school_manager.WindowUpdateRequest.prototype.hasWindow=function(){return null!=r.Message.getField(this,2)},proto.api.requests.school_manager.WindowUpdate.repeatedFields_=[10,12],r.Message.GENERATE_TO_OBJECT&&(proto.api.requests.school_manager.WindowUpdate.prototype.toObject=function(e){return proto.api.requests.school_manager.WindowUpdate.toObject(e,this)},proto.api.requests.school_manager.WindowUpdate.toObject=function(e,t){var n,i={title:r.Message.getFieldWithDefault(t,1,""),url:r.Message.getFieldWithDefault(t,2,""),favicon:r.Message.getFieldWithDefault(t,3,""),tabId:r.Message.getFieldWithDefault(t,4,""),chromeId:r.Message.getFieldWithDefault(t,5,""),chromeWindowId:r.Message.getFieldWithDefault(t,6,""),action:r.Message.getFieldWithDefault(t,7,""),email:r.Message.getFieldWithDefault(t,8,""),screenshot:r.Message.getFieldWithDefault(t,9,""),backgroundTabsList:r.Message.toObjectList(t.getBackgroundTabsList(),proto.api.requests.school_manager.WindowUpdate.BackgroundTab.toObject,e),platformType:r.Message.getFieldWithDefault(t,11,""),teacheridsList:null==(n=r.Message.getRepeatedField(t,12))?void 0:n,inFocus:r.Message.getBooleanFieldWithDefault(t,13,!1),restricted:(n=t.getRestricted())&&proto.api.requests.school_manager.WindowUpdate.Restricted.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.api.requests.school_manager.WindowUpdate.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.requests.school_manager.WindowUpdate;return proto.api.requests.school_manager.WindowUpdate.deserializeBinaryFromReader(n,t)},proto.api.requests.school_manager.WindowUpdate.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setTitle(n);break;case 2:n=t.readString(),e.setUrl(n);break;case 3:n=t.readString(),e.setFavicon(n);break;case 4:n=t.readString(),e.setTabId(n);break;case 5:n=t.readString(),e.setChromeId(n);break;case 6:n=t.readString(),e.setChromeWindowId(n);break;case 7:n=t.readString(),e.setAction(n);break;case 8:n=t.readString(),e.setEmail(n);break;case 9:n=t.readString(),e.setScreenshot(n);break;case 10:n=new proto.api.requests.school_manager.WindowUpdate.BackgroundTab,t.readMessage(n,proto.api.requests.school_manager.WindowUpdate.BackgroundTab.deserializeBinaryFromReader),e.addBackgroundTabs(n);break;case 11:n=t.readString(),e.setPlatformType(n);break;case 12:n=t.readString(),e.addTeacherids(n);break;case 13:n=t.readBool(),e.setInFocus(n);break;case 14:n=new proto.api.requests.school_manager.WindowUpdate.Restricted,t.readMessage(n,proto.api.requests.school_manager.WindowUpdate.Restricted.deserializeBinaryFromReader),e.setRestricted(n);break;default:t.skipField()}return e},proto.api.requests.school_manager.WindowUpdate.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.requests.school_manager.WindowUpdate.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.requests.school_manager.WindowUpdate.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getTitle()).length>0&&t.writeString(1,n),(n=e.getUrl()).length>0&&t.writeString(2,n),(n=e.getFavicon()).length>0&&t.writeString(3,n),(n=e.getTabId()).length>0&&t.writeString(4,n),(n=e.getChromeId()).length>0&&t.writeString(5,n),(n=e.getChromeWindowId()).length>0&&t.writeString(6,n),(n=e.getAction()).length>0&&t.writeString(7,n),(n=e.getEmail()).length>0&&t.writeString(8,n),(n=e.getScreenshot()).length>0&&t.writeString(9,n),(n=e.getBackgroundTabsList()).length>0&&t.writeRepeatedMessage(10,n,proto.api.requests.school_manager.WindowUpdate.BackgroundTab.serializeBinaryToWriter),(n=e.getPlatformType()).length>0&&t.writeString(11,n),(n=e.getTeacheridsList()).length>0&&t.writeRepeatedString(12,n),(n=e.getInFocus())&&t.writeBool(13,n),null!=(n=e.getRestricted())&&t.writeMessage(14,n,proto.api.requests.school_manager.WindowUpdate.Restricted.serializeBinaryToWriter)},r.Message.GENERATE_TO_OBJECT&&(proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.toObject=function(e){return proto.api.requests.school_manager.WindowUpdate.BackgroundTab.toObject(e,this)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.toObject=function(e,t){var n={favicon:r.Message.getFieldWithDefault(t,1,""),taburl:r.Message.getFieldWithDefault(t,2,""),title:r.Message.getFieldWithDefault(t,3,""),tabId:r.Message.getFieldWithDefault(t,4,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.requests.school_manager.WindowUpdate.BackgroundTab.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.requests.school_manager.WindowUpdate.BackgroundTab;return proto.api.requests.school_manager.WindowUpdate.BackgroundTab.deserializeBinaryFromReader(n,t)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setFavicon(n);break;case 2:n=t.readString(),e.setTaburl(n);break;case 3:n=t.readString(),e.setTitle(n);break;case 4:n=t.readString(),e.setTabId(n);break;default:t.skipField()}return e},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.requests.school_manager.WindowUpdate.BackgroundTab.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getFavicon()).length>0&&t.writeString(1,n),(n=e.getTaburl()).length>0&&t.writeString(2,n),(n=e.getTitle()).length>0&&t.writeString(3,n),(n=e.getTabId()).length>0&&t.writeString(4,n)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.getFavicon=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.setFavicon=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.getTaburl=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.setTaburl=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.getTitle=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.setTitle=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.getTabId=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.api.requests.school_manager.WindowUpdate.BackgroundTab.prototype.setTabId=function(e){return r.Message.setProto3StringField(this,4,e)},proto.api.requests.school_manager.WindowUpdate.Restricted.repeatedFields_=[1,2],r.Message.GENERATE_TO_OBJECT&&(proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.toObject=function(e){return proto.api.requests.school_manager.WindowUpdate.Restricted.toObject(e,this)},proto.api.requests.school_manager.WindowUpdate.Restricted.toObject=function(e,t){var n,i={domainsList:null==(n=r.Message.getRepeatedField(t,1))?void 0:n,appsList:null==(n=r.Message.getRepeatedField(t,2))?void 0:n};return e&&(i.$jspbMessageInstance=t),i}),proto.api.requests.school_manager.WindowUpdate.Restricted.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.requests.school_manager.WindowUpdate.Restricted;return proto.api.requests.school_manager.WindowUpdate.Restricted.deserializeBinaryFromReader(n,t)},proto.api.requests.school_manager.WindowUpdate.Restricted.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.addDomains(n);break;case 2:n=t.readString(),e.addApps(n);break;default:t.skipField()}return e},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.requests.school_manager.WindowUpdate.Restricted.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.requests.school_manager.WindowUpdate.Restricted.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getDomainsList()).length>0&&t.writeRepeatedString(1,n),(n=e.getAppsList()).length>0&&t.writeRepeatedString(2,n)},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.getDomainsList=function(){return r.Message.getRepeatedField(this,1)},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.setDomainsList=function(e){return r.Message.setField(this,1,e||[])},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.addDomains=function(e,t){return r.Message.addToRepeatedField(this,1,e,t)},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.clearDomainsList=function(){return this.setDomainsList([])},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.getAppsList=function(){return r.Message.getRepeatedField(this,2)},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.setAppsList=function(e){return r.Message.setField(this,2,e||[])},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.addApps=function(e,t){return r.Message.addToRepeatedField(this,2,e,t)},proto.api.requests.school_manager.WindowUpdate.Restricted.prototype.clearAppsList=function(){return this.setAppsList([])},proto.api.requests.school_manager.WindowUpdate.prototype.getTitle=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setTitle=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getUrl=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setUrl=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getFavicon=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setFavicon=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getTabId=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setTabId=function(e){return r.Message.setProto3StringField(this,4,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getChromeId=function(){return r.Message.getFieldWithDefault(this,5,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setChromeId=function(e){return r.Message.setProto3StringField(this,5,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getChromeWindowId=function(){return r.Message.getFieldWithDefault(this,6,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setChromeWindowId=function(e){return r.Message.setProto3StringField(this,6,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getAction=function(){return r.Message.getFieldWithDefault(this,7,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setAction=function(e){return r.Message.setProto3StringField(this,7,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getEmail=function(){return r.Message.getFieldWithDefault(this,8,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setEmail=function(e){return r.Message.setProto3StringField(this,8,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getScreenshot=function(){return r.Message.getFieldWithDefault(this,9,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setScreenshot=function(e){return r.Message.setProto3StringField(this,9,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getBackgroundTabsList=function(){return r.Message.getRepeatedWrapperField(this,proto.api.requests.school_manager.WindowUpdate.BackgroundTab,10)},proto.api.requests.school_manager.WindowUpdate.prototype.setBackgroundTabsList=function(e){return r.Message.setRepeatedWrapperField(this,10,e)},proto.api.requests.school_manager.WindowUpdate.prototype.addBackgroundTabs=function(e,t){return r.Message.addToRepeatedWrapperField(this,10,e,proto.api.requests.school_manager.WindowUpdate.BackgroundTab,t)},proto.api.requests.school_manager.WindowUpdate.prototype.clearBackgroundTabsList=function(){return this.setBackgroundTabsList([])},proto.api.requests.school_manager.WindowUpdate.prototype.getPlatformType=function(){return r.Message.getFieldWithDefault(this,11,"")},proto.api.requests.school_manager.WindowUpdate.prototype.setPlatformType=function(e){return r.Message.setProto3StringField(this,11,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getTeacheridsList=function(){return r.Message.getRepeatedField(this,12)},proto.api.requests.school_manager.WindowUpdate.prototype.setTeacheridsList=function(e){return r.Message.setField(this,12,e||[])},proto.api.requests.school_manager.WindowUpdate.prototype.addTeacherids=function(e,t){return r.Message.addToRepeatedField(this,12,e,t)},proto.api.requests.school_manager.WindowUpdate.prototype.clearTeacheridsList=function(){return this.setTeacheridsList([])},proto.api.requests.school_manager.WindowUpdate.prototype.getInFocus=function(){return r.Message.getBooleanFieldWithDefault(this,13,!1)},proto.api.requests.school_manager.WindowUpdate.prototype.setInFocus=function(e){return r.Message.setProto3BooleanField(this,13,e)},proto.api.requests.school_manager.WindowUpdate.prototype.getRestricted=function(){return r.Message.getWrapperField(this,proto.api.requests.school_manager.WindowUpdate.Restricted,14)},proto.api.requests.school_manager.WindowUpdate.prototype.setRestricted=function(e){return r.Message.setWrapperField(this,14,e)},proto.api.requests.school_manager.WindowUpdate.prototype.clearRestricted=function(){return this.setRestricted(void 0)},proto.api.requests.school_manager.WindowUpdate.prototype.hasRestricted=function(){return null!=r.Message.getField(this,14)},i.object.extend(t,proto.api.requests.school_manager)},8776:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();i.exportSymbol("proto.api.responses.school_manager.Event",null,o),i.exportSymbol("proto.api.responses.school_manager.EventHeader",null,o),i.exportSymbol("proto.api.responses.school_manager.EventMessage",null,o),i.exportSymbol("proto.api.responses.school_manager.EventType",null,o),i.exportSymbol("proto.api.responses.school_manager.IceMessage",null,o),i.exportSymbol("proto.api.responses.school_manager.IceServers",null,o),i.exportSymbol("proto.api.responses.school_manager.InitP2PEvent",null,o),proto.api.responses.school_manager.EventMessage=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.school_manager.EventMessage,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.EventMessage.displayName="proto.api.responses.school_manager.EventMessage"),proto.api.responses.school_manager.Event=function(e){r.Message.initialize(this,e,0,-1,proto.api.responses.school_manager.Event.repeatedFields_,null)},i.inherits(proto.api.responses.school_manager.Event,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.Event.displayName="proto.api.responses.school_manager.Event"),proto.api.responses.school_manager.InitP2PEvent=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.school_manager.InitP2PEvent,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.InitP2PEvent.displayName="proto.api.responses.school_manager.InitP2PEvent"),proto.api.responses.school_manager.IceServers=function(e){r.Message.initialize(this,e,0,-1,proto.api.responses.school_manager.IceServers.repeatedFields_,null)},i.inherits(proto.api.responses.school_manager.IceServers,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.IceServers.displayName="proto.api.responses.school_manager.IceServers"),proto.api.responses.school_manager.IceMessage=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.school_manager.IceMessage,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.IceMessage.displayName="proto.api.responses.school_manager.IceMessage"),proto.api.responses.school_manager.EventHeader=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.school_manager.EventHeader,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.school_manager.EventHeader.displayName="proto.api.responses.school_manager.EventHeader"),r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.EventMessage.prototype.toObject=function(e){return proto.api.responses.school_manager.EventMessage.toObject(e,this)},proto.api.responses.school_manager.EventMessage.toObject=function(e,t){var n={timestamp:r.Message.getFieldWithDefault(t,1,""),event:r.Message.getFieldWithDefault(t,2,0),value:r.Message.getFieldWithDefault(t,3,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.responses.school_manager.EventMessage.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.EventMessage;return proto.api.responses.school_manager.EventMessage.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.EventMessage.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setTimestamp(n);break;case 2:n=t.readEnum(),e.setEvent(n);break;case 3:n=t.readString(),e.setValue(n);break;default:t.skipField()}return e},proto.api.responses.school_manager.EventMessage.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.EventMessage.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.EventMessage.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getTimestamp()).length>0&&t.writeString(1,n),0!==(n=e.getEvent())&&t.writeEnum(2,n),(n=e.getValue()).length>0&&t.writeString(3,n)},proto.api.responses.school_manager.EventMessage.prototype.getTimestamp=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.school_manager.EventMessage.prototype.setTimestamp=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.school_manager.EventMessage.prototype.getEvent=function(){return r.Message.getFieldWithDefault(this,2,0)},proto.api.responses.school_manager.EventMessage.prototype.setEvent=function(e){return r.Message.setProto3EnumField(this,2,e)},proto.api.responses.school_manager.EventMessage.prototype.getValue=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.responses.school_manager.EventMessage.prototype.setValue=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.responses.school_manager.Event.repeatedFields_=[1],r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.Event.prototype.toObject=function(e){return proto.api.responses.school_manager.Event.toObject(e,this)},proto.api.responses.school_manager.Event.toObject=function(e,t){var n={messagesList:r.Message.toObjectList(t.getMessagesList(),proto.api.responses.school_manager.EventMessage.toObject,e)};return e&&(n.$jspbMessageInstance=t),n}),proto.api.responses.school_manager.Event.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.Event;return proto.api.responses.school_manager.Event.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.Event.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var n=new proto.api.responses.school_manager.EventMessage;t.readMessage(n,proto.api.responses.school_manager.EventMessage.deserializeBinaryFromReader),e.addMessages(n)}else t.skipField();return e},proto.api.responses.school_manager.Event.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.Event.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.Event.serializeBinaryToWriter=function(e,t){var n;(n=e.getMessagesList()).length>0&&t.writeRepeatedMessage(1,n,proto.api.responses.school_manager.EventMessage.serializeBinaryToWriter)},proto.api.responses.school_manager.Event.prototype.getMessagesList=function(){return r.Message.getRepeatedWrapperField(this,proto.api.responses.school_manager.EventMessage,1)},proto.api.responses.school_manager.Event.prototype.setMessagesList=function(e){return r.Message.setRepeatedWrapperField(this,1,e)},proto.api.responses.school_manager.Event.prototype.addMessages=function(e,t){return r.Message.addToRepeatedWrapperField(this,1,e,proto.api.responses.school_manager.EventMessage,t)},proto.api.responses.school_manager.Event.prototype.clearMessagesList=function(){return this.setMessagesList([])},r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.InitP2PEvent.prototype.toObject=function(e){return proto.api.responses.school_manager.InitP2PEvent.toObject(e,this)},proto.api.responses.school_manager.InitP2PEvent.toObject=function(e,t){var n,i={header:(n=t.getHeader())&&proto.api.responses.school_manager.EventHeader.toObject(e,n),channel:r.Message.getFieldWithDefault(t,2,""),signalhost:r.Message.getFieldWithDefault(t,3,""),signaltoken:r.Message.getFieldWithDefault(t,4,""),signalexpiryepochseconds:r.Message.getFloatingPointFieldWithDefault(t,5,0),remotepeerid:r.Message.getFieldWithDefault(t,6,""),ice:(n=t.getIce())&&proto.api.responses.school_manager.IceMessage.toObject(e,n),peeragentid:r.Message.getFieldWithDefault(t,8,"")};return e&&(i.$jspbMessageInstance=t),i}),proto.api.responses.school_manager.InitP2PEvent.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.InitP2PEvent;return proto.api.responses.school_manager.InitP2PEvent.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.InitP2PEvent.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=new proto.api.responses.school_manager.EventHeader;t.readMessage(n,proto.api.responses.school_manager.EventHeader.deserializeBinaryFromReader),e.setHeader(n);break;case 2:n=t.readString(),e.setChannel(n);break;case 3:n=t.readString(),e.setSignalhost(n);break;case 4:n=t.readString(),e.setSignaltoken(n);break;case 5:n=t.readFloat(),e.setSignalexpiryepochseconds(n);break;case 6:n=t.readString(),e.setRemotepeerid(n);break;case 7:n=new proto.api.responses.school_manager.IceMessage,t.readMessage(n,proto.api.responses.school_manager.IceMessage.deserializeBinaryFromReader),e.setIce(n);break;case 8:n=t.readString(),e.setPeeragentid(n);break;default:t.skipField()}return e},proto.api.responses.school_manager.InitP2PEvent.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.InitP2PEvent.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.InitP2PEvent.serializeBinaryToWriter=function(e,t){var n=void 0;null!=(n=e.getHeader())&&t.writeMessage(1,n,proto.api.responses.school_manager.EventHeader.serializeBinaryToWriter),(n=e.getChannel()).length>0&&t.writeString(2,n),(n=e.getSignalhost()).length>0&&t.writeString(3,n),(n=e.getSignaltoken()).length>0&&t.writeString(4,n),0!==(n=e.getSignalexpiryepochseconds())&&t.writeFloat(5,n),(n=e.getRemotepeerid()).length>0&&t.writeString(6,n),null!=(n=e.getIce())&&t.writeMessage(7,n,proto.api.responses.school_manager.IceMessage.serializeBinaryToWriter),(n=e.getPeeragentid()).length>0&&t.writeString(8,n)},proto.api.responses.school_manager.InitP2PEvent.prototype.getHeader=function(){return r.Message.getWrapperField(this,proto.api.responses.school_manager.EventHeader,1)},proto.api.responses.school_manager.InitP2PEvent.prototype.setHeader=function(e){return r.Message.setWrapperField(this,1,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.clearHeader=function(){return this.setHeader(void 0)},proto.api.responses.school_manager.InitP2PEvent.prototype.hasHeader=function(){return null!=r.Message.getField(this,1)},proto.api.responses.school_manager.InitP2PEvent.prototype.getChannel=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.responses.school_manager.InitP2PEvent.prototype.setChannel=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.getSignalhost=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.responses.school_manager.InitP2PEvent.prototype.setSignalhost=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.getSignaltoken=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.api.responses.school_manager.InitP2PEvent.prototype.setSignaltoken=function(e){return r.Message.setProto3StringField(this,4,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.getSignalexpiryepochseconds=function(){return r.Message.getFloatingPointFieldWithDefault(this,5,0)},proto.api.responses.school_manager.InitP2PEvent.prototype.setSignalexpiryepochseconds=function(e){return r.Message.setProto3FloatField(this,5,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.getRemotepeerid=function(){return r.Message.getFieldWithDefault(this,6,"")},proto.api.responses.school_manager.InitP2PEvent.prototype.setRemotepeerid=function(e){return r.Message.setProto3StringField(this,6,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.getIce=function(){return r.Message.getWrapperField(this,proto.api.responses.school_manager.IceMessage,7)},proto.api.responses.school_manager.InitP2PEvent.prototype.setIce=function(e){return r.Message.setWrapperField(this,7,e)},proto.api.responses.school_manager.InitP2PEvent.prototype.clearIce=function(){return this.setIce(void 0)},proto.api.responses.school_manager.InitP2PEvent.prototype.hasIce=function(){return null!=r.Message.getField(this,7)},proto.api.responses.school_manager.InitP2PEvent.prototype.getPeeragentid=function(){return r.Message.getFieldWithDefault(this,8,"")},proto.api.responses.school_manager.InitP2PEvent.prototype.setPeeragentid=function(e){return r.Message.setProto3StringField(this,8,e)},proto.api.responses.school_manager.IceServers.repeatedFields_=[3],r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.IceServers.prototype.toObject=function(e){return proto.api.responses.school_manager.IceServers.toObject(e,this)},proto.api.responses.school_manager.IceServers.toObject=function(e,t){var n,i={username:r.Message.getFieldWithDefault(t,1,""),credential:r.Message.getFieldWithDefault(t,2,""),urlsList:null==(n=r.Message.getRepeatedField(t,3))?void 0:n};return e&&(i.$jspbMessageInstance=t),i}),proto.api.responses.school_manager.IceServers.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.IceServers;return proto.api.responses.school_manager.IceServers.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.IceServers.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setUsername(n);break;case 2:n=t.readString(),e.setCredential(n);break;case 3:n=t.readString(),e.addUrls(n);break;default:t.skipField()}return e},proto.api.responses.school_manager.IceServers.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.IceServers.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.IceServers.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getUsername()).length>0&&t.writeString(1,n),(n=e.getCredential()).length>0&&t.writeString(2,n),(n=e.getUrlsList()).length>0&&t.writeRepeatedString(3,n)},proto.api.responses.school_manager.IceServers.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.school_manager.IceServers.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.school_manager.IceServers.prototype.getCredential=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.responses.school_manager.IceServers.prototype.setCredential=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.responses.school_manager.IceServers.prototype.getUrlsList=function(){return r.Message.getRepeatedField(this,3)},proto.api.responses.school_manager.IceServers.prototype.setUrlsList=function(e){return r.Message.setField(this,3,e||[])},proto.api.responses.school_manager.IceServers.prototype.addUrls=function(e,t){return r.Message.addToRepeatedField(this,3,e,t)},proto.api.responses.school_manager.IceServers.prototype.clearUrlsList=function(){return this.setUrlsList([])},r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.IceMessage.prototype.toObject=function(e){return proto.api.responses.school_manager.IceMessage.toObject(e,this)},proto.api.responses.school_manager.IceMessage.toObject=function(e,t){var n,r={iceservers:(n=t.getIceservers())&&proto.api.responses.school_manager.IceServers.toObject(e,n)};return e&&(r.$jspbMessageInstance=t),r}),proto.api.responses.school_manager.IceMessage.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.IceMessage;return proto.api.responses.school_manager.IceMessage.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.IceMessage.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var n=new proto.api.responses.school_manager.IceServers;t.readMessage(n,proto.api.responses.school_manager.IceServers.deserializeBinaryFromReader),e.setIceservers(n)}else t.skipField();return e},proto.api.responses.school_manager.IceMessage.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.IceMessage.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.IceMessage.serializeBinaryToWriter=function(e,t){var n;null!=(n=e.getIceservers())&&t.writeMessage(1,n,proto.api.responses.school_manager.IceServers.serializeBinaryToWriter)},proto.api.responses.school_manager.IceMessage.prototype.getIceservers=function(){return r.Message.getWrapperField(this,proto.api.responses.school_manager.IceServers,1)},proto.api.responses.school_manager.IceMessage.prototype.setIceservers=function(e){return r.Message.setWrapperField(this,1,e)},proto.api.responses.school_manager.IceMessage.prototype.clearIceservers=function(){return this.setIceservers(void 0)},proto.api.responses.school_manager.IceMessage.prototype.hasIceservers=function(){return null!=r.Message.getField(this,1)},r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.school_manager.EventHeader.prototype.toObject=function(e){return proto.api.responses.school_manager.EventHeader.toObject(e,this)},proto.api.responses.school_manager.EventHeader.toObject=function(e,t){var n={timestampepochms:r.Message.getFieldWithDefault(t,1,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.responses.school_manager.EventHeader.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.school_manager.EventHeader;return proto.api.responses.school_manager.EventHeader.deserializeBinaryFromReader(n,t)},proto.api.responses.school_manager.EventHeader.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var n=t.readString();e.setTimestampepochms(n)}else t.skipField();return e},proto.api.responses.school_manager.EventHeader.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.school_manager.EventHeader.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.school_manager.EventHeader.serializeBinaryToWriter=function(e,t){var n;(n=e.getTimestampepochms()).length>0&&t.writeString(1,n)},proto.api.responses.school_manager.EventHeader.prototype.getTimestampepochms=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.school_manager.EventHeader.prototype.setTimestampepochms=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.school_manager.EventType={MESSAGE:0,OPEN_TAB:1,POLICY_UPDATE:2,CLASS_STARTED:3,INIT_P2P:4,CONFIG_UPDATE:5,CLOSE_TAB:6},i.object.extend(t,proto.api.responses.school_manager)},619:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=n(7741);i.object.extend(proto,a),i.exportSymbol("proto.api.responses.v2.AutoEnrolResponse",null,o),i.exportSymbol("proto.api.responses.v2.AutoEnrolmentDetails",null,o),proto.api.responses.v2.AutoEnrolResponse=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.v2.AutoEnrolResponse,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.v2.AutoEnrolResponse.displayName="proto.api.responses.v2.AutoEnrolResponse"),proto.api.responses.v2.AutoEnrolmentDetails=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.v2.AutoEnrolmentDetails,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.v2.AutoEnrolmentDetails.displayName="proto.api.responses.v2.AutoEnrolmentDetails"),r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.v2.AutoEnrolResponse.prototype.toObject=function(e){return proto.api.responses.v2.AutoEnrolResponse.toObject(e,this)},proto.api.responses.v2.AutoEnrolResponse.toObject=function(e,t){var n,i={id:r.Message.getFieldWithDefault(t,1,""),authtoken:r.Message.getFieldWithDefault(t,2,""),state:r.Message.getFieldWithDefault(t,3,0),mac:r.Message.getFieldWithDefault(t,4,""),providerauth:(n=t.getProviderauth())&&proto.api.responses.v2.AutoEnrolmentDetails.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.api.responses.v2.AutoEnrolResponse.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.v2.AutoEnrolResponse;return proto.api.responses.v2.AutoEnrolResponse.deserializeBinaryFromReader(n,t)},proto.api.responses.v2.AutoEnrolResponse.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setId(n);break;case 2:n=t.readString(),e.setAuthtoken(n);break;case 3:n=t.readEnum(),e.setState(n);break;case 4:n=t.readString(),e.setMac(n);break;case 5:n=new proto.api.responses.v2.AutoEnrolmentDetails,t.readMessage(n,proto.api.responses.v2.AutoEnrolmentDetails.deserializeBinaryFromReader),e.setProviderauth(n);break;default:t.skipField()}return e},proto.api.responses.v2.AutoEnrolResponse.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.v2.AutoEnrolResponse.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.v2.AutoEnrolResponse.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getId()).length>0&&t.writeString(1,n),(n=e.getAuthtoken()).length>0&&t.writeString(2,n),0!==(n=e.getState())&&t.writeEnum(3,n),(n=e.getMac()).length>0&&t.writeString(4,n),null!=(n=e.getProviderauth())&&t.writeMessage(5,n,proto.api.responses.v2.AutoEnrolmentDetails.serializeBinaryToWriter)},proto.api.responses.v2.AutoEnrolResponse.prototype.getId=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.v2.AutoEnrolResponse.prototype.setId=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.v2.AutoEnrolResponse.prototype.getAuthtoken=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.responses.v2.AutoEnrolResponse.prototype.setAuthtoken=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.responses.v2.AutoEnrolResponse.prototype.getState=function(){return r.Message.getFieldWithDefault(this,3,0)},proto.api.responses.v2.AutoEnrolResponse.prototype.setState=function(e){return r.Message.setProto3EnumField(this,3,e)},proto.api.responses.v2.AutoEnrolResponse.prototype.getMac=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.api.responses.v2.AutoEnrolResponse.prototype.setMac=function(e){return r.Message.setProto3StringField(this,4,e)},proto.api.responses.v2.AutoEnrolResponse.prototype.getProviderauth=function(){return r.Message.getWrapperField(this,proto.api.responses.v2.AutoEnrolmentDetails,5)},proto.api.responses.v2.AutoEnrolResponse.prototype.setProviderauth=function(e){return r.Message.setWrapperField(this,5,e)},proto.api.responses.v2.AutoEnrolResponse.prototype.clearProviderauth=function(){return this.setProviderauth(void 0)},proto.api.responses.v2.AutoEnrolResponse.prototype.hasProviderauth=function(){return null!=r.Message.getField(this,5)},r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.v2.AutoEnrolmentDetails.prototype.toObject=function(e){return proto.api.responses.v2.AutoEnrolmentDetails.toObject(e,this)},proto.api.responses.v2.AutoEnrolmentDetails.toObject=function(e,t){var n={username:r.Message.getFieldWithDefault(t,1,""),providertype:r.Message.getFieldWithDefault(t,2,""),applianceid:r.Message.getFieldWithDefault(t,3,""),region:r.Message.getFieldWithDefault(t,4,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.api.responses.v2.AutoEnrolmentDetails.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.v2.AutoEnrolmentDetails;return proto.api.responses.v2.AutoEnrolmentDetails.deserializeBinaryFromReader(n,t)},proto.api.responses.v2.AutoEnrolmentDetails.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setUsername(n);break;case 2:n=t.readString(),e.setProvidertype(n);break;case 3:n=t.readString(),e.setApplianceid(n);break;case 4:n=t.readString(),e.setRegion(n);break;default:t.skipField()}return e},proto.api.responses.v2.AutoEnrolmentDetails.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.v2.AutoEnrolmentDetails.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.v2.AutoEnrolmentDetails.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getUsername()).length>0&&t.writeString(1,n),(n=e.getProvidertype()).length>0&&t.writeString(2,n),(n=e.getApplianceid()).length>0&&t.writeString(3,n),(n=e.getRegion()).length>0&&t.writeString(4,n)},proto.api.responses.v2.AutoEnrolmentDetails.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.v2.AutoEnrolmentDetails.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.v2.AutoEnrolmentDetails.prototype.getProvidertype=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.responses.v2.AutoEnrolmentDetails.prototype.setProvidertype=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.responses.v2.AutoEnrolmentDetails.prototype.getApplianceid=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.responses.v2.AutoEnrolmentDetails.prototype.setApplianceid=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.responses.v2.AutoEnrolmentDetails.prototype.getRegion=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.api.responses.v2.AutoEnrolmentDetails.prototype.setRegion=function(e){return r.Message.setProto3StringField(this,4,e)},i.object.extend(t,proto.api.responses.v2)},2658:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=n(7198);i.object.extend(proto,a);var s=n(7741);i.object.extend(proto,s),i.exportSymbol("proto.api.responses.v2.EnrollManagedDeviceResponse",null,o),i.exportSymbol("proto.api.responses.v2.EnrollManagedDeviceResponse.User",null,o),proto.api.responses.v2.EnrollManagedDeviceResponse=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.v2.EnrollManagedDeviceResponse,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.v2.EnrollManagedDeviceResponse.displayName="proto.api.responses.v2.EnrollManagedDeviceResponse"),proto.api.responses.v2.EnrollManagedDeviceResponse.User=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.api.responses.v2.EnrollManagedDeviceResponse.User,r.Message),i.DEBUG&&!COMPILED&&(proto.api.responses.v2.EnrollManagedDeviceResponse.User.displayName="proto.api.responses.v2.EnrollManagedDeviceResponse.User"),r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.toObject=function(e){return proto.api.responses.v2.EnrollManagedDeviceResponse.toObject(e,this)},proto.api.responses.v2.EnrollManagedDeviceResponse.toObject=function(e,t){var n,i={authtoken:r.Message.getFieldWithDefault(t,1,""),status:r.Message.getFieldWithDefault(t,2,0),id:r.Message.getFieldWithDefault(t,3,""),user:(n=t.getUser())&&proto.api.responses.v2.EnrollManagedDeviceResponse.User.toObject(e,n),region:r.Message.getFieldWithDefault(t,5,"")};return e&&(i.$jspbMessageInstance=t),i}),proto.api.responses.v2.EnrollManagedDeviceResponse.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.v2.EnrollManagedDeviceResponse;return proto.api.responses.v2.EnrollManagedDeviceResponse.deserializeBinaryFromReader(n,t)},proto.api.responses.v2.EnrollManagedDeviceResponse.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setAuthtoken(n);break;case 2:n=t.readEnum(),e.setStatus(n);break;case 3:n=t.readString(),e.setId(n);break;case 4:n=new proto.api.responses.v2.EnrollManagedDeviceResponse.User,t.readMessage(n,proto.api.responses.v2.EnrollManagedDeviceResponse.User.deserializeBinaryFromReader),e.setUser(n);break;case 5:n=t.readString(),e.setRegion(n);break;default:t.skipField()}return e},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.v2.EnrollManagedDeviceResponse.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.v2.EnrollManagedDeviceResponse.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getAuthtoken()).length>0&&t.writeString(1,n),0!==(n=e.getStatus())&&t.writeEnum(2,n),(n=e.getId()).length>0&&t.writeString(3,n),null!=(n=e.getUser())&&t.writeMessage(4,n,proto.api.responses.v2.EnrollManagedDeviceResponse.User.serializeBinaryToWriter),(n=e.getRegion()).length>0&&t.writeString(5,n)},r.Message.GENERATE_TO_OBJECT&&(proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.toObject=function(e){return proto.api.responses.v2.EnrollManagedDeviceResponse.User.toObject(e,this)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.toObject=function(e,t){var n,i={id:r.Message.getFieldWithDefault(t,1,""),samaccountid:r.Message.getFieldWithDefault(t,2,""),name:(n=t.getName())&&a.UserName.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.api.responses.v2.EnrollManagedDeviceResponse.User.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.api.responses.v2.EnrollManagedDeviceResponse.User;return proto.api.responses.v2.EnrollManagedDeviceResponse.User.deserializeBinaryFromReader(n,t)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setId(n);break;case 2:n=t.readString(),e.setSamaccountid(n);break;case 3:n=new a.UserName,t.readMessage(n,a.UserName.deserializeBinaryFromReader),e.setName(n);break;default:t.skipField()}return e},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.api.responses.v2.EnrollManagedDeviceResponse.User.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.api.responses.v2.EnrollManagedDeviceResponse.User.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getId()).length>0&&t.writeString(1,n),(n=e.getSamaccountid()).length>0&&t.writeString(2,n),null!=(n=e.getName())&&t.writeMessage(3,n,a.UserName.serializeBinaryToWriter)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.getId=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.setId=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.getSamaccountid=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.setSamaccountid=function(e){return r.Message.setProto3StringField(this,2,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.getName=function(){return r.Message.getWrapperField(this,a.UserName,3)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.setName=function(e){return r.Message.setWrapperField(this,3,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.clearName=function(){return this.setName(void 0)},proto.api.responses.v2.EnrollManagedDeviceResponse.User.prototype.hasName=function(){return null!=r.Message.getField(this,3)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.getAuthtoken=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.setAuthtoken=function(e){return r.Message.setProto3StringField(this,1,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.getStatus=function(){return r.Message.getFieldWithDefault(this,2,0)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.setStatus=function(e){return r.Message.setProto3EnumField(this,2,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.getId=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.setId=function(e){return r.Message.setProto3StringField(this,3,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.getUser=function(){return r.Message.getWrapperField(this,proto.api.responses.v2.EnrollManagedDeviceResponse.User,4)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.setUser=function(e){return r.Message.setWrapperField(this,4,e)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.clearUser=function(){return this.setUser(void 0)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.hasUser=function(){return null!=r.Message.getField(this,4)},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.getRegion=function(){return r.Message.getFieldWithDefault(this,5,"")},proto.api.responses.v2.EnrollManagedDeviceResponse.prototype.setRegion=function(e){return r.Message.setProto3StringField(this,5,e)},i.object.extend(t,proto.api.responses.v2)},8326:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=n(8776);i.object.extend(proto,a),i.exportSymbol("proto.classwize.ClasswizeEvent",null,o),proto.classwize.ClasswizeEvent=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.classwize.ClasswizeEvent,r.Message),i.DEBUG&&!COMPILED&&(proto.classwize.ClasswizeEvent.displayName="proto.classwize.ClasswizeEvent"),r.Message.GENERATE_TO_OBJECT&&(proto.classwize.ClasswizeEvent.prototype.toObject=function(e){return proto.classwize.ClasswizeEvent.toObject(e,this)},proto.classwize.ClasswizeEvent.toObject=function(e,t){var n,r={messages:(n=t.getMessages())&&a.EventMessage.toObject(e,n)};return e&&(r.$jspbMessageInstance=t),r}),proto.classwize.ClasswizeEvent.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.classwize.ClasswizeEvent;return proto.classwize.ClasswizeEvent.deserializeBinaryFromReader(n,t)},proto.classwize.ClasswizeEvent.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var n=new a.EventMessage;t.readMessage(n,a.EventMessage.deserializeBinaryFromReader),e.setMessages(n)}else t.skipField();return e},proto.classwize.ClasswizeEvent.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.classwize.ClasswizeEvent.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.classwize.ClasswizeEvent.serializeBinaryToWriter=function(e,t){var n;null!=(n=e.getMessages())&&t.writeMessage(1,n,a.EventMessage.serializeBinaryToWriter)},proto.classwize.ClasswizeEvent.prototype.getMessages=function(){return r.Message.getWrapperField(this,a.EventMessage,1)},proto.classwize.ClasswizeEvent.prototype.setMessages=function(e){return r.Message.setWrapperField(this,1,e)},proto.classwize.ClasswizeEvent.prototype.clearMessages=function(){return this.setMessages(void 0)},proto.classwize.ClasswizeEvent.prototype.hasMessages=function(){return null!=r.Message.getField(this,1)},i.object.extend(t,proto.classwize)},1071:(e,t,n)=>{var r=n(3157),i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==i&&i||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),o=n(1458);r.object.extend(proto,o);var a=n(8326);r.object.extend(proto,a);var s=n(245);r.object.extend(proto,s)},5635:(e,t,n)=>{n(1071);var r=n(1458),i=n(8326),o=n(245),a=n(459).grpc,s=function(){function e(){}return e.serviceName="classwize.ClasswizeApi",e}();function A(e,t){this.serviceHost=e,this.options=t||{}}s.ReceiveEvents={methodName:"ReceiveEvents",service:s,requestStream:!1,responseStream:!0,requestType:r.Empty,responseType:i.ClasswizeEvent},s.UpdateTabs={methodName:"UpdateTabs",service:s,requestStream:!1,responseStream:!1,requestType:o.WindowUpdate,responseType:r.Empty},A.prototype.receiveEvents=function(e,t){var n={data:[],end:[],status:[]},r=a.invoke(s.ReceiveEvents,{request:e,host:this.serviceHost,metadata:t,transport:this.options.transport,debug:this.options.debug,onMessage:function(e){n.data.forEach((function(t){t(e)}))},onEnd:function(e,t,r){n.status.forEach((function(n){n({code:e,details:t,metadata:r})})),n.end.forEach((function(n){n({code:e,details:t,metadata:r})})),n=null}});return{on:function(e,t){return n[e].push(t),this},cancel:function(){n=null,r.close()}}},A.prototype.updateTabs=function(e,t,n){2===arguments.length&&(n=arguments[1]);var r=a.unary(s.UpdateTabs,{request:e,host:this.serviceHost,metadata:t,transport:this.options.transport,debug:this.options.debug,onEnd:function(e){if(n)if(e.status!==a.Code.OK){var t=new Error(e.statusMessage);t.code=e.status,t.metadata=e.trailers,n(t,null)}else n(null,e.message)}});return{cancel:function(){n=null,r.close()}}},t.T=A},409:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=n(6669);i.object.extend(proto,a),i.exportSymbol("proto.companion.CompanionRegistrationRequest",null,o),i.exportSymbol("proto.companion.CompanionRegistrationResponse",null,o),i.exportSymbol("proto.companion.ConsoleLog",null,o),i.exportSymbol("proto.companion.EnrolmentDetails",null,o),i.exportSymbol("proto.companion.Functionality",null,o),proto.companion.CompanionRegistrationRequest=function(e){r.Message.initialize(this,e,0,-1,proto.companion.CompanionRegistrationRequest.repeatedFields_,null)},i.inherits(proto.companion.CompanionRegistrationRequest,r.Message),i.DEBUG&&!COMPILED&&(proto.companion.CompanionRegistrationRequest.displayName="proto.companion.CompanionRegistrationRequest"),proto.companion.EnrolmentDetails=function(e){r.Message.initialize(this,e,0,-1,proto.companion.EnrolmentDetails.repeatedFields_,null)},i.inherits(proto.companion.EnrolmentDetails,r.Message),i.DEBUG&&!COMPILED&&(proto.companion.EnrolmentDetails.displayName="proto.companion.EnrolmentDetails"),proto.companion.CompanionRegistrationResponse=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.companion.CompanionRegistrationResponse,r.Message),i.DEBUG&&!COMPILED&&(proto.companion.CompanionRegistrationResponse.displayName="proto.companion.CompanionRegistrationResponse"),proto.companion.ConsoleLog=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.companion.ConsoleLog,r.Message),i.DEBUG&&!COMPILED&&(proto.companion.ConsoleLog.displayName="proto.companion.ConsoleLog"),proto.companion.CompanionRegistrationRequest.repeatedFields_=[3],r.Message.GENERATE_TO_OBJECT&&(proto.companion.CompanionRegistrationRequest.prototype.toObject=function(e){return proto.companion.CompanionRegistrationRequest.toObject(e,this)},proto.companion.CompanionRegistrationRequest.toObject=function(e,t){var n,i={name:r.Message.getFieldWithDefault(t,1,""),version:r.Message.getFieldWithDefault(t,2,""),functionalityList:null==(n=r.Message.getRepeatedField(t,3))?void 0:n};return e&&(i.$jspbMessageInstance=t),i}),proto.companion.CompanionRegistrationRequest.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.companion.CompanionRegistrationRequest;return proto.companion.CompanionRegistrationRequest.deserializeBinaryFromReader(n,t)},proto.companion.CompanionRegistrationRequest.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setName(n);break;case 2:n=t.readString(),e.setVersion(n);break;case 3:for(var r=t.isDelimited()?t.readPackedEnum():[t.readEnum()],i=0;i0&&t.writeString(1,n),(n=e.getVersion()).length>0&&t.writeString(2,n),(n=e.getFunctionalityList()).length>0&&t.writePackedEnum(3,n)},proto.companion.CompanionRegistrationRequest.prototype.getName=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.companion.CompanionRegistrationRequest.prototype.setName=function(e){return r.Message.setProto3StringField(this,1,e)},proto.companion.CompanionRegistrationRequest.prototype.getVersion=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.companion.CompanionRegistrationRequest.prototype.setVersion=function(e){return r.Message.setProto3StringField(this,2,e)},proto.companion.CompanionRegistrationRequest.prototype.getFunctionalityList=function(){return r.Message.getRepeatedField(this,3)},proto.companion.CompanionRegistrationRequest.prototype.setFunctionalityList=function(e){return r.Message.setField(this,3,e||[])},proto.companion.CompanionRegistrationRequest.prototype.addFunctionality=function(e,t){return r.Message.addToRepeatedField(this,3,e,t)},proto.companion.CompanionRegistrationRequest.prototype.clearFunctionalityList=function(){return this.setFunctionalityList([])},proto.companion.EnrolmentDetails.repeatedFields_=[5,7,8,10],r.Message.GENERATE_TO_OBJECT&&(proto.companion.EnrolmentDetails.prototype.toObject=function(e){return proto.companion.EnrolmentDetails.toObject(e,this)},proto.companion.EnrolmentDetails.toObject=function(e,t){var n,i={username:r.Message.getFieldWithDefault(t,1,""),applianceid:r.Message.getFieldWithDefault(t,2,""),region:r.Message.getFieldWithDefault(t,3,""),primaryipaddress:r.Message.getFieldWithDefault(t,4,""),enabledfeaturesList:null==(n=r.Message.getRepeatedField(t,5))?void 0:n,devicetoken:r.Message.getFieldWithDefault(t,6,""),featureflagsList:null==(n=r.Message.getRepeatedField(t,7))?void 0:n,ipaddressesList:null==(n=r.Message.getRepeatedField(t,8))?void 0:n,enrolmentinformation:(n=t.getEnrolmentinformation())&&a.EnrolmentInformation.toObject(e,n),macaddressesList:null==(n=r.Message.getRepeatedField(t,10))?void 0:n};return e&&(i.$jspbMessageInstance=t),i}),proto.companion.EnrolmentDetails.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.companion.EnrolmentDetails;return proto.companion.EnrolmentDetails.deserializeBinaryFromReader(n,t)},proto.companion.EnrolmentDetails.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setUsername(n);break;case 2:n=t.readString(),e.setApplianceid(n);break;case 3:n=t.readString(),e.setRegion(n);break;case 4:n=t.readString(),e.setPrimaryipaddress(n);break;case 5:n=t.readString(),e.addEnabledfeatures(n);break;case 6:n=t.readString(),e.setDevicetoken(n);break;case 7:n=t.readString(),e.addFeatureflags(n);break;case 8:n=t.readString(),e.addIpaddresses(n);break;case 9:n=new a.EnrolmentInformation,t.readMessage(n,a.EnrolmentInformation.deserializeBinaryFromReader),e.setEnrolmentinformation(n);break;case 10:n=t.readString(),e.addMacaddresses(n);break;default:t.skipField()}return e},proto.companion.EnrolmentDetails.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.companion.EnrolmentDetails.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.companion.EnrolmentDetails.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getUsername()).length>0&&t.writeString(1,n),(n=e.getApplianceid()).length>0&&t.writeString(2,n),(n=e.getRegion()).length>0&&t.writeString(3,n),(n=e.getPrimaryipaddress()).length>0&&t.writeString(4,n),(n=e.getEnabledfeaturesList()).length>0&&t.writeRepeatedString(5,n),(n=e.getDevicetoken()).length>0&&t.writeString(6,n),(n=e.getFeatureflagsList()).length>0&&t.writeRepeatedString(7,n),(n=e.getIpaddressesList()).length>0&&t.writeRepeatedString(8,n),null!=(n=e.getEnrolmentinformation())&&t.writeMessage(9,n,a.EnrolmentInformation.serializeBinaryToWriter),(n=e.getMacaddressesList()).length>0&&t.writeRepeatedString(10,n)},proto.companion.EnrolmentDetails.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.companion.EnrolmentDetails.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,1,e)},proto.companion.EnrolmentDetails.prototype.getApplianceid=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.companion.EnrolmentDetails.prototype.setApplianceid=function(e){return r.Message.setProto3StringField(this,2,e)},proto.companion.EnrolmentDetails.prototype.getRegion=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.companion.EnrolmentDetails.prototype.setRegion=function(e){return r.Message.setProto3StringField(this,3,e)},proto.companion.EnrolmentDetails.prototype.getPrimaryipaddress=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.companion.EnrolmentDetails.prototype.setPrimaryipaddress=function(e){return r.Message.setProto3StringField(this,4,e)},proto.companion.EnrolmentDetails.prototype.getEnabledfeaturesList=function(){return r.Message.getRepeatedField(this,5)},proto.companion.EnrolmentDetails.prototype.setEnabledfeaturesList=function(e){return r.Message.setField(this,5,e||[])},proto.companion.EnrolmentDetails.prototype.addEnabledfeatures=function(e,t){return r.Message.addToRepeatedField(this,5,e,t)},proto.companion.EnrolmentDetails.prototype.clearEnabledfeaturesList=function(){return this.setEnabledfeaturesList([])},proto.companion.EnrolmentDetails.prototype.getDevicetoken=function(){return r.Message.getFieldWithDefault(this,6,"")},proto.companion.EnrolmentDetails.prototype.setDevicetoken=function(e){return r.Message.setProto3StringField(this,6,e)},proto.companion.EnrolmentDetails.prototype.getFeatureflagsList=function(){return r.Message.getRepeatedField(this,7)},proto.companion.EnrolmentDetails.prototype.setFeatureflagsList=function(e){return r.Message.setField(this,7,e||[])},proto.companion.EnrolmentDetails.prototype.addFeatureflags=function(e,t){return r.Message.addToRepeatedField(this,7,e,t)},proto.companion.EnrolmentDetails.prototype.clearFeatureflagsList=function(){return this.setFeatureflagsList([])},proto.companion.EnrolmentDetails.prototype.getIpaddressesList=function(){return r.Message.getRepeatedField(this,8)},proto.companion.EnrolmentDetails.prototype.setIpaddressesList=function(e){return r.Message.setField(this,8,e||[])},proto.companion.EnrolmentDetails.prototype.addIpaddresses=function(e,t){return r.Message.addToRepeatedField(this,8,e,t)},proto.companion.EnrolmentDetails.prototype.clearIpaddressesList=function(){return this.setIpaddressesList([])},proto.companion.EnrolmentDetails.prototype.getEnrolmentinformation=function(){return r.Message.getWrapperField(this,a.EnrolmentInformation,9)},proto.companion.EnrolmentDetails.prototype.setEnrolmentinformation=function(e){return r.Message.setWrapperField(this,9,e)},proto.companion.EnrolmentDetails.prototype.clearEnrolmentinformation=function(){return this.setEnrolmentinformation(void 0)},proto.companion.EnrolmentDetails.prototype.hasEnrolmentinformation=function(){return null!=r.Message.getField(this,9)},proto.companion.EnrolmentDetails.prototype.getMacaddressesList=function(){return r.Message.getRepeatedField(this,10)},proto.companion.EnrolmentDetails.prototype.setMacaddressesList=function(e){return r.Message.setField(this,10,e||[])},proto.companion.EnrolmentDetails.prototype.addMacaddresses=function(e,t){return r.Message.addToRepeatedField(this,10,e,t)},proto.companion.EnrolmentDetails.prototype.clearMacaddressesList=function(){return this.setMacaddressesList([])},r.Message.GENERATE_TO_OBJECT&&(proto.companion.CompanionRegistrationResponse.prototype.toObject=function(e){return proto.companion.CompanionRegistrationResponse.toObject(e,this)},proto.companion.CompanionRegistrationResponse.toObject=function(e,t){var n,i={version:r.Message.getFieldWithDefault(t,1,""),enrolmentdetails:(n=t.getEnrolmentdetails())&&proto.companion.EnrolmentDetails.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.companion.CompanionRegistrationResponse.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.companion.CompanionRegistrationResponse;return proto.companion.CompanionRegistrationResponse.deserializeBinaryFromReader(n,t)},proto.companion.CompanionRegistrationResponse.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setVersion(n);break;case 2:n=new proto.companion.EnrolmentDetails,t.readMessage(n,proto.companion.EnrolmentDetails.deserializeBinaryFromReader),e.setEnrolmentdetails(n);break;default:t.skipField()}return e},proto.companion.CompanionRegistrationResponse.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.companion.CompanionRegistrationResponse.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.companion.CompanionRegistrationResponse.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getVersion()).length>0&&t.writeString(1,n),null!=(n=e.getEnrolmentdetails())&&t.writeMessage(2,n,proto.companion.EnrolmentDetails.serializeBinaryToWriter)},proto.companion.CompanionRegistrationResponse.prototype.getVersion=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.companion.CompanionRegistrationResponse.prototype.setVersion=function(e){return r.Message.setProto3StringField(this,1,e)},proto.companion.CompanionRegistrationResponse.prototype.getEnrolmentdetails=function(){return r.Message.getWrapperField(this,proto.companion.EnrolmentDetails,2)},proto.companion.CompanionRegistrationResponse.prototype.setEnrolmentdetails=function(e){return r.Message.setWrapperField(this,2,e)},proto.companion.CompanionRegistrationResponse.prototype.clearEnrolmentdetails=function(){return this.setEnrolmentdetails(void 0)},proto.companion.CompanionRegistrationResponse.prototype.hasEnrolmentdetails=function(){return null!=r.Message.getField(this,2)},r.Message.GENERATE_TO_OBJECT&&(proto.companion.ConsoleLog.prototype.toObject=function(e){return proto.companion.ConsoleLog.toObject(e,this)},proto.companion.ConsoleLog.toObject=function(e,t){var n={log:r.Message.getFieldWithDefault(t,1,""),loglevel:r.Message.getFieldWithDefault(t,2,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.companion.ConsoleLog.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.companion.ConsoleLog;return proto.companion.ConsoleLog.deserializeBinaryFromReader(n,t)},proto.companion.ConsoleLog.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setLog(n);break;case 2:n=t.readString(),e.setLoglevel(n);break;default:t.skipField()}return e},proto.companion.ConsoleLog.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.companion.ConsoleLog.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.companion.ConsoleLog.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getLog()).length>0&&t.writeString(1,n),(n=e.getLoglevel()).length>0&&t.writeString(2,n)},proto.companion.ConsoleLog.prototype.getLog=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.companion.ConsoleLog.prototype.setLog=function(e){return r.Message.setProto3StringField(this,1,e)},proto.companion.ConsoleLog.prototype.getLoglevel=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.companion.ConsoleLog.prototype.setLoglevel=function(e){return r.Message.setProto3StringField(this,2,e)},proto.companion.Functionality={FILTERING:0,REPORTING:1,CLASSWIZE:2},i.object.extend(t,proto.companion)},3934:(e,t,n)=>{var r=n(3157),i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==i&&i||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),o=n(409);r.object.extend(proto,o);var a=n(1458);r.object.extend(proto,a)},7518:(e,t,n)=>{n(3934);var r=n(409),i=n(1458),o=n(459).grpc,a=function(){function e(){}return e.serviceName="companion.CompanionApi",e}();function s(e,t){this.serviceHost=e,this.options=t||{}}a.RegisterCompanion={methodName:"RegisterCompanion",service:a,requestStream:!1,responseStream:!0,requestType:r.CompanionRegistrationRequest,responseType:r.CompanionRegistrationResponse},a.ConsoleLogStream={methodName:"ConsoleLogStream",service:a,requestStream:!0,responseStream:!1,requestType:r.ConsoleLog,responseType:i.Empty},s.prototype.registerCompanion=function(e,t){var n={data:[],end:[],status:[]},r=o.invoke(a.RegisterCompanion,{request:e,host:this.serviceHost,metadata:t,transport:this.options.transport,debug:this.options.debug,onMessage:function(e){n.data.forEach((function(t){t(e)}))},onEnd:function(e,t,r){n.status.forEach((function(n){n({code:e,details:t,metadata:r})})),n.end.forEach((function(n){n({code:e,details:t,metadata:r})})),n=null}});return{on:function(e,t){return n[e].push(t),this},cancel:function(){n=null,r.close()}}},s.prototype.consoleLogStream=function(e){var t={end:[],status:[]},n=o.client(a.ConsoleLogStream,{host:this.serviceHost,metadata:e,transport:this.options.transport});return n.onEnd((function(e,n,r){t.status.forEach((function(t){t({code:e,details:n,metadata:r})})),t.end.forEach((function(t){t({code:e,details:n,metadata:r})})),t=null})),{on:function(e,n){return t[e].push(n),this},write:function(t){return n.started||n.start(e),n.send(t),this},end:function(){n.finishSend()},cancel:function(){t=null,n.close()}}},t.A=s},6669:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=n(2658);i.object.extend(proto,a);var s=n(619);i.object.extend(proto,s),i.exportSymbol("proto.configuration.EnrolmentInformation",null,o),i.exportSymbol("proto.configuration.EnrolmentInformation.UserInformation",null,o),i.exportSymbol("proto.configuration.Properties",null,o),i.exportSymbol("proto.configuration.PropertiesDNSSetting",null,o),i.exportSymbol("proto.configuration.PropertiesManagedDevice",null,o),proto.configuration.Properties=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.configuration.Properties,r.Message),i.DEBUG&&!COMPILED&&(proto.configuration.Properties.displayName="proto.configuration.Properties"),proto.configuration.EnrolmentInformation=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.configuration.EnrolmentInformation,r.Message),i.DEBUG&&!COMPILED&&(proto.configuration.EnrolmentInformation.displayName="proto.configuration.EnrolmentInformation"),proto.configuration.EnrolmentInformation.UserInformation=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.configuration.EnrolmentInformation.UserInformation,r.Message),i.DEBUG&&!COMPILED&&(proto.configuration.EnrolmentInformation.UserInformation.displayName="proto.configuration.EnrolmentInformation.UserInformation"),proto.configuration.PropertiesDNSSetting=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.configuration.PropertiesDNSSetting,r.Message),i.DEBUG&&!COMPILED&&(proto.configuration.PropertiesDNSSetting.displayName="proto.configuration.PropertiesDNSSetting"),proto.configuration.PropertiesManagedDevice=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.configuration.PropertiesManagedDevice,r.Message),i.DEBUG&&!COMPILED&&(proto.configuration.PropertiesManagedDevice.displayName="proto.configuration.PropertiesManagedDevice"),r.Message.GENERATE_TO_OBJECT&&(proto.configuration.Properties.prototype.toObject=function(e){return proto.configuration.Properties.toObject(e,this)},proto.configuration.Properties.toObject=function(e,t){var n,i={loggingLevel:r.Message.getFieldWithDefault(t,1,""),deviceToken:r.Message.getFieldWithDefault(t,2,""),deviceId:r.Message.getFieldWithDefault(t,3,""),dnsSettingsMap:(n=t.getDnsSettingsMap())?n.toObject(e,proto.configuration.PropertiesDNSSetting.toObject):[],managedDevice:(n=t.getManagedDevice())&&proto.configuration.PropertiesManagedDevice.toObject(e,n),autoEnrolmentDetails:(n=t.getAutoEnrolmentDetails())&&s.AutoEnrolmentDetails.toObject(e,n),lastSuccessfulEnrollmentUsername:r.Message.getFieldWithDefault(t,13,""),enrolmentInformation:(n=t.getEnrolmentInformation())&&proto.configuration.EnrolmentInformation.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.configuration.Properties.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.configuration.Properties;return proto.configuration.Properties.deserializeBinaryFromReader(n,t)},proto.configuration.Properties.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setLoggingLevel(n);break;case 2:n=t.readString(),e.setDeviceToken(n);break;case 3:n=t.readString(),e.setDeviceId(n);break;case 10:n=e.getDnsSettingsMap(),t.readMessage(n,(function(e,t){r.Map.deserializeBinary(e,t,r.BinaryReader.prototype.readString,r.BinaryReader.prototype.readMessage,proto.configuration.PropertiesDNSSetting.deserializeBinaryFromReader,"",new proto.configuration.PropertiesDNSSetting)}));break;case 11:n=new proto.configuration.PropertiesManagedDevice,t.readMessage(n,proto.configuration.PropertiesManagedDevice.deserializeBinaryFromReader),e.setManagedDevice(n);break;case 12:n=new s.AutoEnrolmentDetails,t.readMessage(n,s.AutoEnrolmentDetails.deserializeBinaryFromReader),e.setAutoEnrolmentDetails(n);break;case 13:n=t.readString(),e.setLastSuccessfulEnrollmentUsername(n);break;case 14:n=new proto.configuration.EnrolmentInformation,t.readMessage(n,proto.configuration.EnrolmentInformation.deserializeBinaryFromReader),e.setEnrolmentInformation(n);break;default:t.skipField()}return e},proto.configuration.Properties.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.configuration.Properties.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.configuration.Properties.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getLoggingLevel()).length>0&&t.writeString(1,n),(n=e.getDeviceToken()).length>0&&t.writeString(2,n),(n=e.getDeviceId()).length>0&&t.writeString(3,n),(n=e.getDnsSettingsMap(!0))&&n.getLength()>0&&n.serializeBinary(10,t,r.BinaryWriter.prototype.writeString,r.BinaryWriter.prototype.writeMessage,proto.configuration.PropertiesDNSSetting.serializeBinaryToWriter),null!=(n=e.getManagedDevice())&&t.writeMessage(11,n,proto.configuration.PropertiesManagedDevice.serializeBinaryToWriter),null!=(n=e.getAutoEnrolmentDetails())&&t.writeMessage(12,n,s.AutoEnrolmentDetails.serializeBinaryToWriter),(n=e.getLastSuccessfulEnrollmentUsername()).length>0&&t.writeString(13,n),null!=(n=e.getEnrolmentInformation())&&t.writeMessage(14,n,proto.configuration.EnrolmentInformation.serializeBinaryToWriter)},proto.configuration.Properties.prototype.getLoggingLevel=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.configuration.Properties.prototype.setLoggingLevel=function(e){return r.Message.setProto3StringField(this,1,e)},proto.configuration.Properties.prototype.getDeviceToken=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.configuration.Properties.prototype.setDeviceToken=function(e){return r.Message.setProto3StringField(this,2,e)},proto.configuration.Properties.prototype.getDeviceId=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.configuration.Properties.prototype.setDeviceId=function(e){return r.Message.setProto3StringField(this,3,e)},proto.configuration.Properties.prototype.getDnsSettingsMap=function(e){return r.Message.getMapField(this,10,e,proto.configuration.PropertiesDNSSetting)},proto.configuration.Properties.prototype.clearDnsSettingsMap=function(){return this.getDnsSettingsMap().clear(),this},proto.configuration.Properties.prototype.getManagedDevice=function(){return r.Message.getWrapperField(this,proto.configuration.PropertiesManagedDevice,11)},proto.configuration.Properties.prototype.setManagedDevice=function(e){return r.Message.setWrapperField(this,11,e)},proto.configuration.Properties.prototype.clearManagedDevice=function(){return this.setManagedDevice(void 0)},proto.configuration.Properties.prototype.hasManagedDevice=function(){return null!=r.Message.getField(this,11)},proto.configuration.Properties.prototype.getAutoEnrolmentDetails=function(){return r.Message.getWrapperField(this,s.AutoEnrolmentDetails,12)},proto.configuration.Properties.prototype.setAutoEnrolmentDetails=function(e){return r.Message.setWrapperField(this,12,e)},proto.configuration.Properties.prototype.clearAutoEnrolmentDetails=function(){return this.setAutoEnrolmentDetails(void 0)},proto.configuration.Properties.prototype.hasAutoEnrolmentDetails=function(){return null!=r.Message.getField(this,12)},proto.configuration.Properties.prototype.getLastSuccessfulEnrollmentUsername=function(){return r.Message.getFieldWithDefault(this,13,"")},proto.configuration.Properties.prototype.setLastSuccessfulEnrollmentUsername=function(e){return r.Message.setProto3StringField(this,13,e)},proto.configuration.Properties.prototype.getEnrolmentInformation=function(){return r.Message.getWrapperField(this,proto.configuration.EnrolmentInformation,14)},proto.configuration.Properties.prototype.setEnrolmentInformation=function(e){return r.Message.setWrapperField(this,14,e)},proto.configuration.Properties.prototype.clearEnrolmentInformation=function(){return this.setEnrolmentInformation(void 0)},proto.configuration.Properties.prototype.hasEnrolmentInformation=function(){return null!=r.Message.getField(this,14)},r.Message.GENERATE_TO_OBJECT&&(proto.configuration.EnrolmentInformation.prototype.toObject=function(e){return proto.configuration.EnrolmentInformation.toObject(e,this)},proto.configuration.EnrolmentInformation.toObject=function(e,t){var n,i={provider:r.Message.getFieldWithDefault(t,1,""),apiToken:r.Message.getFieldWithDefault(t,2,""),customerId:r.Message.getFieldWithDefault(t,3,""),tenantId:r.Message.getFieldWithDefault(t,4,""),userInformation:(n=t.getUserInformation())&&proto.configuration.EnrolmentInformation.UserInformation.toObject(e,n),apiRegion:r.Message.getFieldWithDefault(t,6,""),metadataMap:(n=t.getMetadataMap())?n.toObject(e,void 0):[]};return e&&(i.$jspbMessageInstance=t),i}),proto.configuration.EnrolmentInformation.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.configuration.EnrolmentInformation;return proto.configuration.EnrolmentInformation.deserializeBinaryFromReader(n,t)},proto.configuration.EnrolmentInformation.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setProvider(n);break;case 2:n=t.readString(),e.setApiToken(n);break;case 3:n=t.readString(),e.setCustomerId(n);break;case 4:n=t.readString(),e.setTenantId(n);break;case 5:n=new proto.configuration.EnrolmentInformation.UserInformation,t.readMessage(n,proto.configuration.EnrolmentInformation.UserInformation.deserializeBinaryFromReader),e.setUserInformation(n);break;case 6:n=t.readString(),e.setApiRegion(n);break;case 10:n=e.getMetadataMap(),t.readMessage(n,(function(e,t){r.Map.deserializeBinary(e,t,r.BinaryReader.prototype.readString,r.BinaryReader.prototype.readString,null,"","")}));break;default:t.skipField()}return e},proto.configuration.EnrolmentInformation.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.configuration.EnrolmentInformation.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.configuration.EnrolmentInformation.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getProvider()).length>0&&t.writeString(1,n),(n=e.getApiToken()).length>0&&t.writeString(2,n),(n=e.getCustomerId()).length>0&&t.writeString(3,n),null!=(n=r.Message.getField(e,4))&&t.writeString(4,n),null!=(n=e.getUserInformation())&&t.writeMessage(5,n,proto.configuration.EnrolmentInformation.UserInformation.serializeBinaryToWriter),null!=(n=r.Message.getField(e,6))&&t.writeString(6,n),(n=e.getMetadataMap(!0))&&n.getLength()>0&&n.serializeBinary(10,t,r.BinaryWriter.prototype.writeString,r.BinaryWriter.prototype.writeString)},r.Message.GENERATE_TO_OBJECT&&(proto.configuration.EnrolmentInformation.UserInformation.prototype.toObject=function(e){return proto.configuration.EnrolmentInformation.UserInformation.toObject(e,this)},proto.configuration.EnrolmentInformation.UserInformation.toObject=function(e,t){var n={username:r.Message.getFieldWithDefault(t,1,""),usernameRaw:r.Message.getFieldWithDefault(t,2,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.configuration.EnrolmentInformation.UserInformation.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.configuration.EnrolmentInformation.UserInformation;return proto.configuration.EnrolmentInformation.UserInformation.deserializeBinaryFromReader(n,t)},proto.configuration.EnrolmentInformation.UserInformation.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setUsername(n);break;case 2:n=t.readString(),e.setUsernameRaw(n);break;default:t.skipField()}return e},proto.configuration.EnrolmentInformation.UserInformation.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.configuration.EnrolmentInformation.UserInformation.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.configuration.EnrolmentInformation.UserInformation.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getUsername()).length>0&&t.writeString(1,n),(n=e.getUsernameRaw()).length>0&&t.writeString(2,n)},proto.configuration.EnrolmentInformation.UserInformation.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.configuration.EnrolmentInformation.UserInformation.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,1,e)},proto.configuration.EnrolmentInformation.UserInformation.prototype.getUsernameRaw=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.configuration.EnrolmentInformation.UserInformation.prototype.setUsernameRaw=function(e){return r.Message.setProto3StringField(this,2,e)},proto.configuration.EnrolmentInformation.prototype.getProvider=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.configuration.EnrolmentInformation.prototype.setProvider=function(e){return r.Message.setProto3StringField(this,1,e)},proto.configuration.EnrolmentInformation.prototype.getApiToken=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.configuration.EnrolmentInformation.prototype.setApiToken=function(e){return r.Message.setProto3StringField(this,2,e)},proto.configuration.EnrolmentInformation.prototype.getCustomerId=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.configuration.EnrolmentInformation.prototype.setCustomerId=function(e){return r.Message.setProto3StringField(this,3,e)},proto.configuration.EnrolmentInformation.prototype.getTenantId=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.configuration.EnrolmentInformation.prototype.setTenantId=function(e){return r.Message.setField(this,4,e)},proto.configuration.EnrolmentInformation.prototype.clearTenantId=function(){return r.Message.setField(this,4,void 0)},proto.configuration.EnrolmentInformation.prototype.hasTenantId=function(){return null!=r.Message.getField(this,4)},proto.configuration.EnrolmentInformation.prototype.getUserInformation=function(){return r.Message.getWrapperField(this,proto.configuration.EnrolmentInformation.UserInformation,5)},proto.configuration.EnrolmentInformation.prototype.setUserInformation=function(e){return r.Message.setWrapperField(this,5,e)},proto.configuration.EnrolmentInformation.prototype.clearUserInformation=function(){return this.setUserInformation(void 0)},proto.configuration.EnrolmentInformation.prototype.hasUserInformation=function(){return null!=r.Message.getField(this,5)},proto.configuration.EnrolmentInformation.prototype.getApiRegion=function(){return r.Message.getFieldWithDefault(this,6,"")},proto.configuration.EnrolmentInformation.prototype.setApiRegion=function(e){return r.Message.setField(this,6,e)},proto.configuration.EnrolmentInformation.prototype.clearApiRegion=function(){return r.Message.setField(this,6,void 0)},proto.configuration.EnrolmentInformation.prototype.hasApiRegion=function(){return null!=r.Message.getField(this,6)},proto.configuration.EnrolmentInformation.prototype.getMetadataMap=function(e){return r.Message.getMapField(this,10,e,null)},proto.configuration.EnrolmentInformation.prototype.clearMetadataMap=function(){return this.getMetadataMap().clear(),this},r.Message.GENERATE_TO_OBJECT&&(proto.configuration.PropertiesDNSSetting.prototype.toObject=function(e){return proto.configuration.PropertiesDNSSetting.toObject(e,this)},proto.configuration.PropertiesDNSSetting.toObject=function(e,t){var n={pb_static:r.Message.getBooleanFieldWithDefault(t,1,!1),primaryNameServer:r.Message.getFieldWithDefault(t,2,""),secondaryNameServer:r.Message.getFieldWithDefault(t,3,"")};return e&&(n.$jspbMessageInstance=t),n}),proto.configuration.PropertiesDNSSetting.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.configuration.PropertiesDNSSetting;return proto.configuration.PropertiesDNSSetting.deserializeBinaryFromReader(n,t)},proto.configuration.PropertiesDNSSetting.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readBool();e.setStatic(n);break;case 2:n=t.readString(),e.setPrimaryNameServer(n);break;case 3:n=t.readString(),e.setSecondaryNameServer(n);break;default:t.skipField()}return e},proto.configuration.PropertiesDNSSetting.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.configuration.PropertiesDNSSetting.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.configuration.PropertiesDNSSetting.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getStatic())&&t.writeBool(1,n),(n=e.getPrimaryNameServer()).length>0&&t.writeString(2,n),(n=e.getSecondaryNameServer()).length>0&&t.writeString(3,n)},proto.configuration.PropertiesDNSSetting.prototype.getStatic=function(){return r.Message.getBooleanFieldWithDefault(this,1,!1)},proto.configuration.PropertiesDNSSetting.prototype.setStatic=function(e){return r.Message.setProto3BooleanField(this,1,e)},proto.configuration.PropertiesDNSSetting.prototype.getPrimaryNameServer=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.configuration.PropertiesDNSSetting.prototype.setPrimaryNameServer=function(e){return r.Message.setProto3StringField(this,2,e)},proto.configuration.PropertiesDNSSetting.prototype.getSecondaryNameServer=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.configuration.PropertiesDNSSetting.prototype.setSecondaryNameServer=function(e){return r.Message.setProto3StringField(this,3,e)},r.Message.GENERATE_TO_OBJECT&&(proto.configuration.PropertiesManagedDevice.prototype.toObject=function(e){return proto.configuration.PropertiesManagedDevice.toObject(e,this)},proto.configuration.PropertiesManagedDevice.toObject=function(e,t){var n,i={applianceId:r.Message.getFieldWithDefault(t,1,""),enrollmentDetails:(n=t.getEnrollmentDetails())&&a.EnrollManagedDeviceResponse.toObject(e,n)};return e&&(i.$jspbMessageInstance=t),i}),proto.configuration.PropertiesManagedDevice.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.configuration.PropertiesManagedDevice;return proto.configuration.PropertiesManagedDevice.deserializeBinaryFromReader(n,t)},proto.configuration.PropertiesManagedDevice.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readString();e.setApplianceId(n);break;case 2:n=new a.EnrollManagedDeviceResponse,t.readMessage(n,a.EnrollManagedDeviceResponse.deserializeBinaryFromReader),e.setEnrollmentDetails(n);break;default:t.skipField()}return e},proto.configuration.PropertiesManagedDevice.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.configuration.PropertiesManagedDevice.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.configuration.PropertiesManagedDevice.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getApplianceId()).length>0&&t.writeString(1,n),null!=(n=e.getEnrollmentDetails())&&t.writeMessage(2,n,a.EnrollManagedDeviceResponse.serializeBinaryToWriter)},proto.configuration.PropertiesManagedDevice.prototype.getApplianceId=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.configuration.PropertiesManagedDevice.prototype.setApplianceId=function(e){return r.Message.setProto3StringField(this,1,e)},proto.configuration.PropertiesManagedDevice.prototype.getEnrollmentDetails=function(){return r.Message.getWrapperField(this,a.EnrollManagedDeviceResponse,2)},proto.configuration.PropertiesManagedDevice.prototype.setEnrollmentDetails=function(e){return r.Message.setWrapperField(this,2,e)},proto.configuration.PropertiesManagedDevice.prototype.clearEnrollmentDetails=function(){return this.setEnrollmentDetails(void 0)},proto.configuration.PropertiesManagedDevice.prototype.hasEnrollmentDetails=function(){return null!=r.Message.getField(this,2)},i.object.extend(t,proto.configuration)},786:(e,t,n)=>{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();i.exportSymbol("proto.reporting.models.Connection",null,o),i.exportSymbol("proto.reporting.models.ConnectionsReport",null,o),proto.reporting.models.ConnectionsReport=function(e){r.Message.initialize(this,e,0,-1,proto.reporting.models.ConnectionsReport.repeatedFields_,null)},i.inherits(proto.reporting.models.ConnectionsReport,r.Message),i.DEBUG&&!COMPILED&&(proto.reporting.models.ConnectionsReport.displayName="proto.reporting.models.ConnectionsReport"),proto.reporting.models.Connection=function(e){r.Message.initialize(this,e,0,-1,proto.reporting.models.Connection.repeatedFields_,null)},i.inherits(proto.reporting.models.Connection,r.Message),i.DEBUG&&!COMPILED&&(proto.reporting.models.Connection.displayName="proto.reporting.models.Connection"),proto.reporting.models.ConnectionsReport.repeatedFields_=[1],r.Message.GENERATE_TO_OBJECT&&(proto.reporting.models.ConnectionsReport.prototype.toObject=function(e){return proto.reporting.models.ConnectionsReport.toObject(e,this)},proto.reporting.models.ConnectionsReport.toObject=function(e,t){var n={itemsList:r.Message.toObjectList(t.getItemsList(),proto.reporting.models.Connection.toObject,e)};return e&&(n.$jspbMessageInstance=t),n}),proto.reporting.models.ConnectionsReport.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.reporting.models.ConnectionsReport;return proto.reporting.models.ConnectionsReport.deserializeBinaryFromReader(n,t)},proto.reporting.models.ConnectionsReport.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var n=new proto.reporting.models.Connection;t.readMessage(n,proto.reporting.models.Connection.deserializeBinaryFromReader),e.addItems(n)}else t.skipField();return e},proto.reporting.models.ConnectionsReport.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.reporting.models.ConnectionsReport.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.reporting.models.ConnectionsReport.serializeBinaryToWriter=function(e,t){var n;(n=e.getItemsList()).length>0&&t.writeRepeatedMessage(1,n,proto.reporting.models.Connection.serializeBinaryToWriter)},proto.reporting.models.ConnectionsReport.prototype.getItemsList=function(){return r.Message.getRepeatedWrapperField(this,proto.reporting.models.Connection,1)},proto.reporting.models.ConnectionsReport.prototype.setItemsList=function(e){return r.Message.setRepeatedWrapperField(this,1,e)},proto.reporting.models.ConnectionsReport.prototype.addItems=function(e,t){return r.Message.addToRepeatedWrapperField(this,1,e,proto.reporting.models.Connection,t)},proto.reporting.models.ConnectionsReport.prototype.clearItemsList=function(){return this.setItemsList([])},proto.reporting.models.Connection.repeatedFields_=[8],r.Message.GENERATE_TO_OBJECT&&(proto.reporting.models.Connection.prototype.toObject=function(e){return proto.reporting.models.Connection.toObject(e,this)},proto.reporting.models.Connection.toObject=function(e,t){var n,i={appFilteringDenied:r.Message.getBooleanFieldWithDefault(t,1,!1),categoryid:r.Message.getFieldWithDefault(t,2,""),destip:r.Message.getFieldWithDefault(t,3,""),destport:r.Message.getFieldWithDefault(t,4,0),download:r.Message.getFieldWithDefault(t,5,0),finalConnectionObject:r.Message.getBooleanFieldWithDefault(t,6,!1),httphost:r.Message.getFieldWithDefault(t,7,""),httpRequestUrisList:null==(n=r.Message.getRepeatedField(t,8))?void 0:n,hwaddress:r.Message.getFieldWithDefault(t,9,""),lifetime:r.Message.getFieldWithDefault(t,10,0),noise:r.Message.getBooleanFieldWithDefault(t,11,!1),packets:r.Message.getFieldWithDefault(t,12,0),protocol:r.Message.getFieldWithDefault(t,13,0),sourceip:r.Message.getFieldWithDefault(t,14,""),subcategoryid:r.Message.getFieldWithDefault(t,15,""),tag:r.Message.getFieldWithDefault(t,16,""),time:r.Message.getFieldWithDefault(t,17,0),upload:r.Message.getFieldWithDefault(t,18,0),user:r.Message.getFieldWithDefault(t,19,""),verdictApplicationRule:r.Message.getFieldWithDefault(t,20,""),reportingtype:r.Message.getFieldWithDefault(t,21,""),extensionconnection:r.Message.getBooleanFieldWithDefault(t,22,!1),hostname:r.Message.getFieldWithDefault(t,23,""),id:r.Message.getFieldWithDefault(t,24,""),agent:r.Message.getFieldWithDefault(t,25,""),hardware:r.Message.getFieldWithDefault(t,26,""),companionModeActive:r.Message.getBooleanFieldWithDefault(t,27,!1),teacherid:r.Message.getFieldWithDefault(t,28,""),resourceType:r.Message.getFieldWithDefault(t,29,""),bypassCode:r.Message.getFieldWithDefault(t,30,""),bypassExpiryTime:r.Message.getFieldWithDefault(t,31,0),htmltitle:r.Message.getFieldWithDefault(t,32,""),filterType:r.Message.getFieldWithDefault(t,33,""),agentInsideNetwork:r.Message.getBooleanFieldWithDefault(t,34,!1),debugChromeVerdictIssued:r.Message.getBooleanFieldWithDefault(t,35,!1),debugChromeRequestid:r.Message.getFieldWithDefault(t,36,""),useragent:r.Message.getFieldWithDefault(t,37,""),requestJourneyLog:r.Message.getFieldWithDefault(t,38,"")};return e&&(i.$jspbMessageInstance=t),i}),proto.reporting.models.Connection.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.reporting.models.Connection;return proto.reporting.models.Connection.deserializeBinaryFromReader(n,t)},proto.reporting.models.Connection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var n=t.readBool();e.setAppFilteringDenied(n);break;case 2:n=t.readString(),e.setCategoryid(n);break;case 3:n=t.readString(),e.setDestip(n);break;case 4:n=t.readInt32(),e.setDestport(n);break;case 5:n=t.readInt64(),e.setDownload(n);break;case 6:n=t.readBool(),e.setFinalConnectionObject(n);break;case 7:n=t.readString(),e.setHttphost(n);break;case 8:n=t.readString(),e.addHttpRequestUris(n);break;case 9:n=t.readString(),e.setHwaddress(n);break;case 10:n=t.readInt32(),e.setLifetime(n);break;case 11:n=t.readBool(),e.setNoise(n);break;case 12:n=t.readInt32(),e.setPackets(n);break;case 13:n=t.readInt32(),e.setProtocol(n);break;case 14:n=t.readString(),e.setSourceip(n);break;case 15:n=t.readString(),e.setSubcategoryid(n);break;case 16:n=t.readString(),e.setTag(n);break;case 17:n=t.readInt32(),e.setTime(n);break;case 18:n=t.readInt64(),e.setUpload(n);break;case 19:n=t.readString(),e.setUser(n);break;case 20:n=t.readString(),e.setVerdictApplicationRule(n);break;case 21:n=t.readString(),e.setReportingtype(n);break;case 22:n=t.readBool(),e.setExtensionconnection(n);break;case 23:n=t.readString(),e.setHostname(n);break;case 24:n=t.readString(),e.setId(n);break;case 25:n=t.readString(),e.setAgent(n);break;case 26:n=t.readString(),e.setHardware(n);break;case 27:n=t.readBool(),e.setCompanionModeActive(n);break;case 28:n=t.readString(),e.setTeacherid(n);break;case 29:n=t.readString(),e.setResourceType(n);break;case 30:n=t.readString(),e.setBypassCode(n);break;case 31:n=t.readInt64(),e.setBypassExpiryTime(n);break;case 32:n=t.readString(),e.setHtmltitle(n);break;case 33:n=t.readString(),e.setFilterType(n);break;case 34:n=t.readBool(),e.setAgentInsideNetwork(n);break;case 35:n=t.readBool(),e.setDebugChromeVerdictIssued(n);break;case 36:n=t.readString(),e.setDebugChromeRequestid(n);break;case 37:n=t.readString(),e.setUseragent(n);break;case 38:n=t.readString(),e.setRequestJourneyLog(n);break;default:t.skipField()}return e},proto.reporting.models.Connection.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.reporting.models.Connection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.reporting.models.Connection.serializeBinaryToWriter=function(e,t){var n=void 0;(n=e.getAppFilteringDenied())&&t.writeBool(1,n),(n=e.getCategoryid()).length>0&&t.writeString(2,n),(n=e.getDestip()).length>0&&t.writeString(3,n),0!==(n=e.getDestport())&&t.writeInt32(4,n),0!==(n=e.getDownload())&&t.writeInt64(5,n),(n=e.getFinalConnectionObject())&&t.writeBool(6,n),(n=e.getHttphost()).length>0&&t.writeString(7,n),(n=e.getHttpRequestUrisList()).length>0&&t.writeRepeatedString(8,n),(n=e.getHwaddress()).length>0&&t.writeString(9,n),0!==(n=e.getLifetime())&&t.writeInt32(10,n),(n=e.getNoise())&&t.writeBool(11,n),0!==(n=e.getPackets())&&t.writeInt32(12,n),0!==(n=e.getProtocol())&&t.writeInt32(13,n),(n=e.getSourceip()).length>0&&t.writeString(14,n),(n=e.getSubcategoryid()).length>0&&t.writeString(15,n),(n=e.getTag()).length>0&&t.writeString(16,n),0!==(n=e.getTime())&&t.writeInt32(17,n),0!==(n=e.getUpload())&&t.writeInt64(18,n),(n=e.getUser()).length>0&&t.writeString(19,n),(n=e.getVerdictApplicationRule()).length>0&&t.writeString(20,n),(n=e.getReportingtype()).length>0&&t.writeString(21,n),(n=e.getExtensionconnection())&&t.writeBool(22,n),(n=e.getHostname()).length>0&&t.writeString(23,n),(n=e.getId()).length>0&&t.writeString(24,n),(n=e.getAgent()).length>0&&t.writeString(25,n),(n=e.getHardware()).length>0&&t.writeString(26,n),(n=e.getCompanionModeActive())&&t.writeBool(27,n),null!=(n=r.Message.getField(e,28))&&t.writeString(28,n),(n=e.getResourceType()).length>0&&t.writeString(29,n),(n=e.getBypassCode()).length>0&&t.writeString(30,n),0!==(n=e.getBypassExpiryTime())&&t.writeInt64(31,n),(n=e.getHtmltitle()).length>0&&t.writeString(32,n),(n=e.getFilterType()).length>0&&t.writeString(33,n),(n=e.getAgentInsideNetwork())&&t.writeBool(34,n),(n=e.getDebugChromeVerdictIssued())&&t.writeBool(35,n),(n=e.getDebugChromeRequestid()).length>0&&t.writeString(36,n),(n=e.getUseragent()).length>0&&t.writeString(37,n),(n=e.getRequestJourneyLog()).length>0&&t.writeString(38,n)},proto.reporting.models.Connection.prototype.getAppFilteringDenied=function(){return r.Message.getBooleanFieldWithDefault(this,1,!1)},proto.reporting.models.Connection.prototype.setAppFilteringDenied=function(e){return r.Message.setProto3BooleanField(this,1,e)},proto.reporting.models.Connection.prototype.getCategoryid=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.reporting.models.Connection.prototype.setCategoryid=function(e){return r.Message.setProto3StringField(this,2,e)},proto.reporting.models.Connection.prototype.getDestip=function(){return r.Message.getFieldWithDefault(this,3,"")},proto.reporting.models.Connection.prototype.setDestip=function(e){return r.Message.setProto3StringField(this,3,e)},proto.reporting.models.Connection.prototype.getDestport=function(){return r.Message.getFieldWithDefault(this,4,0)},proto.reporting.models.Connection.prototype.setDestport=function(e){return r.Message.setProto3IntField(this,4,e)},proto.reporting.models.Connection.prototype.getDownload=function(){return r.Message.getFieldWithDefault(this,5,0)},proto.reporting.models.Connection.prototype.setDownload=function(e){return r.Message.setProto3IntField(this,5,e)},proto.reporting.models.Connection.prototype.getFinalConnectionObject=function(){return r.Message.getBooleanFieldWithDefault(this,6,!1)},proto.reporting.models.Connection.prototype.setFinalConnectionObject=function(e){return r.Message.setProto3BooleanField(this,6,e)},proto.reporting.models.Connection.prototype.getHttphost=function(){return r.Message.getFieldWithDefault(this,7,"")},proto.reporting.models.Connection.prototype.setHttphost=function(e){return r.Message.setProto3StringField(this,7,e)},proto.reporting.models.Connection.prototype.getHttpRequestUrisList=function(){return r.Message.getRepeatedField(this,8)},proto.reporting.models.Connection.prototype.setHttpRequestUrisList=function(e){return r.Message.setField(this,8,e||[])},proto.reporting.models.Connection.prototype.addHttpRequestUris=function(e,t){return r.Message.addToRepeatedField(this,8,e,t)},proto.reporting.models.Connection.prototype.clearHttpRequestUrisList=function(){return this.setHttpRequestUrisList([])},proto.reporting.models.Connection.prototype.getHwaddress=function(){return r.Message.getFieldWithDefault(this,9,"")},proto.reporting.models.Connection.prototype.setHwaddress=function(e){return r.Message.setProto3StringField(this,9,e)},proto.reporting.models.Connection.prototype.getLifetime=function(){return r.Message.getFieldWithDefault(this,10,0)},proto.reporting.models.Connection.prototype.setLifetime=function(e){return r.Message.setProto3IntField(this,10,e)},proto.reporting.models.Connection.prototype.getNoise=function(){return r.Message.getBooleanFieldWithDefault(this,11,!1)},proto.reporting.models.Connection.prototype.setNoise=function(e){return r.Message.setProto3BooleanField(this,11,e)},proto.reporting.models.Connection.prototype.getPackets=function(){return r.Message.getFieldWithDefault(this,12,0)},proto.reporting.models.Connection.prototype.setPackets=function(e){return r.Message.setProto3IntField(this,12,e)},proto.reporting.models.Connection.prototype.getProtocol=function(){return r.Message.getFieldWithDefault(this,13,0)},proto.reporting.models.Connection.prototype.setProtocol=function(e){return r.Message.setProto3IntField(this,13,e)},proto.reporting.models.Connection.prototype.getSourceip=function(){return r.Message.getFieldWithDefault(this,14,"")},proto.reporting.models.Connection.prototype.setSourceip=function(e){return r.Message.setProto3StringField(this,14,e)},proto.reporting.models.Connection.prototype.getSubcategoryid=function(){return r.Message.getFieldWithDefault(this,15,"")},proto.reporting.models.Connection.prototype.setSubcategoryid=function(e){return r.Message.setProto3StringField(this,15,e)},proto.reporting.models.Connection.prototype.getTag=function(){return r.Message.getFieldWithDefault(this,16,"")},proto.reporting.models.Connection.prototype.setTag=function(e){return r.Message.setProto3StringField(this,16,e)},proto.reporting.models.Connection.prototype.getTime=function(){return r.Message.getFieldWithDefault(this,17,0)},proto.reporting.models.Connection.prototype.setTime=function(e){return r.Message.setProto3IntField(this,17,e)},proto.reporting.models.Connection.prototype.getUpload=function(){return r.Message.getFieldWithDefault(this,18,0)},proto.reporting.models.Connection.prototype.setUpload=function(e){return r.Message.setProto3IntField(this,18,e)},proto.reporting.models.Connection.prototype.getUser=function(){return r.Message.getFieldWithDefault(this,19,"")},proto.reporting.models.Connection.prototype.setUser=function(e){return r.Message.setProto3StringField(this,19,e)},proto.reporting.models.Connection.prototype.getVerdictApplicationRule=function(){return r.Message.getFieldWithDefault(this,20,"")},proto.reporting.models.Connection.prototype.setVerdictApplicationRule=function(e){return r.Message.setProto3StringField(this,20,e)},proto.reporting.models.Connection.prototype.getReportingtype=function(){return r.Message.getFieldWithDefault(this,21,"")},proto.reporting.models.Connection.prototype.setReportingtype=function(e){return r.Message.setProto3StringField(this,21,e)},proto.reporting.models.Connection.prototype.getExtensionconnection=function(){return r.Message.getBooleanFieldWithDefault(this,22,!1)},proto.reporting.models.Connection.prototype.setExtensionconnection=function(e){return r.Message.setProto3BooleanField(this,22,e)},proto.reporting.models.Connection.prototype.getHostname=function(){return r.Message.getFieldWithDefault(this,23,"")},proto.reporting.models.Connection.prototype.setHostname=function(e){return r.Message.setProto3StringField(this,23,e)},proto.reporting.models.Connection.prototype.getId=function(){return r.Message.getFieldWithDefault(this,24,"")},proto.reporting.models.Connection.prototype.setId=function(e){return r.Message.setProto3StringField(this,24,e)},proto.reporting.models.Connection.prototype.getAgent=function(){return r.Message.getFieldWithDefault(this,25,"")},proto.reporting.models.Connection.prototype.setAgent=function(e){return r.Message.setProto3StringField(this,25,e)},proto.reporting.models.Connection.prototype.getHardware=function(){return r.Message.getFieldWithDefault(this,26,"")},proto.reporting.models.Connection.prototype.setHardware=function(e){return r.Message.setProto3StringField(this,26,e)},proto.reporting.models.Connection.prototype.getCompanionModeActive=function(){return r.Message.getBooleanFieldWithDefault(this,27,!1)},proto.reporting.models.Connection.prototype.setCompanionModeActive=function(e){return r.Message.setProto3BooleanField(this,27,e)},proto.reporting.models.Connection.prototype.getTeacherid=function(){return r.Message.getFieldWithDefault(this,28,"")},proto.reporting.models.Connection.prototype.setTeacherid=function(e){return r.Message.setField(this,28,e)},proto.reporting.models.Connection.prototype.clearTeacherid=function(){return r.Message.setField(this,28,void 0)},proto.reporting.models.Connection.prototype.hasTeacherid=function(){return null!=r.Message.getField(this,28)},proto.reporting.models.Connection.prototype.getResourceType=function(){return r.Message.getFieldWithDefault(this,29,"")},proto.reporting.models.Connection.prototype.setResourceType=function(e){return r.Message.setProto3StringField(this,29,e)},proto.reporting.models.Connection.prototype.getBypassCode=function(){return r.Message.getFieldWithDefault(this,30,"")},proto.reporting.models.Connection.prototype.setBypassCode=function(e){return r.Message.setProto3StringField(this,30,e)},proto.reporting.models.Connection.prototype.getBypassExpiryTime=function(){return r.Message.getFieldWithDefault(this,31,0)},proto.reporting.models.Connection.prototype.setBypassExpiryTime=function(e){return r.Message.setProto3IntField(this,31,e)},proto.reporting.models.Connection.prototype.getHtmltitle=function(){return r.Message.getFieldWithDefault(this,32,"")},proto.reporting.models.Connection.prototype.setHtmltitle=function(e){return r.Message.setProto3StringField(this,32,e)},proto.reporting.models.Connection.prototype.getFilterType=function(){return r.Message.getFieldWithDefault(this,33,"")},proto.reporting.models.Connection.prototype.setFilterType=function(e){return r.Message.setProto3StringField(this,33,e)},proto.reporting.models.Connection.prototype.getAgentInsideNetwork=function(){return r.Message.getBooleanFieldWithDefault(this,34,!1)},proto.reporting.models.Connection.prototype.setAgentInsideNetwork=function(e){return r.Message.setProto3BooleanField(this,34,e)},proto.reporting.models.Connection.prototype.getDebugChromeVerdictIssued=function(){return r.Message.getBooleanFieldWithDefault(this,35,!1)},proto.reporting.models.Connection.prototype.setDebugChromeVerdictIssued=function(e){return r.Message.setProto3BooleanField(this,35,e)},proto.reporting.models.Connection.prototype.getDebugChromeRequestid=function(){return r.Message.getFieldWithDefault(this,36,"")},proto.reporting.models.Connection.prototype.setDebugChromeRequestid=function(e){return r.Message.setProto3StringField(this,36,e)},proto.reporting.models.Connection.prototype.getUseragent=function(){return r.Message.getFieldWithDefault(this,37,"")},proto.reporting.models.Connection.prototype.setUseragent=function(e){return r.Message.setProto3StringField(this,37,e)},proto.reporting.models.Connection.prototype.getRequestJourneyLog=function(){return r.Message.getFieldWithDefault(this,38,"")},proto.reporting.models.Connection.prototype.setRequestJourneyLog=function(e){return r.Message.setProto3StringField(this,38,e)},i.object.extend(t,proto.reporting.models)},8098:(e,t,n)=>{var r=n(3157),i="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==i&&i||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),o=n(786);r.object.extend(proto,o);var a=n(1458);r.object.extend(proto,a)},1682:(e,t,n)=>{n(8098);var r=n(786),i=n(1458),o=n(459).grpc,a=function(){function e(){}return e.serviceName="reporting.Reporting",e}();function s(e,t){this.serviceHost=e,this.options=t||{}}a.ConnectionReport={methodName:"ConnectionReport",service:a,requestStream:!0,responseStream:!1,requestType:r.Connection,responseType:i.Empty},s.prototype.connectionReport=function(e){var t={end:[],status:[]},n=o.client(a.ConnectionReport,{host:this.serviceHost,metadata:e,transport:this.options.transport});return n.onEnd((function(e,n,r){t.status.forEach((function(t){t({code:e,details:n,metadata:r})})),t.end.forEach((function(t){t({code:e,details:n,metadata:r})})),t=null})),{on:function(e,n){return t[e].push(n),this},write:function(t){return n.started||n.start(e),n.send(t),this},end:function(){n.finishSend()},cancel:function(){t=null,n.close()}}},t.A=s},459:function(e){var t,n;e.exports=(t={418:function(e,t){!function(e,t){for(var n in t)e[n]=t[n]}(t,function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),i=function(){function e(e,t){void 0===e&&(e={}),void 0===t&&(t={splitValues:!1});var n,i=this;this.headersMap={},e&&("undefined"!=typeof Headers&&e instanceof Headers?r.getHeaderKeys(e).forEach((function(n){r.getHeaderValues(e,n).forEach((function(e){t.splitValues?i.append(n,r.splitHeaderValue(e)):i.append(n,e)}))})):"object"==typeof(n=e)&&"object"==typeof n.headersMap&&"function"==typeof n.forEach?e.forEach((function(e,t){i.append(e,t)})):"undefined"!=typeof Map&&e instanceof Map?e.forEach((function(e,t){i.append(t,e)})):"string"==typeof e?this.appendFromString(e):"object"==typeof e&&Object.getOwnPropertyNames(e).forEach((function(t){var n=e[t];Array.isArray(n)?n.forEach((function(e){i.append(t,e)})):i.append(t,n)})))}return e.prototype.appendFromString=function(e){for(var t=e.split("\r\n"),n=0;n0){var o=r.substring(0,i).trim(),a=r.substring(i+1).trim();this.append(o,a)}}},e.prototype.delete=function(e,t){var n=r.normalizeName(e);if(void 0===t)delete this.headersMap[n];else{var i=this.headersMap[n];if(i){var o=i.indexOf(t);o>=0&&i.splice(o,1),0===i.length&&delete this.headersMap[n]}}},e.prototype.append=function(e,t){var n=this,i=r.normalizeName(e);Array.isArray(this.headersMap[i])||(this.headersMap[i]=[]),Array.isArray(t)?t.forEach((function(e){n.headersMap[i].push(r.normalizeValue(e))})):this.headersMap[i].push(r.normalizeValue(t))},e.prototype.set=function(e,t){var n=r.normalizeName(e);if(Array.isArray(t)){var i=[];t.forEach((function(e){i.push(r.normalizeValue(e))})),this.headersMap[n]=i}else this.headersMap[n]=[r.normalizeValue(t)]},e.prototype.has=function(e,t){var n=this.headersMap[r.normalizeName(e)];if(!Array.isArray(n))return!1;if(void 0!==t){var i=r.normalizeValue(t);return n.indexOf(i)>=0}return!0},e.prototype.get=function(e){var t=this.headersMap[r.normalizeName(e)];return void 0!==t?t.concat():[]},e.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.headersMap).forEach((function(n){e(n,t.headersMap[n])}),this)},e.prototype.toHeaders=function(){if("undefined"!=typeof Headers){var e=new Headers;return this.forEach((function(t,n){n.forEach((function(n){e.append(t,n)}))})),e}throw new Error("Headers class is not defined")},e}();t.BrowserHeaders=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.BrowserHeaders=r.BrowserHeaders},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.iterateHeaders=function(e,t){for(var n=e[Symbol.iterator](),r=n.next();!r.done;)t(r.value[0]),r=n.next()},t.iterateHeadersKeys=function(e,t){for(var n=e.keys(),r=n.next();!r.done;)t(r.value),r=n.next()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2);t.normalizeName=function(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()},t.normalizeValue=function(e){return"string"!=typeof e&&(e=String(e)),e},t.getHeaderValues=function(e,t){var n=e;if(n instanceof Headers&&n.getAll)return n.getAll(t);var r=n.get(t);return r&&"string"==typeof r?[r]:r},t.getHeaderKeys=function(e){var t=e,n={},i=[];return t.keys?r.iterateHeadersKeys(t,(function(e){n[e]||(n[e]=!0,i.push(e))})):t.forEach?t.forEach((function(e,t){n[t]||(n[t]=!0,i.push(t))})):r.iterateHeaders(t,(function(e){var t=e[0];n[t]||(n[t]=!0,i.push(t))})),i},t.splitHeaderValue=function(e){var t=[];return e.split(", ").forEach((function(e){e.split(",").forEach((function(e){t.push(e)}))})),t}}]))},617:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChunkParser=t.ChunkType=t.encodeASCII=t.decodeASCII=void 0;var r,i=n(65);function o(e){return 9===(t=e)||10===t||13===t||e>=32&&e<=126;var t}function a(e){for(var t=0;t!==e.length;++t)if(!o(e[t]))throw new Error("Metadata is not valid (printable) ASCII");return String.fromCharCode.apply(String,Array.prototype.slice.call(e))}function s(e){return!(128&~e.getUint8(0))}function A(e){return e.getUint32(1,!1)}function c(e,t,n){return e.byteLength-t>=n}function u(e,t,n){if(e.slice)return e.slice(t,n);var r=e.length;void 0!==n&&(r=n);for(var i=new Uint8Array(r-t),o=0,a=t;a=0?n:o.httpStatusToCode(t);this.props.debug&&a.debug("onHeaders.code",r);var i=e.get("grpc-message")||[];if(this.props.debug&&a.debug("onHeaders.gRPCMessage",i),this.rawOnHeaders(e),r!==o.Code.OK){var s=this.decodeGRPCStatus(i[0]);this.rawOnError(r,s,e)}}},e.prototype.onTransportChunk=function(e){var t=this;if(this.closed)this.props.debug&&a.debug("grpc.onChunk received after request was closed - ignoring");else{var n=[];try{n=this.parser.parse(e)}catch(e){return this.props.debug&&a.debug("onChunk.parsing error",e,e.message),void this.rawOnError(o.Code.Internal,"parsing error: "+e.message)}n.forEach((function(e){if(e.chunkType===i.ChunkType.MESSAGE){var n=t.methodDefinition.responseType.deserializeBinary(e.data);t.rawOnMessage(n)}else e.chunkType===i.ChunkType.TRAILERS&&(t.responseHeaders?(t.responseTrailers=new r.Metadata(e.trailers),t.props.debug&&a.debug("onChunk.trailers",t.responseTrailers)):(t.responseHeaders=new r.Metadata(e.trailers),t.rawOnHeaders(t.responseHeaders)))}))}},e.prototype.onTransportEnd=function(){if(this.props.debug&&a.debug("grpc.onEnd"),this.closed)this.props.debug&&a.debug("grpc.onEnd received after request was closed - ignoring");else if(void 0!==this.responseTrailers){var e=u(this.responseTrailers);if(null!==e){var t=this.responseTrailers.get("grpc-message"),n=this.decodeGRPCStatus(t[0]);this.rawOnEnd(e,n,this.responseTrailers)}else this.rawOnError(o.Code.Internal,"Response closed without grpc-status (Trailers provided)")}else{if(void 0===this.responseHeaders)return void this.rawOnError(o.Code.Unknown,"Response closed without headers");var r=u(this.responseHeaders),i=this.responseHeaders.get("grpc-message");if(this.props.debug&&a.debug("grpc.headers only response ",r,i),null===r)return void this.rawOnEnd(o.Code.Unknown,"Response closed without grpc-status (Headers only)",this.responseHeaders);var s=this.decodeGRPCStatus(i[0]);this.rawOnEnd(r,s,this.responseHeaders)}},e.prototype.decodeGRPCStatus=function(e){if(!e)return"";try{return decodeURIComponent(e)}catch(t){return e}},e.prototype.rawOnEnd=function(e,t,n){var r=this;this.props.debug&&a.debug("rawOnEnd",e,t,n),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(i){if(!r.closed)try{i(e,t,n)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnHeaders=function(e){this.props.debug&&a.debug("rawOnHeaders",e),this.completed||this.onHeadersCallbacks.forEach((function(t){try{t(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.rawOnError=function(e,t,n){var i=this;void 0===n&&(n=new r.Metadata),this.props.debug&&a.debug("rawOnError",e,t),this.completed||(this.completed=!0,this.onEndCallbacks.forEach((function(r){if(!i.closed)try{r(e,t,n)}catch(e){setTimeout((function(){throw e}),0)}})))},e.prototype.rawOnMessage=function(e){var t=this;this.props.debug&&a.debug("rawOnMessage",e.toObject()),this.completed||this.closed||this.onMessageCallbacks.forEach((function(n){if(!t.closed)try{n(e)}catch(e){setTimeout((function(){throw e}),0)}}))},e.prototype.onHeaders=function(e){this.onHeadersCallbacks.push(e)},e.prototype.onMessage=function(e){this.onMessageCallbacks.push(e)},e.prototype.onEnd=function(e){this.onEndCallbacks.push(e)},e.prototype.start=function(e){if(this.started)throw new Error("Client already started - cannot .start()");this.started=!0;var t=new r.Metadata(e||{});t.set("content-type","application/grpc-web+proto"),t.set("x-grpc-web","1"),this.transport.start(t)},e.prototype.send=function(e){if(!this.started)throw new Error("Client not started - .start() must be called before .send()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .send()");if(!this.methodDefinition.requestStream&&this.sentFirstMessage)throw new Error("Message already sent for non-client-streaming method - cannot .send()");this.sentFirstMessage=!0;var t=A.frameRequest(e);this.transport.sendMessage(t)},e.prototype.finishSend=function(){if(!this.started)throw new Error("Client not started - .finishSend() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .send()");if(this.finishedSending)throw new Error("Client already finished sending - cannot .finishSend()");this.finishedSending=!0,this.transport.finishSend()},e.prototype.close=function(){if(!this.started)throw new Error("Client not started - .start() must be called before .close()");if(this.closed)throw new Error("Client already closed - cannot .close()");this.closed=!0,this.props.debug&&a.debug("request.abort aborting request"),this.transport.cancel()},e}();function u(e){var t=e.get("grpc-status")||[];if(t.length>0)try{var n=t[0];return parseInt(n,10)}catch(e){return null}return null}},346:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debug=void 0,t.debug=function(){for(var e=[],t=0;t=55296&&n<=56319){var r=e.charCodeAt(t+1);r>=56320&&r<=57343&&(n=65536+(n-55296<<10)+(r-56320))}return n}function l(e){for(var t=new Uint8Array(e.length),n=0,r=0;r{"use strict";n.d(t,{_:()=>c});var r=n(5499),i=function(){function e(){}return e.prototype.active=function(){return r.l},e.prototype.with=function(e,t,n){for(var r=[],i=3;i0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(r),!1))},e.prototype.bind=function(e,t){return t},e.prototype.enable=function(){return this},e.prototype.disable=function(){return this},e}(),o=n(9120),a=n(6392),s="context",A=new i,c=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(e){return(0,o.$G)(s,e,a.K.instance())},e.prototype.active=function(){return this._getContextManager().active()},e.prototype.with=function(e,t,n){for(var r,i=[],o=3;o0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(i),!1))},e.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},e.prototype._getContextManager=function(){return(0,o.mS)(s)||A},e.prototype.disable=function(){this._getContextManager().disable(),(0,o.kv)(s,a.K.instance())},e}()},6392:(e,t,n)=>{"use strict";n.d(t,{K:()=>s});var r=n(9120),i=function(){function e(e){this._namespace=e.namespace||"DiagComponentLogger"}return e.prototype.debug=function(){for(var e=[],t=0;t0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(n),!1))}var a=n(7907),s=function(){function e(){function e(e){return function(){for(var t=[],n=0;n0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(t),!1))}}var t=this;t.setLogger=function(e,n){var i,o,s;if(void 0===n&&(n={logLevel:a.u.INFO}),e===t){var A=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!==(i=A.stack)&&void 0!==i?i:A.message),!1}"number"==typeof n&&(n={logLevel:n});var c=(0,r.mS)("diag"),u=function(e,t){function n(n,r){var i=t[n];return"function"==typeof i&&e>=r?i.bind(t):function(){}}return ea.u.ALL&&(e=a.u.ALL),t=t||{},{error:n("error",a.u.ERROR),warn:n("warn",a.u.WARN),info:n("info",a.u.INFO),debug:n("debug",a.u.DEBUG),verbose:n("verbose",a.u.VERBOSE)}}(null!==(o=n.logLevel)&&void 0!==o?o:a.u.INFO,e);if(c&&!n.suppressOverrideMessage){var l=null!==(s=(new Error).stack)&&void 0!==s?s:"";c.warn("Current logger will be overwritten from "+l),u.warn("Current logger will overwrite one already registered from "+l)}return(0,r.$G)("diag",u,t,!0)},t.disable=function(){(0,r.kv)("diag",t)},t.createComponentLogger=function(e){return new i(e)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}()},2400:(e,t,n)=>{"use strict";n.d(t,{B:()=>A,L:()=>s});var r=n(6392),i=function(){function e(e){this._entries=e?new Map(e):new Map}return e.prototype.getEntry=function(e){var t=this._entries.get(e);if(t)return Object.assign({},t)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map((function(e){var t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2);return[t[0],t[1]]}))},e.prototype.setEntry=function(t,n){var r=new e(this._entries);return r._entries.set(t,n),r},e.prototype.removeEntry=function(t){var n=new e(this._entries);return n._entries.delete(t),n},e.prototype.removeEntries=function(){for(var t,n,r=[],i=0;i=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(r),s=a.next();!s.done;s=a.next()){var A=s.value;o._entries.delete(A)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}return o},e.prototype.clear=function(){return new e},e}(),o=Symbol("BaggageEntryMetadata"),a=r.K.instance();function s(e){return void 0===e&&(e={}),new i(new Map(Object.entries(e)))}function A(e){return"string"!=typeof e&&(a.error("Cannot create baggage metadata from unknown type: "+typeof e),e=""),{__TYPE__:o,toString:function(){return e}}}},6982:(e,t,n)=>{"use strict";n.d(t,{_:()=>r});var r=n(7753)._.getInstance()},5499:(e,t,n)=>{"use strict";function r(e){return Symbol.for(e)}n.d(t,{l:()=>i,n:()=>r});var i=new function e(t){var n=this;n._currentContext=t?new Map(t):new Map,n.getValue=function(e){return n._currentContext.get(e)},n.setValue=function(t,r){var i=new e(n._currentContext);return i._currentContext.set(t,r),i},n.deleteValue=function(t){var r=new e(n._currentContext);return r._currentContext.delete(t),r}}},7907:(e,t,n)=>{"use strict";var r;n.d(t,{u:()=>r}),function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(r||(r={}))},9120:(e,t,n)=>{"use strict";n.d(t,{mS:()=>l,$G:()=>u,kv:()=>d});var r="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof n.g?n.g:{},i="1.9.0",o=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,a=function(e){var t=new Set([e]),n=new Set,r=e.match(o);if(!r)return function(){return!1};var i=+r[1],a=+r[2],s=+r[3];if(null!=r[4])return function(t){return t===e};function A(e){return n.add(e),!1}function c(e){return t.add(e),!0}return function(e){if(t.has(e))return!0;if(n.has(e))return!1;var r=e.match(o);if(!r)return A(e);var u=+r[1],l=+r[2],d=+r[3];return null!=r[4]||i!==u?A(e):0===i?a===l&&s<=d?c(e):A(e):a<=l?c(e):A(e)}}(i),s=i.split(".")[0],A=Symbol.for("opentelemetry.js.api."+s),c=r;function u(e,t,n,r){var o;void 0===r&&(r=!1);var a=c[A]=null!==(o=c[A])&&void 0!==o?o:{version:i};if(!r&&a[e]){var s=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return n.error(s.stack||s.message),!1}return a.version!==i?(s=new Error("@opentelemetry/api: Registration of version v"+a.version+" for "+e+" does not match previously registered API v"+i),n.error(s.stack||s.message),!1):(a[e]=t,n.debug("@opentelemetry/api: Registered a global for "+e+" v"+i+"."),!0)}function l(e){var t,n,r=null===(t=c[A])||void 0===t?void 0:t.version;if(r&&a(r))return null===(n=c[A])||void 0===n?void 0:n[e]}function d(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+i+".");var n=c[A];n&&delete n[e]}},2007:(e,t,n)=>{"use strict";n.d(t,{$:()=>y});var r=n(9120),i=function(){function e(){}return e.prototype.inject=function(e,t){},e.prototype.extract=function(e,t){return e},e.prototype.fields=function(){return[]},e}(),o={get:function(e,t){if(null!=e)return e[t]},keys:function(e){return null==e?[]:Object.keys(e)}},a={set:function(e,t,n){null!=e&&(e[t]=n)}},s=n(7753),A=(0,n(5499).n)("OpenTelemetry Baggage Key");function c(e){return e.getValue(A)||void 0}function u(){return c(s._.getInstance().active())}function l(e,t){return e.setValue(A,t)}function d(e){return e.deleteValue(A)}var p=n(2400),h=n(6392),f="propagation",m=new i,g=function(){function e(){this.createBaggage=p.L,this.getBaggage=c,this.getActiveBaggage=u,this.setBaggage=l,this.deleteBaggage=d}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalPropagator=function(e){return(0,r.$G)(f,e,h.K.instance())},e.prototype.inject=function(e,t,n){return void 0===n&&(n=a),this._getGlobalPropagator().inject(e,t,n)},e.prototype.extract=function(e,t,n){return void 0===n&&(n=o),this._getGlobalPropagator().extract(e,t,n)},e.prototype.fields=function(){return this._getGlobalPropagator().fields()},e.prototype.disable=function(){(0,r.kv)(f,h.K.instance())},e.prototype._getGlobalPropagator=function(){return(0,r.mS)(f)||m},e}(),y=g.getInstance()},8442:(e,t,n)=>{"use strict";n.d(t,{u:()=>c});var r=n(9120),i=n(2717),o=n(9905),a=n(9781),s=n(6392),A="trace",c=function(){function e(){this._proxyTracerProvider=new i.n,this.wrapSpanContext=o.IP,this.isSpanContextValid=o.YA,this.deleteSpan=a.EW,this.getSpan=a.fU,this.getActiveSpan=a.Bk,this.getSpanContext=a.w8,this.setSpan=a.Bx,this.setSpanContext=a.g_}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(e){var t=(0,r.$G)(A,this._proxyTracerProvider,s.K.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},e.prototype.getTracerProvider=function(){return(0,r.mS)(A)||this._proxyTracerProvider},e.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},e.prototype.disable=function(){(0,r.kv)(A,s.K.instance()),this._proxyTracerProvider=new i.n},e}().getInstance()},338:(e,t,n)=>{"use strict";n.d(t,{d:()=>i});var r=n(2102),i=function(){function e(e){void 0===e&&(e=r.dM),this._spanContext=e}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return this},e.prototype.setAttributes=function(e){return this},e.prototype.addEvent=function(e,t){return this},e.prototype.addLink=function(e){return this},e.prototype.addLinks=function(e){return this},e.prototype.setStatus=function(e){return this},e.prototype.updateName=function(e){return this},e.prototype.end=function(e){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(e,t){},e}()},2717:(e,t,n)=>{"use strict";n.d(t,{n:()=>d});var r=n(7753),i=n(9781),o=n(338),a=n(9905),s=r._.getInstance(),A=function(){function e(){}return e.prototype.startSpan=function(e,t,n){if(void 0===n&&(n=s.active()),Boolean(null==t?void 0:t.root))return new o.d;var r,A=n&&(0,i.w8)(n);return"object"==typeof(r=A)&&"string"==typeof r.spanId&&"string"==typeof r.traceId&&"number"==typeof r.traceFlags&&(0,a.YA)(A)?new o.d(A):new o.d},e.prototype.startActiveSpan=function(e,t,n,r){var o,a,A;if(!(arguments.length<2)){2===arguments.length?A=t:3===arguments.length?(o=t,A=n):(o=t,a=n,A=r);var c=null!=a?a:s.active(),u=this.startSpan(e,o,c),l=(0,i.Bx)(c,u);return s.with(l,A,void 0,u)}},e}(),c=new A,u=function(){function e(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}return e.prototype.startSpan=function(e,t,n){return this._getTracer().startSpan(e,t,n)},e.prototype.startActiveSpan=function(e,t,n,r){var i=this._getTracer();return Reflect.apply(i.startActiveSpan,i,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):c},e}(),l=new(function(){function e(){}return e.prototype.getTracer=function(e,t,n){return new A},e}()),d=function(){function e(){}return e.prototype.getTracer=function(e,t,n){var r;return null!==(r=this.getDelegateTracer(e,t,n))&&void 0!==r?r:new u(this,e,t,n)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:l},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateTracer=function(e,t,n){var r;return null===(r=this._delegate)||void 0===r?void 0:r.getTracer(e,t,n)},e}()},9781:(e,t,n)=>{"use strict";n.d(t,{Bk:()=>A,Bx:()=>c,EW:()=>u,fU:()=>s,g_:()=>l,w8:()=>d});var r=n(5499),i=n(338),o=n(7753),a=(0,r.n)("OpenTelemetry Context Key SPAN");function s(e){return e.getValue(a)||void 0}function A(){return s(o._.getInstance().active())}function c(e,t){return e.setValue(a,t)}function u(e){return e.deleteValue(a)}function l(e,t){return c(e,new i.d(t))}function d(e){var t;return null===(t=s(e))||void 0===t?void 0:t.spanContext()}},2102:(e,t,n)=>{"use strict";n.d(t,{RH:()=>o,dM:()=>a,w9:()=>i});var r=n(1199),i="0000000000000000",o="00000000000000000000000000000000",a={traceId:o,spanId:i,traceFlags:r.X.NONE}},4569:(e,t,n)=>{"use strict";var r;n.d(t,{v:()=>r}),function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"}(r||(r={}))},9905:(e,t,n)=>{"use strict";n.d(t,{IP:()=>c,YA:()=>A,hX:()=>s});var r=n(2102),i=n(338),o=/^([0-9a-f]{32})$/i,a=/^[0-9a-f]{16}$/i;function s(e){return o.test(e)&&e!==r.RH}function A(e){return s(e.traceId)&&(t=e.spanId,a.test(t)&&t!==r.w9);var t}function c(e){return new i.d(e)}},2626:(e,t,n)=>{"use strict";var r;n.d(t,{s:()=>r}),function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(r||(r={}))},1199:(e,t,n)=>{"use strict";var r;n.d(t,{X:()=>r}),function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(r||(r={}))},6526:function(e){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=90)}({17:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var n=t.match(e);return n&&n.length>0&&n[1]||""},e.getSecondMatch=function(e,t){var n=t.match(e);return n&&n.length>1&&n[2]||""},e.matchAndReturnConst=function(e,t,n){if(e.test(t))return n},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,n,r){void 0===r&&(r=!1);var i=e.getVersionPrecision(t),o=e.getVersionPrecision(n),a=Math.max(i,o),s=0,A=e.map([t,n],(function(t){var n=a-e.getVersionPrecision(t),r=t+new Array(n+1).join(".0");return e.map(r.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(r&&(s=a-Math.min(i,o)),a-=1;a>=s;){if(A[0][a]>A[1][a])return 1;if(A[0][a]===A[1][a]){if(a===s)return 0;a-=1}else if(A[0][a]1?i-1:0),a=1;a0){var a=Object.keys(n),A=s.default.find(a,(function(e){return t.isOS(e)}));if(A){var c=this.satisfies(n[A]);if(void 0!==c)return c}var u=s.default.find(a,(function(e){return t.isPlatform(e)}));if(u){var l=this.satisfies(n[u]);if(void 0!==l)return l}}if(o>0){var d=Object.keys(i),p=s.default.find(d,(function(e){return t.isBrowser(e,!0)}));if(void 0!==p)return this.compareVersion(i[p])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var n=this.getBrowserName().toLowerCase(),r=e.toLowerCase(),i=s.default.getBrowserTypeByAlias(r);return t&&i&&(r=i.toLowerCase()),r===n},t.compareVersion=function(e){var t=[0],n=e,r=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(n=e.substr(1),"="===e[1]?(r=!0,n=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?n=e.substr(1):"~"===e[0]&&(r=!0,n=e.substr(1)),t.indexOf(s.default.compareVersions(i,n,r))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=c,e.exports=t.default},92:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},n=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},n=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},n=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},n=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},n=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},n=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},n=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},n=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},n=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},n=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},n=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},n=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},n=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},n=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},n=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},n=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},n=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},n=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},n=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},n=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},n=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},n=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},n=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},n=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},n=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},n=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},n=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},n=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){var t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe:function(e){var t={name:"Android Browser"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},n=i.default.getFirstMatch(o,e);return n&&(t.version=n),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:o.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),n=i.default.getWindowsVersionName(t);return{name:o.OS_MAP.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:o.OS_MAP.iOS},n=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),n=i.default.getMacOSVersionName(t),r={name:o.OS_MAP.MacOS,version:t};return n&&(r.versionName=n),r}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),n=i.default.getAndroidVersionName(t),r={name:o.OS_MAP.Android,version:t};return n&&(r.versionName=n),r}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),n={name:o.OS_MAP.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:o.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",n={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(n.model=t),n}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,i=(r=n(17))&&r.__esModule?r:{default:r},o=n(18),a=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:o.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:o.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:o.ENGINE_MAP.Trident},n=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:o.ENGINE_MAP.Presto},n=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:function(e){var t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe:function(e){var t={name:o.ENGINE_MAP.Gecko},n=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:o.ENGINE_MAP.WebKit},n=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return n&&(t.version=n),t}}];t.default=a,e.exports=t.default}})},2857:(e,t,n)=>{"use strict";var r=n(8299),i=n(8953),o=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&o(e,".prototype.")>-1?i(n):n}},8953:(e,t,n)=>{"use strict";var r=n(5465),i=n(8299),o=n(5887),a=n(1953),s=i("%Function.prototype.apply%"),A=i("%Function.prototype.call%"),c=i("%Reflect.apply%",!0)||r.call(A,s),u=n(5049),l=i("%Math.max%");e.exports=function(e){if("function"!=typeof e)throw new a("a function is required");var t=c(r,A,arguments);return o(t,1+l(0,e.length-(arguments.length-1)),!0)};var d=function(){return c(r,s,arguments)};u?u(e.exports,"apply",{value:d}):e.exports.apply=d},1041:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-o)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,i=0;r>>6-2*i);return n}},e.exports=n},3423:(e,t,n)=>{"use strict";var r=n(5049),i=n(1226),o=n(1953),a=n(3581);e.exports=function(e,t,n){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new o("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new o("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new o("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new o("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new o("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new o("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,A=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],l=!!a&&a(e,t);if(r)r(e,t,{configurable:null===c&&l?l.configurable:!c,enumerable:null===s&&l?l.enumerable:!s,value:n,writable:null===A&&l?l.writable:!A});else{if(!u&&(s||A||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},5049:(e,t,n)=>{"use strict";var r=n(8299)("%Object.defineProperty%",!0)||!1;if(r)try{r({},"a",{value:1})}catch(e){r=!1}e.exports=r},15:e=>{"use strict";e.exports=EvalError},157:e=>{"use strict";e.exports=Error},2104:e=>{"use strict";e.exports=RangeError},6076:e=>{"use strict";e.exports=ReferenceError},1226:e=>{"use strict";e.exports=SyntaxError},1953:e=>{"use strict";e.exports=TypeError},9428:e=>{"use strict";e.exports=URIError},2703:e=>{"use strict";var t=Object.prototype.toString,n=Math.max,r=function(e,t){for(var n=[],r=0;r{"use strict";var r=n(2703);e.exports=Function.prototype.bind||r},8299:(e,t,n)=>{"use strict";var r,i=n(157),o=n(15),a=n(2104),s=n(6076),A=n(1226),c=n(1953),u=n(9428),l=Function,d=function(e){try{return l('"use strict"; return ('+e+").constructor;")()}catch(e){}},p=Object.getOwnPropertyDescriptor;if(p)try{p({},"")}catch(e){p=null}var h=function(){throw new c},f=p?function(){try{return h}catch(e){try{return p(arguments,"callee").get}catch(e){return h}}}():h,m=n(377)(),g=n(9486)(),y=Object.getPrototypeOf||(g?function(e){return e.__proto__}:null),v={},b="undefined"!=typeof Uint8Array&&y?y(Uint8Array):r,k={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":m&&y?y([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":o,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":l,"%GeneratorFunction%":v,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":m&&y?y(y([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&m&&y?y((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":a,"%ReferenceError%":s,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&m&&y?y((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":m&&y?y(""[Symbol.iterator]()):r,"%Symbol%":m?Symbol:r,"%SyntaxError%":A,"%ThrowTypeError%":f,"%TypedArray%":b,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet};if(y)try{null.error}catch(e){var S=y(y(e));k["%Error.prototype%"]=S}var T=function e(t){var n;if("%AsyncFunction%"===t)n=d("async function () {}");else if("%GeneratorFunction%"===t)n=d("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=d("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&y&&(n=y(i.prototype))}return k[t]=n,n},w={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},E=n(5465),j=n(863),O=E.call(Function.call,Array.prototype.concat),R=E.call(Function.apply,Array.prototype.splice),P=E.call(Function.call,String.prototype.replace),C=E.call(Function.call,String.prototype.slice),L=E.call(Function.call,RegExp.prototype.exec),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,x=/\\(\\)?/g,M=function(e,t){var n,r=e;if(j(w,r)&&(r="%"+(n=w[r])[0]+"%"),j(k,r)){var i=k[r];if(i===v&&(i=T(r)),void 0===i&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new A("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===L(/^%?[^%]*%?$/,e))throw new A("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new A("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new A("invalid intrinsic syntax, expected opening `%`");var r=[];return P(e,N,(function(e,t,n,i){r[r.length]=n?P(i,x,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=M("%"+r+"%",t),o=i.name,a=i.value,s=!1,u=i.alias;u&&(r=u[0],R(n,O([0,1],u)));for(var l=1,d=!0;l=n.length){var g=p(a,h);a=(d=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:a[h]}else d=j(a,h),a=a[h];d&&!s&&(k[o]=a)}}return a}},3157:function(e,t,n){var r="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,n){e!=Array.prototype&&e!=Object.prototype&&(e[t]=n.value)},i="undefined"!=typeof window&&window===this?this:void 0!==n.g&&null!=n.g?n.g:this;function o(){o=function(){},i.Symbol||(i.Symbol=A)}function a(e,t){this.a=e,r(this,"description",{configurable:!0,writable:!0,value:t})}a.prototype.toString=function(){return this.a};var s,A=(s=0,function e(t){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new a("jscomp_symbol_"+(t||"")+"_"+s++,t)});function c(){o();var e=i.Symbol.iterator;e||(e=i.Symbol.iterator=i.Symbol("Symbol.iterator")),"function"!=typeof Array.prototype[e]&&r(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return function(e){return c(),(e={next:e})[i.Symbol.iterator]=function(){return this},e}(function(e){var t=0;return function(){return t=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,n)}function y(e,t,n,r){var i="Assertion failed";if(n){i+=": "+n;var o=r}else e&&(i+=": "+e,o=t);throw Error(i,o||[])}function v(e,t,n){for(var r=[],i=2;i=e.length)return String.fromCharCode.apply(null,e);for(var t="",n=0;n>2;i=(3&i)<<4|a>>4,a=(15&a)<<2|A>>6,A&=63,s||(A=64,o||(a=64)),n.push(t[c],t[i],t[a]||"",t[A]||"")}return n.join("")}function M(e){var t=e.length,n=3*t/4;n%3?n=Math.floor(n):-1!="=.".indexOf(e[t-1])&&(n=-1!="=.".indexOf(e[t-2])?n-2:n-1);var r=new Uint8Array(n),i=0;return function(e,t){function n(t){for(;r>4),64!=a&&(t(o<<4&240|a>>2),64!=s&&t(a<<6&192|s))}}(e,(function(e){r[i++]=e})),r.subarray(0,i)}function U(){if(!N){N={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var r=e.concat(t[n].split(""));L[n]=r;for(var i=0;i>>0;e=Math.floor((e-t)/4294967296)>>>0,I=t,_=e}function z(e){var t=0>e,n=(e=Math.abs(e))>>>0;e=Math.floor((e-n)/4294967296),e>>>=0,t&&(e=~e>>>0,4294967295<(n=1+(~n>>>0))&&(n=0,4294967295<++e&&(e=0))),I=n,_=e}function D(e){var t=0>e;W(e=2*Math.abs(e)),e=I;var n=_;t&&(0==e?0==n?n=e=4294967295:(n--,e=4294967295):e--),I=e,_=n}function F(e){var t=0>e?1:0;if(0===(e=t?-e:e))0<1/e?I=_=0:(_=0,I=2147483648);else if(isNaN(e))_=0,I=2147483647;else if(34028234663852886e22>>0;else if(11754943508222875e-54>e)e=Math.round(e/Math.pow(2,-149)),_=0,I=(t<<31|e)>>>0;else{var n=Math.floor(Math.log(e)/Math.LN2);e*=Math.pow(2,-n),16777216<=(e=Math.round(8388608*e))&&++n,_=0,I=(t<<31|n+127<<23|8388607&e)>>>0}}function q(e){var t=0>e?1:0;if(0===(e=t?-e:e))_=0<1/e?0:2147483648,I=0;else if(isNaN(e))_=2147483647,I=4294967295;else if(17976931348623157e292>>0,I=0;else if(22250738585072014e-324>e)e/=Math.pow(2,-1074),_=(t<<31|e/4294967296)>>>0,I=e>>>0;else{var n=e,r=0;if(2<=n)for(;2<=n&&1023>r;)r++,n/=2;else for(;1>n&&-1022>>0,I=4503599627370496*e>>>0}}function V(e){var t=e.charCodeAt(4),n=e.charCodeAt(5),r=e.charCodeAt(6),i=e.charCodeAt(7);I=e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)>>>0,_=t+(n<<8)+(r<<16)+(i<<24)>>>0}function X(e,t){return 4294967296*t+(e>>>0)}function J(e,t){var n=2147483648&t;return n&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),e=X(e,t),n?-e:e}function Z(e,t,n){var r=t>>31;return n(e<<1^r,(t<<1|e>>>31)^r)}function K(e,t){return G(e,t,J)}function G(e,t,n){var r=-(1&e);return n((e>>>1|t<<31)^r,t>>>1^r)}function H(e){var t=2*(e>>31)+1,n=e>>>23&255;return e&=8388607,255==n?e?NaN:1/0*t:0==n?t*Math.pow(2,-149)*e:t*Math.pow(2,n-150)*(e+Math.pow(2,23))}function B(e,t){var n=2*(t>>31)+1,r=t>>>20&2047;return e=4294967296*(1048575&t)+e,2047==r?e?NaN:1/0*n:0==r?n*Math.pow(2,-1074)*e:n*Math.pow(2,r-1075)*(e+4503599627370496)}function Y(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)}function Q(e,t){function n(e,t){return e=e?String(e):"",t?"0000000".slice(e.length)+e:e}if(2097151>=t)return""+X(e,t);var r=(e>>>24|t<<8)>>>0&16777215;return e=(16777215&e)+6777216*r+6710656*(t=t>>16&65535),r+=8147497*t,t*=2,1e7<=e&&(r+=Math.floor(e/1e7),e%=1e7),1e7<=r&&(t+=Math.floor(r/1e7),r%=1e7),n(t,0)+n(r,t)+n(e,1)}function $(e,t){var n=2147483648&t;return n&&(t=~t+(0==(e=1+~e>>>0)?1:0)>>>0),e=Q(e,t),n?"-"+e:e}function ee(e,t){V(e),e=I;var n=_;return t?$(e,n):Q(e,n)}function te(e){function t(e,t){for(var n=0;8>n&&(1!==e||0>>=8}v(0e;e++)r[e]=255&~r[e]}(),t(1,1)),R(r)}function ne(e){return String.fromCharCode(10>e?48+e:87+e)}function re(e){return 97<=e?e-97+10:e-48}function ie(e,t,n,r,i){var o=0;if(128>r)for(;t>=7}if(e[t++]!=a)break;o++,t+=i}return o}function oe(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?M(e):e instanceof Uint8Array?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(b("Type not convertible to Uint8Array."),new Uint8Array(0))}function ae(e,t,n){this.b=null,this.a=this.c=this.h=0,this.v=!1,e&&this.H(e,t,n)}l("jspb.utils.getSplit64Low",(function(){return I}),void 0),l("jspb.utils.getSplit64High",(function(){return _}),void 0),l("jspb.utils.splitUint64",W,void 0),l("jspb.utils.splitInt64",z,void 0),l("jspb.utils.splitZigzag64",D,void 0),l("jspb.utils.splitFloat32",F,void 0),l("jspb.utils.splitFloat64",q,void 0),l("jspb.utils.splitHash64",V,void 0),l("jspb.utils.joinUint64",X,void 0),l("jspb.utils.joinInt64",J,void 0),l("jspb.utils.toZigzag64",Z,void 0),l("jspb.utils.joinZigzag64",K,void 0),l("jspb.utils.fromZigzag64",G,void 0),l("jspb.utils.joinFloat32",H,void 0),l("jspb.utils.joinFloat64",B,void 0),l("jspb.utils.joinHash64",Y,void 0),l("jspb.utils.DIGITS","0123456789abcdef".split(""),void 0),l("jspb.utils.joinUnsignedDecimalString",Q,void 0),l("jspb.utils.joinSignedDecimalString",$,void 0),l("jspb.utils.hash64ToDecimalString",ee,void 0),l("jspb.utils.hash64ArrayToDecimalStrings",(function(e,t){for(var n=Array(e.length),r=0;rn;n++){var r=e.charCodeAt(7-n);t[2*n+2]=ne(r>>4),t[2*n+3]=ne(15&r)}return t.join("")}),void 0),l("jspb.utils.hexStringToHash64",(function(e){v(18==(e=e.toLowerCase()).length),v("0"==e[0]),v("x"==e[1]);for(var t="",n=0;8>n;n++)t=String.fromCharCode(16*re(e.charCodeAt(2*n+2))+re(e.charCodeAt(2*n+3)))+t;return t}),void 0),l("jspb.utils.hash64ToNumber",(function(e,t){V(e),e=I;var n=_;return t?J(e,n):X(e,n)}),void 0),l("jspb.utils.numberToHash64",(function(e){return z(e),Y(I,_)}),void 0),l("jspb.utils.countVarints",(function(e,t,n){for(var r=0,i=t;i>7;return n-t-r}),void 0),l("jspb.utils.countVarintFields",(function(e,t,n,r){var i=0;if(128>(r*=8))for(;t>=7}if(e[t++]!=o)break;for(i++;128&(o=e[t++]););}return i}),void 0),l("jspb.utils.countFixed32Fields",(function(e,t,n,r){return ie(e,t,n,8*r+5,4)}),void 0),l("jspb.utils.countFixed64Fields",(function(e,t,n,r){return ie(e,t,n,8*r+1,8)}),void 0),l("jspb.utils.countDelimitedFields",(function(e,t,n,r){var i=0;for(r=8*r+2;t>=7}if(e[t++]!=o)break;i++;for(var a=0,s=1;a+=(127&(o=e[t++]))*s,s*=128,128&o;);t+=a}return i}),void 0),l("jspb.utils.debugBytesToTextFormat",(function(e){var t='"';if(e){e=oe(e);for(var n=0;ne[n]&&(t+="0"),t+=e[n].toString(16)}return t+'"'}),void 0),l("jspb.utils.debugScalarToTextFormat",(function(e){if("string"==typeof e){e=String(e);for(var t=['"'],n=0;no||((o=i)in C?i=C[o]:o in P?i=C[o]=P[o]:(31<(r=o.charCodeAt(0))&&127>r?i=o:(256>r?(i="\\x",(16>r||256r&&(i+="0")),i+=r.toString(16).toUpperCase()),i=C[o]=i)),r=i),t[a]=r}t.push('"'),e=t.join("")}else e=e.toString();return e}),void 0),l("jspb.utils.stringToByteArray",(function(e){for(var t=new Uint8Array(e.length),n=0;nse.length&&se.push(this)},ae.prototype.free=ae.prototype.Ca,ae.prototype.clone=function(){return Ae(this.b,this.h,this.c-this.h)},ae.prototype.clone=ae.prototype.clone,ae.prototype.clear=function(){this.b=null,this.a=this.c=this.h=0,this.v=!1},ae.prototype.clear=ae.prototype.clear,ae.prototype.Y=function(){return this.b},ae.prototype.getBuffer=ae.prototype.Y,ae.prototype.H=function(e,t,n){this.b=oe(e),this.h=void 0!==t?t:0,this.c=void 0!==n?this.h+n:this.b.length,this.a=this.h},ae.prototype.setBlock=ae.prototype.H,ae.prototype.Db=function(){return this.c},ae.prototype.getEnd=ae.prototype.Db,ae.prototype.setEnd=function(e){this.c=e},ae.prototype.setEnd=ae.prototype.setEnd,ae.prototype.reset=function(){this.a=this.h},ae.prototype.reset=ae.prototype.reset,ae.prototype.B=function(){return this.a},ae.prototype.getCursor=ae.prototype.B,ae.prototype.Ma=function(e){this.a=e},ae.prototype.setCursor=ae.prototype.Ma,ae.prototype.advance=function(e){this.a+=e,v(this.a<=this.c)},ae.prototype.advance=ae.prototype.advance,ae.prototype.ya=function(){return this.a==this.c},ae.prototype.atEnd=ae.prototype.ya,ae.prototype.Qb=function(){return this.a>this.c},ae.prototype.pastEnd=ae.prototype.Qb,ae.prototype.getError=function(){return this.v||0>this.a||this.a>this.c},ae.prototype.getError=ae.prototype.getError,ae.prototype.w=function(e){for(var t=128,n=0,r=0,i=0;4>i&&128<=t;i++)n|=(127&(t=this.b[this.a++]))<<7*i;if(128<=t&&(n|=(127&(t=this.b[this.a++]))<<28,r|=(127&t)>>4),128<=t)for(i=0;5>i&&128<=t;i++)r|=(127&(t=this.b[this.a++]))<<7*i+3;if(128>t)return e(n>>>0,r>>>0);b("Failed to read varint, encoding is invalid."),this.v=!0},ae.prototype.readSplitVarint64=ae.prototype.w,ae.prototype.ea=function(e){return this.w((function(t,n){return G(t,n,e)}))},ae.prototype.readSplitZigzagVarint64=ae.prototype.ea,ae.prototype.ta=function(e){var t=this.b,n=this.a;this.a+=8;for(var r=0,i=0,o=n+7;o>=n;o--)r=r<<8|t[o],i=i<<8|t[o+4];return e(r,i)},ae.prototype.readSplitFixed64=ae.prototype.ta,ae.prototype.kb=function(){for(;128&this.b[this.a];)this.a++;this.a++},ae.prototype.skipVarint=ae.prototype.kb,ae.prototype.mb=function(e){for(;128>>=7;this.a--},ae.prototype.unskipVarint=ae.prototype.mb,ae.prototype.o=function(){var e=this.b,t=e[this.a],n=127&t;return 128>t?(this.a+=1,v(this.a<=this.c),n):(n|=(127&(t=e[this.a+1]))<<7,128>t?(this.a+=2,v(this.a<=this.c),n):(n|=(127&(t=e[this.a+2]))<<14,128>t?(this.a+=3,v(this.a<=this.c),n):(n|=(127&(t=e[this.a+3]))<<21,128>t?(this.a+=4,v(this.a<=this.c),n):(n|=(15&(t=e[this.a+4]))<<28,128>t?(this.a+=5,v(this.a<=this.c),n>>>0):(this.a+=5,128<=e[this.a++]&&128<=e[this.a++]&&128<=e[this.a++]&&128<=e[this.a++]&&128<=e[this.a++]&&v(!1),v(this.a<=this.c),n)))))},ae.prototype.readUnsignedVarint32=ae.prototype.o,ae.prototype.da=function(){return~~this.o()},ae.prototype.readSignedVarint32=ae.prototype.da,ae.prototype.O=function(){return this.o().toString()},ae.prototype.Ea=function(){return this.da().toString()},ae.prototype.readSignedVarint32String=ae.prototype.Ea,ae.prototype.Ia=function(){var e=this.o();return e>>>1^-(1&e)},ae.prototype.readZigzagVarint32=ae.prototype.Ia,ae.prototype.Ga=function(){return this.w(X)},ae.prototype.readUnsignedVarint64=ae.prototype.Ga,ae.prototype.Ha=function(){return this.w(Q)},ae.prototype.readUnsignedVarint64String=ae.prototype.Ha,ae.prototype.sa=function(){return this.w(J)},ae.prototype.readSignedVarint64=ae.prototype.sa,ae.prototype.Fa=function(){return this.w($)},ae.prototype.readSignedVarint64String=ae.prototype.Fa,ae.prototype.Ja=function(){return this.w(K)},ae.prototype.readZigzagVarint64=ae.prototype.Ja,ae.prototype.fb=function(){return this.ea(Y)},ae.prototype.readZigzagVarintHash64=ae.prototype.fb,ae.prototype.Ka=function(){return this.ea($)},ae.prototype.readZigzagVarint64String=ae.prototype.Ka,ae.prototype.Gc=function(){var e=this.b[this.a];return this.a+=1,v(this.a<=this.c),e},ae.prototype.readUint8=ae.prototype.Gc,ae.prototype.Ec=function(){var e=this.b[this.a],t=this.b[this.a+1];return this.a+=2,v(this.a<=this.c),e|t<<8},ae.prototype.readUint16=ae.prototype.Ec,ae.prototype.m=function(){var e=this.b[this.a],t=this.b[this.a+1],n=this.b[this.a+2],r=this.b[this.a+3];return this.a+=4,v(this.a<=this.c),(e|t<<8|n<<16|r<<24)>>>0},ae.prototype.readUint32=ae.prototype.m,ae.prototype.ga=function(){return X(this.m(),this.m())},ae.prototype.readUint64=ae.prototype.ga,ae.prototype.ha=function(){return Q(this.m(),this.m())},ae.prototype.readUint64String=ae.prototype.ha,ae.prototype.Xb=function(){var e=this.b[this.a];return this.a+=1,v(this.a<=this.c),e<<24>>24},ae.prototype.readInt8=ae.prototype.Xb,ae.prototype.Vb=function(){var e=this.b[this.a],t=this.b[this.a+1];return this.a+=2,v(this.a<=this.c),(e|t<<8)<<16>>16},ae.prototype.readInt16=ae.prototype.Vb,ae.prototype.P=function(){var e=this.b[this.a],t=this.b[this.a+1],n=this.b[this.a+2],r=this.b[this.a+3];return this.a+=4,v(this.a<=this.c),e|t<<8|n<<16|r<<24},ae.prototype.readInt32=ae.prototype.P,ae.prototype.ba=function(){return J(this.m(),this.m())},ae.prototype.readInt64=ae.prototype.ba,ae.prototype.ca=function(){return $(this.m(),this.m())},ae.prototype.readInt64String=ae.prototype.ca,ae.prototype.aa=function(){return H(this.m())},ae.prototype.readFloat=ae.prototype.aa,ae.prototype.Z=function(){return B(this.m(),this.m())},ae.prototype.readDouble=ae.prototype.Z,ae.prototype.pa=function(){return!!this.b[this.a++]},ae.prototype.readBool=ae.prototype.pa,ae.prototype.ra=function(){return this.da()},ae.prototype.readEnum=ae.prototype.ra,ae.prototype.fa=function(e){var t=this.b,n=this.a;e=n+e;for(var r=[],i="";no)r.push(o);else{if(192>o)continue;if(224>o){var a=t[n++];r.push((31&o)<<6|63&a)}else if(240>o){a=t[n++];var s=t[n++];r.push((15&o)<<12|(63&a)<<6|63&s)}else 248>o&&(o=(7&o)<<18|(63&(a=t[n++]))<<12|(63&(s=t[n++]))<<6|63&t[n++],o-=65536,r.push(55296+(o>>10&1023),56320+(1023&o)))}8192<=r.length&&(i+=String.fromCharCode.apply(null,r),r.length=0)}return i+=R(r),this.a=n,i},ae.prototype.readString=ae.prototype.fa,ae.prototype.Dc=function(){var e=this.o();return this.fa(e)},ae.prototype.readStringWithLength=ae.prototype.Dc,ae.prototype.qa=function(e){if(0>e||this.a+e>this.b.length)return this.v=!0,b("Invalid byte length!"),new Uint8Array(0);var t=this.b.subarray(this.a,this.a+e);return this.a+=e,v(this.a<=this.c),t},ae.prototype.readBytes=ae.prototype.qa,ae.prototype.ia=function(){return this.w(Y)},ae.prototype.readVarintHash64=ae.prototype.ia,ae.prototype.$=function(){var e=this.b,t=this.a,n=e[t],r=e[t+1],i=e[t+2],o=e[t+3],a=e[t+4],s=e[t+5],A=e[t+6];return e=e[t+7],this.a+=8,String.fromCharCode(n,r,i,o,a,s,A,e)},ae.prototype.readFixedHash64=ae.prototype.$,l("jspb.BinaryReader",ce,void 0);var ue=[];function le(e,t,n){if(ue.length){var r=ue.pop();return e&&r.a.H(e,t,n),r}return new ce(e,t,n)}function de(e,t){v(2==e.b);var n=e.a.o();n=e.a.B()+n;for(var r=[];e.a.B()ue.length&&ue.push(this)},ce.prototype.free=ce.prototype.Ca,ce.prototype.Fb=function(){return this.O},ce.prototype.getFieldCursor=ce.prototype.Fb,ce.prototype.B=function(){return this.a.B()},ce.prototype.getCursor=ce.prototype.B,ce.prototype.Y=function(){return this.a.Y()},ce.prototype.getBuffer=ce.prototype.Y,ce.prototype.Hb=function(){return this.c},ce.prototype.getFieldNumber=ce.prototype.Hb,ce.prototype.Lb=function(){return this.b},ce.prototype.getWireType=ce.prototype.Lb,ce.prototype.Mb=function(){return 2==this.b},ce.prototype.isDelimited=ce.prototype.Mb,ce.prototype.bb=function(){return 4==this.b},ce.prototype.isEndGroup=ce.prototype.bb,ce.prototype.getError=function(){return this.h||this.a.getError()},ce.prototype.getError=ce.prototype.getError,ce.prototype.H=function(e,t,n){this.a.H(e,t,n),this.b=this.c=-1},ce.prototype.setBlock=ce.prototype.H,ce.prototype.reset=function(){this.a.reset(),this.b=this.c=-1},ce.prototype.reset=ce.prototype.reset,ce.prototype.advance=function(e){this.a.advance(e)},ce.prototype.advance=ce.prototype.advance,ce.prototype.oa=function(){if(this.a.ya())return!1;if(this.getError())return b("Decoder hit an error"),!1;this.O=this.a.B();var e=this.a.o(),t=e>>>3;return 0!=(e&=7)&&5!=e&&1!=e&&2!=e&&3!=e&&4!=e?(b("Invalid wire type: %s (at position %s)",e,this.O),this.h=!0,!1):(this.c=t,this.b=e,!0)},ce.prototype.nextField=ce.prototype.oa,ce.prototype.Oa=function(){this.a.mb(this.c<<3|this.b)},ce.prototype.unskipHeader=ce.prototype.Oa,ce.prototype.Lc=function(){var e=this.c;for(this.Oa();this.oa()&&this.c==e;)this.C();this.a.ya()||this.Oa()},ce.prototype.skipMatchingFields=ce.prototype.Lc,ce.prototype.lb=function(){0!=this.b?(b("Invalid wire type for skipVarintField"),this.C()):this.a.kb()},ce.prototype.skipVarintField=ce.prototype.lb,ce.prototype.gb=function(){if(2!=this.b)b("Invalid wire type for skipDelimitedField"),this.C();else{var e=this.a.o();this.a.advance(e)}},ce.prototype.skipDelimitedField=ce.prototype.gb,ce.prototype.hb=function(){5!=this.b?(b("Invalid wire type for skipFixed32Field"),this.C()):this.a.advance(4)},ce.prototype.skipFixed32Field=ce.prototype.hb,ce.prototype.ib=function(){1!=this.b?(b("Invalid wire type for skipFixed64Field"),this.C()):this.a.advance(8)},ce.prototype.skipFixed64Field=ce.prototype.ib,ce.prototype.jb=function(){for(var e=this.c;;){if(!this.oa()){b("Unmatched start-group tag: stream EOF"),this.h=!0;break}if(4==this.b){this.c!=e&&(b("Unmatched end-group tag"),this.h=!0);break}this.C()}},ce.prototype.skipGroup=ce.prototype.jb,ce.prototype.C=function(){switch(this.b){case 0:this.lb();break;case 1:this.ib();break;case 2:this.gb();break;case 5:this.hb();break;case 3:this.jb();break;default:b("Invalid wire encoding for field.")}},ce.prototype.skipField=ce.prototype.C,ce.prototype.Hc=function(e,t){null===this.v&&(this.v={}),v(!this.v[e]),this.v[e]=t},ce.prototype.registerReadCallback=ce.prototype.Hc,ce.prototype.Ic=function(e){return v(null!==this.v),v(e=this.v[e]),e(this)},ce.prototype.runReadCallback=ce.prototype.Ic,ce.prototype.Yb=function(e,t){v(2==this.b);var n=this.a.c,r=this.a.o();r=this.a.B()+r,this.a.setEnd(r),t(e,this),this.a.Ma(r),this.a.setEnd(n)},ce.prototype.readMessage=ce.prototype.Yb,ce.prototype.Ub=function(e,t,n){v(3==this.b),v(this.c==e),n(t,this),this.h||4==this.b||(b("Group submessage did not end with an END_GROUP tag"),this.h=!0)},ce.prototype.readGroup=ce.prototype.Ub,ce.prototype.Gb=function(){v(2==this.b);var e=this.a.o(),t=this.a.B(),n=t+e;return e=Ae(this.a.Y(),t,e),this.a.Ma(n),e},ce.prototype.getFieldDecoder=ce.prototype.Gb,ce.prototype.P=function(){return v(0==this.b),this.a.da()},ce.prototype.readInt32=ce.prototype.P,ce.prototype.Wb=function(){return v(0==this.b),this.a.Ea()},ce.prototype.readInt32String=ce.prototype.Wb,ce.prototype.ba=function(){return v(0==this.b),this.a.sa()},ce.prototype.readInt64=ce.prototype.ba,ce.prototype.ca=function(){return v(0==this.b),this.a.Fa()},ce.prototype.readInt64String=ce.prototype.ca,ce.prototype.m=function(){return v(0==this.b),this.a.o()},ce.prototype.readUint32=ce.prototype.m,ce.prototype.Fc=function(){return v(0==this.b),this.a.O()},ce.prototype.readUint32String=ce.prototype.Fc,ce.prototype.ga=function(){return v(0==this.b),this.a.Ga()},ce.prototype.readUint64=ce.prototype.ga,ce.prototype.ha=function(){return v(0==this.b),this.a.Ha()},ce.prototype.readUint64String=ce.prototype.ha,ce.prototype.zc=function(){return v(0==this.b),this.a.Ia()},ce.prototype.readSint32=ce.prototype.zc,ce.prototype.Ac=function(){return v(0==this.b),this.a.Ja()},ce.prototype.readSint64=ce.prototype.Ac,ce.prototype.Bc=function(){return v(0==this.b),this.a.Ka()},ce.prototype.readSint64String=ce.prototype.Bc,ce.prototype.Rb=function(){return v(5==this.b),this.a.m()},ce.prototype.readFixed32=ce.prototype.Rb,ce.prototype.Sb=function(){return v(1==this.b),this.a.ga()},ce.prototype.readFixed64=ce.prototype.Sb,ce.prototype.Tb=function(){return v(1==this.b),this.a.ha()},ce.prototype.readFixed64String=ce.prototype.Tb,ce.prototype.vc=function(){return v(5==this.b),this.a.P()},ce.prototype.readSfixed32=ce.prototype.vc,ce.prototype.wc=function(){return v(5==this.b),this.a.P().toString()},ce.prototype.readSfixed32String=ce.prototype.wc,ce.prototype.xc=function(){return v(1==this.b),this.a.ba()},ce.prototype.readSfixed64=ce.prototype.xc,ce.prototype.yc=function(){return v(1==this.b),this.a.ca()},ce.prototype.readSfixed64String=ce.prototype.yc,ce.prototype.aa=function(){return v(5==this.b),this.a.aa()},ce.prototype.readFloat=ce.prototype.aa,ce.prototype.Z=function(){return v(1==this.b),this.a.Z()},ce.prototype.readDouble=ce.prototype.Z,ce.prototype.pa=function(){return v(0==this.b),!!this.a.o()},ce.prototype.readBool=ce.prototype.pa,ce.prototype.ra=function(){return v(0==this.b),this.a.sa()},ce.prototype.readEnum=ce.prototype.ra,ce.prototype.fa=function(){v(2==this.b);var e=this.a.o();return this.a.fa(e)},ce.prototype.readString=ce.prototype.fa,ce.prototype.qa=function(){v(2==this.b);var e=this.a.o();return this.a.qa(e)},ce.prototype.readBytes=ce.prototype.qa,ce.prototype.ia=function(){return v(0==this.b),this.a.ia()},ce.prototype.readVarintHash64=ce.prototype.ia,ce.prototype.Cc=function(){return v(0==this.b),this.a.fb()},ce.prototype.readSintHash64=ce.prototype.Cc,ce.prototype.w=function(e){return v(0==this.b),this.a.w(e)},ce.prototype.readSplitVarint64=ce.prototype.w,ce.prototype.ea=function(e){return v(0==this.b),this.a.w((function(t,n){return G(t,n,e)}))},ce.prototype.readSplitZigzagVarint64=ce.prototype.ea,ce.prototype.$=function(){return v(1==this.b),this.a.$()},ce.prototype.readFixedHash64=ce.prototype.$,ce.prototype.ta=function(e){return v(1==this.b),this.a.ta(e)},ce.prototype.readSplitFixed64=ce.prototype.ta,ce.prototype.gc=function(){return de(this,this.a.da)},ce.prototype.readPackedInt32=ce.prototype.gc,ce.prototype.hc=function(){return de(this,this.a.Ea)},ce.prototype.readPackedInt32String=ce.prototype.hc,ce.prototype.ic=function(){return de(this,this.a.sa)},ce.prototype.readPackedInt64=ce.prototype.ic,ce.prototype.jc=function(){return de(this,this.a.Fa)},ce.prototype.readPackedInt64String=ce.prototype.jc,ce.prototype.qc=function(){return de(this,this.a.o)},ce.prototype.readPackedUint32=ce.prototype.qc,ce.prototype.rc=function(){return de(this,this.a.O)},ce.prototype.readPackedUint32String=ce.prototype.rc,ce.prototype.sc=function(){return de(this,this.a.Ga)},ce.prototype.readPackedUint64=ce.prototype.sc,ce.prototype.tc=function(){return de(this,this.a.Ha)},ce.prototype.readPackedUint64String=ce.prototype.tc,ce.prototype.nc=function(){return de(this,this.a.Ia)},ce.prototype.readPackedSint32=ce.prototype.nc,ce.prototype.oc=function(){return de(this,this.a.Ja)},ce.prototype.readPackedSint64=ce.prototype.oc,ce.prototype.pc=function(){return de(this,this.a.Ka)},ce.prototype.readPackedSint64String=ce.prototype.pc,ce.prototype.bc=function(){return de(this,this.a.m)},ce.prototype.readPackedFixed32=ce.prototype.bc,ce.prototype.cc=function(){return de(this,this.a.ga)},ce.prototype.readPackedFixed64=ce.prototype.cc,ce.prototype.dc=function(){return de(this,this.a.ha)},ce.prototype.readPackedFixed64String=ce.prototype.dc,ce.prototype.kc=function(){return de(this,this.a.P)},ce.prototype.readPackedSfixed32=ce.prototype.kc,ce.prototype.lc=function(){return de(this,this.a.ba)},ce.prototype.readPackedSfixed64=ce.prototype.lc,ce.prototype.mc=function(){return de(this,this.a.ca)},ce.prototype.readPackedSfixed64String=ce.prototype.mc,ce.prototype.fc=function(){return de(this,this.a.aa)},ce.prototype.readPackedFloat=ce.prototype.fc,ce.prototype.$b=function(){return de(this,this.a.Z)},ce.prototype.readPackedDouble=ce.prototype.$b,ce.prototype.Zb=function(){return de(this,this.a.pa)},ce.prototype.readPackedBool=ce.prototype.Zb,ce.prototype.ac=function(){return de(this,this.a.ra)},ce.prototype.readPackedEnum=ce.prototype.ac,ce.prototype.uc=function(){return de(this,this.a.ia)},ce.prototype.readPackedVarintHash64=ce.prototype.uc,ce.prototype.ec=function(){return de(this,this.a.$)},ce.prototype.readPackedFixedHash64=ce.prototype.ec,l("jspb.ExtensionFieldInfo",pe,void 0),l("jspb.ExtensionFieldBinaryInfo",he,void 0),pe.prototype.F=function(){return!!this.la},pe.prototype.isMessageType=pe.prototype.F,l("jspb.Message",fe,void 0),fe.GENERATE_TO_OBJECT=!0,fe.GENERATE_FROM_OBJECT=!0;var me="function"==typeof Uint8Array;fe.prototype.Ib=function(){return this.b},fe.prototype.getJsPbMessageId=fe.prototype.Ib,fe.initialize=function(e,t,n,r,i,o){if(e.f=null,t||(t=n?[n]:[]),e.b=n?String(n):void 0,e.D=0===n?-1:0,e.u=t,t=-1,!(n=e.u.length)||(t=n-1,null===(n=e.u[t])||"object"!=typeof n||Array.isArray(n)||me&&n instanceof Uint8Array)?-1t.length?n.length:t.length;for(e.b&&(r[0]=e.b,i=1);i>>16;for(t=n*r+65536*(n*i&65535)+65536*((e>>>=16)*r&65535),n=e*i+(n*i>>>16)+(e*r>>>16);4294967296<=t;)t-=4294967296,n+=1;return new ze(t>>>0,n>>>0)}function Fe(e){for(var t=new ze(0,0),n=new ze(0,0),r=0;re[r]||"9">>=7,e.b++;t.push(n),e.b++}function Ge(e,t,n){v(1<=t&&t==Math.floor(t)),e.a.j(8*t+n)}function He(e,t,n){null!=n&&(Ge(e,t,0),e.a.j(n))}function Be(e,t,n){null!=n&&(Ge(e,t,0),e.a.M(n))}l("jspb.debug.dump",_e.dump,void 0),_e.X=function(e){var t=d(e);if("number"==t||"string"==t||"boolean"==t||"null"==t||"undefined"==t||"undefined"!=typeof Uint8Array&&e instanceof Uint8Array)return e;if("array"==t)return function(e,t,n){for(var r=[],i=2;ie),v(0<=t&&4294967296>t);0>>7|t<<25)>>>0,t>>>=7;this.a.push(e)},We.prototype.writeSplitVarint64=We.prototype.l,We.prototype.A=function(e,t){v(e==Math.floor(e)),v(t==Math.floor(t)),v(0<=e&&4294967296>e),v(0<=t&&4294967296>t),this.s(e),this.s(t)},We.prototype.writeSplitFixed64=We.prototype.A,We.prototype.j=function(e){for(v(e==Math.floor(e)),v(0<=e&&4294967296>e);127>>=7;this.a.push(e)},We.prototype.writeUnsignedVarint32=We.prototype.j,We.prototype.M=function(e){if(v(e==Math.floor(e)),v(-2147483648<=e&&2147483648>e),0<=e)this.j(e);else{for(var t=0;9>t;t++)this.a.push(127&e|128),e>>=7;this.a.push(1)}},We.prototype.writeSignedVarint32=We.prototype.M,We.prototype.va=function(e){v(e==Math.floor(e)),v(0<=e&&0x10000000000000000>e),z(e),this.l(I,_)},We.prototype.writeUnsignedVarint64=We.prototype.va,We.prototype.ua=function(e){v(e==Math.floor(e)),v(-0x8000000000000000<=e&&0x8000000000000000>e),z(e),this.l(I,_)},We.prototype.writeSignedVarint64=We.prototype.ua,We.prototype.wa=function(e){v(e==Math.floor(e)),v(-2147483648<=e&&2147483648>e),this.j((e<<1^e>>31)>>>0)},We.prototype.writeZigzagVarint32=We.prototype.wa,We.prototype.xa=function(e){v(e==Math.floor(e)),v(-0x8000000000000000<=e&&0x8000000000000000>e),D(e),this.l(I,_)},We.prototype.writeZigzagVarint64=We.prototype.xa,We.prototype.Ta=function(e){this.W(te(e))},We.prototype.writeZigzagVarint64String=We.prototype.Ta,We.prototype.W=function(e){var t=this;V(e),Z(I,_,(function(e,n){t.l(e>>>0,n>>>0)}))},We.prototype.writeZigzagVarintHash64=We.prototype.W,We.prototype.be=function(e){v(e==Math.floor(e)),v(0<=e&&256>e),this.a.push(e>>>0&255)},We.prototype.writeUint8=We.prototype.be,We.prototype.ae=function(e){v(e==Math.floor(e)),v(0<=e&&65536>e),this.a.push(e>>>0&255),this.a.push(e>>>8&255)},We.prototype.writeUint16=We.prototype.ae,We.prototype.s=function(e){v(e==Math.floor(e)),v(0<=e&&4294967296>e),this.a.push(e>>>0&255),this.a.push(e>>>8&255),this.a.push(e>>>16&255),this.a.push(e>>>24&255)},We.prototype.writeUint32=We.prototype.s,We.prototype.V=function(e){v(e==Math.floor(e)),v(0<=e&&0x10000000000000000>e),W(e),this.s(I),this.s(_)},We.prototype.writeUint64=We.prototype.V,We.prototype.Qc=function(e){v(e==Math.floor(e)),v(-128<=e&&128>e),this.a.push(e>>>0&255)},We.prototype.writeInt8=We.prototype.Qc,We.prototype.Pc=function(e){v(e==Math.floor(e)),v(-32768<=e&&32768>e),this.a.push(e>>>0&255),this.a.push(e>>>8&255)},We.prototype.writeInt16=We.prototype.Pc,We.prototype.S=function(e){v(e==Math.floor(e)),v(-2147483648<=e&&2147483648>e),this.a.push(e>>>0&255),this.a.push(e>>>8&255),this.a.push(e>>>16&255),this.a.push(e>>>24&255)},We.prototype.writeInt32=We.prototype.S,We.prototype.T=function(e){v(e==Math.floor(e)),v(-0x8000000000000000<=e&&0x8000000000000000>e),z(e),this.A(I,_)},We.prototype.writeInt64=We.prototype.T,We.prototype.ka=function(e){v(e==Math.floor(e)),v(-0x8000000000000000<=+e&&0x8000000000000000>+e),V(te(e)),this.A(I,_)},We.prototype.writeInt64String=We.prototype.ka,We.prototype.L=function(e){v(1/0===e||-1/0===e||isNaN(e)||-34028234663852886e22<=e&&34028234663852886e22>=e),F(e),this.s(I)},We.prototype.writeFloat=We.prototype.L,We.prototype.J=function(e){v(1/0===e||-1/0===e||isNaN(e)||-17976931348623157e292<=e&&17976931348623157e292>=e),q(e),this.s(I),this.s(_)},We.prototype.writeDouble=We.prototype.J,We.prototype.I=function(e){v("boolean"==typeof e||"number"==typeof e),this.a.push(e?1:0)},We.prototype.writeBool=We.prototype.I,We.prototype.R=function(e){v(e==Math.floor(e)),v(-2147483648<=e&&2147483648>e),this.M(e)},We.prototype.writeEnum=We.prototype.R,We.prototype.ja=function(e){this.a.push.apply(this.a,e)},We.prototype.writeBytes=We.prototype.ja,We.prototype.N=function(e){V(e),this.l(I,_)},We.prototype.writeVarintHash64=We.prototype.N,We.prototype.K=function(e){V(e),this.s(I),this.s(_)},We.prototype.writeFixedHash64=We.prototype.K,We.prototype.U=function(e){var t=this.a.length;!function(e,t,n){for(var r=[],i=2;ir)this.a.push(r);else if(2048>r)this.a.push(r>>6|192),this.a.push(63&r|128);else if(65536>r)if(55296<=r&&56319>=r&&n+1=i&&(r=1024*(r-55296)+i-56320+65536,this.a.push(r>>18|240),this.a.push(r>>12&63|128),this.a.push(r>>6&63|128),this.a.push(63&r|128),n++)}else this.a.push(r>>12|224),this.a.push(r>>6&63|128),this.a.push(63&r|128)}return this.a.length-t},We.prototype.writeString=We.prototype.U,l("jspb.arith.UInt64",ze,void 0),ze.prototype.cmp=function(e){return this.hi>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},ze.prototype.rightShift=ze.prototype.La,ze.prototype.Da=function(){return new ze(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},ze.prototype.leftShift=ze.prototype.Da,ze.prototype.cb=function(){return!!(2147483648&this.hi)},ze.prototype.msb=ze.prototype.cb,ze.prototype.Ob=function(){return!!(1&this.lo)},ze.prototype.lsb=ze.prototype.Ob,ze.prototype.Ua=function(){return 0==this.lo&&0==this.hi},ze.prototype.zero=ze.prototype.Ua,ze.prototype.add=function(e){return new ze((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},ze.prototype.add=ze.prototype.add,ze.prototype.sub=function(e){return new ze((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},ze.prototype.sub=ze.prototype.sub,ze.mul32x32=De,ze.prototype.eb=function(e){var t=De(this.lo,e);return(e=De(this.hi,e)).hi=e.lo,e.lo=0,t.add(e)},ze.prototype.mul=ze.prototype.eb,ze.prototype.Xa=function(e){if(0==e)return[];var t=new ze(0,0),n=new ze(this.lo,this.hi);e=new ze(e,0);for(var r=new ze(1,0);!e.cb();)e=e.Da(),r=r.Da();for(;!r.Ua();)0>=e.cmp(n)&&(t=t.add(r),n=n.sub(e)),e=e.La(),r=r.La();return[t,n]},ze.prototype.div=ze.prototype.Xa,ze.prototype.toString=function(){for(var e="",t=this;!t.Ua();){var n=(t=t.Xa(10))[0];e=t[1].lo+e,t=n}return""==e&&(e="0"),e},ze.prototype.toString=ze.prototype.toString,ze.fromString=Fe,ze.prototype.clone=function(){return new ze(this.lo,this.hi)},ze.prototype.clone=ze.prototype.clone,l("jspb.arith.Int64",qe,void 0),qe.prototype.add=function(e){return new qe((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},qe.prototype.add=qe.prototype.add,qe.prototype.sub=function(e){return new qe((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},qe.prototype.sub=qe.prototype.sub,qe.prototype.clone=function(){return new qe(this.lo,this.hi)},qe.prototype.clone=qe.prototype.clone,qe.prototype.toString=function(){var e=!!(2147483648&this.hi),t=new ze(this.lo,this.hi);return e&&(t=new ze(0,0).sub(t)),(e?"-":"")+t.toString()},qe.prototype.toString=qe.prototype.toString,qe.fromString=Ve,l("jspb.BinaryWriter",Xe,void 0),Xe.prototype.pb=function(e,t,n){Je(this,e.subarray(t,n))},Xe.prototype.writeSerializedMessage=Xe.prototype.pb,Xe.prototype.Pb=function(e,t,n){null!=e&&null!=t&&null!=n&&this.pb(e,t,n)},Xe.prototype.maybeWriteSerializedMessage=Xe.prototype.Pb,Xe.prototype.reset=function(){this.c=[],this.a.end(),this.b=0,this.h=[]},Xe.prototype.reset=Xe.prototype.reset,Xe.prototype.ab=function(){v(0==this.h.length);for(var e=new Uint8Array(this.b+this.a.length()),t=this.c,n=t.length,r=0,i=0;it),Be(this,e,t))},Xe.prototype.writeInt32=Xe.prototype.S,Xe.prototype.ob=function(e,t){null!=t&&(v(-2147483648<=(t=parseInt(t,10))&&2147483648>t),Be(this,e,t))},Xe.prototype.writeInt32String=Xe.prototype.ob,Xe.prototype.T=function(e,t){null!=t&&(v(-0x8000000000000000<=t&&0x8000000000000000>t),null!=t&&(Ge(this,e,0),this.a.ua(t)))},Xe.prototype.writeInt64=Xe.prototype.T,Xe.prototype.ka=function(e,t){null!=t&&(t=Ve(t),Ge(this,e,0),this.a.l(t.lo,t.hi))},Xe.prototype.writeInt64String=Xe.prototype.ka,Xe.prototype.s=function(e,t){null!=t&&(v(0<=t&&4294967296>t),He(this,e,t))},Xe.prototype.writeUint32=Xe.prototype.s,Xe.prototype.ub=function(e,t){null!=t&&(v(0<=(t=parseInt(t,10))&&4294967296>t),He(this,e,t))},Xe.prototype.writeUint32String=Xe.prototype.ub,Xe.prototype.V=function(e,t){null!=t&&(v(0<=t&&0x10000000000000000>t),null!=t&&(Ge(this,e,0),this.a.va(t)))},Xe.prototype.writeUint64=Xe.prototype.V,Xe.prototype.vb=function(e,t){null!=t&&(t=Fe(t),Ge(this,e,0),this.a.l(t.lo,t.hi))},Xe.prototype.writeUint64String=Xe.prototype.vb,Xe.prototype.rb=function(e,t){null!=t&&(v(-2147483648<=t&&2147483648>t),null!=t&&(Ge(this,e,0),this.a.wa(t)))},Xe.prototype.writeSint32=Xe.prototype.rb,Xe.prototype.sb=function(e,t){null!=t&&(v(-0x8000000000000000<=t&&0x8000000000000000>t),null!=t&&(Ge(this,e,0),this.a.xa(t)))},Xe.prototype.writeSint64=Xe.prototype.sb,Xe.prototype.$d=function(e,t){null!=t&&null!=t&&(Ge(this,e,0),this.a.W(t))},Xe.prototype.writeSintHash64=Xe.prototype.$d,Xe.prototype.Zd=function(e,t){null!=t&&null!=t&&(Ge(this,e,0),this.a.Ta(t))},Xe.prototype.writeSint64String=Xe.prototype.Zd,Xe.prototype.Pa=function(e,t){null!=t&&(v(0<=t&&4294967296>t),Ge(this,e,5),this.a.s(t))},Xe.prototype.writeFixed32=Xe.prototype.Pa,Xe.prototype.Qa=function(e,t){null!=t&&(v(0<=t&&0x10000000000000000>t),Ge(this,e,1),this.a.V(t))},Xe.prototype.writeFixed64=Xe.prototype.Qa,Xe.prototype.nb=function(e,t){null!=t&&(t=Fe(t),Ge(this,e,1),this.a.A(t.lo,t.hi))},Xe.prototype.writeFixed64String=Xe.prototype.nb,Xe.prototype.Ra=function(e,t){null!=t&&(v(-2147483648<=t&&2147483648>t),Ge(this,e,5),this.a.S(t))},Xe.prototype.writeSfixed32=Xe.prototype.Ra,Xe.prototype.Sa=function(e,t){null!=t&&(v(-0x8000000000000000<=t&&0x8000000000000000>t),Ge(this,e,1),this.a.T(t))},Xe.prototype.writeSfixed64=Xe.prototype.Sa,Xe.prototype.qb=function(e,t){null!=t&&(t=Ve(t),Ge(this,e,1),this.a.A(t.lo,t.hi))},Xe.prototype.writeSfixed64String=Xe.prototype.qb,Xe.prototype.L=function(e,t){null!=t&&(Ge(this,e,5),this.a.L(t))},Xe.prototype.writeFloat=Xe.prototype.L,Xe.prototype.J=function(e,t){null!=t&&(Ge(this,e,1),this.a.J(t))},Xe.prototype.writeDouble=Xe.prototype.J,Xe.prototype.I=function(e,t){null!=t&&(v("boolean"==typeof t||"number"==typeof t),Ge(this,e,0),this.a.I(t))},Xe.prototype.writeBool=Xe.prototype.I,Xe.prototype.R=function(e,t){null!=t&&(v(-2147483648<=t&&2147483648>t),Ge(this,e,0),this.a.M(t))},Xe.prototype.writeEnum=Xe.prototype.R,Xe.prototype.U=function(e,t){null!=t&&(e=Ze(this,e),this.a.U(t),Ke(this,e))},Xe.prototype.writeString=Xe.prototype.U,Xe.prototype.ja=function(e,t){null!=t&&(t=oe(t),Ge(this,e,2),this.a.j(t.length),Je(this,t))},Xe.prototype.writeBytes=Xe.prototype.ja,Xe.prototype.Rc=function(e,t,n){null!=t&&(e=Ze(this,e),n(t,this),Ke(this,e))},Xe.prototype.writeMessage=Xe.prototype.Rc,Xe.prototype.Sc=function(e,t,n){null!=t&&(Ge(this,1,3),Ge(this,2,0),this.a.M(e),e=Ze(this,3),n(t,this),Ke(this,e),Ge(this,1,4))},Xe.prototype.writeMessageSet=Xe.prototype.Sc,Xe.prototype.Oc=function(e,t,n){null!=t&&(Ge(this,e,3),n(t,this),Ge(this,e,4))},Xe.prototype.writeGroup=Xe.prototype.Oc,Xe.prototype.K=function(e,t){null!=t&&(v(8==t.length),Ge(this,e,1),this.a.K(t))},Xe.prototype.writeFixedHash64=Xe.prototype.K,Xe.prototype.N=function(e,t){null!=t&&(v(8==t.length),Ge(this,e,0),this.a.N(t))},Xe.prototype.writeVarintHash64=Xe.prototype.N,Xe.prototype.A=function(e,t,n){Ge(this,e,1),this.a.A(t,n)},Xe.prototype.writeSplitFixed64=Xe.prototype.A,Xe.prototype.l=function(e,t,n){Ge(this,e,0),this.a.l(t,n)},Xe.prototype.writeSplitVarint64=Xe.prototype.l,Xe.prototype.tb=function(e,t,n){Ge(this,e,0);var r=this.a;Z(t,n,(function(e,t){r.l(e>>>0,t>>>0)}))},Xe.prototype.writeSplitZigzagVarint64=Xe.prototype.tb,Xe.prototype.Ed=function(e,t){if(null!=t)for(var n=0;n>>0,t>>>0)}));Ke(this,e)}},Xe.prototype.writePackedSplitZigzagVarint64=Xe.prototype.od,Xe.prototype.dd=function(e,t){if(null!=t&&t.length){e=Ze(this,e);for(var n=0;n{var r=n(3157),i=r,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();i.exportSymbol("proto.google.protobuf.Empty",null,o),proto.google.protobuf.Empty=function(e){r.Message.initialize(this,e,0,-1,null,null)},i.inherits(proto.google.protobuf.Empty,r.Message),i.DEBUG&&!COMPILED&&(proto.google.protobuf.Empty.displayName="proto.google.protobuf.Empty"),r.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Empty.prototype.toObject=function(e){return proto.google.protobuf.Empty.toObject(e,this)},proto.google.protobuf.Empty.toObject=function(e,t){var n={};return e&&(n.$jspbMessageInstance=t),n}),proto.google.protobuf.Empty.deserializeBinary=function(e){var t=new r.BinaryReader(e),n=new proto.google.protobuf.Empty;return proto.google.protobuf.Empty.deserializeBinaryFromReader(n,t)},proto.google.protobuf.Empty.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)t.getFieldNumber(),t.skipField();return e},proto.google.protobuf.Empty.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.google.protobuf.Empty.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.google.protobuf.Empty.serializeBinaryToWriter=function(e,t){},i.object.extend(t,proto.google.protobuf)},3581:(e,t,n)=>{"use strict";var r=n(8299)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},6698:(e,t,n)=>{"use strict";var r=n(5049),i=function(){return!!r};i.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},9486:e=>{"use strict";var t={__proto__:null,foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof n)}},377:(e,t,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,i=n(4379);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&i()}},4379:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},863:(e,t,n)=>{"use strict";var r=Function.prototype.call,i=Object.prototype.hasOwnProperty,o=n(5465);e.exports=o.call(r,i)},3121:function(e,t,n){var r;e=n.nmd(e),function(){var i,o="Expected a function",a="__lodash_hash_undefined__",s="__lodash_placeholder__",A=32,c=128,u=1/0,l=9007199254740991,d=NaN,p=4294967295,h=[["ary",c],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",A],["partialRight",64],["rearg",256]],f="[object Arguments]",m="[object Array]",g="[object Boolean]",y="[object Date]",v="[object Error]",b="[object Function]",k="[object GeneratorFunction]",S="[object Map]",T="[object Number]",w="[object Object]",E="[object Promise]",j="[object RegExp]",O="[object Set]",R="[object String]",P="[object Symbol]",C="[object WeakMap]",L="[object ArrayBuffer]",N="[object DataView]",x="[object Float32Array]",M="[object Float64Array]",U="[object Int8Array]",I="[object Int16Array]",_="[object Int32Array]",W="[object Uint8Array]",z="[object Uint8ClampedArray]",D="[object Uint16Array]",F="[object Uint32Array]",q=/\b__p \+= '';/g,V=/\b(__p \+=) '' \+/g,X=/(__e\(.*?\)|\b__t\)) \+\n'';/g,J=/&(?:amp|lt|gt|quot|#39);/g,Z=/[&<>"']/g,K=RegExp(J.source),G=RegExp(Z.source),H=/<%-([\s\S]+?)%>/g,B=/<%([\s\S]+?)%>/g,Y=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ne=RegExp(te.source),re=/^\s+/,ie=/\s/,oe=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ae=/\{\n\/\* \[wrapped with (.+)\] \*/,se=/,? & /,Ae=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ce=/[()=,{}\[\]\/\s]/,ue=/\\(\\)?/g,le=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,de=/\w*$/,pe=/^[-+]0x[0-9a-f]+$/i,he=/^0b[01]+$/i,fe=/^\[object .+?Constructor\]$/,me=/^0o[0-7]+$/i,ge=/^(?:0|[1-9]\d*)$/,ye=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,be=/['\n\r\u2028\u2029\\]/g,ke="\\ud800-\\udfff",Se="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Te="\\u2700-\\u27bf",we="a-z\\xdf-\\xf6\\xf8-\\xff",Ee="A-Z\\xc0-\\xd6\\xd8-\\xde",je="\\ufe0e\\ufe0f",Oe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Re="["+ke+"]",Pe="["+Oe+"]",Ce="["+Se+"]",Le="\\d+",Ne="["+Te+"]",xe="["+we+"]",Me="[^"+ke+Oe+Le+Te+we+Ee+"]",Ue="\\ud83c[\\udffb-\\udfff]",Ie="[^"+ke+"]",_e="(?:\\ud83c[\\udde6-\\uddff]){2}",We="[\\ud800-\\udbff][\\udc00-\\udfff]",ze="["+Ee+"]",De="\\u200d",Fe="(?:"+xe+"|"+Me+")",qe="(?:"+ze+"|"+Me+")",Ve="(?:['’](?:d|ll|m|re|s|t|ve))?",Xe="(?:['’](?:D|LL|M|RE|S|T|VE))?",Je="(?:"+Ce+"|"+Ue+")?",Ze="["+je+"]?",Ke=Ze+Je+"(?:"+De+"(?:"+[Ie,_e,We].join("|")+")"+Ze+Je+")*",Ge="(?:"+[Ne,_e,We].join("|")+")"+Ke,He="(?:"+[Ie+Ce+"?",Ce,_e,We,Re].join("|")+")",Be=RegExp("['’]","g"),Ye=RegExp(Ce,"g"),Qe=RegExp(Ue+"(?="+Ue+")|"+He+Ke,"g"),$e=RegExp([ze+"?"+xe+"+"+Ve+"(?="+[Pe,ze,"$"].join("|")+")",qe+"+"+Xe+"(?="+[Pe,ze+Fe,"$"].join("|")+")",ze+"?"+Fe+"+"+Ve,ze+"+"+Xe,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Le,Ge].join("|"),"g"),et=RegExp("["+De+ke+Se+je+"]"),tt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],rt=-1,it={};it[x]=it[M]=it[U]=it[I]=it[_]=it[W]=it[z]=it[D]=it[F]=!0,it[f]=it[m]=it[L]=it[g]=it[N]=it[y]=it[v]=it[b]=it[S]=it[T]=it[w]=it[j]=it[O]=it[R]=it[C]=!1;var ot={};ot[f]=ot[m]=ot[L]=ot[N]=ot[g]=ot[y]=ot[x]=ot[M]=ot[U]=ot[I]=ot[_]=ot[S]=ot[T]=ot[w]=ot[j]=ot[O]=ot[R]=ot[P]=ot[W]=ot[z]=ot[D]=ot[F]=!0,ot[v]=ot[b]=ot[C]=!1;var at={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},st=parseFloat,At=parseInt,ct="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ut="object"==typeof self&&self&&self.Object===Object&&self,lt=ct||ut||Function("return this")(),dt=t&&!t.nodeType&&t,pt=dt&&e&&!e.nodeType&&e,ht=pt&&pt.exports===dt,ft=ht&&ct.process,mt=function(){try{return pt&&pt.require&&pt.require("util").types||ft&&ft.binding&&ft.binding("util")}catch(e){}}(),gt=mt&&mt.isArrayBuffer,yt=mt&&mt.isDate,vt=mt&&mt.isMap,bt=mt&&mt.isRegExp,kt=mt&&mt.isSet,St=mt&&mt.isTypedArray;function Tt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function wt(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function Ct(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function $t(e,t){for(var n=e.length;n--&&zt(t,e[n],0)>-1;);return n}var en=Xt({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Ã…:"A",à :"a",á:"a",â:"a",ã:"a",ä:"a",Ã¥:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",ÃŒ:"I",Í:"I",ÃŽ:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ã’:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ä€:"A",Ä‚:"A",Ä„:"A",ā:"a",ă:"a",Ä…:"a",Ć:"C",Ĉ:"C",ÄŠ:"C",ÄŒ:"C",ć:"c",ĉ:"c",Ä‹:"c",č:"c",ÄŽ:"D",Đ:"D",ď:"d",Ä‘:"d",Ä’:"E",Ä”:"E",Ä–:"E",Ę:"E",Äš:"E",Ä“:"e",Ä•:"e",Ä—:"e",Ä™:"e",Ä›:"e",Äœ:"G",Äž:"G",Ä :"G",Ä¢:"G",ĝ:"g",ÄŸ:"g",Ä¡:"g",Ä£:"g",Ĥ:"H",Ħ:"H",Ä¥:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Ä®:"I",İ:"I",Ä©:"i",Ä«:"i",Ä­:"i",į:"i",ı:"i",Ä´:"J",ĵ:"j",Ķ:"K",Ä·:"k",ĸ:"k",Ĺ:"L",Ä»:"L",Ľ:"L",Ä¿:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",Å€:"l",Å‚:"l",Ń:"N",Å…:"N",Ň:"N",ÅŠ:"N",Å„:"n",ņ:"n",ň:"n",Å‹:"n",ÅŒ:"O",ÅŽ:"O",Ő:"O",ō:"o",ŏ:"o",Å‘:"o",Å”:"R",Å–:"R",Ř:"R",Å•:"r",Å—:"r",Å™:"r",Åš:"S",Åœ:"S",Åž:"S",Å :"S",Å›:"s",ŝ:"s",ÅŸ:"s",Å¡:"s",Å¢:"T",Ť:"T",Ŧ:"T",Å£:"t",Å¥:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Å®:"U",Ű:"U",Ų:"U",Å©:"u",Å«:"u",Å­:"u",ů:"u",ű:"u",ų:"u",Å´:"W",ŵ:"w",Ŷ:"Y",Å·:"y",Ÿ:"Y",Ź:"Z",Å»:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Å’:"Oe",Å“:"oe",ʼn:"'n",Å¿:"s"}),tn=Xt({"&":"&","<":"<",">":">",'"':""","'":"'"});function nn(e){return"\\"+at[e]}function rn(e){return et.test(e)}function on(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function an(e,t){return function(n){return e(t(n))}}function sn(e,t){for(var n=-1,r=e.length,i=0,o=[];++n",""":'"',"'":"'"}),hn=function e(t){var n,r=(t=null==t?lt:hn.defaults(lt.Object(),t,hn.pick(lt,nt))).Array,ie=t.Date,ke=t.Error,Se=t.Function,Te=t.Math,we=t.Object,Ee=t.RegExp,je=t.String,Oe=t.TypeError,Re=r.prototype,Pe=Se.prototype,Ce=we.prototype,Le=t["__core-js_shared__"],Ne=Pe.toString,xe=Ce.hasOwnProperty,Me=0,Ue=(n=/[^.]+$/.exec(Le&&Le.keys&&Le.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Ie=Ce.toString,_e=Ne.call(we),We=lt._,ze=Ee("^"+Ne.call(xe).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),De=ht?t.Buffer:i,Fe=t.Symbol,qe=t.Uint8Array,Ve=De?De.allocUnsafe:i,Xe=an(we.getPrototypeOf,we),Je=we.create,Ze=Ce.propertyIsEnumerable,Ke=Re.splice,Ge=Fe?Fe.isConcatSpreadable:i,He=Fe?Fe.iterator:i,Qe=Fe?Fe.toStringTag:i,et=function(){try{var e=Ao(we,"defineProperty");return e({},"",{}),e}catch(e){}}(),at=t.clearTimeout!==lt.clearTimeout&&t.clearTimeout,ct=ie&&ie.now!==lt.Date.now&&ie.now,ut=t.setTimeout!==lt.setTimeout&&t.setTimeout,dt=Te.ceil,pt=Te.floor,ft=we.getOwnPropertySymbols,mt=De?De.isBuffer:i,It=t.isFinite,Xt=Re.join,fn=an(we.keys,we),mn=Te.max,gn=Te.min,yn=ie.now,vn=t.parseInt,bn=Te.random,kn=Re.reverse,Sn=Ao(t,"DataView"),Tn=Ao(t,"Map"),wn=Ao(t,"Promise"),En=Ao(t,"Set"),jn=Ao(t,"WeakMap"),On=Ao(we,"create"),Rn=jn&&new jn,Pn={},Cn=_o(Sn),Ln=_o(Tn),Nn=_o(wn),xn=_o(En),Mn=_o(jn),Un=Fe?Fe.prototype:i,In=Un?Un.valueOf:i,_n=Un?Un.toString:i;function Wn(e){if(es(e)&&!Va(e)&&!(e instanceof qn)){if(e instanceof Fn)return e;if(xe.call(e,"__wrapped__"))return Wo(e)}return new Fn(e)}var zn=function(){function e(){}return function(t){if(!$a(t))return{};if(Je)return Je(t);e.prototype=t;var n=new e;return e.prototype=i,n}}();function Dn(){}function Fn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function qn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function Vn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function ar(e,t,n,r,o,a){var s,A=1&t,c=2&t,u=4&t;if(n&&(s=o?n(e,r,o,a):n(e)),s!==i)return s;if(!$a(e))return e;var l=Va(e);if(l){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&xe.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!A)return ji(e,s)}else{var d=lo(e),p=d==b||d==k;if(Ka(e))return bi(e,A);if(d==w||d==f||p&&!o){if(s=c||p?{}:ho(e),!A)return c?function(e,t){return Oi(e,uo(e),t)}(e,function(e,t){return e&&Oi(t,Ls(t),e)}(s,e)):function(e,t){return Oi(e,co(e),t)}(e,nr(s,e))}else{if(!ot[d])return o?e:{};s=function(e,t,n){var r,i=e.constructor;switch(t){case L:return ki(e);case g:case y:return new i(+e);case N:return function(e,t){var n=t?ki(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case x:case M:case U:case I:case _:case W:case z:case D:case F:return Si(e,n);case S:return new i;case T:case R:return new i(e);case j:return function(e){var t=new e.constructor(e.source,de.exec(e));return t.lastIndex=e.lastIndex,t}(e);case O:return new i;case P:return r=e,In?we(In.call(r)):{}}}(e,d,A)}}a||(a=new Kn);var h=a.get(e);if(h)return h;a.set(e,s),os(e)?e.forEach((function(r){s.add(ar(r,t,n,r,e,a))})):ts(e)&&e.forEach((function(r,i){s.set(i,ar(r,t,n,i,e,a))}));var m=l?i:(u?c?to:eo:c?Ls:Cs)(e);return Et(m||e,(function(r,i){m&&(r=e[i=r]),$n(s,i,ar(r,t,n,i,e,a))})),s}function sr(e,t,n){var r=n.length;if(null==e)return!r;for(e=we(e);r--;){var o=n[r],a=t[o],s=e[o];if(s===i&&!(o in e)||!a(s))return!1}return!0}function Ar(e,t,n){if("function"!=typeof e)throw new Oe(o);return Ro((function(){e.apply(i,n)}),t)}function cr(e,t,n,r){var i=-1,o=Pt,a=!0,s=e.length,A=[],c=t.length;if(!s)return A;n&&(t=Lt(t,Ht(n))),r?(o=Ct,a=!1):t.length>=200&&(o=Yt,a=!1,t=new Zn(t));e:for(;++i-1},Xn.prototype.set=function(e,t){var n=this.__data__,r=er(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Jn.prototype.clear=function(){this.size=0,this.__data__={hash:new Vn,map:new(Tn||Xn),string:new Vn}},Jn.prototype.delete=function(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t},Jn.prototype.get=function(e){return ao(this,e).get(e)},Jn.prototype.has=function(e){return ao(this,e).has(e)},Jn.prototype.set=function(e,t){var n=ao(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Zn.prototype.add=Zn.prototype.push=function(e){return this.__data__.set(e,a),this},Zn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.clear=function(){this.__data__=new Xn,this.size=0},Kn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Kn.prototype.get=function(e){return this.__data__.get(e)},Kn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xn){var r=n.__data__;if(!Tn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Jn(r)}return n.set(e,t),this.size=n.size,this};var ur=Ci(yr),lr=Ci(vr,!0);function dr(e,t){var n=!0;return ur(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function pr(e,t,n){for(var r=-1,o=e.length;++r0&&n(s)?t>1?fr(s,t-1,n,r,i):Nt(i,s):r||(i[i.length]=s)}return i}var mr=Li(),gr=Li(!0);function yr(e,t){return e&&mr(e,t,Cs)}function vr(e,t){return e&&gr(e,t,Cs)}function br(e,t){return Rt(t,(function(t){return Ba(e[t])}))}function kr(e,t){for(var n=0,r=(t=mi(t,e)).length;null!=e&&nt}function Er(e,t){return null!=e&&xe.call(e,t)}function jr(e,t){return null!=e&&t in we(e)}function Or(e,t,n){for(var o=n?Ct:Pt,a=e[0].length,s=e.length,A=s,c=r(s),u=1/0,l=[];A--;){var d=e[A];A&&t&&(d=Lt(d,Ht(t))),u=gn(d.length,u),c[A]=!n&&(t||a>=120&&d.length>=120)?new Zn(A&&d):i}d=e[0];var p=-1,h=c[0];e:for(;++p=s?A:A*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}));t--;)e[t]=e[t].value;return e}(i)}function qr(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)s!==e&&Ke.call(s,A,1),Ke.call(e,A,1);return e}function Xr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;mo(i)?Ke.call(e,i,1):Ai(e,i)}}return e}function Jr(e,t){return e+pt(bn()*(t-e+1))}function Zr(e,t){var n="";if(!e||t<1||t>l)return n;do{t%2&&(n+=e),(t=pt(t/2))&&(e+=e)}while(t);return n}function Kr(e,t){return Po(wo(e,t,nA),e+"")}function Gr(e){return Hn(zs(e))}function Hr(e,t){var n=zs(e);return No(n,or(t,0,n.length))}function Br(e,t,n,r){if(!$a(e))return e;for(var o=-1,a=(t=mi(t,e)).length,s=a-1,A=e;null!=A&&++oo?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i>>1,a=e[o];null!==a&&!ss(a)&&(n?a<=t:a=200){var c=t?null:Zi(e);if(c)return An(c);a=!1,i=Yt,A=new Zn}else A=t?[]:s;e:for(;++r=r?e:ei(e,t,n)}var vi=at||function(e){return lt.clearTimeout(e)};function bi(e,t){if(t)return e.slice();var n=e.length,r=Ve?Ve(n):new e.constructor(n);return e.copy(r),r}function ki(e){var t=new e.constructor(e.byteLength);return new qe(t).set(new qe(e)),t}function Si(e,t){var n=t?ki(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ti(e,t){if(e!==t){var n=e!==i,r=null===e,o=e==e,a=ss(e),s=t!==i,A=null===t,c=t==t,u=ss(t);if(!A&&!u&&!a&&e>t||a&&s&&c&&!A&&!u||r&&s&&c||!n&&c||!o)return 1;if(!r&&!a&&!u&&e1?n[o-1]:i,s=o>2?n[2]:i;for(a=e.length>3&&"function"==typeof a?(o--,a):i,s&&go(n[0],n[1],s)&&(a=o<3?i:a,o=1),t=we(t);++r-1?o[a?t[s]:s]:i}}function Ii(e){return $i((function(t){var n=t.length,r=n,a=Fn.prototype.thru;for(e&&t.reverse();r--;){var s=t[r];if("function"!=typeof s)throw new Oe(o);if(a&&!A&&"wrapper"==ro(s))var A=new Fn([],!0)}for(r=A?r:n;++r1&&b.reverse(),p&&lA))return!1;var u=a.get(e),l=a.get(t);if(u&&l)return u==t&&l==e;var d=-1,p=!0,h=2&n?new Zn:i;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(oe,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Et(h,(function(n){var r="_."+n[0];t&n[1]&&!Pt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(ae);return t?t[1].split(se):[]}(r),n)))}function Lo(e){var t=0,n=0;return function(){var r=yn(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(i,arguments)}}function No(e,t){var n=-1,r=e.length,o=r-1;for(t=t===i?r:t;++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,ia(e,n)}));function la(e){var t=Wn(e);return t.__chain__=!0,t}function da(e,t){return t(e)}var pa=$i((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return ir(t,e)};return!(t>1||this.__actions__.length)&&r instanceof qn&&mo(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:da,args:[o],thisArg:i}),new Fn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(o)})),ha=Ri((function(e,t,n){xe.call(e,n)?++e[n]:rr(e,n,1)})),fa=Ui(qo),ma=Ui(Vo);function ga(e,t){return(Va(e)?Et:ur)(e,oo(t,3))}function ya(e,t){return(Va(e)?jt:lr)(e,oo(t,3))}var va=Ri((function(e,t,n){xe.call(e,n)?e[n].push(t):rr(e,n,[t])})),ba=Kr((function(e,t,n){var i=-1,o="function"==typeof t,a=Ja(e)?r(e.length):[];return ur(e,(function(e){a[++i]=o?Tt(t,e,n):Rr(e,t,n)})),a})),ka=Ri((function(e,t,n){rr(e,n,t)}));function Sa(e,t){return(Va(e)?Lt:Ir)(e,oo(t,3))}var Ta=Ri((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),wa=Kr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&go(e,t[0],t[1])?t=[]:n>2&&go(t[0],t[1],t[2])&&(t=[t[0]]),Fr(e,fr(t,1),[])})),Ea=ct||function(){return lt.Date.now()};function ja(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,Gi(e,c,i,i,i,i,t)}function Oa(e,t){var n;if("function"!=typeof t)throw new Oe(o);return e=ps(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var Ra=Kr((function(e,t,n){var r=1;if(n.length){var i=sn(n,io(Ra));r|=A}return Gi(e,r,t,n,i)})),Pa=Kr((function(e,t,n){var r=3;if(n.length){var i=sn(n,io(Pa));r|=A}return Gi(t,r,e,n,i)}));function Ca(e,t,n){var r,a,s,A,c,u,l=0,d=!1,p=!1,h=!0;if("function"!=typeof e)throw new Oe(o);function f(t){var n=r,o=a;return r=a=i,l=t,A=e.apply(o,n)}function m(e){var n=e-u;return u===i||n>=t||n<0||p&&e-l>=s}function g(){var e=Ea();if(m(e))return y(e);c=Ro(g,function(e){var n=t-(e-u);return p?gn(n,s-(e-l)):n}(e))}function y(e){return c=i,h&&r?f(e):(r=a=i,A)}function v(){var e=Ea(),n=m(e);if(r=arguments,a=this,u=e,n){if(c===i)return function(e){return l=e,c=Ro(g,t),d?f(e):A}(u);if(p)return vi(c),c=Ro(g,t),f(u)}return c===i&&(c=Ro(g,t)),A}return t=fs(t)||0,$a(n)&&(d=!!n.leading,s=(p="maxWait"in n)?mn(fs(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),v.cancel=function(){c!==i&&vi(c),l=0,r=u=a=c=i},v.flush=function(){return c===i?A:y(Ea())},v}var La=Kr((function(e,t){return Ar(e,1,t)})),Na=Kr((function(e,t,n){return Ar(e,fs(t)||0,n)}));function xa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Oe(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(xa.Cache||Jn),n}function Ma(e){if("function"!=typeof e)throw new Oe(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}xa.Cache=Jn;var Ua=gi((function(e,t){var n=(t=1==t.length&&Va(t[0])?Lt(t[0],Ht(oo())):Lt(fr(t,1),Ht(oo()))).length;return Kr((function(r){for(var i=-1,o=gn(r.length,n);++i=t})),qa=Pr(function(){return arguments}())?Pr:function(e){return es(e)&&xe.call(e,"callee")&&!Ze.call(e,"callee")},Va=r.isArray,Xa=gt?Ht(gt):function(e){return es(e)&&Tr(e)==L};function Ja(e){return null!=e&&Qa(e.length)&&!Ba(e)}function Za(e){return es(e)&&Ja(e)}var Ka=mt||fA,Ga=yt?Ht(yt):function(e){return es(e)&&Tr(e)==y};function Ha(e){if(!es(e))return!1;var t=Tr(e);return t==v||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!rs(e)}function Ba(e){if(!$a(e))return!1;var t=Tr(e);return t==b||t==k||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ya(e){return"number"==typeof e&&e==ps(e)}function Qa(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=l}function $a(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function es(e){return null!=e&&"object"==typeof e}var ts=vt?Ht(vt):function(e){return es(e)&&lo(e)==S};function ns(e){return"number"==typeof e||es(e)&&Tr(e)==T}function rs(e){if(!es(e)||Tr(e)!=w)return!1;var t=Xe(e);if(null===t)return!0;var n=xe.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Ne.call(n)==_e}var is=bt?Ht(bt):function(e){return es(e)&&Tr(e)==j},os=kt?Ht(kt):function(e){return es(e)&&lo(e)==O};function as(e){return"string"==typeof e||!Va(e)&&es(e)&&Tr(e)==R}function ss(e){return"symbol"==typeof e||es(e)&&Tr(e)==P}var As=St?Ht(St):function(e){return es(e)&&Qa(e.length)&&!!it[Tr(e)]},cs=Vi(Ur),us=Vi((function(e,t){return e<=t}));function ls(e){if(!e)return[];if(Ja(e))return as(e)?ln(e):ji(e);if(He&&e[He])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[He]());var t=lo(e);return(t==S?on:t==O?An:zs)(e)}function ds(e){return e?(e=fs(e))===u||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ps(e){var t=ds(e),n=t%1;return t==t?n?t-n:t:0}function hs(e){return e?or(ps(e),0,p):0}function fs(e){if("number"==typeof e)return e;if(ss(e))return d;if($a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=$a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Gt(e);var n=he.test(e);return n||me.test(e)?At(e.slice(2),n?2:8):pe.test(e)?d:+e}function ms(e){return Oi(e,Ls(e))}function gs(e){return null==e?"":ai(e)}var ys=Pi((function(e,t){if(ko(t)||Ja(t))Oi(t,Cs(t),e);else for(var n in t)xe.call(t,n)&&$n(e,n,t[n])})),vs=Pi((function(e,t){Oi(t,Ls(t),e)})),bs=Pi((function(e,t,n,r){Oi(t,Ls(t),e,r)})),ks=Pi((function(e,t,n,r){Oi(t,Cs(t),e,r)})),Ss=$i(ir),Ts=Kr((function(e,t){e=we(e);var n=-1,r=t.length,o=r>2?t[2]:i;for(o&&go(t[0],t[1],o)&&(r=1);++n1),t})),Oi(e,to(e),n),r&&(n=ar(n,7,Yi));for(var i=t.length;i--;)Ai(n,t[i]);return n})),Us=$i((function(e,t){return null==e?{}:function(e,t){return qr(e,t,(function(t,n){return js(e,n)}))}(e,t)}));function Is(e,t){if(null==e)return{};var n=Lt(to(e),(function(e){return[e]}));return t=oo(t),qr(e,n,(function(e,n){return t(e,n[0])}))}var _s=Ki(Cs),Ws=Ki(Ls);function zs(e){return null==e?[]:Bt(e,Cs(e))}var Ds=xi((function(e,t,n){return t=t.toLowerCase(),e+(n?Fs(t):t)}));function Fs(e){return Hs(gs(e).toLowerCase())}function qs(e){return(e=gs(e))&&e.replace(ye,en).replace(Ye,"")}var Vs=xi((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Xs=xi((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Js=Ni("toLowerCase"),Zs=xi((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),Ks=xi((function(e,t,n){return e+(n?" ":"")+Hs(t)})),Gs=xi((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Hs=Ni("toUpperCase");function Bs(e,t,n){return e=gs(e),(t=n?i:t)===i?function(e){return tt.test(e)}(e)?function(e){return e.match($e)||[]}(e):function(e){return e.match(Ae)||[]}(e):e.match(t)||[]}var Ys=Kr((function(e,t){try{return Tt(e,i,t)}catch(e){return Ha(e)?e:new ke(e)}})),Qs=$i((function(e,t){return Et(t,(function(t){t=Io(t),rr(e,t,Ra(e[t],e))})),e}));function $s(e){return function(){return e}}var eA=Ii(),tA=Ii(!0);function nA(e){return e}function rA(e){return xr("function"==typeof e?e:ar(e,1))}var iA=Kr((function(e,t){return function(n){return Rr(n,e,t)}})),oA=Kr((function(e,t){return function(n){return Rr(e,n,t)}}));function aA(e,t,n){var r=Cs(t),i=br(t,r);null!=n||$a(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=br(t,Cs(t)));var o=!($a(n)&&"chain"in n&&!n.chain),a=Ba(e);return Et(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=ji(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Nt([this.value()],arguments))})})),e}function sA(){}var AA=Di(Lt),cA=Di(Ot),uA=Di(Ut);function lA(e){return yo(e)?Vt(Io(e)):function(e){return function(t){return kr(t,e)}}(e)}var dA=qi(),pA=qi(!0);function hA(){return[]}function fA(){return!1}var mA,gA=zi((function(e,t){return e+t}),0),yA=Ji("ceil"),vA=zi((function(e,t){return e/t}),1),bA=Ji("floor"),kA=zi((function(e,t){return e*t}),1),SA=Ji("round"),TA=zi((function(e,t){return e-t}),0);return Wn.after=function(e,t){if("function"!=typeof t)throw new Oe(o);return e=ps(e),function(){if(--e<1)return t.apply(this,arguments)}},Wn.ary=ja,Wn.assign=ys,Wn.assignIn=vs,Wn.assignInWith=bs,Wn.assignWith=ks,Wn.at=Ss,Wn.before=Oa,Wn.bind=Ra,Wn.bindAll=Qs,Wn.bindKey=Pa,Wn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Va(e)?e:[e]},Wn.chain=la,Wn.chunk=function(e,t,n){t=(n?go(e,t,n):t===i)?1:mn(ps(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,A=r(dt(o/t));ao?0:o+n),(r=r===i||r>o?o:ps(r))<0&&(r+=o),r=n>r?0:hs(r);n>>0)?(e=gs(e))&&("string"==typeof t||null!=t&&!is(t))&&!(t=ai(t))&&rn(e)?yi(ln(e),0,n):e.split(t,n):[]},Wn.spread=function(e,t){if("function"!=typeof e)throw new Oe(o);return t=null==t?0:mn(ps(t),0),Kr((function(n){var r=n[t],i=yi(n,0,t);return r&&Nt(i,r),Tt(e,this,i)}))},Wn.tail=function(e){var t=null==e?0:e.length;return t?ei(e,1,t):[]},Wn.take=function(e,t,n){return e&&e.length?ei(e,0,(t=n||t===i?1:ps(t))<0?0:t):[]},Wn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?ei(e,(t=r-(t=n||t===i?1:ps(t)))<0?0:t,r):[]},Wn.takeRightWhile=function(e,t){return e&&e.length?ui(e,oo(t,3),!1,!0):[]},Wn.takeWhile=function(e,t){return e&&e.length?ui(e,oo(t,3)):[]},Wn.tap=function(e,t){return t(e),e},Wn.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new Oe(o);return $a(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ca(e,t,{leading:r,maxWait:t,trailing:i})},Wn.thru=da,Wn.toArray=ls,Wn.toPairs=_s,Wn.toPairsIn=Ws,Wn.toPath=function(e){return Va(e)?Lt(e,Io):ss(e)?[e]:ji(Uo(gs(e)))},Wn.toPlainObject=ms,Wn.transform=function(e,t,n){var r=Va(e),i=r||Ka(e)||As(e);if(t=oo(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:$a(e)&&Ba(o)?zn(Xe(e)):{}}return(i?Et:yr)(e,(function(e,r,i){return t(n,e,r,i)})),n},Wn.unary=function(e){return ja(e,1)},Wn.union=ea,Wn.unionBy=ta,Wn.unionWith=na,Wn.uniq=function(e){return e&&e.length?si(e):[]},Wn.uniqBy=function(e,t){return e&&e.length?si(e,oo(t,2)):[]},Wn.uniqWith=function(e,t){return t="function"==typeof t?t:i,e&&e.length?si(e,i,t):[]},Wn.unset=function(e,t){return null==e||Ai(e,t)},Wn.unzip=ra,Wn.unzipWith=ia,Wn.update=function(e,t,n){return null==e?e:ci(e,t,fi(n))},Wn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:i,null==e?e:ci(e,t,fi(n),r)},Wn.values=zs,Wn.valuesIn=function(e){return null==e?[]:Bt(e,Ls(e))},Wn.without=oa,Wn.words=Bs,Wn.wrap=function(e,t){return Ia(fi(t),e)},Wn.xor=aa,Wn.xorBy=sa,Wn.xorWith=Aa,Wn.zip=ca,Wn.zipObject=function(e,t){return pi(e||[],t||[],$n)},Wn.zipObjectDeep=function(e,t){return pi(e||[],t||[],Br)},Wn.zipWith=ua,Wn.entries=_s,Wn.entriesIn=Ws,Wn.extend=vs,Wn.extendWith=bs,aA(Wn,Wn),Wn.add=gA,Wn.attempt=Ys,Wn.camelCase=Ds,Wn.capitalize=Fs,Wn.ceil=yA,Wn.clamp=function(e,t,n){return n===i&&(n=t,t=i),n!==i&&(n=(n=fs(n))==n?n:0),t!==i&&(t=(t=fs(t))==t?t:0),or(fs(e),t,n)},Wn.clone=function(e){return ar(e,4)},Wn.cloneDeep=function(e){return ar(e,5)},Wn.cloneDeepWith=function(e,t){return ar(e,5,t="function"==typeof t?t:i)},Wn.cloneWith=function(e,t){return ar(e,4,t="function"==typeof t?t:i)},Wn.conformsTo=function(e,t){return null==t||sr(e,t,Cs(t))},Wn.deburr=qs,Wn.defaultTo=function(e,t){return null==e||e!=e?t:e},Wn.divide=vA,Wn.endsWith=function(e,t,n){e=gs(e),t=ai(t);var r=e.length,o=n=n===i?r:or(ps(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},Wn.eq=za,Wn.escape=function(e){return(e=gs(e))&&G.test(e)?e.replace(Z,tn):e},Wn.escapeRegExp=function(e){return(e=gs(e))&&ne.test(e)?e.replace(te,"\\$&"):e},Wn.every=function(e,t,n){var r=Va(e)?Ot:dr;return n&&go(e,t,n)&&(t=i),r(e,oo(t,3))},Wn.find=fa,Wn.findIndex=qo,Wn.findKey=function(e,t){return _t(e,oo(t,3),yr)},Wn.findLast=ma,Wn.findLastIndex=Vo,Wn.findLastKey=function(e,t){return _t(e,oo(t,3),vr)},Wn.floor=bA,Wn.forEach=ga,Wn.forEachRight=ya,Wn.forIn=function(e,t){return null==e?e:mr(e,oo(t,3),Ls)},Wn.forInRight=function(e,t){return null==e?e:gr(e,oo(t,3),Ls)},Wn.forOwn=function(e,t){return e&&yr(e,oo(t,3))},Wn.forOwnRight=function(e,t){return e&&vr(e,oo(t,3))},Wn.get=Es,Wn.gt=Da,Wn.gte=Fa,Wn.has=function(e,t){return null!=e&&po(e,t,Er)},Wn.hasIn=js,Wn.head=Jo,Wn.identity=nA,Wn.includes=function(e,t,n,r){e=Ja(e)?e:zs(e),n=n&&!r?ps(n):0;var i=e.length;return n<0&&(n=mn(i+n,0)),as(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&zt(e,t,n)>-1},Wn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:ps(n);return i<0&&(i=mn(r+i,0)),zt(e,t,i)},Wn.inRange=function(e,t,n){return t=ds(t),n===i?(n=t,t=0):n=ds(n),function(e,t,n){return e>=gn(t,n)&&e=-9007199254740991&&e<=l},Wn.isSet=os,Wn.isString=as,Wn.isSymbol=ss,Wn.isTypedArray=As,Wn.isUndefined=function(e){return e===i},Wn.isWeakMap=function(e){return es(e)&&lo(e)==C},Wn.isWeakSet=function(e){return es(e)&&"[object WeakSet]"==Tr(e)},Wn.join=function(e,t){return null==e?"":Xt.call(e,t)},Wn.kebabCase=Vs,Wn.last=Ho,Wn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return n!==i&&(o=(o=ps(n))<0?mn(r+o,0):gn(o,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):Wt(e,Ft,o,!0)},Wn.lowerCase=Xs,Wn.lowerFirst=Js,Wn.lt=cs,Wn.lte=us,Wn.max=function(e){return e&&e.length?pr(e,nA,wr):i},Wn.maxBy=function(e,t){return e&&e.length?pr(e,oo(t,2),wr):i},Wn.mean=function(e){return qt(e,nA)},Wn.meanBy=function(e,t){return qt(e,oo(t,2))},Wn.min=function(e){return e&&e.length?pr(e,nA,Ur):i},Wn.minBy=function(e,t){return e&&e.length?pr(e,oo(t,2),Ur):i},Wn.stubArray=hA,Wn.stubFalse=fA,Wn.stubObject=function(){return{}},Wn.stubString=function(){return""},Wn.stubTrue=function(){return!0},Wn.multiply=kA,Wn.nth=function(e,t){return e&&e.length?Dr(e,ps(t)):i},Wn.noConflict=function(){return lt._===this&&(lt._=We),this},Wn.noop=sA,Wn.now=Ea,Wn.pad=function(e,t,n){e=gs(e);var r=(t=ps(t))?un(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return Fi(pt(i),n)+e+Fi(dt(i),n)},Wn.padEnd=function(e,t,n){e=gs(e);var r=(t=ps(t))?un(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=bn();return gn(e+o*(t-e+st("1e-"+((o+"").length-1))),t)}return Jr(e,t)},Wn.reduce=function(e,t,n){var r=Va(e)?xt:Jt,i=arguments.length<3;return r(e,oo(t,4),n,i,ur)},Wn.reduceRight=function(e,t,n){var r=Va(e)?Mt:Jt,i=arguments.length<3;return r(e,oo(t,4),n,i,lr)},Wn.repeat=function(e,t,n){return t=(n?go(e,t,n):t===i)?1:ps(t),Zr(gs(e),t)},Wn.replace=function(){var e=arguments,t=gs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Wn.result=function(e,t,n){var r=-1,o=(t=mi(t,e)).length;for(o||(o=1,e=i);++rl)return[];var n=p,r=gn(e,p);t=oo(t),e-=p;for(var i=Kt(r,t);++n=a)return e;var A=n-un(r);if(A<1)return r;var c=s?yi(s,0,A).join(""):e.slice(0,A);if(o===i)return c+r;if(s&&(A+=c.length-A),is(o)){if(e.slice(A).search(o)){var u,l=c;for(o.global||(o=Ee(o.source,gs(de.exec(o))+"g")),o.lastIndex=0;u=o.exec(l);)var d=u.index;c=c.slice(0,d===i?A:d)}}else if(e.indexOf(ai(o),A)!=A){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+r},Wn.unescape=function(e){return(e=gs(e))&&K.test(e)?e.replace(J,pn):e},Wn.uniqueId=function(e){var t=++Me;return gs(e)+t},Wn.upperCase=Gs,Wn.upperFirst=Hs,Wn.each=ga,Wn.eachRight=ya,Wn.first=Jo,aA(Wn,(mA={},yr(Wn,(function(e,t){xe.call(Wn.prototype,t)||(mA[t]=e)})),mA),{chain:!1}),Wn.VERSION="4.17.21",Et(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Wn[e].placeholder=Wn})),Et(["drop","take"],(function(e,t){qn.prototype[e]=function(n){n=n===i?1:mn(ps(n),0);var r=this.__filtered__&&!t?new qn(this):this.clone();return r.__filtered__?r.__takeCount__=gn(n,r.__takeCount__):r.__views__.push({size:gn(n,p),type:e+(r.__dir__<0?"Right":"")}),r},qn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Et(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;qn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:oo(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Et(["head","last"],(function(e,t){var n="take"+(t?"Right":"");qn.prototype[e]=function(){return this[n](1).value()[0]}})),Et(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");qn.prototype[e]=function(){return this.__filtered__?new qn(this):this[n](1)}})),qn.prototype.compact=function(){return this.filter(nA)},qn.prototype.find=function(e){return this.filter(e).head()},qn.prototype.findLast=function(e){return this.reverse().find(e)},qn.prototype.invokeMap=Kr((function(e,t){return"function"==typeof e?new qn(this):this.map((function(n){return Rr(n,e,t)}))})),qn.prototype.reject=function(e){return this.filter(Ma(oo(e)))},qn.prototype.slice=function(e,t){e=ps(e);var n=this;return n.__filtered__&&(e>0||t<0)?new qn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(n=(t=ps(t))<0?n.dropRight(-t):n.take(t-e)),n)},qn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},qn.prototype.toArray=function(){return this.take(p)},yr(qn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=Wn[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(Wn.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,A=t instanceof qn,c=s[0],u=A||Va(t),l=function(e){var t=o.apply(Wn,Nt([e],s));return r&&d?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(A=u=!1);var d=this.__chain__,p=!!this.__actions__.length,h=a&&!d,f=A&&!p;if(!a&&u){t=f?t:new qn(this);var m=e.apply(t,s);return m.__actions__.push({func:da,args:[l],thisArg:i}),new Fn(m,d)}return h&&f?e.apply(this,s):(m=this.thru(l),h?r?m.value()[0]:m.value():m)})})),Et(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Re[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Wn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Va(i)?i:[],e)}return this[n]((function(n){return t.apply(Va(n)?n:[],e)}))}})),yr(qn.prototype,(function(e,t){var n=Wn[t];if(n){var r=n.name+"";xe.call(Pn,r)||(Pn[r]=[]),Pn[r].push({name:t,func:n})}})),Pn[_i(i,2).name]=[{name:"wrapper",func:i}],qn.prototype.clone=function(){var e=new qn(this.__wrapped__);return e.__actions__=ji(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ji(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ji(this.__views__),e},qn.prototype.reverse=function(){if(this.__filtered__){var e=new qn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},qn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Va(e),r=t<0,i=n?e.length:0,o=function(e,t,n){for(var r=-1,i=n.length;++r=this.__values__.length;return{done:e,value:e?i:this.__values__[this.__index__++]}},Wn.prototype.plant=function(e){for(var t,n=this;n instanceof Dn;){var r=Wo(n);r.__index__=0,r.__values__=i,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},Wn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof qn){var t=e;return this.__actions__.length&&(t=new qn(this)),(t=t.reverse()).__actions__.push({func:da,args:[$o],thisArg:i}),new Fn(t,this.__chain__)}return this.thru($o)},Wn.prototype.toJSON=Wn.prototype.valueOf=Wn.prototype.value=function(){return li(this.__wrapped__,this.__actions__)},Wn.prototype.first=Wn.prototype.head,He&&(Wn.prototype[He]=function(){return this}),Wn}();lt._=hn,(r=function(){return hn}.call(t,n,t,e))===i||(e.exports=r)}.call(this)},8657:(e,t,n)=>{var r="function"==typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,o=r&&i&&"function"==typeof i.get?i.get:null,a=r&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,A=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,c=s&&A&&"function"==typeof A.get?A.get:null,u=s&&Set.prototype.forEach,l="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,d="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,p="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,f=Object.prototype.toString,m=Function.prototype.toString,g=String.prototype.match,y=String.prototype.slice,v=String.prototype.replace,b=String.prototype.toUpperCase,k=String.prototype.toLowerCase,S=RegExp.prototype.test,T=Array.prototype.concat,w=Array.prototype.join,E=Array.prototype.slice,j=Math.floor,O="function"==typeof BigInt?BigInt.prototype.valueOf:null,R=Object.getOwnPropertySymbols,P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,C="function"==typeof Symbol&&"object"==typeof Symbol.iterator,L="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,N=Object.prototype.propertyIsEnumerable,x=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function M(e,t){if(e===1/0||e===-1/0||e!=e||e&&e>-1e3&&e<1e3||S.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof e){var r=e<0?-j(-e):j(e);if(r!==e){var i=String(r),o=y.call(t,i.length+1);return v.call(i,n,"$&_")+"."+v.call(v.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(t,n,"$&_")}var U=n(2634),I=U.custom,_=X(I)?I:null,W={__proto__:null,double:'"',single:"'"},z={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function D(e,t,n){var r=n.quoteStyle||t,i=W[r];return i+e+i}function F(e){return v.call(String(e),/"/g,""")}function q(e){return!("[object Array]"!==K(e)||L&&"object"==typeof e&&L in e)}function V(e){return!("[object RegExp]"!==K(e)||L&&"object"==typeof e&&L in e)}function X(e){if(C)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!P)return!1;try{return P.call(e),!0}catch(e){}return!1}e.exports=function e(t,r,i,s){var A=r||{};if(Z(A,"quoteStyle")&&!Z(W,A.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Z(A,"maxStringLength")&&("number"==typeof A.maxStringLength?A.maxStringLength<0&&A.maxStringLength!==1/0:null!==A.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var f=!Z(A,"customInspect")||A.customInspect;if("boolean"!=typeof f&&"symbol"!==f)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Z(A,"indent")&&null!==A.indent&&"\t"!==A.indent&&!(parseInt(A.indent,10)===A.indent&&A.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Z(A,"numericSeparator")&&"boolean"!=typeof A.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var b=A.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return H(t,A);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var S=String(t);return b?M(t,S):S}if("bigint"==typeof t){var j=String(t)+"n";return b?M(t,j):j}var R=void 0===A.depth?5:A.depth;if(void 0===i&&(i=0),i>=R&&R>0&&"object"==typeof t)return q(t)?"[Array]":"[Object]";var I,z=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;n=w.call(Array(e.indent+1)," ")}return{base:n,prev:w.call(Array(t+1),n)}}(A,i);if(void 0===s)s=[];else if(G(s,t)>=0)return"[Circular]";function J(t,n,r){if(n&&(s=E.call(s)).push(n),r){var o={depth:A.depth};return Z(A,"quoteStyle")&&(o.quoteStyle=A.quoteStyle),e(t,o,i+1,s)}return e(t,A,i+1,s)}if("function"==typeof t&&!V(t)){var B=function(e){if(e.name)return e.name;var t=g.call(m.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}(t),ne=te(t,J);return"[Function"+(B?": "+B:" (anonymous)")+"]"+(ne.length>0?" { "+w.call(ne,", ")+" }":"")}if(X(t)){var re=C?v.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):P.call(t);return"object"!=typeof t||C?re:Y(re)}if((I=t)&&"object"==typeof I&&("undefined"!=typeof HTMLElement&&I instanceof HTMLElement||"string"==typeof I.nodeName&&"function"==typeof I.getAttribute)){for(var ie="<"+k.call(String(t.nodeName)),oe=t.attributes||[],ae=0;ae"}if(q(t)){if(0===t.length)return"[]";var se=te(t,J);return z&&!function(e){for(var t=0;t=0)return!1;return!0}(se)?"["+ee(se,z)+"]":"[ "+w.call(se,", ")+" ]"}if(function(e){return!("[object Error]"!==K(e)||L&&"object"==typeof e&&L in e)}(t)){var Ae=te(t,J);return"cause"in Error.prototype||!("cause"in t)||N.call(t,"cause")?0===Ae.length?"["+String(t)+"]":"{ ["+String(t)+"] "+w.call(Ae,", ")+" }":"{ ["+String(t)+"] "+w.call(T.call("[cause]: "+J(t.cause),Ae),", ")+" }"}if("object"==typeof t&&f){if(_&&"function"==typeof t[_]&&U)return U(t,{depth:R-i});if("symbol"!==f&&"function"==typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!=typeof e)return!1;try{o.call(e);try{c.call(e)}catch(e){return!0}return e instanceof Map}catch(e){}return!1}(t)){var ce=[];return a&&a.call(t,(function(e,n){ce.push(J(n,t,!0)+" => "+J(e,t))})),$("Map",o.call(t),ce,z)}if(function(e){if(!c||!e||"object"!=typeof e)return!1;try{c.call(e);try{o.call(e)}catch(e){return!0}return e instanceof Set}catch(e){}return!1}(t)){var ue=[];return u&&u.call(t,(function(e){ue.push(J(e,t))})),$("Set",c.call(t),ue,z)}if(function(e){if(!l||!e||"object"!=typeof e)return!1;try{l.call(e,l);try{d.call(e,d)}catch(e){return!0}return e instanceof WeakMap}catch(e){}return!1}(t))return Q("WeakMap");if(function(e){if(!d||!e||"object"!=typeof e)return!1;try{d.call(e,d);try{l.call(e,l)}catch(e){return!0}return e instanceof WeakSet}catch(e){}return!1}(t))return Q("WeakSet");if(function(e){if(!p||!e||"object"!=typeof e)return!1;try{return p.call(e),!0}catch(e){}return!1}(t))return Q("WeakRef");if(function(e){return!("[object Number]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return Y(J(Number(t)));if(function(e){if(!e||"object"!=typeof e||!O)return!1;try{return O.call(e),!0}catch(e){}return!1}(t))return Y(J(O.call(t)));if(function(e){return!("[object Boolean]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return Y(h.call(t));if(function(e){return!("[object String]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return Y(J(String(t)));if("undefined"!=typeof window&&t===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&t===globalThis||void 0!==n.g&&t===n.g)return"{ [object globalThis] }";if(!function(e){return!("[object Date]"!==K(e)||L&&"object"==typeof e&&L in e)}(t)&&!V(t)){var le=te(t,J),de=x?x(t)===Object.prototype:t instanceof Object||t.constructor===Object,pe=t instanceof Object?"":"null prototype",he=!de&&L&&Object(t)===t&&L in t?y.call(K(t),8,-1):pe?"Object":"",fe=(de||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(he||pe?"["+w.call(T.call([],he||[],pe||[]),": ")+"] ":"");return 0===le.length?fe+"{}":z?fe+"{"+ee(le,z)+"}":fe+"{ "+w.call(le,", ")+" }"}return String(t)};var J=Object.prototype.hasOwnProperty||function(e){return e in this};function Z(e,t){return J.call(e,t)}function K(e){return f.call(e)}function G(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;nt.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return H(y.call(e,0,t.maxStringLength),t)+r}var i=z[t.quoteStyle||"single"];return i.lastIndex=0,D(v.call(v.call(e,i,"\\$1"),/[\x00-\x1f]/g,B),"single",t)}function B(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+b.call(t.toString(16))}function Y(e){return"Object("+e+")"}function Q(e){return e+" { ? }"}function $(e,t,n,r){return e+" ("+t+") {"+(r?ee(n,r):w.call(n,", "))+"}"}function ee(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+w.call(e,","+n)+"\n"+t.prev}function te(e,t){var n=q(e),r=[];if(n){r.length=e.length;for(var i=0;i{"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC3986";e.exports={default:r,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:"RFC1738",RFC3986:r}},5995:(e,t,n)=>{"use strict";var r=n(4090),i=n(6244),o=n(1423);e.exports={formats:o,parse:i,stringify:r}},6244:(e,t,n)=>{"use strict";var r=n(9974),i=Object.prototype.hasOwnProperty,o=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:r.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},A=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c=function(e,t,n,r){if(e){var o=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(o),c=s?o.slice(0,s.index):o,u=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;u.push(c)}for(var l=0;n.depth>0&&null!==(s=a.exec(o))&&l=0;--o){var a,s=e[o];if("[]"===s&&n.parseArrays)a=n.allowEmptyArrays&&(""===i||n.strictNullHandling&&null===i)?[]:[].concat(i);else{a=n.plainObjects?Object.create(null):{};var c="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=n.decodeDotInKeys?c.replace(/%2E/g,"."):c,l=parseInt(u,10);n.parseArrays||""!==u?!isNaN(l)&&s!==u&&String(l)===u&&l>=0&&n.parseArrays&&l<=n.arrayLimit?(a=[])[l]=i:"__proto__"!==u&&(a[u]=i):a={0:i}}i=a}return i}(u,t,n,r)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(void 0!==e.allowEmptyArrays&&"boolean"!=typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==e.decodeDotInKeys&&"boolean"!=typeof e.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?a.charset:e.charset,n=void 0===e.duplicates?a.duplicates:e.duplicates;if("combine"!==n&&"first"!==n&&"last"!==n)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===e.allowDots?!0===e.decodeDotInKeys||a.allowDots:!!e.allowDots,allowEmptyArrays:"boolean"==typeof e.allowEmptyArrays?!!e.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"==typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:a.comma,decodeDotInKeys:"boolean"==typeof e.decodeDotInKeys?e.decodeDotInKeys:a.decodeDotInKeys,decoder:"function"==typeof e.decoder?e.decoder:a.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:a.depth,duplicates:n,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictDepth:"boolean"==typeof e.strictDepth?!!e.strictDepth:a.strictDepth,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null==e)return n.plainObjects?Object.create(null):{};for(var u="string"==typeof e?function(e,t){var n={__proto__:null},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e;c=c.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var u,l=t.parameterLimit===1/0?void 0:t.parameterLimit,d=c.split(t.delimiter,l),p=-1,h=t.charset;if(t.charsetSentinel)for(u=0;u-1&&(m=o(m)?[m]:m);var b=i.call(n,f);b&&"combine"===t.duplicates?n[f]=r.combine(n[f],m):b&&"last"!==t.duplicates||(n[f]=m)}return n}(e,n):e,l=n.plainObjects?Object.create(null):{},d=Object.keys(u),p=0;p{"use strict";var r=n(6402),i=n(9974),o=n(1423),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},A=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,A(t)?t:[t])},l=Date.prototype.toISOString,d=o.default,p={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:i.encode,encodeValuesOnly:!1,format:d,formatter:o.formatters[d],indices:!1,serializeDate:function(e){return l.call(e)},skipNulls:!1,strictNullHandling:!1},h={},f=function e(t,n,o,a,s,c,l,d,f,m,g,y,v,b,k,S,T,w){for(var E,j=t,O=w,R=0,P=!1;void 0!==(O=O.get(h))&&!P;){var C=O.get(t);if(R+=1,void 0!==C){if(C===R)throw new RangeError("Cyclic object value");P=!0}void 0===O.get(h)&&(R=0)}if("function"==typeof m?j=m(n,j):j instanceof Date?j=v(j):"comma"===o&&A(j)&&(j=i.maybeMap(j,(function(e){return e instanceof Date?v(e):e}))),null===j){if(c)return f&&!S?f(n,p.encoder,T,"key",b):n;j=""}if("string"==typeof(E=j)||"number"==typeof E||"boolean"==typeof E||"symbol"==typeof E||"bigint"==typeof E||i.isBuffer(j))return f?[k(S?n:f(n,p.encoder,T,"key",b))+"="+k(f(j,p.encoder,T,"value",b))]:[k(n)+"="+k(String(j))];var L,N=[];if(void 0===j)return N;if("comma"===o&&A(j))S&&f&&(j=i.maybeMap(j,f)),L=[{value:j.length>0?j.join(",")||null:void 0}];else if(A(m))L=m;else{var x=Object.keys(j);L=g?x.sort(g):x}var M=d?n.replace(/\./g,"%2E"):n,U=a&&A(j)&&1===j.length?M+"[]":M;if(s&&A(j)&&0===j.length)return U+"[]";for(var I=0;I0?b+v:""}},9974:(e,t,n)=>{"use strict";var r=n(1423),i=Object.prototype.hasOwnProperty,o=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var r=[],i=0;i=A?s.slice(u,u+A):s,d=[],p=0;p=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||o===r.RFC1738&&(40===h||41===h)?d[d.length]=l.charAt(p):h<128?d[d.length]=a[h]:h<2048?d[d.length]=a[192|h>>6]+a[128|63&h]:h<55296||h>=57344?d[d.length]=a[224|h>>12]+a[128|h>>6&63]+a[128|63&h]:(p+=1,h=65536+((1023&h)<<10|1023&l.charCodeAt(p)),d[d.length]=a[240|h>>18]+a[128|h>>12&63]+a[128|h>>6&63]+a[128|63&h])}c+=d.join("")}return c},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var n=[],r=0;r{"use strict";var r=n(8299),i=n(3423),o=n(6698)(),a=n(3581),s=n(1953),A=r("%Math.floor%");e.exports=function(e,t){if("function"!=typeof e)throw new s("`fn` is not a function");if("number"!=typeof t||t<0||t>4294967295||A(t)!==t)throw new s("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],r=!0,c=!0;if("length"in e&&a){var u=a(e,"length");u&&!u.configurable&&(r=!1),u&&!u.writable&&(c=!1)}return(r||c||!n)&&(o?i(e,"length",t,!0,!0):i(e,"length",t)),e}},6561:(e,t,n)=>{var r,i,o,a;r=n(773),i=n(1041).utf8,o=n(1041).bin,(a=function(e,t){var n=r.wordsToBytes(function(e){e.constructor==String?e=i.stringToBytes(e):"undefined"!=typeof Buffer&&"function"==typeof Buffer.isBuffer&&Buffer.isBuffer(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||(e=e.toString());var t=r.bytesToWords(e),n=8*e.length,o=[],a=1732584193,s=-271733879,A=-1732584194,c=271733878,u=-1009589776;t[n>>5]|=128<<24-n%32,t[15+(n+64>>>9<<4)]=n;for(var l=0;l>>31}var v=(a<<5|a>>>27)+u+(o[g]>>>0)+(g<20?1518500249+(s&A|~s&c):g<40?1859775393+(s^A^c):g<60?(s&A|s&c|A&c)-1894007588:(s^A^c)-899497514);u=c,c=A,A=s<<30|s>>>2,s=a,a=v}a+=d,s+=p,A+=h,c+=f,u+=m}return[a,s,A,c,u]}(e));return t&&t.asBytes?n:t&&t.asString?o.bytesToString(n):r.bytesToHex(n)})._blocksize=16,a._digestsize=20,e.exports=a},5938:e=>{"use strict";function t(e){return"function"==typeof e}var n=console.error.bind(console);function r(e,t,n){var r=!!e[t]&&e.propertyIsEnumerable(t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}function i(e){e&&e.logger&&(t(e.logger)?n=e.logger:n("new logger isn't a function, not replacing"))}function o(e,i,o){if(e&&e[i]){if(!o)return n("no wrapper function"),void n((new Error).stack);if(t(e[i])&&t(o)){var a=e[i],s=o(a,i);return r(s,"__original",a),r(s,"__unwrap",(function(){e[i]===s&&r(e,i,a)})),r(s,"__wrapped",!0),r(e,i,s),s}n("original object and wrapper must be functions")}else n("no original function "+i+" to wrap")}function a(e,t){return e&&e[t]?e[t].__unwrap?e[t].__unwrap():void n("no original to unwrap to -- has "+t+" already been unwrapped?"):(n("no function to unwrap."),void n((new Error).stack))}i.wrap=o,i.massWrap=function(e,t,r){if(!e)return n("must provide one or more modules to patch"),void n((new Error).stack);Array.isArray(e)||(e=[e]),t&&Array.isArray(t)?e.forEach((function(e){t.forEach((function(t){o(e,t,r)}))})):n("must provide one or more functions to wrap on modules")},i.unwrap=a,i.massUnwrap=function(e,t){if(!e)return n("must provide one or more modules to patch"),void n((new Error).stack);Array.isArray(e)||(e=[e]),t&&Array.isArray(t)?e.forEach((function(e){t.forEach((function(t){a(e,t)}))})):n("must provide one or more functions to unwrap on modules")},e.exports=i},6402:(e,t,n)=>{"use strict";var r=n(8299),i=n(2857),o=n(8657),a=n(1953),s=r("%WeakMap%",!0),A=r("%Map%",!0),c=i("WeakMap.prototype.get",!0),u=i("WeakMap.prototype.set",!0),l=i("WeakMap.prototype.has",!0),d=i("Map.prototype.get",!0),p=i("Map.prototype.set",!0),h=i("Map.prototype.has",!0),f=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new a("Side channel does not contain "+o(e))},get:function(r){if(s&&r&&("object"==typeof r||"function"==typeof r)){if(e)return c(e,r)}else if(A){if(t)return d(t,r)}else if(n)return function(e,t){var n=f(e,t);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"==typeof r||"function"==typeof r)){if(e)return l(e,r)}else if(A){if(t)return h(t,r)}else if(n)return function(e,t){return!!f(e,t)}(n,r);return!1},set:function(r,i){s&&r&&("object"==typeof r||"function"==typeof r)?(e||(e=new s),u(e,r,i)):A?(t||(t=new A),p(t,r,i)):(n||(n={key:{},next:null}),function(e,t,n){var r=f(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,i))}};return r}},5825:(e,t,n)=>{"use strict";var r=n(1837),i=null,o=function(e,t){let r=t&&t.allowPrivateTLD||!1,o=t&&t.allowUnknownTLD||!1;i||((i=n(6109)).combined=Object.assign({},i.icann,i.private));for(var a,s=e.split("."),A="",c=-1,u=r?i.combined:i.icann,l=s.length-1;l>=0;l--)a=s[l],u[A=A?a+"."+A:a]&&(c=u[A]);if(-1==c&&o&&(c=1),s.length<=c||-1==c)throw new Error("Invalid TLD "+JSON.stringify({parts:s,tld_level:c,allowUnknownTLD:o}));return{tld:s.slice(-c).join("."),domain:s.slice(-c-1).join("."),sub:s.slice(0,-c-1).join(".")}};e.exports=function(e,t){return"string"==typeof e&&(e=r.parse(e)),o(e.hostname,t)},e.exports.parse_host=o},1820:function(e,t,n){var r;e=n.nmd(e),function(){t&&t.nodeType,e&&e.nodeType;var i="object"==typeof n.g&&n.g;i.global!==i&&i.window!==i&&i.self;var o,a=2147483647,s=36,A=/^xn--/,c=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,p=String.fromCharCode;function h(e){throw new RangeError(l[e])}function f(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function m(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+f((e=e.replace(u,".")).split("."),t).join(".")}function g(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=p((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+p(e)})).join("")}function v(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function b(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=s)e=d(e/35);return d(r+36*e/(e+38))}function k(e){var t,n,r,i,o,A,c,u,l,p,f,m=[],g=e.length,v=0,k=128,S=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r=128&&h("not-basic"),m.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=g&&h("invalid-input"),((u=(f=e.charCodeAt(i++))-48<10?f-22:f-65<26?f-65:f-97<26?f-97:s)>=s||u>d((a-v)/A))&&h("overflow"),v+=u*A,!(u<(l=c<=S?1:c>=S+26?26:c-S));c+=s)A>d(a/(p=s-l))&&h("overflow"),A*=p;S=b(v-o,t=m.length+1,0==o),d(v/t)>a-k&&h("overflow"),k+=d(v/t),v%=t,m.splice(v++,0,k)}return y(m)}function S(e){var t,n,r,i,o,A,c,u,l,f,m,y,k,S,T,w=[];for(y=(e=g(e)).length,t=128,n=0,o=72,A=0;A=t&&md((a-n)/(k=r+1))&&h("overflow"),n+=(c-t)*k,t=c,A=0;Aa&&h("overflow"),m==t){for(u=n,l=s;!(u<(f=l<=o?1:l>=o+26?26:l-o));l+=s)T=u-f,S=s-f,w.push(p(v(f+T%S,0))),u=d(T/S);w.push(p(v(u,0))),o=b(n,k,r==i),n=0,++r}++n,++t}return w.join("")}o={version:"1.4.1",ucs2:{decode:g,encode:y},decode:k,encode:S,toASCII:function(e){return m(e,(function(e){return c.test(e)?"xn--"+S(e):e}))},toUnicode:function(e){return m(e,(function(e){return A.test(e)?k(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()},1837:(e,t,n)=>{"use strict";var r=n(1820);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var o=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,A=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(A),u=["%","/","?",";","#"].concat(c),l=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},f={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=n(5995);function y(e,t,n){if(e&&"object"==typeof e&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),a=-1!==i&&i127?N+="x":N+=L[x];if(!N.match(d)){var U=P.slice(0,j),I=P.slice(j+1),_=L.match(p);_&&(U.push(_[1]),I.unshift(_[2])),I.length&&(y="/"+I.join(".")+y),this.hostname=U.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=r.toASCII(this.hostname));var W=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+W,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!h[k])for(j=0,C=c.length;j0)&&n.host.split("@"))&&(n.auth=R.shift(),n.hostname=R.shift(),n.host=n.hostname)),n.search=e.search,n.query=e.query,null===n.pathname&&null===n.search||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!S.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var w=S.slice(-1)[0],E=(n.host||e.host||S.length>1)&&("."===w||".."===w)||""===w,j=0,O=S.length;O>=0;O--)"."===(w=S[O])?S.splice(O,1):".."===w?(S.splice(O,1),j++):j&&(S.splice(O,1),j--);if(!b&&!k)for(;j--;j)S.unshift("..");!b||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),E&&"/"!==S.join("/").substr(-1)&&S.push("");var R,P=""===S[0]||S[0]&&"/"===S[0].charAt(0);return T&&(n.hostname=P?"":S.length?S.shift():"",n.host=n.hostname,(R=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=R.shift(),n.hostname=R.shift(),n.host=n.hostname)),(b=b||n.host&&S.length)&&!P&&S.unshift(""),S.length>0?n.pathname=S.join("/"):(n.pathname=null,n.path=null),null===n.pathname&&null===n.search||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return"string"==typeof e&&(e=y(e)),e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i},3950:()=>{"use strict";const e=globalThis;function t(t){return(e.__Zone_symbol_prefix||"__zone_symbol__")+t}function n(){const n=e.performance;function r(e){n&&n.mark&&n.mark(e)}function i(e,t){n&&n.measure&&n.measure(e,t)}r("Zone");class o{static#e=(()=>this.__symbol__=t)();static assertZonePatched(){if(e.Promise!==R.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let e=o.current;for(;e.parent;)e=e.parent;return e}static get current(){return C.zone}static get currentTask(){return L}static __load_patch(n,a){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(R.hasOwnProperty(n)){const r=!0===e[t("forceDuplicateZoneCheck")];if(!s&&r)throw Error("Already loaded patch: "+n)}else if(!e["__Zone_disable_"+n]){const t="Zone:"+n;r(t),R[n]=a(e,o,P),i(t,t)}}get parent(){return this._parent}get name(){return this._name}constructor(e,t){this._parent=e,this._name=t?t.name||"unnamed":"",this._properties=t&&t.properties||{},this._zoneDelegate=new s(this,this._parent&&this._parent._zoneDelegate,t)}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)}wrap(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);const n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}}run(e,t,n,r){C={parent:C,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{C=C.parent}}runGuarded(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;C={parent:C,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{C=C.parent}}runTask(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||y).name+"; Execution: "+this.name+")");const r=e,{type:i,data:{isPeriodic:o=!1,isRefreshable:a=!1}={}}=e;if(e.state===v&&(i===O||i===j))return;const s=e.state!=S;s&&r._transitionTo(S,k);const A=L;L=r,C={parent:C,zone:this};try{i!=j||!e.data||o||a||(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,r,t,n)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{const t=e.state;if(t!==v&&t!==w)if(i==O||o||a&&t===b)s&&r._transitionTo(k,S,b);else{const e=r._zoneDelegates;this._updateTaskCount(r,-1),s&&r._transitionTo(v,S,v),a&&(r._zoneDelegates=e)}C=C.parent,L=A}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(b,v);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(t){throw e._transitionTo(w,b,v),this._zoneDelegate.handleError(this,t),t}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==b&&e._transitionTo(k,b),e}scheduleMicroTask(e,t,n,r){return this.scheduleTask(new A(E,e,t,n,r,void 0))}scheduleMacroTask(e,t,n,r,i){return this.scheduleTask(new A(j,e,t,n,r,i))}scheduleEventTask(e,t,n,r,i){return this.scheduleTask(new A(O,e,t,n,r,i))}cancelTask(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||y).name+"; Execution: "+this.name+")");if(e.state===k||e.state===S){e._transitionTo(T,k,S);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(w,T),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(v,T),e.runCount=-1,e}}_updateTaskCount(e,t){const n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let r=0;re.hasTask(n,r),onScheduleTask:(e,t,n,r)=>e.scheduleTask(n,r),onInvokeTask:(e,t,n,r,i,o)=>e.invokeTask(n,r,i,o),onCancelTask:(e,t,n,r)=>e.cancelTask(n,r)};class s{get zone(){return this._zone}constructor(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this._zone:t._forkCurrZone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this._zone:t._interceptCurrZone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this._zone:t._invokeCurrZone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this._zone:t._handleErrorCurrZone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this._zone:t._scheduleTaskCurrZone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this._zone:t._invokeTaskCurrZone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this._zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const r=n&&n.onHasTask,i=t&&t._hasTaskZS;(r||i)&&(this._hasTaskZS=r?n:a,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,n.onScheduleTask||(this._scheduleTaskZS=a,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this._zone),n.onInvokeTask||(this._invokeTaskZS=a,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this._zone),n.onCancelTask||(this._cancelTaskZS=a,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this._zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new o(e,t)}intercept(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t}invoke(e,t,n,r,i){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,r,i):t.apply(n,r)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),n||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=E)throw new Error("Task is missing scheduleFn.");m(t)}return n}invokeTask(e,t,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,r):t.callback.apply(n,r)}cancelTask(e,t){let n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");n=t.cancelFn(t)}return n}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(t){this.handleError(e,t)}}_updateTaskCount(e,t){const n=this._taskCounts,r=n[e],i=n[e]=r+t;if(i<0)throw new Error("More tasks executed then were scheduled.");if(0==r||0==i){const t={microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e};this.hasTask(this._zone,t)}}}class A{constructor(t,n,r,i,o,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=t,this.source=n,this.data=i,this.scheduleFn=o,this.cancelFn=a,!r)throw new Error("callback is not defined");this.callback=r;const s=this;t===O&&i&&i.useG?this.invoke=A.invokeTask:this.invoke=function(){return A.invokeTask.call(e,s,this,arguments)}}static invokeTask(e,t,n){e||(e=this),N++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==N&&g(),N--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(v,b)}_transitionTo(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${n?" or '"+n+"'":""}, was '${this._state}'.`);this._state=e,e==v&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const c=t("setTimeout"),u=t("Promise"),l=t("then");let d,p=[],h=!1;function f(t){if(d||e[u]&&(d=e[u].resolve(0)),d){let e=d[l];e||(e=d.then),e.call(d,t)}else e[c](t,0)}function m(e){0===N&&0===p.length&&f(g),e&&p.push(e)}function g(){if(!h){for(h=!0;p.length;){const e=p;p=[];for(let t=0;tC,onUnhandledError:x,microtaskDrainDone:x,scheduleMicroTask:m,showUncaughtError:()=>!o[t("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:x,patchMethod:()=>x,bindArguments:()=>[],patchThen:()=>x,patchMacroTask:()=>x,patchEventPrototype:()=>x,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>x,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>x,wrapWithCurrentZone:()=>x,filterProperties:()=>[],attachOriginToPatched:()=>x,_redefineProperty:()=>x,patchCallbacks:()=>x,nativeScheduleMicroTask:f};let C={parent:null,zone:new o(null,null)},L=null,N=0;function x(){}return i("Zone","Zone"),o}const r=Object.getOwnPropertyDescriptor,i=Object.defineProperty,o=Object.getPrototypeOf,a=Object.create,s=Array.prototype.slice,A="addEventListener",c="removeEventListener",u=t(A),l=t(c),d="true",p="false",h=t("");function f(e,t){return Zone.current.wrap(e,t)}function m(e,t,n,r,i){return Zone.current.scheduleMacroTask(e,t,n,r,i)}const g=t,y="undefined"!=typeof window,v=y?window:void 0,b=y&&v||globalThis;function k(e,t){for(let n=e.length-1;n>=0;n--)"function"==typeof e[n]&&(e[n]=f(e[n],t+"_"+n));return e}function S(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}const T="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,w=!("nw"in b)&&void 0!==b.process&&"[object process]"===b.process.toString(),E=!w&&!T&&!(!y||!v.HTMLElement),j=void 0!==b.process&&"[object process]"===b.process.toString()&&!T&&!(!y||!v.HTMLElement),O={},R=g("enable_beforeunload"),P=function(e){if(!(e=e||b.event))return;let t=O[e.type];t||(t=O[e.type]=g("ON_PROPERTY"+e.type));const n=this||e.target||b,r=n[t];let i;if(E&&n===v&&"error"===e.type){const t=e;i=r&&r.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===i&&e.preventDefault()}else i=r&&r.apply(this,arguments),"beforeunload"===e.type&&b[R]&&"string"==typeof i?e.returnValue=i:null==i||i||e.preventDefault();return i};function C(e,t,n){let o=r(e,t);if(!o&&n&&r(n,t)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const a=g("on"+t+"patched");if(e.hasOwnProperty(a)&&e[a])return;delete o.writable,delete o.value;const s=o.get,A=o.set,c=t.slice(2);let u=O[c];u||(u=O[c]=g("ON_PROPERTY"+c)),o.set=function(t){let n=this;n||e!==b||(n=b),n&&("function"==typeof n[u]&&n.removeEventListener(c,P),A&&A.call(n,null),n[u]=t,"function"==typeof t&&n.addEventListener(c,P,!1))},o.get=function(){let n=this;if(n||e!==b||(n=b),!n)return null;const r=n[u];if(r)return r;if(s){let e=s.call(this);if(e)return o.set.call(this,e),"function"==typeof n.removeAttribute&&n.removeAttribute(t),e}return null},i(e,t,o),e[a]=!0}function L(e,t,n){if(t)for(let r=0;rfunction(t,r){const o=n(t,r);return o.cbIdx>=0&&"function"==typeof r[o.cbIdx]?m(o.name,r[o.cbIdx],o,i):e.apply(t,r)}))}function I(e,t){e[g("OriginalDelegate")]=t}let _=!1,W=!1;function z(){try{const e=v.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch(e){}return!1}function D(){if(_)return W;_=!0;try{const e=v.navigator.userAgent;-1===e.indexOf("MSIE ")&&-1===e.indexOf("Trident/")&&-1===e.indexOf("Edge/")||(W=!0)}catch(e){}return W}function F(e){return"function"==typeof e}function q(e){return"number"==typeof e}let V=!1;if("undefined"!=typeof window)try{const e=Object.defineProperty({},"passive",{get:function(){V=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){V=!1}const X={useG:!0},J={},Z={},K=new RegExp("^"+h+"(\\w+)(true|false)$"),G=g("propagationStopped");function H(e,t){const n=(t?t(e):e)+p,r=(t?t(e):e)+d,i=h+n,o=h+r;J[e]={},J[e][p]=i,J[e][d]=o}function B(e,t,n,r){const i=r&&r.add||A,a=r&&r.rm||c,s=r&&r.listeners||"eventListeners",u=r&&r.rmAll||"removeAllListeners",l=g(i),f="."+i+":",m="prependListener",y="."+m+":",v=function(e,t,n){if(e.isRemoved)return;const r=e.callback;let i;"object"==typeof r&&r.handleEvent&&(e.callback=e=>r.handleEvent(e),e.originalDelegate=r);try{e.invoke(e,t,[n])}catch(e){i=e}const o=e.options;if(o&&"object"==typeof o&&o.once){const r=e.originalDelegate?e.originalDelegate:e.callback;t[a].call(t,n.type,r,o)}return i};function b(n,r,i){if(!(r=r||e.event))return;const o=n||r.target||e,a=o[J[r.type][i?d:p]];if(a){const e=[];if(1===a.length){const t=v(a[0],o,r);t&&e.push(t)}else{const t=a.slice();for(let n=0;n{throw r}))}}}const k=function(e){return b(this,e,!1)},S=function(e){return b(this,e,!0)};function T(t,n){if(!t)return!1;let r=!0;n&&void 0!==n.useG&&(r=n.useG);const A=n&&n.vh;let c=!0;n&&void 0!==n.chkDup&&(c=n.chkDup);let v=!1;n&&void 0!==n.rt&&(v=n.rt);let b=t;for(;b&&!b.hasOwnProperty(i);)b=o(b);if(!b&&t[i]&&(b=t),!b)return!1;if(b[l])return!1;const T=n&&n.eventNameToString,E={},j=b[l]=b[i],O=b[g(a)]=b[a],R=b[g(s)]=b[s],P=b[g(u)]=b[u];let C;n&&n.prepend&&(C=b[g(n.prepend)]=b[n.prepend]);const L=r?function(e){if(!E.isExisting)return j.call(E.target,E.eventName,E.capture?S:k,E.options)}:function(e){return j.call(E.target,E.eventName,e.invoke,E.options)},N=r?function(e){if(!e.isRemoved){const t=J[e.eventName];let n;t&&(n=t[e.capture?d:p]);const r=n&&e.target[n];if(r)for(let t=0;t4&&void 0!==arguments[4]&&arguments[4],u=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return function(){const l=this||e;let h=arguments[0];n&&n.transferEventName&&(h=n.transferEventName(h));let f=arguments[1];if(!f)return t.apply(this,arguments);if(w&&"uncaughtException"===h)return t.apply(this,arguments);let m=!1;if("function"!=typeof f){if(!f.handleEvent)return t.apply(this,arguments);m=!0}if(A&&!A(t,f,l,arguments))return;const g=V&&!!U&&-1!==U.indexOf(h),y=function(e){if("object"==typeof e&&null!==e){const t={...e};return e.signal&&(t.signal=e.signal),t}return e}(function(e,t){return!V&&"object"==typeof e&&e?!!e.capture:V&&t?"boolean"==typeof e?{capture:e,passive:!0}:e?"object"==typeof e&&!1!==e.passive?{...e,passive:!0}:e:{passive:!0}:e}(arguments[2],g)),v=y?.signal;if(v?.aborted)return;if(M)for(let e=0;e_.zone.cancelTask(_);t.call(v,"abort",e,{once:!0}),_.removeAbortListener=()=>v.removeEventListener("abort",e)}return E.target=null,I&&(I.taskData=null),k&&(E.options.once=!0),(V||"boolean"!=typeof _.options)&&(_.options=y),_.target=l,_.capture=b,_.eventName=h,m&&(_.originalDelegate=f),u?P.unshift(_):P.push(_),s?l:void 0}};return b[i]=_(j,f,L,N,v),C&&(b[m]=_(C,y,(function(e){return C.call(E.target,E.eventName,e.invoke,E.options)}),N,v,!0)),b[a]=function(){const t=this||e;let r=arguments[0];n&&n.transferEventName&&(r=n.transferEventName(r));const i=arguments[2],o=!!i&&("boolean"==typeof i||i.capture),a=arguments[1];if(!a)return O.apply(this,arguments);if(A&&!A(O,a,t,arguments))return;const s=J[r];let c;s&&(c=s[o?d:p]);const u=c&&t[c];if(u)for(let e=0;efunction(t,n){t[G]=!0,e&&e.apply(t,n)}))}function $(e,t){t.patchMethod(e,"queueMicrotask",(e=>function(e,t){Zone.current.scheduleMicroTask("queueMicrotask",t[0])}))}const ee=g("zoneTask");function te(e,t,n,r){let i=null,o=null;n+=r;const a={};function s(t){const n=t.data;n.args[0]=function(){return t.invoke.apply(this,arguments)};const r=i.apply(e,n.args);return q(r)?n.handleId=r:(n.handle=r,n.isRefreshable=F(r.refresh)),t}function A(t){const{handle:n,handleId:r}=t.data;return o.call(e,n??r)}i=M(e,t+=r,(n=>function(i,o){if(F(o[0])){const e={isRefreshable:!1,isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?o[1]||0:void 0,args:o},n=o[0];o[0]=function(){try{return n.apply(this,arguments)}finally{const{handle:t,handleId:n,isPeriodic:r,isRefreshable:i}=e;r||i||(n?delete a[n]:t&&(t[ee]=null))}};const i=m(t,o[0],e,s,A);if(!i)return i;const{handleId:c,handle:u,isRefreshable:l,isPeriodic:d}=i.data;if(c)a[c]=i;else if(u&&(u[ee]=i,l&&!d)){const e=u.refresh;u.refresh=function(){const{zone:t,state:n}=i;return"notScheduled"===n?(i._state="scheduled",t._updateTaskCount(i,1)):"running"===n&&(i._state="scheduling"),e.call(this)}}return u??c??i}return n.apply(e,o)})),o=M(e,n,(t=>function(n,r){const i=r[0];let o;q(i)?(o=a[i],delete a[i]):(o=i?.[ee],o?i[ee]=null:o=i),o?.type?o.cancelFn&&o.zone.cancelTask(o):t.apply(e,r)}))}function ne(e,t){if(Zone[t.symbol("patchEventTarget")])return;const{eventNames:n,zoneSymbolEventNames:r,TRUE_STR:i,FALSE_STR:o,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let e=0;et.target===e));if(!r||0===r.length)return t;const i=r[0].ignoreProperties;return t.filter((e=>-1===i.indexOf(e)))}function ie(e,t,n,r){e&&L(e,re(e,t,n),r)}function oe(e){return Object.getOwnPropertyNames(e).filter((e=>e.startsWith("on")&&e.length>2)).map((e=>e.substring(2)))}function ae(e,t){if(w&&!j)return;if(Zone[e.symbol("patchEvents")])return;const n=t.__Zone_ignore_on_properties;let r=[];if(E){const e=window;r=r.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const t=z()?[{target:e,ignoreProperties:["error"]}]:[];ie(e,oe(e),n?n.concat(t):n,o(e))}r=r.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let e=0;e{const r=Object.getOwnPropertyDescriptor,i=Object.defineProperty,o=n.symbol,a=[],s=!1!==e[o("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],A=o("Promise"),c=o("then");n.onUnhandledError=e=>{if(n.showUncaughtError()){const t=e&&e.rejection;t?console.error("Unhandled Promise rejection:",t instanceof Error?t.message:t,"; Zone:",e.zone.name,"; Task:",e.task&&e.task.source,"; Value:",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=()=>{for(;a.length;){const e=a.shift();try{e.zone.runGuarded((()=>{if(e.throwOriginal)throw e.rejection;throw e}))}catch(e){l(e)}}};const u=o("unhandledPromiseRejectionHandler");function l(e){n.onUnhandledError(e);try{const n=t[u];"function"==typeof n&&n.call(this,e)}catch(e){}}function d(e){return e&&e.then}function p(e){return e}function h(e){return x.reject(e)}const f=o("state"),m=o("value"),g=o("finally"),y=o("parentPromiseValue"),v=o("parentPromiseState"),b=null,k=!0,S=!1;function T(e,t){return n=>{try{O(e,t,n)}catch(t){O(e,!1,t)}}}const w=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}},E="Promise resolved with itself",j=o("currentTaskTrace");function O(e,r,o){const A=w();if(e===o)throw new TypeError(E);if(e[f]===b){let u=null;try{"object"!=typeof o&&"function"!=typeof o||(u=o&&o.then)}catch(t){return A((()=>{O(e,!1,t)}))(),e}if(r!==S&&o instanceof x&&o.hasOwnProperty(f)&&o.hasOwnProperty(m)&&o[f]!==b)P(o),O(e,o[f],o[m]);else if(r!==S&&"function"==typeof u)try{u.call(o,A(T(e,r)),A(T(e,!1)))}catch(t){A((()=>{O(e,!1,t)}))()}else{e[f]=r;const A=e[m];if(e[m]=o,e[g]===g&&r===k&&(e[f]=e[v],e[m]=e[y]),r===S&&o instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&i(o,j,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t{try{const r=e[m],i=!!n&&g===n[g];i&&(n[y]=r,n[v]=o);const s=t.run(a,void 0,i&&a!==h&&a!==p?[]:[r]);O(n,!0,s)}catch(e){O(n,!1,e)}}),n)}const L=function(){},N=e.AggregateError;class x{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(e){return e instanceof x?e:O(new this(null),k,e)}static reject(e){return O(new this(null),S,e)}static withResolvers(){const e={};return e.promise=new x(((t,n)=>{e.resolve=t,e.reject=n})),e}static any(e){if(!e||"function"!=typeof e[Symbol.iterator])return Promise.reject(new N([],"All promises were rejected"));const t=[];let n=0;try{for(let r of e)n++,t.push(x.resolve(r))}catch(e){return Promise.reject(new N([],"All promises were rejected"))}if(0===n)return Promise.reject(new N([],"All promises were rejected"));let r=!1;const i=[];return new x(((e,o)=>{for(let a=0;a{r||(r=!0,e(t))}),(e=>{i.push(e),n--,0===n&&(r=!0,o(new N(i,"All promises were rejected")))}))}))}static race(e){let t,n,r=new this(((e,r)=>{t=e,n=r}));function i(e){t(e)}function o(e){n(e)}for(let t of e)d(t)||(t=this.resolve(t)),t.then(i,o);return r}static all(e){return x.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof x?this:x).allWithCallback(e,{thenCallback:e=>({status:"fulfilled",value:e}),errorCallback:e=>({status:"rejected",reason:e})})}static allWithCallback(e,t){let n,r,i=new this(((e,t)=>{n=e,r=t})),o=2,a=0;const s=[];for(let i of e){d(i)||(i=this.resolve(i));const e=a;try{i.then((r=>{s[e]=t?t.thenCallback(r):r,o--,0===o&&n(s)}),(i=>{t?(s[e]=t.errorCallback(i),o--,0===o&&n(s)):r(i)}))}catch(e){r(e)}o++,a++}return o-=2,0===o&&n(s),i}constructor(e){const t=this;if(!(t instanceof x))throw new Error("Must be an instanceof Promise.");t[f]=b,t[m]=[];try{const n=w();e&&e(n(T(t,k)),n(T(t,S)))}catch(e){O(t,!1,e)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return x}then(e,n){let r=this.constructor?.[Symbol.species];r&&"function"==typeof r||(r=this.constructor||x);const i=new r(L),o=t.current;return this[f]==b?this[m].push(o,i,e,n):C(this,o,i,e,n),i}catch(e){return this.then(null,e)}finally(e){let n=this.constructor?.[Symbol.species];n&&"function"==typeof n||(n=x);const r=new n(L);r[g]=g;const i=t.current;return this[f]==b?this[m].push(i,r,e,e):C(this,i,r,e,e),r}}x.resolve=x.resolve,x.reject=x.reject,x.race=x.race,x.all=x.all;const U=e[A]=e.Promise;e.Promise=x;const I=o("thenPatched");function _(e){const t=e.prototype,n=r(t,"then");if(n&&(!1===n.writable||!n.configurable))return;const i=t.then;t[c]=i,e.prototype.then=function(e,t){return new x(((e,t)=>{i.call(this,e,t)})).then(e,t)},e[I]=!0}return n.patchThen=_,U&&(_(U),M(e,"fetch",(e=>{return t=e,function(e,n){let r=t.apply(e,n);if(r instanceof x)return r;let i=r.constructor;return i[I]||_(i),r};var t}))),Promise[t.__symbol__("uncaughtPromiseErrors")]=a,x}))})(e),function(e){e.__load_patch("toString",(e=>{const t=Function.prototype.toString,n=g("OriginalDelegate"),r=g("Promise"),i=g("Error"),o=function(){if("function"==typeof this){const o=this[n];if(o)return"function"==typeof o?t.call(o):Object.prototype.toString.call(o);if(this===Promise){const n=e[r];if(n)return t.call(n)}if(this===Error){const n=e[i];if(n)return t.call(n)}}return t.call(this)};o[n]=t,Function.prototype.toString=o;const a=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":a.call(this)}}))}(e),function(e){e.__load_patch("util",((e,t,n)=>{const o=oe(e);n.patchOnProperties=L,n.patchMethod=M,n.bindArguments=k,n.patchMacroTask=U;const u=t.__symbol__("BLACK_LISTED_EVENTS"),l=t.__symbol__("UNPATCHED_EVENTS");e[l]&&(e[u]=e[l]),e[u]&&(t[u]=t[l]=e[u]),n.patchEventPrototype=Q,n.patchEventTarget=B,n.isIEOrEdge=D,n.ObjectDefineProperty=i,n.ObjectGetOwnPropertyDescriptor=r,n.ObjectCreate=a,n.ArraySlice=s,n.patchClass=x,n.wrapWithCurrentZone=f,n.filterProperties=re,n.attachOriginToPatched=I,n._redefineProperty=Object.defineProperty,n.patchCallbacks=se,n.getGlobalObjects=()=>({globalSources:Z,zoneSymbolEventNames:J,eventNames:o,isBrowser:E,isMix:j,isNode:w,TRUE_STR:d,FALSE_STR:p,ZONE_SYMBOL_PREFIX:h,ADD_EVENT_LISTENER_STR:A,REMOVE_EVENT_LISTENER_STR:c})}))}(e)}(Ae),function(e){e.__load_patch("legacy",(t=>{const n=t[e.__symbol__("legacyPatch")];n&&n()})),e.__load_patch("timers",(e=>{const t="set",n="clear";te(e,t,n,"Timeout"),te(e,t,n,"Interval"),te(e,t,n,"Immediate")})),e.__load_patch("requestAnimationFrame",(e=>{te(e,"request","cancel","AnimationFrame"),te(e,"mozRequest","mozCancel","AnimationFrame"),te(e,"webkitRequest","webkitCancel","AnimationFrame")})),e.__load_patch("blocking",((e,t)=>{const n=["alert","prompt","confirm"];for(let r=0;rfunction(r,o){return t.current.run(n,e,o,i)}))})),e.__load_patch("EventTarget",((e,t,n)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,n),ne(e,n);const r=e.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(e,n,[r.prototype])})),e.__load_patch("MutationObserver",((e,t,n)=>{x("MutationObserver"),x("WebKitMutationObserver")})),e.__load_patch("IntersectionObserver",((e,t,n)=>{x("IntersectionObserver")})),e.__load_patch("FileReader",((e,t,n)=>{x("FileReader")})),e.__load_patch("on_property",((e,t,n)=>{ae(n,e)})),e.__load_patch("customElements",((e,t,n)=>{!function(e,t){const{isBrowser:n,isMix:r}=t.getGlobalObjects();(n||r)&&e.customElements&&"customElements"in e&&t.patchCallbacks(t,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(e,n)})),e.__load_patch("XHR",((e,t)=>{!function(e){const A=e.XMLHttpRequest;if(!A)return;const c=A.prototype;let d=c[u],p=c[l];if(!d){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;d=e[u],p=e[l]}}const h="readystatechange",f="scheduled";function y(e){const r=e.data,a=r.target;a[o]=!1,a[s]=!1;const A=a[i];d||(d=a[u],p=a[l]),A&&p.call(a,h,A);const c=a[i]=()=>{if(a.readyState===a.DONE)if(!r.aborted&&a[o]&&e.state===f){const n=a[t.__symbol__("loadfalse")];if(0!==a.status&&n&&n.length>0){const i=e.invoke;e.invoke=function(){const n=a[t.__symbol__("loadfalse")];for(let t=0;tfunction(e,t){return e[r]=0==t[2],e[a]=t[1],k.apply(e,t)})),S=g("fetchTaskAborting"),T=g("fetchTaskScheduling"),w=M(c,"send",(()=>function(e,n){if(!0===t.current[T])return w.apply(e,n);if(e[r])return w.apply(e,n);{const t={target:e,url:e[a],isPeriodic:!1,args:n,aborted:!1},r=m("XMLHttpRequest.send",v,t,y,b);e&&!0===e[s]&&!t.aborted&&r.state===f&&r.invoke()}})),E=M(c,"abort",(()=>function(e,r){const i=e[n];if(i&&"string"==typeof i.type){if(null==i.cancelFn||i.data&&i.data.aborted)return;i.zone.cancelTask(i)}else if(!0===t.current[S])return E.apply(e,r)}))}(e);const n=g("xhrTask"),r=g("xhrSync"),i=g("xhrListener"),o=g("xhrScheduled"),a=g("xhrURL"),s=g("xhrErrorBeforeScheduled")})),e.__load_patch("geolocation",(e=>{e.navigator&&e.navigator.geolocation&&function(e,t){const n=e.constructor.name;for(let i=0;i{const t=function(){return e.apply(this,k(arguments,n+"."+o))};return I(t,e),t})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])})),e.__load_patch("PromiseRejectionEvent",((e,t)=>{function n(t){return function(n){Y(e,t).forEach((r=>{const i=e.PromiseRejectionEvent;if(i){const e=new i(t,{promise:n.promise,reason:n.rejection});r.invoke(e)}}))}}e.PromiseRejectionEvent&&(t[g("unhandledPromiseRejectionHandler")]=n("unhandledrejection"),t[g("rejectionHandledHandler")]=n("rejectionhandled"))})),e.__load_patch("queueMicrotask",((e,t,n)=>{$(e,n)}))}(Ae)},3203:(e,t,n)=>{"use strict";n.d(t,{$1:()=>d,Ab:()=>F,E4:()=>X,EZ:()=>k,Em:()=>N,Fc:()=>h,Hv:()=>P,Im:()=>A,Jf:()=>S,K3:()=>I,Oe:()=>v,Rb:()=>m,Rm:()=>q,SR:()=>u,U4:()=>_,V3:()=>z,VH:()=>y,ae:()=>W,cz:()=>x,dd:()=>D,e2:()=>R,e6:()=>C,fO:()=>T,fx:()=>V,hk:()=>L,k4:()=>U,oq:()=>M,qJ:()=>j,qm:()=>c,vI:()=>l,wB:()=>p,xM:()=>O,yG:()=>J,yJ:()=>Z,yj:()=>w});var r=n(4353),i=n(4109),o=(n(786),n(2450)),a=n(1131),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};const A=e=>!e||!Object.keys(e).some((t=>void 0!==e[t])),c=(e,t)=>g(e,t),u=(e,t,n)=>{var r;return null!==(r=e[t])&&void 0!==r?r:n},l=e=>{if(!f(e))return;let t=e.indexOf("//")>-1?e.split("/")[2]:e.split("/")[0];return t=t.split(":")[0],t=t.split("?")[0],t},d=()=>Math.floor(Date.now()/1e3),p=e=>{if(!f(e))return;let t,n;if(e.indexOf("//")>0){const r=e.indexOf("//");n=e.indexOf("/",r+2),n>0&&(t=e.substring(n+1))}else n=e.indexOf("/"),n>0&&(t=e.substring(e.indexOf("/")+1));return n<0&&(t=""),"/"===(null==t?void 0:t.slice(-1))&&(t=t.slice(0,-1)),t},h=function(e){if(!f(e))return;const t=Number(m(e).split("/")[0].replace(":",""));return!isNaN(t)&&t>0?t:e.startsWith("https")?443:e.startsWith("http")?80:e.startsWith("ftp")?21:0},f=e=>{if(L(e))return!1;try{return new URL(e),!0}catch(t){return(0,a.DP)(t),console.error(`Invalid URL: ${e}`),!1}},m=e=>{if(!f(e))return;const t=l(e);return t?e.substring(e.indexOf(t)+t.length):""},g=(e,t)=>{const n=d();return 0!==t.timeout&&t.timeout>n||!!S(e,t.periods)},y=e=>{let t=[];const n=e.teachers;return n&&(t=n.map((e=>e.id))),t},v=e=>{const t=e.teacher_information;return t&&t.id?t.id:null},b=(new Map).set("sun",0).set("mon",1).set("tue",2).set("wed",3).set("thur",4).set("fri",5).set("sat",6),k=(new Map).set(7,"sun").set(1,"mon").set(2,"tue").set(3,"wed").set(4,"thur").set(5,"fri").set(6,"sat"),S=(e,t)=>{if(t){const n=r.c9.now().setZone(e),i=k.get(n.weekday),o=100*n.hour+n.minute;for(const e of t)if(e.day===i&&o>=e.startTime&&or.c9.fromSeconds(t).setZone(e).toJSDate(),w=(e,t)=>{if(!t.length)return null;const n=T(e),r=t.filter((e=>!!e));if(0===r.length)return null;let i=r[0],o=E(n,r[0].startTime,r[0].day);return r.forEach((e=>{const t=E(n,e.startTime,e.day);t{const i=r.c9.now().toJSDate(),o=Math.floor(t/100),a=t%100;i.setHours(o,a,0,0);const s=e.getDate();let A=e.getDate();if(n){const t=b.get(n)-e.getDay();A=t>0?s+t:0===t&&i>e?s:s+7-t}else i{let n=t.timeout;const i=S(e,t.periods);if(i){const t=r.c9.now().setZone(e).set({hour:i.endTime/100,minute:i.endTime%100,second:0,millisecond:0}).toUnixInteger();n=Math.max(n,t)}return n},O=e=>{const t=[],n=[e];let r=0;for(;n.length;){const e=n.pop();if("boolean"==typeof e)r+=4;else if("string"==typeof e)r+=2*e.length;else if("number"==typeof e)r+=8;else if(e.byteLength>0)r+=e.byteLength;else if("object"==typeof e&&-1===t.indexOf(e)){t.push(e);for(const t in e)n.push(e[t])}}return r};class R extends Error{}const P=(e,t)=>new Promise(((n,r)=>{chrome.tabs.captureVisibleTab(e,{format:"jpeg",quality:t},(t=>{var i;if(chrome.runtime.lastError)return(null===(i=chrome.runtime.lastError.message)||void 0===i?void 0:i.includes("MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND"))?void r(new R("Exceeded MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND")):void r(chrome.runtime.lastError);chrome.tabs.query({active:!0,windowId:e},(e=>{1===e.length?n({image:t,tabId:e[0].id}):n({image:t,tabId:void 0})}))}))})),C=()=>s(void 0,void 0,void 0,(function*(){return(yield chrome.tabs.query({active:!0,currentWindow:!0}))[0]})),L=e=>!(null==e?void 0:e.trim().length),N=e=>-1!==e.indexOf("?"),x=()=>{var e,t;return(null===(e=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===e?void 0:e.getManifest)&&2===(null===(t=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===t?void 0:t.getManifest().manifest_version)},M=e=>s(void 0,void 0,void 0,(function*(){var t;try{if(!x())return yield chrome.scripting.executeScript(e);if(e.files){let t=[];for(let n=0;ns(void 0,void 0,void 0,(function*(){return new Promise((t=>chrome.identity.getAuthToken(e,t)))})),I=e=>s(void 0,void 0,void 0,(function*(){try{return yield chrome.tabs.get(e)}catch(e){}})),_=(e,t,n={stripProtocol:!0})=>(0,i.A)(e,n)===(0,i.A)(t,n),W=()=>s(void 0,void 0,void 0,(function*(){return(yield chrome.windows.getAll()).length})),z=()=>s(void 0,void 0,void 0,(function*(){return(yield W())>0})),D=(e=!1)=>s(void 0,void 0,void 0,(function*(){const t=yield chrome.tabs.query({});for(const n of t)n.id&&chrome.tabs.reload(n.id,{bypassCache:e})})),F=()=>s(void 0,void 0,void 0,(function*(){try{const e=yield fetch("http://clients3.google.com/generate_204");if(""===(yield e.text())&&204===e.status)return!0}catch(e){(0,a.DP)(e)}return!1})),q=()=>s(void 0,void 0,void 0,(function*(){const{os:e}=yield chrome.runtime.getPlatformInfo();switch(e){case"win":return"NT";case"mac":return"XNU";case"linux":case"android":case"cros":return"Linux";case"openbsd":return"OpenBSD";default:return"unknown"}})),V=(e="Chrome")=>{switch(e){case"Chrome":default:return o.ei.chrome;case"Microsoft Edge":return o.ei.edge}},X=()=>`chrome-extension://${chrome.runtime.id}/chat/index.html`,J=()=>[X()];function Z(e,t,n,r){const i=Math.min(e*t,n);return i+Math.random()*i*r}},2450:(e,t,n)=>{"use strict";var r,i,o,a,s,A,c,u,l,d,p,h,f,m,g,y,v,b,k,S,T,w,E,j,O,R,P,C,L,N;n.d(t,{$b:()=>C,Cj:()=>P,Cp:()=>M,DA:()=>r,Dw:()=>g,JF:()=>w,Jt:()=>O,N3:()=>i,ND:()=>k,UA:()=>A,Ui:()=>x,VJ:()=>p,W7:()=>s,Xg:()=>o,Yk:()=>h,_f:()=>a,bt:()=>T,e$:()=>c,e6:()=>l,ei:()=>U,f0:()=>v,f9:()=>E,kH:()=>u,lA:()=>L,o3:()=>y,ps:()=>b,qb:()=>m,rb:()=>f,v5:()=>S,wf:()=>R,y5:()=>N}),function(e){e.FcmMessagesCacheId="lw_updater_fcm_messages_cache_id",e.GeneralCacheId="lw_updater_general_cache_id",e.RegistrationCacheId="lw_updater_registration_cache"}(r||(r={})),function(e){e.DmsDataCacheId="lw_dms_data_cache",e.DmsManagerConfigCacheId="lw_dms_manager_config_cache",e.CheckInDeviceInterval="lw_dms_check_in",e.RetryDMSRegTimeout="lw_retry_dms_registration_timeout",e[e.CheckInDeviceElapsed_ms=3e5]="CheckInDeviceElapsed_ms"}(i||(i={})),function(e){e[e.WalledGardenBasedInterval=3e4]="WalledGardenBasedInterval",e[e.DefaultPollingInterval=3e5]="DefaultPollingInterval"}(o||(o={})),function(e){e.KeepAliveCacheId="lw_keep_alive_cache_id"}(a||(a={})),function(e){e.ContentAware="ca"}(s||(s={})),function(e){e.HandleVerdictQueueInterval="lw_handle_verdict_queue_interval",e.EvictOldResponsesInterval="lw_evict_old_responses",e.VerdictRawResponseCacheId="lw_verdict_raw_response_cache",e.FallbackVerdictsCacheId="lw_fallback_verdicts_cache",e.VerdictResponseTimeCacheId="verdict_response_time_cache",e.VerdictYoutubeQueryCacheId="verdict_youtube_query_cache",e.VerdictClientFallback="client_fallback",e.CustomHeaderCacheId="lw_custom_header_cache",e.CustomHeaderCacheCleanIntervalId="lw_custom_header_cache_interval_id",e[e.CustomHeaderCacheCleanInterval=3e5]="CustomHeaderCacheCleanInterval",e[e.CustomHeaderCacheExpireTime=36e5]="CustomHeaderCacheExpireTime"}(A||(A={})),function(e){e.PurgeOldVerdictEntries="purge_old_verdict_entries"}(c||(c={})),function(e){e.EvictOldResponsesInterval="lw_evict_old_responses",e.VerdictResponseCacheId="lw_verdict_response_cache"}(u||(u={})),function(e){e.ConfigurationCacheId="lw_configuration_cache",e[e.ConfigLoadTimeout_ms=1e4]="ConfigLoadTimeout_ms",e[e.ConfigFetchInitialInterval=1e3]="ConfigFetchInitialInterval",e[e.ConfigFetchMaxInterval=3e4]="ConfigFetchMaxInterval",e[e.ConfigFetchMaxElapsedTime=9e4]="ConfigFetchMaxElapsedTime",e[e.ConfigFetchRandomizationFactor=.1]="ConfigFetchRandomizationFactor",e[e.ConfigFetchMultiplier=3]="ConfigFetchMultiplier"}(l||(l={})),function(e){e.ChatDataCacheId="lw_chat_data_cache",e.OpenChatTimeout="lw_open_chat_timeout"}(d||(d={})),function(e){e.ClassConfigRefreshTimeout="lw_class_config_refresh"}(p||(p={})),function(e){e.FocusLockCheckTimeout="lw_tabs_focuslock_check",e.ScreenshotUploadInterval="lw_screenshot_upload_interval",e.TabsDataCacheId="lw_tabs_data_cache"}(h||(h={})),function(e){e.PeriodicLoginInterval="lw_periodic_login",e.WhoamiLoginInterval="lw_whoami_login",e.FzboxPollInterval="lw_fzbox_poll",e.PeriodicLogsUploadInterval="lw_periodic_logs_upload_interval",e.MainDataCacheId="lw_main_data_cache",e.DevDataCacheId="lw_dev_data_cache",e.LoadingConfiKey="lw_loading_config_key",e.ConfigUpdateBackoffRetryStateKey="lw_config_update_backoff_retry_state_key",e.RemainingUpdatesKey="lw_remaining_updates_key",e.DevBuildReloadedKey="lw_dev_build_reloaded_key",e[e.ResourceLimitThresholdCheckInterval=72e5]="ResourceLimitThresholdCheckInterval"}(f||(f={})),function(e){e.CacheId="lw_companion_cache",e[e.MaxReconnectionAttempts=5]="MaxReconnectionAttempts",e[e.DeltaTimeout=5e3]="DeltaTimeout",e[e.MaxRetryRegistrationInterval_ms=3e4]="MaxRetryRegistrationInterval_ms"}(m||(m={})),function(e){e.CacheId="lw_system_config_cache"}(g||(g={})),function(e){e.CacheId="lw_delegation_config_cache",e.DelegationChangeScheduleId="lw_delegation_change_schedule_id"}(y||(y={})),function(e){e.ALL="all",e.BLOCKED="blocked",e.NONE="none"}(v||(v={})),function(e){e.CacheId="lw_content_aware_config_cache"}(b||(b={})),function(e){e.login="LOGIN",e.logout="LOGOUT",e.isLoggedIn="IS_LOGGED_IN",e.resetConfig="RESET-CONFIG",e.UpdateDynamicConfig="UPDATE-CONFIG-ALL"}(k||(k={})),function(e){e.active="ACTIVE",e.suspended="SUSPENDED"}(S||(S={})),function(e){e.PartialFailedCacheId="lw_partial_failed_cache",e.AuthenticationData="lw_authentication_data_cache",e.AuthTokenKey="auth_token"}(T||(T={})),function(e){e.ConnectionsCacheId="lw_connections_cache",e.ConnectionsUploadInterval="lw_Connections_upload_interval",e.TabsCacheId="lw_tabs_cache",e.UploadInfoCacheId="lw_upload_info_cache",e.mainFrameRequestType="main_frame",e.eventTypeSendHeaders="sendHeaders",e.eventTypeBeforeRequest="beforeRequest",e.eventTypeHeadersReceived="headersReceived",e.eventTypeCompleted="completed"}(w||(w={})),function(e){e.LastScreenshotCacheId="last_screenshot_cache"}(E||(E={})),function(e){e.SchedulesDataCacheId="lw_schedule_manager_data_cache_id"}(j||(j={})),function(e){e.ConfigUpdate="config_update_with_delay",e.ConfigUpdateBackoffRetry="config_update_backoff_retry",e.CaptureTabAndSend="capture_tab_and_send",e.SendRuntimeMessage="send_runtime_message",e.PrintBlockedMessage="print_blocked_message",e.CreateNewChromeTab="create_new_chrome_tab"}(O||(O={})),function(e){e.CONFIG_UPDATE="CONFIG_UPDATE",e.OPEN_TAB="OPEN_TAB",e.CLOSE_TAB="CLOSE_TAB",e.MESSAGE="MESSAGE",e.CLASS_STARTED="CLASS_STARTED",e.POLICY_UPDATE="POLICY_UPDATE",e.INIT_P2P="INIT_P2P"}(R||(R={})),function(e){e.Error="logging__error",e.Warning="logging__warning",e.Message="logging__message",e.Debug="logging__debug"}(P||(P={})),function(e){e.INFO="INFO",e.WARN="WARN",e.ERROR="ERROR",e.DEBUG="DEBUG"}(C||(C={})),function(e){e.InitOffscreenDocument="init_offscreen_socument_message",e.RegisterExtension="register_extension_with_native_agent",e.UnregisterExtension="unregister_extension_from_native_agent",e.RegisterClasswizeEventFail="register_extension_with_native_agent_classwize_events_fail",e.RegisterClasswizeEventMessage="register_extension_with_native_agent_classwize_events_Message",e.IsExtensionRegistered="is_extension_registered_with_native_agent",e.CompanionMessage="message_from_native_agent",e.CompanionErrorMessage="error_message_from_native_agent",e.RecoverCompanionStream="recover_companion_stream",e.RetryRegistration="retry_registration_with_native_agent",e.IpAddressChangeRoutine="ip_address_change_routine",e.TabsActivated="tabs_activated_message",e.UrlUpdatedInTab="url_updated_in_tab",e.P2PInitSignaler="p2p_init_signaler_message",e.P2PSetCloseTimeouts="p2p_set_close_timeouts_message",e.P2PGetScreenshot="p2p_get_screenshot_message",e.P2PGetTabs="p2p_get_tabs_message",e.UtilLocalIpUpdated="util_local_ip_updated_message",e.UtilResizeAndCompressImage="util_resize_and_compress_image",e.BroadcastWakeUpCall="cachescheduler_broadcast_wakeup_call",e.BroadcastScheduleTime="schedule-time-ee236fce-1426-4975-9d56-2ce4e8becd02",e.ChatBubbleStatus="chat_status",e.ChatInfo="chat_info",e.ChatGetLastMessage="last_chat_message",e.ChatClearLastMessage="clear_last_chat_message",e.UIGetStatus="ui_get_status",e.UIReloadConfig="ui_reload_config",e.UISendLogs="ui_send_logs",e.UserOverride="user_override",e.UpdaterNewMessage="updater_new_message",e.GetSafeguardVerdict="get_safe_guard_verdict",e.RedirectWebPage="redirect_web_page",e.EventMessage="event_service_message",e.InitAutoAuth="init_auto_auth",e.GetAuthCookie="get_auth_cookie",e.GetAuthToken="get_auth_token",e.UploadLogData="upload_log_data",e.UpdateOffscreenConfig="update_offscreen_config",e.MainConfigUpdated="main_config_updated",e.OffScreenLogMessage="Off_screen_log_message",e.GetManifestInfo="get_manifest_info",e.Token="TOKEN",e.ChatConfigUpdate="CHAT_CONFIG_UPDATE",e.UpdateTotalUnreadCount="UPDATE_TOTAL_UNREAD_COUNT",e.OpenChatClassroom="OPEN_CHAT_CLASSROOM",e.GoogleAuthenticate="GOOGLE_AUTHENTICATE",e.NativeTokenAuthenticate="NATIVE_TOKEN_AUTHENTICATE",e.GetBrowserType="get_browser_type",e.GetBrowserDetails="get_browser_details",e.CheckIfDomainIsBlocked="check_if_domain_is_blocked",e.ExtractFallbackDomains="extract_fallback_domains",e.LogMessage="log_message",e.InitOffscreenOpenTelemetry="init-offscreen-opentelemetry",e.SentryGetUserDetails="sentry-get-user-details",e.ChatLogMessage="chat-log-message",e.ReloadPopUp="reload-popup",e.PopupIsReloading="popup-is-reloading",e.PopupIsNotReloading="popup-is-not-reloading"}(L||(L={})),function(e){e.companion="companion",e.companionLite="companion_lite",e.proxyFilter="proxy_filter",e.dns_filter="dns_filter",e.classroom="classroom",e.liteModeEnabled="companion-mode-lite-enabled"}(N||(N={}));const x="http://127.0.0.1:5769",M="STRICT";var U;!function(e){e.chrome="chrome",e.edge="edge"}(U||(U={}))},8067:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});class r{static setServerTimeStamp(e){e{"use strict";n.d(t,{EJ:()=>o,SE:()=>s,eP:()=>r,t7:()=>i,ys:()=>a});const r="studentUsername",i="applianceId",o="agentType",a="agentVersion",s="sample.ratio"},9255:(e,t,n)=>{"use strict";n.d(t,{K:()=>ai});var r=n(6982),i=n(2007),o=n(2717),a=n(5499),s="OT_ZONE_CONTEXT",A=function(){function e(){this._enabled=!1,this._zoneCounter=0}return e.prototype._activeContextFromZone=function(e){return e&&e.get(s)||a.l},e.prototype._bindFunction=function(e,t){var n=this,r=function(){for(var r=this,i=[],o=0;o=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(this._propagators),a=o.next();!a.done;a=o.next()){var s=a.value;try{s.inject(e,t,n)}catch(e){u.warn("Failed to inject with "+s.constructor.name+". Err: "+e.message)}}}catch(e){r={error:e}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}},e.prototype.extract=function(e,t,n){return this._propagators.reduce((function(e,r){try{return r.extract(e,t,n)}catch(e){u.warn("Failed to inject with "+r.constructor.name+". Err: "+e.message)}return e}),e)},e.prototype.fields=function(){return this._fields.slice()},e}(),d=n(8442),p=n(9905),h=n(1199),f=(0,a.n)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function m(e){return!0===e.getValue(f)}var g="[_0-9a-z-*/]",y=new RegExp("^(?:[a-z]"+g+"{0,255}|[a-z0-9]"+g+"{0,240}@[a-z]"+g+"{0,13})$"),v=/^[ -~]{0,255}[!-~]$/,b=/,|=/,k=function(){function e(e){this._internalState=new Map,e&&this._parse(e)}return e.prototype.set=function(e,t){var n=this._clone();return n._internalState.has(e)&&n._internalState.delete(e),n._internalState.set(e,t),n},e.prototype.unset=function(e){var t=this._clone();return t._internalState.delete(e),t},e.prototype.get=function(e){return this._internalState.get(e)},e.prototype.serialize=function(){var e=this;return this._keys().reduce((function(t,n){return t.push(n+"="+e.get(n)),t}),[]).join(",")},e.prototype._parse=function(e){e.length>512||(this._internalState=e.split(",").reverse().reduce((function(e,t){var n=t.trim(),r=n.indexOf("=");if(-1!==r){var i=n.slice(0,r),o=n.slice(r+1,t.length);(function(e){return y.test(e)})(i)&&function(e){return v.test(e)&&!b.test(e)}(o)&&e.set(i,o)}return e}),new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}(),S="traceparent",T="tracestate",w=new RegExp("^\\s?((?!ff)[\\da-f]{2})-((?![0]{32})[\\da-f]{32})-((?![0]{16})[\\da-f]{16})-([\\da-f]{2})(-.*)?\\s?$"),E=function(){function e(){}return e.prototype.inject=function(e,t,n){var r=d.u.getSpanContext(e);if(r&&!m(e)&&(0,p.YA)(r)){var i="00-"+r.traceId+"-"+r.spanId+"-0"+Number(r.traceFlags||h.X.NONE).toString(16);n.set(t,S,i),r.traceState&&n.set(t,T,r.traceState.serialize())}},e.prototype.extract=function(e,t,n){var r=n.get(t,S);if(!r)return e;var i=Array.isArray(r)?r[0]:r;if("string"!=typeof i)return e;var o=function(e){var t=w.exec(e);return t?"00"===t[1]&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}:null}(i);if(!o)return e;o.isRemote=!0;var a=n.get(t,T);if(a){var s=Array.isArray(a)?a.join(","):a;o.traceState=new k("string"==typeof s?s:void 0)}return d.u.setSpanContext(e,o)},e.prototype.fields=function(){return[S,T]},e}(),j=",",O="baggage",R=n(2400);function P(e){var t=e.split(";");if(!(t.length<=0)){var n=t.shift();if(n){var r=n.indexOf("=");if(!(r<=0)){var i,o=decodeURIComponent(n.substring(0,r).trim()),a=decodeURIComponent(n.substring(r+1).trim());return t.length>0&&(i=(0,R.B)(t.join(";"))),{key:o,value:a,metadata:i}}}}}function C(e){return"string"!=typeof e||0===e.length?{}:e.split(j).map((function(e){return P(e)})).filter((function(e){return void 0!==e&&e.value.length>0})).reduce((function(e,t){return e[t.key]=t.value,e}),{})}var L,N=function(){function e(){}return e.prototype.inject=function(e,t,n){var r=i.$.getBaggage(e);if(r&&!m(e)){var o=function(e){return e.getAllEntries().map((function(e){var t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),n=t[0],r=t[1],i=encodeURIComponent(n)+"="+encodeURIComponent(r.value);return void 0!==r.metadata&&(i+=";"+r.metadata.toString()),i}))}(r).filter((function(e){return e.length<=4096})).slice(0,180),a=function(e){return e.reduce((function(e,t){var n=""+e+(""!==e?j:"")+t;return n.length>8192?e:n}),"")}(o);a.length>0&&n.set(t,O,a)}},e.prototype.extract=function(e,t,n){var r=n.get(t,O),o=Array.isArray(r)?r.join(j):r;if(!o)return e;var a={};return 0===o.length?e:(o.split(j).forEach((function(e){var t=P(e);if(t){var n={value:t.value};t.metadata&&(n.metadata=t.metadata),a[t.key]=n}})),0===Object.entries(a).length?e:i.$.setBaggage(e,i.$.createBaggage(a)))},e.prototype.fields=function(){return[O]},e}(),x=n(4569),M=(L=function(e,t){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},L(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}L(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),U=function(){function e(){}return e.prototype.createGauge=function(e,t){return K},e.prototype.createHistogram=function(e,t){return G},e.prototype.createCounter=function(e,t){return Z},e.prototype.createUpDownCounter=function(e,t){return H},e.prototype.createObservableGauge=function(e,t){return Y},e.prototype.createObservableCounter=function(e,t){return B},e.prototype.createObservableUpDownCounter=function(e,t){return Q},e.prototype.addBatchObservableCallback=function(e,t){},e.prototype.removeBatchObservableCallback=function(e){},e}(),I=function(){},_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t.prototype.add=function(e,t){},t}(I),W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t.prototype.add=function(e,t){},t}(I),z=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t.prototype.record=function(e,t){},t}(I),D=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t.prototype.record=function(e,t){},t}(I),F=function(){function e(){}return e.prototype.addCallback=function(e){},e.prototype.removeCallback=function(e){},e}(),q=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t}(F),V=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t}(F),X=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return M(t,e),t}(F),J=new U,Z=new _,K=new z,G=new D,H=new W,B=new q,Y=new V,Q=new X,$=new(function(){function e(){}return e.prototype.getMeter=function(e,t,n){return J},e}()),ee=n(9120),te="metrics",ne=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalMeterProvider=function(e){return(0,ee.$G)(te,e,c.K.instance())},e.prototype.getMeterProvider=function(){return(0,ee.mS)(te)||$},e.prototype.getMeter=function(e,t,n){return this.getMeterProvider().getMeter(e,t,n)},e.prototype.disable=function(){(0,ee.kv)(te,c.K.instance())},e}().getInstance(),re="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof n.g?n.g:{},ie=Symbol.for("io.opentelemetry.js.api.logs"),oe=re,ae=function(){function e(){}return e.prototype.emit=function(e){},e}(),se=new ae,Ae=new(function(){function e(){}return e.prototype.getLogger=function(e,t,n){return new ae},e}()),ce=function(){function e(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}return e.prototype.emit=function(e){this._getLogger().emit(e)},e.prototype._getLogger=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):se},e}(),ue=function(){function e(){}return e.prototype.getLogger=function(e,t,n){var r;return null!==(r=this.getDelegateLogger(e,t,n))&&void 0!==r?r:new ce(this,e,t,n)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:Ae},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateLogger=function(e,t,n){var r;return null===(r=this._delegate)||void 0===r?void 0:r.getLogger(e,t,n)},e}(),le=function(){function e(){this._proxyLoggerProvider=new ue}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalLoggerProvider=function(e){return oe[ie]?this.getLoggerProvider():(oe[ie]=(t=e,n=Ae,function(e){return 1===e?t:n}),this._proxyLoggerProvider.setDelegate(e),e);var t,n},e.prototype.getLoggerProvider=function(){var e,t;return null!==(t=null===(e=oe[ie])||void 0===e?void 0:e.call(oe,1))&&void 0!==t?t:this._proxyLoggerProvider},e.prototype.getLogger=function(e,t,n){return this.getLoggerProvider().getLogger(e,t,n)},e.prototype.disable=function(){delete oe[ie],this._proxyLoggerProvider=new ue},e}(),de=le.getInstance(),pe=n(5938),he=function(){return he=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=Se&&(r[1]-=Se,r[0]+=1),r;var t,n,r}!function(e){e.CONNECT_END="connectEnd",e.CONNECT_START="connectStart",e.DECODED_BODY_SIZE="decodedBodySize",e.DOM_COMPLETE="domComplete",e.DOM_CONTENT_LOADED_EVENT_END="domContentLoadedEventEnd",e.DOM_CONTENT_LOADED_EVENT_START="domContentLoadedEventStart",e.DOM_INTERACTIVE="domInteractive",e.DOMAIN_LOOKUP_END="domainLookupEnd",e.DOMAIN_LOOKUP_START="domainLookupStart",e.ENCODED_BODY_SIZE="encodedBodySize",e.FETCH_START="fetchStart",e.LOAD_EVENT_END="loadEventEnd",e.LOAD_EVENT_START="loadEventStart",e.NAVIGATION_START="navigationStart",e.REDIRECT_END="redirectEnd",e.REDIRECT_START="redirectStart",e.REQUEST_START="requestStart",e.RESPONSE_END="responseEnd",e.RESPONSE_START="responseStart",e.SECURE_CONNECTION_START="secureConnectionStart",e.UNLOAD_EVENT_END="unloadEventEnd",e.UNLOAD_EVENT_START="unloadEventStart"}(ve||(ve={}));var Ee=performance,je=Math.pow(10,6),Oe=Math.pow(10,9);function Re(e){var t=e/1e3;return[Math.trunc(t),Math.round(e%1e3*je)]}function Pe(){var e=Ee.timeOrigin;if("number"!=typeof e){var t=Ee;e=t.timing&&t.timing.fetchStart}return e}function Ce(e){if(t=e,Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1])return e;var t,n,r,i,o;if("number"==typeof e)return e=Oe&&(o[1]-=Oe,o[0]+=1),o):Re(e);if(e instanceof Date)return Re(e.getTime());throw TypeError("Invalid input type")}function Le(e){return e[0]*Oe+e[1]}var Ne,xe,Me="exception.type",Ue="exception.message";function Ie(e,t){return t in e}function _e(e,t,n,r){var i=void 0,o=void 0;Ie(n,t)&&"number"==typeof n[t]&&(i=n[t]);var a=r||ve.FETCH_START;if(Ie(n,a)&&"number"==typeof n[a]&&(o=n[a]),void 0!==i&&void 0!==o&&i>=o)return e.addEvent(t,i),e}function We(e,t){_e(e,ve.FETCH_START,t),_e(e,ve.DOMAIN_LOOKUP_START,t),_e(e,ve.DOMAIN_LOOKUP_END,t),_e(e,ve.CONNECT_START,t),Ie(t,"name")&&t.name.startsWith("https:")&&_e(e,ve.SECURE_CONNECTION_START,t),_e(e,ve.CONNECT_END,t),_e(e,ve.REQUEST_START,t),_e(e,ve.RESPONSE_START,t),_e(e,ve.RESPONSE_END,t);var n=t[ve.ENCODED_BODY_SIZE];void 0!==n&&e.setAttribute("http.response_content_length",n);var r=t[ve.DECODED_BODY_SIZE];void 0!==r&&n!==r&&e.setAttribute("http.response_content_length_uncompressed",r)}function ze(){return"undefined"!=typeof location?location.origin:void 0}function De(e){if("function"==typeof URL)return new URL(e,"undefined"!=typeof document?document.baseURI:"undefined"!=typeof location?location.href:void 0);var t=(Ne||(Ne=document.createElement("a")),Ne);return t.href=e,t}!function(e){e.COMPONENT="component",e.HTTP_ERROR_NAME="http.error_name",e.HTTP_STATUS_TEXT="http.status_text"}(xe||(xe={}));var Fe,qe,Ve,Xe="0.54.2",Je="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof n.g?n.g:{},Ze=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ke="object"==typeof process&&"node"===(null===(Fe=process.release)||void 0===Fe?void 0:Fe.name),Ge=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,"@opentelemetry/instrumentation-fetch",Xe,t)||this;return n.component="fetch",n.version=Xe,n.moduleName=n.component,n._usedResources=new WeakSet,n._tasksCount=0,n}return Ze(t,e),t.prototype.init=function(){},t.prototype._addChildSpan=function(e,t){var n=this.tracer.startSpan("CORS Preflight",{startTime:t[ve.FETCH_START]},d.u.setSpan(r._.active(),e));this.getConfig().ignoreNetworkEvents||We(n,t),n.end(t[ve.RESPONSE_END])},t.prototype._addFinalSpanAttributes=function(e,t){var n=De(t.url);e.setAttribute("http.status_code",t.status),null!=t.statusText&&e.setAttribute(xe.HTTP_STATUS_TEXT,t.statusText),e.setAttribute("http.host",n.host),e.setAttribute("http.scheme",n.protocol.replace(":","")),"undefined"!=typeof navigator&&e.setAttribute("http.user_agent",navigator.userAgent)},t.prototype._addHeaders=function(e,t){if(!function(e,t){var n=t||[];return("string"==typeof n||n instanceof RegExp)&&(n=[n]),De(e).origin===ze()||n.some((function(t){return n=e,"string"==typeof(r=t)?n===r:!!n.match(r);var n,r}))}(t,this.getConfig().propagateTraceHeaderCorsUrls)){var n={};return i.$.inject(r._.active(),n),void(Object.keys(n).length>0&&this._diag.debug("headers inject skipped due to CORS policy"))}e instanceof Request||e.headers instanceof Headers||e.headers instanceof Map?i.$.inject(r._.active(),e.headers,{set:function(e,t,n){return e.set(t,"string"==typeof n?n:String(n))}}):(n={},i.$.inject(r._.active(),n),e.headers=Object.assign({},n,e.headers||{}))},t.prototype._clearResources=function(){0===this._tasksCount&&this.getConfig().clearTimingResources&&(performance.clearResourceTimings(),this._usedResources=new WeakSet)},t.prototype._createSpan=function(e,t){var n;if(void 0===t&&(t={}),!function(e,t){var n,r;if(!t)return!1;try{for(var i=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),o=i.next();!o.done;o=i.next())if(ye(e,o.value))return!0}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return!1}(e,this.getConfig().ignoreUrls)){var r=(t.method||"GET").toUpperCase(),i="HTTP "+r;return this.tracer.startSpan(i,{kind:x.v.CLIENT,attributes:(n={},n[xe.COMPONENT]=this.moduleName,n["http.method"]=r,n["http.url"]=e,n)})}this._diag.debug("ignoring span as url matches ignored url")},t.prototype._findResourceAndAddNetworkEvents=function(e,t,n){var r=t.entries;if(!r.length){if(!performance.getEntriesByType)return;r=performance.getEntriesByType("resource")}var i=function(e,t,n,r,i,o){void 0===i&&(i=new WeakSet);var a=De(e),s=function(e,t,n,r,i,o){var a=Le(t),s=Le(n),A=r.filter((function(t){var n=Le(Ce(t[ve.FETCH_START])),r=Le(Ce(t[ve.RESPONSE_END]));return t.initiatorType.toLowerCase()===(o||"xmlhttprequest")&&t.name===e&&n>=a&&r<=s}));return A.length>0&&(A=A.filter((function(e){return!i.has(e)}))),A}(e=a.toString(),t,n,r,i,o);if(0===s.length)return{mainRequest:void 0};if(1===s.length)return{mainRequest:s[0]};var A=function(e){return e.slice().sort((function(e,t){var n=e[ve.FETCH_START],r=t[ve.FETCH_START];return n>r?1:n1){var c=A[0],u=function(e,t,n){for(var r,i=Le(n),o=Le(Ce(t)),a=e[1],s=e.length,A=1;A=o&&(!r||l=200&&t.status<400?n._endSpan(e,c,t):n._endSpan(e,c,{status:t.status,statusText:t.statusText,url:a})}function p(e,t,n){try{var r=n.clone(),i=n.clone(),o=r.body;if(o){var a=o.getReader(),s=function(){a.read().then((function(t){t.done?l(e,i):s()}),(function(t){u(e,t)}))};s()}else l(e,n)}finally{t(n)}}function h(e,t,n){try{u(e,n)}finally{t(n)}}return new Promise((function(e,i){return r._.with(d.u.setSpan(r._.active(),A),(function(){return n._addHeaders(s,a),n._tasksCount++,t.apply(o,s instanceof Request?[s]:[a,s]).then(p.bind(o,A,e),h.bind(o,A,i))}))}))}}},t.prototype._applyAttributesAfterFetch=function(e,t,n){var r=this,i=this.getConfig().applyCustomAttributesOnSpan;i&&function(e){var t,n;try{n=e()}catch(e){t=e}finally{return function(e){e&&r._diag.error("applyCustomAttributesOnSpan",e)}(t),n}}((function(){return i(e,t,n)}))},t.prototype._prepareSpanData=function(e){var t=we(),n=[];if("function"!=typeof PerformanceObserver)return{entries:n,startTime:t,spanUrl:e};var r=new PerformanceObserver((function(t){t.getEntries().forEach((function(t){"fetch"===t.initiatorType&&t.name===e&&n.push(t)}))}));return r.observe({entryTypes:["resource"]}),{entries:n,observer:r,startTime:t,spanUrl:e}},t.prototype.enable=function(){var e;Ke?this._diag.warn("this instrumentation is intended for web usage only, it does not instrument Node.js's fetch()"):("function"==typeof(e=fetch)&&"function"==typeof e.__original&&"function"==typeof e.__unwrap&&!0===e.__wrapped&&(this._unwrap(Je,"fetch"),this._diag.debug("removing previous patch for constructor")),this._wrap(Je,"fetch",this._patchConstructor()))},t.prototype.disable=function(){Ke||(this._unwrap(Je,"fetch"),this._usedResources=new WeakSet)},t}(ge),He="telemetry.sdk.name",Be="telemetry.sdk.language",Ye="telemetry.sdk.version",Qe=((qe={})["telemetry.sdk.name"]="opentelemetry",qe["process.runtime.name"]="browser",qe["telemetry.sdk.language"]="webjs",qe["telemetry.sdk.version"]="1.21.0",qe),$e=function(){return $e=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),o=i[0],a=i[1];return $e($e($e($e({},r._syncAttributes),o),null!==(n=t._syncAttributes)&&void 0!==n?n:t.attributes),a)}));return new e(i,o)},e.EMPTY=new e({}),e}(),tt=n(7907);!function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"}(Ve||(Ve={}));var nt=["OTEL_SDK_DISABLED"];function rt(e){return nt.indexOf(e)>-1}var it=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function ot(e){return it.indexOf(e)>-1}var at=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS","OTEL_SEMCONV_STABILITY_OPT_IN"];function st(e){return at.indexOf(e)>-1}var At=1/0,ct=128,ut={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:tt.u.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:At,OTEL_ATTRIBUTE_COUNT_LIMIT:ct,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:At,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:ct,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:At,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:ct,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:128,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:Ve.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative",OTEL_SEMCONV_STABILITY_OPT_IN:[]};function lt(e,t,n){if(void 0!==n[e]){var r=String(n[e]);t[e]="true"===r.toLowerCase()}}function dt(e,t,n,r,i){if(void 0===r&&(r=-1/0),void 0===i&&(i=1/0),void 0!==n[e]){var o=Number(n[e]);isNaN(o)||(t[e]=oi?i:o)}}function pt(e,t,n,r){void 0===r&&(r=",");var i=n[e];"string"==typeof i&&(t[e]=i.split(r).map((function(e){return e.trim()})))}var ht={ALL:tt.u.ALL,VERBOSE:tt.u.VERBOSE,DEBUG:tt.u.DEBUG,INFO:tt.u.INFO,WARN:tt.u.WARN,ERROR:tt.u.ERROR,NONE:tt.u.NONE};function ft(e,t,n){var r=n[e];if("string"==typeof r){var i=ht[r.toUpperCase()];null!=i&&(t[e]=i)}}function mt(e){var t={};for(var n in ut){var r=n;if("OTEL_LOG_LEVEL"===r)ft(r,t,e);else if(rt(r))lt(r,t,e);else if(ot(r))dt(r,t,e);else if(st(r))pt(r,t,e);else{var i=e[r];null!=i&&(t[r]=String(i))}}return t}var gt="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof n.g?n.g:{};function yt(){var e=mt(gt);return Object.assign({},ut,e)}var vt,bt=function(){function e(){var e=this;this._promise=new Promise((function(t,n){e._resolve=t,e._reject=n}))}return Object.defineProperty(e.prototype,"promise",{get:function(){return this._promise},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this._resolve(e)},e.prototype.reject=function(e){this._reject(e)},e}(),kt=function(){function e(e,t){this._callback=e,this._that=t,this._isCalled=!1,this._deferred=new bt}return Object.defineProperty(e.prototype,"isCalled",{get:function(){return this._isCalled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"promise",{get:function(){return this._deferred.promise},enumerable:!1,configurable:!0}),e.prototype.call=function(){for(var e,t=this,n=[],r=0;r0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(n),!1))).then((function(e){return t._deferred.resolve(e)}),(function(e){return t._deferred.reject(e)}))}catch(e){this._deferred.reject(e)}}return this._deferred.promise},e}(),St=(0,a.n)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function Tt(e){return!0===e.getValue(St)}!function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"}(vt||(vt={}));function wt(e){try{!function(e){u.error(function(e){return"string"==typeof e?e:JSON.stringify(function(e){for(var t={},n=e;null!==n;)Object.getOwnPropertyNames(n).forEach((function(e){if(!t[e]){var r=n[e];r&&(t[e]=String(r))}})),n=Object.getPrototypeOf(n);return t}(e))}(e))}(e)}catch(e){}}var Et,jt=function(){function e(e,t){this._exporter=e,this._isExporting=!1,this._finishedSpans=[],this._droppedSpansCount=0;var n=yt();this._maxExportBatchSize="number"==typeof(null==t?void 0:t.maxExportBatchSize)?t.maxExportBatchSize:n.OTEL_BSP_MAX_EXPORT_BATCH_SIZE,this._maxQueueSize="number"==typeof(null==t?void 0:t.maxQueueSize)?t.maxQueueSize:n.OTEL_BSP_MAX_QUEUE_SIZE,this._scheduledDelayMillis="number"==typeof(null==t?void 0:t.scheduledDelayMillis)?t.scheduledDelayMillis:n.OTEL_BSP_SCHEDULE_DELAY,this._exportTimeoutMillis="number"==typeof(null==t?void 0:t.exportTimeoutMillis)?t.exportTimeoutMillis:n.OTEL_BSP_EXPORT_TIMEOUT,this._shutdownOnce=new kt(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(u.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}return e.prototype.forceFlush=function(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()},e.prototype.onStart=function(e,t){},e.prototype.onEnd=function(e){this._shutdownOnce.isCalled||e.spanContext().traceFlags&h.X.SAMPLED&&this._addToBuffer(e)},e.prototype.shutdown=function(){return this._shutdownOnce.call()},e.prototype._shutdown=function(){var e=this;return Promise.resolve().then((function(){return e.onShutdown()})).then((function(){return e._flushAll()})).then((function(){return e._exporter.shutdown()}))},e.prototype._addToBuffer=function(e){if(this._finishedSpans.length>=this._maxQueueSize)return 0===this._droppedSpansCount&&u.debug("maxQueueSize reached, dropping spans"),void this._droppedSpansCount++;this._droppedSpansCount>0&&(u.warn("Dropped "+this._droppedSpansCount+" spans because maxQueueSize reached"),this._droppedSpansCount=0),this._finishedSpans.push(e),this._maybeStartTimer()},e.prototype._flushAll=function(){var e=this;return new Promise((function(t,n){for(var r=[],i=0,o=Math.ceil(e._finishedSpans.length/e._maxExportBatchSize);i0&&(e._clearTimer(),e._maybeStartTimer())})).catch((function(t){e._isExporting=!1,wt(t)}))};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();void 0===this._timer&&(this._timer=setTimeout((function(){return t()}),this._scheduledDelayMillis),this._timer)}},e.prototype._clearTimer=function(){void 0!==this._timer&&(clearTimeout(this._timer),this._timer=void 0)},e}(),Ot=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Rt=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.onInit(n),r}return Ot(t,e),t.prototype.onInit=function(e){var t=this;!0!==(null==e?void 0:e.disableAutoFlushOnDocumentHide)&&"undefined"!=typeof document&&(this._visibilityChangeListener=function(){"hidden"===document.visibilityState&&t.forceFlush()},this._pageHideListener=function(){t.forceFlush()},document.addEventListener("visibilitychange",this._visibilityChangeListener),document.addEventListener("pagehide",this._pageHideListener))},t.prototype.onShutdown=function(){"undefined"!=typeof document&&(this._visibilityChangeListener&&document.removeEventListener("visibilitychange",this._visibilityChangeListener),this._pageHideListener&&document.removeEventListener("pagehide",this._pageHideListener))},t}(jt);!function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(Et||(Et={}));var Pt,Ct,Lt=function(){function e(e){void 0===e&&(e=0),this._ratio=e,this._ratio=this._normalize(e),this._upperBound=Math.floor(4294967295*this._ratio)}return e.prototype.shouldSample=function(e,t){return{decision:(0,p.hX)(t)&&this._accumulate(t)=1?1:e<=0?0:e},e.prototype._accumulate=function(e){for(var t=0,n=0;n>>0}return t},e}(),Nt=function(){function e(){}return e.prototype.shouldSample=function(){return{decision:Et.NOT_RECORD}},e.prototype.toString=function(){return"AlwaysOffSampler"},e}(),xt=function(){function e(){}return e.prototype.shouldSample=function(){return{decision:Et.RECORD_AND_SAMPLED}},e.prototype.toString=function(){return"AlwaysOnSampler"},e}(),Mt=function(){function e(e){var t,n,r,i;this._root=e.root,this._root||(wt(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new xt),this._remoteParentSampled=null!==(t=e.remoteParentSampled)&&void 0!==t?t:new xt,this._remoteParentNotSampled=null!==(n=e.remoteParentNotSampled)&&void 0!==n?n:new Nt,this._localParentSampled=null!==(r=e.localParentSampled)&&void 0!==r?r:new xt,this._localParentNotSampled=null!==(i=e.localParentNotSampled)&&void 0!==i?i:new Nt}return e.prototype.shouldSample=function(e,t,n,r,i,o){var a=d.u.getSpanContext(e);return a&&(0,p.YA)(a)?a.isRemote?a.traceFlags&h.X.SAMPLED?this._remoteParentSampled.shouldSample(e,t,n,r,i,o):this._remoteParentNotSampled.shouldSample(e,t,n,r,i,o):a.traceFlags&h.X.SAMPLED?this._localParentSampled.shouldSample(e,t,n,r,i,o):this._localParentNotSampled.shouldSample(e,t,n,r,i,o):this._root.shouldSample(e,t,n,r,i,o)},e.prototype.toString=function(){return"ParentBased{root="+this._root.toString()+", remoteParentSampled="+this._remoteParentSampled.toString()+", remoteParentNotSampled="+this._remoteParentNotSampled.toString()+", localParentSampled="+this._localParentSampled.toString()+", localParentNotSampled="+this._localParentNotSampled.toString()+"}"},e}(),Ut=Function.prototype.toString,It=Ut.call(Object),_t=(Pt=Object.getPrototypeOf,Ct=Object,function(e){return Pt(Ct(e))}),Wt=Object.prototype,zt=Wt.hasOwnProperty,Dt=Symbol?Symbol.toStringTag:void 0,Ft=Wt.toString;function qt(e){if(!function(e){return null!=e&&"object"==typeof e}(e)||"[object Object]"!==function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Dt&&Dt in Object(e)?function(e){var t=zt.call(e,Dt),n=e[Dt],r=!1;try{e[Dt]=void 0,r=!0}catch(e){}var i=Ft.call(e);return r&&(t?e[Dt]=n:delete e[Dt]),i}(e):function(e){return Ft.call(e)}(e)}(e))return!1;var t=_t(e);if(null===t)return!0;var n=zt.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Ut.call(n)===It}function Vt(e){return Zt(e)?e.slice():e}function Xt(e,t,n,r){var i;if(void 0===n&&(n=0),!(n>20)){if(n++,Ht(e)||Ht(t)||Kt(t))i=Vt(t);else if(Zt(e)){if(i=e.slice(),Zt(t))for(var o=0,a=t.length;o=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(this._propagators),a=o.next();!a.done;a=o.next()){var s=a.value;try{s.inject(e,t,n)}catch(e){u.warn("Failed to inject with "+s.constructor.name+". Err: "+e.message)}}}catch(e){r={error:e}}finally{try{a&&!a.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}},e.prototype.extract=function(e,t,n){return this._propagators.reduce((function(e,r){try{return r.extract(e,t,n)}catch(e){u.warn("Failed to extract with "+r.constructor.name+". Err: "+e.message)}return e}),e)},e.prototype.fields=function(){return this._fields.slice()},e}(),Yt="[_0-9a-z-*/]",Qt=new RegExp("^(?:[a-z]"+Yt+"{0,255}|[a-z0-9]"+Yt+"{0,240}@[a-z]"+Yt+"{0,13})$"),$t=/^[ -~]{0,255}[!-~]$/,en=/,|=/,tn=function(){function e(e){this._internalState=new Map,e&&this._parse(e)}return e.prototype.set=function(e,t){var n=this._clone();return n._internalState.has(e)&&n._internalState.delete(e),n._internalState.set(e,t),n},e.prototype.unset=function(e){var t=this._clone();return t._internalState.delete(e),t},e.prototype.get=function(e){return this._internalState.get(e)},e.prototype.serialize=function(){var e=this;return this._keys().reduce((function(t,n){return t.push(n+"="+e.get(n)),t}),[]).join(",")},e.prototype._parse=function(e){e.length>512||(this._internalState=e.split(",").reverse().reduce((function(e,t){var n=t.trim(),r=n.indexOf("=");if(-1!==r){var i=n.slice(0,r),o=n.slice(r+1,t.length);(function(e){return Qt.test(e)})(i)&&function(e){return $t.test(e)&&!en.test(e)}(o)&&e.set(i,o)}return e}),new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}(),nn="traceparent",rn="tracestate",on=new RegExp("^\\s?((?!ff)[\\da-f]{2})-((?![0]{32})[\\da-f]{32})-((?![0]{16})[\\da-f]{16})-([\\da-f]{2})(-.*)?\\s?$"),an=function(){function e(){}return e.prototype.inject=function(e,t,n){var r=d.u.getSpanContext(e);if(r&&!Tt(e)&&(0,p.YA)(r)){var i="00-"+r.traceId+"-"+r.spanId+"-0"+Number(r.traceFlags||h.X.NONE).toString(16);n.set(t,nn,i),r.traceState&&n.set(t,rn,r.traceState.serialize())}},e.prototype.extract=function(e,t,n){var r=n.get(t,nn);if(!r)return e;var i=Array.isArray(r)?r[0]:r;if("string"!=typeof i)return e;var o=function(e){var t=on.exec(e);return t?"00"===t[1]&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}:null}(i);if(!o)return e;o.isRemote=!0;var a=n.get(t,rn);if(a){var s=Array.isArray(a)?a.join(","):a;o.traceState=new tn("string"==typeof s?s:void 0)}return d.u.setSpanContext(e,o)},e.prototype.fields=function(){return[nn,rn]},e}(),sn="baggage";var An,cn,un=function(){function e(){}return e.prototype.inject=function(e,t,n){var r=i.$.getBaggage(e);if(r&&!Tt(e)){var o=function(e){return e.getAllEntries().map((function(e){var t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),n=t[0],r=t[1],i=encodeURIComponent(n)+"="+encodeURIComponent(r.value);return void 0!==r.metadata&&(i+=";"+r.metadata.toString()),i}))}(r).filter((function(e){return e.length<=4096})).slice(0,180),a=function(e){return e.reduce((function(e,t){var n=e+(""!==e?",":"")+t;return n.length>8192?e:n}),"")}(o);a.length>0&&n.set(t,sn,a)}},e.prototype.extract=function(e,t,n){var r=n.get(t,sn),o=Array.isArray(r)?r.join(","):r;if(!o)return e;var a={};return 0===o.length?e:(o.split(",").forEach((function(e){var t=function(e){var t=e.split(";");if(!(t.length<=0)){var n=t.shift();if(n){var r=n.indexOf("=");if(!(r<=0)){var i,o=decodeURIComponent(n.substring(0,r).trim()),a=decodeURIComponent(n.substring(r+1).trim());return t.length>0&&(i=(0,R.B)(t.join(";"))),{key:o,value:a,metadata:i}}}}}(e);if(t){var n={value:t.value};t.metadata&&(n.metadata=t.metadata),a[t.key]=n}})),0===Object.entries(a).length?e:i.$.setBaggage(e,i.$.createBaggage(a)))},e.prototype.fields=function(){return[sn]},e}(),ln="deployment.environment",dn="telemetry.sdk.name",pn="telemetry.sdk.language",hn="telemetry.sdk.version",fn=((An={})[dn]="opentelemetry",An["process.runtime.name"]="browser",An[pn]="webjs",An[hn]="1.27.0",An),mn=function(){return mn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),o=i[0],a=i[1];return mn(mn(mn(mn({},r._syncAttributes),o),null!==(n=t._syncAttributes)&&void 0!==n?n:t.attributes),a)}));return new e(i,o)},e.EMPTY=new e({}),e}(),yn=n(2102);!function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(cn||(cn={}));var vn=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},bn=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a};function kn(e){var t,n,r={};if("object"!=typeof e||null==e)return r;try{for(var i=vn(Object.entries(e)),o=i.next();!o.done;o=i.next()){var a=bn(o.value,2),s=a[0],A=a[1];Sn(s)?Tn(A)?Array.isArray(A)?r[s]=A.slice():r[s]=A:u.warn("Invalid attribute value set for key: "+s):u.warn("Invalid attribute key: "+s)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return r}function Sn(e){return"string"==typeof e&&e.length>0}function Tn(e){return null==e||(Array.isArray(e)?function(e){var t,n,r;try{for(var i=vn(e),o=i.next();!o.done;o=i.next()){var a=o.value;if(null!=a){if(!r){if(wn(a)){r=typeof a;continue}return!1}if(typeof a!==r)return!1}}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return!0}(e):wn(e))}function wn(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}var En=n(2626),jn=performance,On=Math.pow(10,6),Rn=Math.pow(10,9);function Pn(e){var t=e/1e3;return[Math.trunc(t),Math.round(e%1e3*On)]}function Cn(){var e=jn.timeOrigin;if("number"!=typeof e){var t=jn;e=t.timing&&t.timing.fetchStart}return e}function Ln(e){return Array.isArray(e)&&2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1]}function Nn(e){return Ln(e)||"number"==typeof e||e instanceof Date}function xn(e,t){var n=[e[0]+t[0],e[1]+t[1]];return n[1]>=Rn&&(n[1]-=Rn,n[0]+=1),n}var Mn=function(){return Mn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a},In=function(){function e(e,t,n,r,i,o,a,s,A,c){void 0===a&&(a=[]),this.attributes={},this.links=[],this.events=[],this._droppedAttributesCount=0,this._droppedEventsCount=0,this._droppedLinksCount=0,this.status={code:En.s.UNSET},this.endTime=[0,0],this._ended=!1,this._duration=[-1,-1],this.name=n,this._spanContext=r,this.parentSpanId=o,this.kind=i,this.links=a;var u=Date.now();this._performanceStartTime=jn.now(),this._performanceOffset=u-(this._performanceStartTime+Cn()),this._startTimeProvided=null!=s,this.startTime=this._getTime(null!=s?s:u),this.resource=e.resource,this.instrumentationLibrary=e.instrumentationLibrary,this._spanLimits=e.getSpanLimits(),this._attributeValueLengthLimit=this._spanLimits.attributeValueLengthLimit||0,null!=c&&this.setAttributes(c),this._spanProcessor=e.getActiveSpanProcessor(),this._spanProcessor.onStart(this,t)}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return null==t||this._isSpanEnded()?this:0===e.length?(u.warn("Invalid attribute key: "+e),this):Tn(t)?Object.keys(this.attributes).length>=this._spanLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,e)?(this._droppedAttributesCount++,this):(this.attributes[e]=this._truncateToSize(t),this):(u.warn("Invalid attribute value set for key: "+e),this)},e.prototype.setAttributes=function(e){var t,n;try{for(var r=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.entries(e)),i=r.next();!i.done;i=r.next()){var o=Un(i.value,2),a=o[0],s=o[1];this.setAttribute(a,s)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}return this},e.prototype.addEvent=function(e,t,n){if(this._isSpanEnded())return this;if(0===this._spanLimits.eventCountLimit)return u.warn("No events allowed."),this._droppedEventsCount++,this;this.events.length>=this._spanLimits.eventCountLimit&&(0===this._droppedEventsCount&&u.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),Nn(t)&&(Nn(n)||(n=t),t=void 0);var r=kn(t);return this.events.push({name:e,attributes:r,time:this._getTime(n),droppedAttributesCount:0}),this},e.prototype.addLink=function(e){return this.links.push(e),this},e.prototype.addLinks=function(e){var t;return(t=this.links).push.apply(t,function(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&u.warn("Dropped "+this._droppedEventsCount+" events because eventCountLimit reached"),this._spanProcessor.onEnd(this))},e.prototype._getTime=function(e){if("number"==typeof e&&e1?(u.error("OTEL_TRACES_SAMPLER_ARG="+e.OTEL_TRACES_SAMPLER_ARG+" was given, but it is out of range ([0..1]), defaulting to 1."),1):t}var qn=function(){this.generateTraceId=Xn(16),this.generateSpanId=Xn(8)},Vn=Array(32);function Xn(e){return function(){for(var t=0;t<2*e;t++)Vn[t]=Math.floor(16*Math.random())+48,Vn[t]>=58&&(Vn[t]+=39);return String.fromCharCode.apply(null,Vn.slice(0,2*e))}}var Jn,Zn=function(){function e(e,t,n){this._tracerProvider=n;var r,i,o,a,s=(r=t,i={sampler:Dn()},o=zn(),(a=Object.assign({},o,i,r)).generalLimits=Object.assign({},o.generalLimits,r.generalLimits||{}),a.spanLimits=Object.assign({},o.spanLimits,r.spanLimits||{}),a);this._sampler=s.sampler,this._generalLimits=s.generalLimits,this._spanLimits=s.spanLimits,this._idGenerator=t.idGenerator||new qn,this.resource=n.resource,this.instrumentationLibrary=e}return e.prototype.startSpan=function(e,t,n){var i,o,a;void 0===t&&(t={}),void 0===n&&(n=r._.active()),t.root&&(n=d.u.deleteSpan(n));var s=d.u.getSpan(n);if(Tt(n))return u.debug("Instrumentation suppressed, returning Noop Span"),d.u.wrapSpanContext(yn.dM);var A,c,l,p=null==s?void 0:s.spanContext(),f=this._idGenerator.generateSpanId();p&&d.u.isSpanContextValid(p)?(A=p.traceId,c=p.traceState,l=p.spanId):A=this._idGenerator.generateTraceId();var m=null!==(i=t.kind)&&void 0!==i?i:x.v.INTERNAL,g=(null!==(o=t.links)&&void 0!==o?o:[]).map((function(e){return{context:e.context,attributes:kn(e.attributes)}})),y=kn(t.attributes),v=this._sampler.shouldSample(n,A,e,m,y,g);c=null!==(a=v.traceState)&&void 0!==a?a:c;var b={traceId:A,spanId:f,traceFlags:v.decision===cn.RECORD_AND_SAMPLED?h.X.SAMPLED:h.X.NONE,traceState:c};if(v.decision===cn.NOT_RECORD)return u.debug("Recording is off, propagating context in a non-recording span"),d.u.wrapSpanContext(b);var k=kn(Object.assign(y,v.attributes));return new In(this,n,e,b,m,l,g,t.startTime,void 0,k)},e.prototype.startActiveSpan=function(e,t,n,i){var o,a,s;if(!(arguments.length<2)){2===arguments.length?s=t:3===arguments.length?(o=t,s=n):(o=t,a=n,s=i);var A=null!=a?a:r._.active(),c=this.startSpan(e,o,A),u=d.u.setSpan(A,c);return r._.with(u,s,void 0,c)}},e.prototype.getGeneralLimits=function(){return this._generalLimits},e.prototype.getSpanLimits=function(){return this._spanLimits},e.prototype.getActiveSpanProcessor=function(){return this._tracerProvider.getActiveSpanProcessor()},e}(),Kn=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Gn=function(){function e(e){this._spanProcessors=e}return e.prototype.forceFlush=function(){var e,t,n=[];try{for(var r=Kn(this._spanProcessors),i=r.next();!i.done;i=r.next()){var o=i.value;n.push(o.forceFlush())}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return new Promise((function(e){Promise.all(n).then((function(){e()})).catch((function(t){wt(t||new Error("MultiSpanProcessor: forceFlush failed")),e()}))}))},e.prototype.onStart=function(e,t){var n,r;try{for(var i=Kn(this._spanProcessors),o=i.next();!o.done;o=i.next())o.value.onStart(e,t)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}},e.prototype.onEnd=function(e){var t,n;try{for(var r=Kn(this._spanProcessors),i=r.next();!i.done;i=r.next())i.value.onEnd(e)}catch(e){t={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},e.prototype.shutdown=function(){var e,t,n=[];try{for(var r=Kn(this._spanProcessors),i=r.next();!i.done;i=r.next()){var o=i.value;n.push(o.shutdown())}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return new Promise((function(e,t){Promise.all(n).then((function(){e()}),t)}))},e}(),Hn=function(){function e(){}return e.prototype.onStart=function(e,t){},e.prototype.onEnd=function(e){},e.prototype.shutdown=function(){return Promise.resolve()},e.prototype.forceFlush=function(){return Promise.resolve()},e}();!function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"}(Jn||(Jn={}));var Bn=function(){function e(e){var t;void 0===e&&(e={}),this._registeredSpanProcessors=[],this._tracers=new Map;var n=function(){for(var e=[],t=0;t0;)n=Xt(n,e.shift(),0,r);return n}({},zn(),function(e){var t,n,r,i,o,a,s,A,c,u,l,d,p=Object.assign({},e.spanLimits),h=mt(gt);return p.attributeCountLimit=null!==(a=null!==(o=null!==(i=null!==(n=null===(t=e.spanLimits)||void 0===t?void 0:t.attributeCountLimit)&&void 0!==n?n:null===(r=e.generalLimits)||void 0===r?void 0:r.attributeCountLimit)&&void 0!==i?i:h.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT)&&void 0!==o?o:h.OTEL_ATTRIBUTE_COUNT_LIMIT)&&void 0!==a?a:ct,p.attributeValueLengthLimit=null!==(d=null!==(l=null!==(u=null!==(A=null===(s=e.spanLimits)||void 0===s?void 0:s.attributeValueLengthLimit)&&void 0!==A?A:null===(c=e.generalLimits)||void 0===c?void 0:c.attributeValueLengthLimit)&&void 0!==u?u:h.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT)&&void 0!==l?l:h.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)&&void 0!==d?d:At,Object.assign({},e,{spanLimits:p})}(e));this.resource=null!==(t=n.resource)&&void 0!==t?t:gn.empty(),this.resource=gn.default().merge(this.resource),this._config=Object.assign({},n,{resource:this.resource});var r=this._buildExporterFromEnv();if(void 0!==r){var i=new Rt(r);this.activeSpanProcessor=i}else this.activeSpanProcessor=new Hn}return e.prototype.getTracer=function(e,t,n){var r=e+"@"+(t||"")+":"+((null==n?void 0:n.schemaUrl)||"");return this._tracers.has(r)||this._tracers.set(r,new Zn({name:e,version:t,schemaUrl:null==n?void 0:n.schemaUrl},this._config,this)),this._tracers.get(r)},e.prototype.addSpanProcessor=function(e){0===this._registeredSpanProcessors.length&&this.activeSpanProcessor.shutdown().catch((function(e){return u.error("Error while trying to shutdown current span processor",e)})),this._registeredSpanProcessors.push(e),this.activeSpanProcessor=new Gn(this._registeredSpanProcessors)},e.prototype.getActiveSpanProcessor=function(){return this.activeSpanProcessor},e.prototype.register=function(e){void 0===e&&(e={}),d.u.setGlobalTracerProvider(this),void 0===e.propagator&&(e.propagator=this._buildPropagatorFromEnv()),e.contextManager&&r._.setGlobalContextManager(e.contextManager),e.propagator&&i.$.setGlobalPropagator(e.propagator)},e.prototype.forceFlush=function(){var e=this._config.forceFlushTimeoutMillis,t=this._registeredSpanProcessors.map((function(t){return new Promise((function(n){var r,i=setTimeout((function(){n(new Error("Span processor did not completed within timeout period of "+e+" ms")),r=Jn.timeout}),e);t.forceFlush().then((function(){clearTimeout(i),r!==Jn.timeout&&(r=Jn.resolved,n(r))})).catch((function(e){clearTimeout(i),r=Jn.error,n(e)}))}))}));return new Promise((function(e,n){Promise.all(t).then((function(t){var r=t.filter((function(e){return e!==Jn.resolved}));r.length>0?n(r):e()})).catch((function(e){return n([e])}))}))},e.prototype.shutdown=function(){return this.activeSpanProcessor.shutdown()},e.prototype._getPropagator=function(e){var t;return null===(t=this.constructor._registeredPropagators.get(e))||void 0===t?void 0:t()},e.prototype._getSpanExporter=function(e){var t;return null===(t=this.constructor._registeredExporters.get(e))||void 0===t?void 0:t()},e.prototype._buildPropagatorFromEnv=function(){var e=this,t=Array.from(new Set(yt().OTEL_PROPAGATORS)),n=t.map((function(t){var n=e._getPropagator(t);return n||u.warn('Propagator "'+t+'" requested through environment variable is unavailable.'),n})).reduce((function(e,t){return t&&e.push(t),e}),[]);return 0===n.length?void 0:1===t.length?n[0]:new Bt({propagators:n})},e.prototype._buildExporterFromEnv=function(){var e=yt().OTEL_TRACES_EXPORTER;if("none"!==e&&""!==e){var t=this._getSpanExporter(e);return t||u.error('Exporter "'+e+'" requested through environment variable is unavailable.'),t}},e._registeredPropagators=new Map([["tracecontext",function(){return new an}],["baggage",function(){return new un}]]),e._registeredExporters=new Map,e}(),Yn="service.name",Qn="service.version",$n=n(3121);const er={enabled:!1,endpoint:{baseUrl:"http://localhost:4318",trace:"/v1/traces",logs:"/v1/logs"},batchProcessor:{batchSize:512,maxQueueSize:2048,scheduledDelayMillis:1e3,exportTimeoutMillis:5e3},sampling:{enabled:!0,rate:1,featuresRate:{screenshots:0}},rateLimitPerHour:Number.MAX_SAFE_INTEGER,region:"dev"};var tr;!function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"}(tr||(tr={}));var nr=["OTEL_SDK_DISABLED"];function rr(e){return nr.indexOf(e)>-1}var ir=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function or(e){return ir.indexOf(e)>-1}var ar=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function sr(e){return ar.indexOf(e)>-1}var Ar=1/0,cr={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:tt.u.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:Ar,OTEL_ATTRIBUTE_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:Ar,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:128,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:Ar,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:128,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:128,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:tr.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function ur(e,t,n){if(void 0!==n[e]){var r=String(n[e]);t[e]="true"===r.toLowerCase()}}function lr(e,t,n,r,i){if(void 0===r&&(r=-1/0),void 0===i&&(i=1/0),void 0!==n[e]){var o=Number(n[e]);isNaN(o)||(t[e]=oi?i:o)}}function dr(e,t,n,r){void 0===r&&(r=",");var i=n[e];"string"==typeof i&&(t[e]=i.split(r).map((function(e){return e.trim()})))}var pr={ALL:tt.u.ALL,VERBOSE:tt.u.VERBOSE,DEBUG:tt.u.DEBUG,INFO:tt.u.INFO,WARN:tt.u.WARN,ERROR:tt.u.ERROR,NONE:tt.u.NONE};function hr(e,t,n){var r=n[e];if("string"==typeof r){var i=pr[r.toUpperCase()];null!=i&&(t[e]=i)}}var fr="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof n.g?n.g:{};function mr(){var e=function(e){var t={};for(var n in cr){var r=n;if("OTEL_LOG_LEVEL"===r)hr(r,t,e);else if(rr(r))ur(r,t,e);else if(or(r))lr(r,t,e);else if(sr(r))dr(r,t,e);else{var i=e[r];null!=i&&(t[r]=String(i))}}return t}(fr);return Object.assign({},cr,e)}function gr(e,t){return u.warn("Timeout must be greater than 0",e),t}function yr(e){return[429,502,503,504].includes(e)}function vr(e){if(null==e)return-1;var t=Number.parseInt(e,10);if(Number.isInteger(t))return t>0?1e3*t:-1;var n=new Date(e).getTime()-Date.now();return n>=0?n:0}var br,kr=function(){function e(){var e=this;this._promise=new Promise((function(t,n){e._resolve=t,e._reject=n}))}return Object.defineProperty(e.prototype,"promise",{get:function(){return this._promise},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this._resolve(e)},e.prototype.reject=function(e){this._reject(e)},e}(),Sr=function(){function e(e,t){this._callback=e,this._that=t,this._isCalled=!1,this._deferred=new kr}return Object.defineProperty(e.prototype,"isCalled",{get:function(){return this._isCalled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"promise",{get:function(){return this._deferred.promise},enumerable:!1,configurable:!0}),e.prototype.call=function(){for(var e,t=this,n=[],r=0;r0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(n),!1))).then((function(e){return t._deferred.resolve(e)}),(function(e){return t._deferred.reject(e)}))}catch(e){this._deferred.reject(e)}}return this._deferred.promise},e}();!function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"}(br||(br={}));var Tr,wr=function(){function e(e){var t;void 0===e&&(e={}),this._sendingPromises=[],this.url=this.getDefaultUrl(e),"string"==typeof e.hostname&&(this.hostname=e.hostname),this.shutdown=this.shutdown.bind(this),this._shutdownOnce=new Sr(this._shutdown,this),this._concurrencyLimit="number"==typeof e.concurrencyLimit?e.concurrencyLimit:30,this.timeoutMillis="number"==typeof(t=e.timeoutMillis)?t<=0?gr(t,1e4):t:function(){var e,t=Number(null!==(e=mr().OTEL_EXPORTER_OTLP_TRACES_TIMEOUT)&&void 0!==e?e:mr().OTEL_EXPORTER_OTLP_TIMEOUT);return t<=0?gr(t,1e4):t}(),this.onInit(e)}return e.prototype.export=function(e,t){this._shutdownOnce.isCalled?t({code:br.FAILED,error:new Error("Exporter has been shutdown")}):this._sendingPromises.length>=this._concurrencyLimit?t({code:br.FAILED,error:new Error("Concurrent export limit reached")}):this._export(e).then((function(){t({code:br.SUCCESS})})).catch((function(e){t({code:br.FAILED,error:e})}))},e.prototype._export=function(e){var t=this;return new Promise((function(n,r){try{u.debug("items to be sent",e),t.send(e,n,r)}catch(e){r(e)}}))},e.prototype.shutdown=function(){return this._shutdownOnce.call()},e.prototype.forceFlush=function(){return Promise.all(this._sendingPromises).then((function(){}))},e.prototype._shutdown=function(){return u.debug("shutdown started"),this.onShutdown(),this.forceFlush()},e}(),Er=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),jr=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.name="OTLPExporterError",i.data=r,i.code=n,i}return Er(t,e),t}(Error),Or=function(){return Or=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),r=n[0],i=n[1];void 0!==i?t[r]=String(i):u.warn('Header "'+r+'" has wrong value and will be ignored')})),t}(t.headers),C(mr().OTEL_EXPORTER_OTLP_HEADERS)):n._headers={},n}return Pr(t,e),t.prototype.onInit=function(){fr.addEventListener("unload",this.shutdown)},t.prototype.onShutdown=function(){fr.removeEventListener("unload",this.shutdown)},t.prototype.send=function(e,t,n){var r=this;if(this._shutdownOnce.isCalled)u.debug("Shutdown already started. Cannot send objects");else{var i=this.convert(e),o=JSON.stringify(i),a=new Promise((function(e,t){r.sendMethod===Tr.xhr?function(e,t,n,r,i,o){var a,s,A=!1,c=setTimeout((function(){if(clearTimeout(a),A=!0,s.readyState===XMLHttpRequest.DONE){var e=new jr("Request Timeout");o(e)}else s.abort()}),r),l=function(r,d){void 0===r&&(r=5),void 0===d&&(d=1e3),(s=new XMLHttpRequest).open("POST",t),Object.entries(Or(Or({},Rr),n)).forEach((function(e){var t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2),n=t[0],r=t[1];s.setRequestHeader(n,r)})),s.send(e),s.onreadystatechange=function(){if(s.readyState===XMLHttpRequest.DONE&&!1===A)if(s.status>=200&&s.status<=299)u.debug("xhr success",e),i(),clearTimeout(c),clearTimeout(a);else if(s.status&&yr(s.status)&&r>0){var t;d*=1.5,t=s.getResponseHeader("Retry-After")?vr(s.getResponseHeader("Retry-After")):Math.round(Math.random()*(5e3-d)+d),a=setTimeout((function(){l(r-1,d)}),t)}else{var n=new jr("Failed to export with XHR (status: "+s.status+")",s.status);o(n),clearTimeout(c),clearTimeout(a)}},s.onabort=function(){if(A){var e=new jr("Request Timeout");o(e)}clearTimeout(c),clearTimeout(a)},s.onerror=function(){if(A){var e=new jr("Request Timeout");o(e)}clearTimeout(c),clearTimeout(a)}};l()}(o,r.url,r._headers,r.timeoutMillis,e,t):r.sendMethod===Tr.fetch?function(e,t,n,r,i,o){var a,s=new AbortController,A=setTimeout((function(){s.abort(),null==a||a(new jr("Request Timeout"))}),r),c=function(r,i){return void 0===r&&(r=5),void 0===i&&(i=1e3),fetch(t,{method:"POST",headers:Or(Or({},Rr),n),signal:s.signal,body:e}).then((function(e){return e.status>=200&&e.status<=299?void u.debug("Request Success"):e.status&&yr(e.status)&&r>0?(i*=1.5,t=e.headers.has("Retry-After")?vr(e.headers.get("Retry-After")):Math.round(Math.random()*(5e3-i)+i),new Promise((function(e,n){var o=setTimeout((function(){a=void 0,c(r-1,i).then(e,n)}),t);a=function(e){clearTimeout(o),n(e)}}))):Promise.reject(new jr("Failed to export with fetch: ("+e.status+" "+e.statusText+")",e.status));var t}),(function(e){return"AbortError"===e.name?Promise.reject(new jr("Request Timeout")):Promise.reject(new jr("Request Fail: "+e.name+" "+e.message))}))};c().then((function(){return i()}),(function(e){return o(e)})).finally((function(){return clearTimeout(A)}))}(o,r.url,r._headers,r.timeoutMillis,e,t):r.sendMethod===Tr.beacon&&function(e,t,n,r,i){navigator.sendBeacon(t,new Blob([e],{type:"application/json"}))?(u.debug("sendBeacon - can send",e),r()):i(new jr("sendBeacon - cannot send "+e))}(o,r.url,0,e,t)})).then(t,n);this._sendingPromises.push(a);var s=function(){var e=r._sendingPromises.indexOf(a);r._sendingPromises.splice(e,1)};a.then(s,s)}},t}(wr);function Lr(e){return Object.keys(e).map((function(t){return Nr(t,e[t])}))}function Nr(e,t){return{key:e,value:xr(t)}}function xr(e){var t=typeof e;return"string"===t?{stringValue:e}:"number"===t?Number.isInteger(e)?{intValue:e}:{doubleValue:e}:"boolean"===t?{boolValue:e}:e instanceof Uint8Array?{bytesValue:e}:Array.isArray(e)?{arrayValue:{values:e.map(xr)}}:"object"===t&&null!=e?{kvlistValue:{values:Object.entries(e).map((function(e){var t=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}(e,2);return Nr(t[0],t[1])}))}}:{}}function Mr(e,t){var n,r=e.spanContext(),i=e.status;return{traceId:t.encodeSpanContext(r.traceId),spanId:t.encodeSpanContext(r.spanId),parentSpanId:t.encodeOptionalSpanContext(e.parentSpanId),traceState:null===(n=r.traceState)||void 0===n?void 0:n.serialize(),name:e.name,kind:null==e.kind?0:e.kind+1,startTimeUnixNano:t.encodeHrTime(e.startTime),endTimeUnixNano:t.encodeHrTime(e.endTime),attributes:Lr(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map((function(e){return function(e,t){return{attributes:e.attributes?Lr(e.attributes):[],name:e.name,timeUnixNano:t.encodeHrTime(e.time),droppedAttributesCount:e.droppedAttributesCount||0}}(e,t)})),droppedEventsCount:e.droppedEventsCount,status:{code:i.code,message:i.message},links:e.links.map((function(e){return function(e,t){var n;return{attributes:e.attributes?Lr(e.attributes):[],spanId:t.encodeSpanContext(e.context.spanId),traceId:t.encodeSpanContext(e.context.traceId),traceState:null===(n=e.context.traceState)||void 0===n?void 0:n.serialize(),droppedAttributesCount:e.droppedAttributesCount||0}}(e,t)})),droppedLinksCount:e.droppedLinksCount}}Math.pow(10,6);var Ur=Math.pow(10,9);function Ir(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function _r(e){for(var t=new Uint8Array(e.length/2),n=0,r=0;r>BigInt(32)))}}var Fr="undefined"!=typeof BigInt?function(e){return zr(e).toString()}:function(e){return e[0]*Ur+e[1]};function qr(e){return e}function Vr(e){if(void 0!==e)return _r(e)}var Xr={encodeHrTime:Dr,encodeSpanContext:_r,encodeOptionalSpanContext:Vr},Jr=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a};function Zr(e,t){for(var n=function(e){var t,n,r=new Map;try{for(var i=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),o=i.next();!o.done;o=i.next()){var a=o.value,s=r.get(a.resource);s||(s=new Map,r.set(a.resource,s));var A=a.instrumentationLibrary.name+"@"+(a.instrumentationLibrary.version||"")+":"+(a.instrumentationLibrary.schemaUrl||""),c=s.get(A);c||(c=[],s.set(A,c)),c.push(a)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return r}(e),r=[],i=n.entries(),o=i.next();!o.done;){for(var a=Jr(o.value,2),s=a[0],A=[],c=a[1].values(),u=c.next();!u.done;){var l=u.value;if(l.length>0){var d=l[0].instrumentationLibrary,p=d.name,h=d.version,f=d.schemaUrl,m=l.map((function(e){return Mr(e,t)}));A.push({scope:{name:p,version:h},spans:m,schemaUrl:f})}u=c.next()}var g={resource:{attributes:Lr(s.attributes),droppedAttributesCount:0},scopeSpans:A,schemaUrl:void 0};r.push(g),o=i.next()}return r}var Kr=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Gr="v1/traces",Hr="http://localhost:4318/"+Gr,Br=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n._headers=Object.assign(n._headers,C(mr().OTEL_EXPORTER_OTLP_TRACES_HEADERS)),n}return Kr(t,e),t.prototype.convert=function(e){return function(e,t){var n=function(e){var t,n;if(void 0===e)return Xr;var r=null===(t=e.useLongBits)||void 0===t||t,i=null!==(n=e.useHex)&&void 0!==n&&n;return{encodeHrTime:r?Dr:Fr,encodeSpanContext:i?qr:_r,encodeOptionalSpanContext:i?qr:Vr}}(t);return{resourceSpans:Zr(e,n)}}(e,{useHex:!0,useLongBits:!1})},t.prototype.getDefaultUrl=function(e){return"string"==typeof e.url?e.url:mr().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT.length>0?function(e){try{var t=new URL(e);return""===t.pathname&&(t.pathname=t.pathname+"/"),t.toString()}catch(t){return u.warn("Could not parse export URL: '"+e+"'"),e}}(mr().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT):mr().OTEL_EXPORTER_OTLP_ENDPOINT.length>0?(t=mr().OTEL_EXPORTER_OTLP_ENDPOINT,n=Gr,t.endsWith("/")||(t+="/"),t+n):Hr;var t,n},t}(Cr);class Yr extends Br{constructor(e,t,n){const r={Authorization:`Agent-Bearer ${e}`};n?n.headers?n.headers=Object.assign(Object.assign({},n.headers),r):n.headers=r:n={headers:r},super(n),this._authTokenRefresh=t}send(e,t,n){const r=Object.create(null,{send:{get:()=>super.send}});r.send.call(this,e,t,(i=>{return o=this,a=void 0,A=function*(){if(401===i.code){let o;try{o=yield this._authTokenRefresh()}catch(e){return console.error("Failed to refresh auth token",e),void n(i)}this._updateAuthHeader(o),r.send.call(this,e,t,n)}else n(i)},new((s=void 0)||(s=Promise))((function(e,t){function n(e){try{i(A.next(e))}catch(e){t(e)}}function r(e){try{i(A.throw(e))}catch(e){t(e)}}function i(t){var i;t.done?e(t.value):(i=t.value,i instanceof s?i:new s((function(e){e(i)}))).then(n,r)}i((A=A.apply(o,a||[])).next())}));var o,a,s,A}))}_updateAuthHeader(e){this.headers.Authorization=`Agent-Bearer ${e}`}}const Qr=("undefined"!=typeof globalThis?globalThis:n.g).performance;function $r(){const[e,t]=function(){const e=.001*Qr.now();let t=Math.floor(e),n=Math.floor(e%1*1e9);return[t,n]}();return 1e3*e+Math.floor(t/1e6)}function ei(e){return new Promise((t=>setTimeout(t,e)))}class ti{constructor(e){let{bucketSize:t,tokensPerInterval:n,interval:r,parentBucket:i}=e;if(this.bucketSize=t,this.tokensPerInterval=n,"string"==typeof r)switch(r){case"sec":case"second":this.interval=1e3;break;case"min":case"minute":this.interval=6e4;break;case"hr":case"hour":this.interval=36e5;break;case"day":this.interval=864e5;break;default:throw new Error("Invalid interval "+r)}else this.interval=r;this.parentBucket=i,this.content=0,this.lastDrip=$r()}async removeTokens(e){if(0===this.bucketSize)return Number.POSITIVE_INFINITY;if(e>this.bucketSize)throw new Error(`Requested tokens ${e} exceeds bucket size ${this.bucketSize}`);this.drip();const t=async()=>{const t=Math.ceil((e-this.content)*(this.interval/this.tokensPerInterval));return await ei(t),this.removeTokens(e)};if(e>this.content)return t();if(null!=this.parentBucket){const n=await this.parentBucket.removeTokens(e);return e>this.content?t():(this.content-=e,Math.min(n,this.content))}return this.content-=e,this.content}tryRemoveTokens(e){return!(this.bucketSize&&(e>this.bucketSize||(this.drip(),e>this.content||this.parentBucket&&!this.parentBucket.tryRemoveTokens(e)||(this.content-=e,0))))}drip(){if(0===this.tokensPerInterval){const e=this.content;return this.content=this.bucketSize,this.content>e}const e=$r(),t=Math.max(e-this.lastDrip,0);this.lastDrip=e;const n=t*(this.tokensPerInterval/this.interval),r=this.content;return this.content=Math.min(this.content+n,this.bucketSize),Math.floor(this.content)>Math.floor(r)}}class ni{constructor(e){let{tokensPerInterval:t,interval:n,fireImmediately:r}=e;this.tokenBucket=new ti({bucketSize:t,tokensPerInterval:t,interval:n}),this.tokenBucket.content=t,this.curIntervalStart=$r(),this.tokensThisInterval=0,this.fireImmediately=null!=r&&r}async removeTokens(e){if(e>this.tokenBucket.bucketSize)throw new Error(`Requested tokens ${e} exceeds maximum tokens per interval ${this.tokenBucket.bucketSize}`);const t=$r();if((t=this.tokenBucket.interval)&&(this.curIntervalStart=t,this.tokensThisInterval=0),e>this.tokenBucket.tokensPerInterval-this.tokensThisInterval){if(this.fireImmediately)return-1;{const n=Math.ceil(this.curIntervalStart+this.tokenBucket.interval-t);await ei(n);const r=await this.tokenBucket.removeTokens(e);return this.tokensThisInterval+=e,r}}const n=await this.tokenBucket.removeTokens(e);return this.tokensThisInterval+=e,n}tryRemoveTokens(e){if(e>this.tokenBucket.bucketSize)return!1;const t=$r();if((t=this.tokenBucket.interval)&&(this.curIntervalStart=t,this.tokensThisInterval=0),e>this.tokenBucket.tokensPerInterval-this.tokensThisInterval)return!1;const n=this.tokenBucket.tryRemoveTokens(e);return n&&(this.tokensThisInterval+=e),n}getTokensRemaining(){return this.tokenBucket.drip(),this.tokenBucket.content}}class ri{constructor(e){this.root=e.root,this.rateLimiter=e.rateLimiter}shouldSample(e,t,n,r,i,o){return this.rateLimiter&&!this.rateLimiter.tryRemoveTokens(1)?{decision:Et.NOT_RECORD}:this.root.shouldSample(e,t,n,r,i,o)}toString(){return"CircuitBreakerSampler"}}var ii=n(4986);class oi{constructor(e){this.enabled=e.enabled,this.root=e.root}shouldSample(e,t,n,r,i,o){var a,s;if(!this.enabled)return this.root.shouldSample(e,t,n,r,i,o);const A=null!==(s=null===(a=i[ii.SE])||void 0===a?void 0:a.valueOf())&&void 0!==s?s:void 0;return void 0===A?this.root.shouldSample(e,t,n,r,i,o):"number"!=typeof A?(console.warn("Sample ratio attribute value is invalid, must be a number. Not sampling. value:",A),{decision:Et.NOT_RECORD}):A<0||A>1?(console.warn("Sample ratio attribute value is out of range. Not sampling. Must be between 0 and 1 (both inclusive). value:",A),{decision:Et.NOT_RECORD}):new Lt(A).shouldSample(e,t)}toString(){return"SampleRatioAttributeSampler"}}class ai{static setup(e){var t,n,r,i;const{isDev:o,extensionVersion:a,authToken:s,authTokenRefreshFn:A,env:c}=e;let{config:u}=e;if(this._extensionVersion=a,o&&(console.log("Using dev override config for OpenTelemetry setup. OpenTelemetry enabled:",er.enabled),u=er),this._initialized||(this._onceInit(),this._initialized=!0),(0,$n.isEqual)(this._config,u))return;if(!u.enabled)return this._config=u,void this._close();this._close(),console.debug("setting up new OpenTelemetry pipeline");const l=new Yr(s,A,{url:u.endpoint.baseUrl+u.endpoint.trace}),d=new Rt(l,{maxExportBatchSize:null===(t=u.batchProcessor)||void 0===t?void 0:t.batchSize,scheduledDelayMillis:null===(n=u.batchProcessor)||void 0===n?void 0:n.scheduledDelayMillis,maxQueueSize:null===(r=u.batchProcessor)||void 0===r?void 0:r.maxQueueSize,exportTimeoutMillis:null===(i=u.batchProcessor)||void 0===i?void 0:i.exportTimeoutMillis}),p=new ni({tokensPerInterval:u.rateLimitPerHour,interval:"hour"}),h=u.sampling.enabled?new Lt(u.sampling.rate):new Nt,f=new ri({rateLimiter:p,root:new Mt({root:new oi({enabled:u.sampling.enabled,root:h})})}),m=new Bn({sampler:f,resource:new et({[Yn]:"connect-chrome-edu-mv3",[ln]:"dev",[Qn]:a,"qoria.runtime.env":c})});m.addSpanProcessor(d),new Ge({ignoreUrls:[new RegExp("/get/verdict")]}).setTracerProvider(m),this._config=u,this._provider=m}static getTracer(e){return this._provider?this._extensionVersion?this._provider.getTracer(e,this._extensionVersion):(console.debug("extensionVersion is not set, returning tracer without version specified"),this._provider.getTracer(e)):(console.debug("returning no-op opentelemetry tracer"),this._noopProvider.getTracer("noop"))}static _onceInit(){const e=new A;r._.setGlobalContextManager(e),e.enable(),i.$.setGlobalPropagator(new l({propagators:[new E,new N]}))}static _close(){if(this._provider){const e=this._provider;e.forceFlush().catch((e=>{console.error("Error flushing OpenTelemetry provider",e)})).finally((()=>{e.shutdown().catch((e=>{console.error("Error shutting down OpenTelemetry provider",e)}))})),this._provider=null}}}ai._noopProvider=new o.n,ai._provider=null,ai._config=null,ai._initialized=!1,ai._extensionVersion=null},7021:(e,t,n)=>{"use strict";var r=n(1131);(0,r.mW)((0,r.ef)()),(0,r.MQ)()},1131:(e,t,n)=>{"use strict";n.d(t,{DP:()=>u,MQ:()=>f,Rt:()=>h,Sw:()=>p,ef:()=>l,mW:()=>c});var r=n(7414),i=n(77),o=n(8125),a=n(2450),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};const A={dsn:"https://c17cd3300c4e109ad958146b698040aa@o4507960794546176.ingest.us.sentry.io/4507960797102080",tracesSampleRate:1,sampleRate:1,ignoreErrors:["Could not establish connection. Receiving end does not exist."]};const c=e=>{const t=d(e);r.Ts(Object.assign(Object.assign({},A),{release:t}))},u=e=>i.Cp(e),l=()=>{var e;if(void 0===(null===(e=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===e?void 0:e.getManifest))return;const t=chrome.runtime.getManifest();return{extensionVersion:t.version,extensionName:t.name,buildENV:"production"}},d=e=>{var t;if(!(e&&e.extensionVersion&&e.extensionName&&e.buildENV))return;const n=null==e?void 0:e.extensionVersion,r=null===(t=null==e?void 0:e.extensionName)||void 0===t?void 0:t.toLowerCase().replace(/ /g,"-");let i="prod";return"development"===(null==e?void 0:e.buildENV)&&(i="local-dev"),`${r}.${i}@${n}`},p=e=>{const t=d(e),n=e=>(e.release=t,e);o.m6().addEventProcessor(n),o.o5().addEventProcessor(n),i.SA(n)},h=e=>{e.userIdentifier&&e.applianceId&&(i.gV({id:e.userIdentifier}),i.NA("applianceId",e.applianceId))};function f(){return s(this,void 0,void 0,(function*(){chrome.runtime.sendMessage({type:a.lA.SentryGetUserDetails},(e=>{e&&h(e)}))}))}},3537:(e,t,n)=>{"use strict";n.r(t),n.d(t,{OffscreenManager:()=>Z}),n(7021);var r=n(409),i=n(7518),o=n(2450),a=n(5635),s=n(1458),A=n(8776);const c=(e,...t)=>{p(o.Cj.Error,e,t)},u=(e,...t)=>{p(o.Cj.Warning,e,t)},l=(e,...t)=>{p(o.Cj.Message,e,t)},d=(e,...t)=>{p(o.Cj.Debug,e,t)},p=(e,t,...n)=>{Z.sendMesage({type:o.lA.OffScreenLogMessage,logLevel:e,message:t,optionalParams:n})};class h{static generate(){return new this}static sendEventToServiceWorker(e,t){Z.sendMesage({type:o.lA.EventMessage,eventType:e,data:t})}}var f=n(1131);class m extends h{connect(){m.isConnected||m.connectToClasswizeStream()}disconnect(e=!1){m.keepReconnecting=e,m.closeStream()}static connectToClasswizeStream(){l("Connecting to Classwize Event Service"),m.eventStream=m.eventClient.receiveEvents(new s.Empty),m.keepReconnecting=!0,m.eventStream.on("data",(e=>{var t;const n=null===(t=e.getMessages())||void 0===t?void 0:t.toObject();if(n){const e=Object.keys(A.EventType).find((e=>A.EventType[e]===n.event));m.handleClasswizeEvent(o.wf[e],n)}})).on("end",(e=>{u(`end: ${e}`),0!=(null==e?void 0:e.code)&&(u("Classwize Event Service stream has been terminated"),m.keepReconnecting&&m.reconnectToClasswize())})),m.isConnected=!0}static reconnectToClasswize(){return e=this,t=void 0,r=function*(){m.closeStream(),setTimeout((()=>{1===S.getActiveEventServiceType()&&m.connectToClasswizeStream()}),1e3)},new((n=void 0)||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}));var e,t,n,r}static closeStream(){m.isConnected&&(m.eventStream.cancel(),m.isConnected=!1)}static handleClasswizeEvent(e,t){let n={};try{n=JSON.parse(t.value)}catch(e){(0,f.DP)(e),n={}}h.sendEventToServiceWorker(e,n)}}m.eventClient=new a.T(o.Ui),m.isConnected=!1,m.keepReconnecting=!0;const g=(e,t)=>(e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e)+e));var y=n(3203),v=n(8067),b=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class k extends h{connect(){k.intiateServiceConnection()}disconnect(){k.disconnectFromEventService()}static disconnectFromEventService(){l("Disconnecting from Event V2 Service"),k.eventService&&(k.eventService.close(),k.eventService=void 0)}static intiateServiceConnection(){return b(this,void 0,void 0,(function*(){const e=Z.getOffscreenConfig();if(!e)return u("User config does not exist"),void k.disconnectFromEventService();const t=e.user,n=e.deviceId,r=e.eventServiceUrl,i=(0,y.hk)(t),a=(0,y.hk)(n),s=(0,y.hk)(r);if(i||a||s)return u("User details are not valid"),d(`Details ==> user: ${t}, device: ${n}, eventServiceUrl: ${r}`),void k.disconnectFromEventService();const A=`${r}/events/v2/appliance/${n}/recipient/${t}?events=${e.isTeacher?"CONFIG_UPDATE":"CONFIG_UPDATE,OPEN_TAB,CLOSE_TAB,MESSAGE,CLASS_STARTED,POLICY_UPDATE,INIT_P2P"}`;void 0===k.eventService?(l("Connecting to v2 Event Service"),k.eventService=new EventSource(A,{withCredentials:!0}),k.eventService.onerror=function(e){var t,n;return b(this,void 0,void 0,(function*(){c("Error with event service",e,`The event source is in ${null!==(n=null===(t=k.eventService)||void 0===t?void 0:t.readyState)&&void 0!==n?n:"unknown"} state.`),k.disconnectFromEventService();const r=yield Z.getAuthCookie();if(!k.eventServiceRetriedWithExistingAuth&&r){const e=g(0,5);l(`Retrying with existing auth in ${e} seconds`),setTimeout(k.retryEventServiceWithExistingAuth,1e3*e)}else if(k.eventServiceRetriedWithNewAuth)k.retryEventServiceAfterTimeout();else{let e=0;const t=(new Date).toDateString();k.lastAuthAttemptDate&&k.lastAuthAttemptDate===t||(e=g(0,5)),k.lastAuthAttemptDate=t,l(`Retrying with new auth in ${e} seconds`),setTimeout(k.retryEventServiceWithNewAuth,1e3*e)}}))},k.eventService.onopen=function(){l("Connected to event-service"),k.eventServiceRetriedWithExistingAuth=!1,k.eventServiceRetriedWithNewAuth=!1,clearTimeout(k.reauthTimeoutId),k.eventServiceRetryTimeoutSeconds=1},k.eventService.addEventListener(o.wf.CONFIG_UPDATE,(function(e){k.handleNewEvent(o.wf.CONFIG_UPDATE,e)}),!1),k.eventService.addEventListener(o.wf.OPEN_TAB,(function(e){k.handleNewEvent(o.wf.OPEN_TAB,e)}),!1),k.eventService.addEventListener(o.wf.CLOSE_TAB,(function(e){k.handleNewEvent(o.wf.CLOSE_TAB,e)}),!1),k.eventService.addEventListener(o.wf.MESSAGE,(function(e){k.handleNewEvent(o.wf.MESSAGE,e)}),!1),k.eventService.addEventListener(o.wf.CLASS_STARTED,(function(e){k.handleNewEvent(o.wf.CLASS_STARTED,e)}),!1),k.eventService.addEventListener(o.wf.POLICY_UPDATE,(function(e){setTimeout((()=>{k.handleNewEvent(o.wf.POLICY_UPDATE,e)}),1e3)}),!1),k.eventService.addEventListener(o.wf.INIT_P2P,(function(e){k.handleNewEvent(o.wf.INIT_P2P,e)}),!1)):l("aborting connection attempt to event service, already connected")}))}static retryEventServiceWithExistingAuth(){return b(this,void 0,void 0,(function*(){try{k.eventServiceRetriedWithExistingAuth=!0,k.intiateServiceConnection()}catch(e){(0,f.DP)(e),k.retryEventServiceAfterTimeout()}}))}static retryEventServiceWithNewAuth(){return b(this,void 0,void 0,(function*(){try{yield Z.initAutoAuth();const e=k.getReauthAllowedTimer();k.reauthTimeoutId=setTimeout((()=>{k.eventServiceRetriedWithNewAuth=!1}),1e3*e+k.getReauthJitterMs()),k.eventServiceRetriedWithNewAuth=!0,k.intiateServiceConnection()}catch(e){(0,f.DP)(e),c("Failed to authenticate before retrying to connect to event-service, triggering events retry again after timeout"),k.retryEventServiceAfterTimeout()}}))}static retryEventServiceAfterTimeout(){u("v2 Event service connect error; sleeping for "+k.eventServiceRetryTimeoutSeconds+" seconds"),k.eventServiceRetryTimeoutSeconds*=2,k.eventServiceRetryTimeoutSeconds>=64&&(k.eventServiceRetryTimeoutSeconds=64),setTimeout(k.intiateServiceConnection,1e3*k.eventServiceRetryTimeoutSeconds)}static handleNewEvent(e,t){k.eventServiceRetryTimeoutSeconds=1,d("Event Message Received",t);let n={};try{n=JSON.parse(t.data)}catch(e){return n={},(0,f.DP)(e),void c("Error parsing the event data",e)}this.adjustVirtualClock(n),n._virtualTimestamp=v.A.now(),n._actualTimestamp=Date.now(),h.sendEventToServiceWorker(e,n)}static adjustVirtualClock({header:e={}}={}){const{timestampEpochMs:t}=e;t&&v.A.setServerTimeStamp(Number(t))}static getReauthAllowedTimer(){return k.reauthAllowedTimerSeconds||k.REAUTH_ALLOWED_TIMER_SECONDS}static getReauthJitterMs(){return g(0,9e4)}}k.REAUTH_ALLOWED_TIMER_SECONDS=600,k.reauthAllowedTimerSeconds=k.REAUTH_ALLOWED_TIMER_SECONDS,k.eventService=void 0,k.eventServiceRetryTimeoutSeconds=1,k.eventServiceRetriedWithExistingAuth=!1,k.eventServiceRetriedWithNewAuth=!1,k.reauthTimeoutId=void 0,k.lastAuthAttemptDate=void 0;class S{static getEventClient(e){switch(S.activeEventSourceType=e,e){case 0:return S.eventServiceClient;case 1:return S.classwizeServiceClient;default:return void d(`No event client available for this type: ${e}`)}}static getActiveEventServiceType(){return S.activeEventSourceType}static reconnectToEventSourceIfneeded(e,t){const n=0===S.activeEventSourceType&&((null==e?void 0:e.user)!==(null==t?void 0:t.user)||(null==e?void 0:e.deviceId)!==(null==t?void 0:t.deviceId)||(null==e?void 0:e.eventServiceUrl)!==(null==t?void 0:t.eventServiceUrl));S.setActiveEventServiceClient(S.getActiveEventServiceType(),n)}static setActiveEventServiceClient(e,t=!1){(S.getActiveEventServiceType()!==e||t)&&(S.activeEventClient&&S.activeEventClient.disconnect(),S.activeEventClient=S.getEventClient(e),S.activeEventClient&&S.activeEventClient.connect())}}S.activeEventSourceType=0,S.eventServiceClient=k.generate(),S.classwizeServiceClient=m.generate();var T=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class w{static registerExtension(){return T(this,void 0,void 0,(function*(){const e=yield Z.sendMesage({type:o.lA.GetManifestInfo});return!!e&&(yield this.registrationHandler(e.name,e.version))}))}static registrationHandler(e,t){return T(this,void 0,void 0,(function*(){if(this.isConnected)return;const n=new r.CompanionRegistrationRequest;return n.setName(e),n.setVersion(t),this.keepReconnecting=!0,this.companionStream=this.companionClient.registerCompanion(n),new Promise((e=>{this.companionStream.on("data",(t=>{var n,r;this.nReconnectionAttempts=0;const i=t.getVersion(),a=null!==(r=null===(n=t.getEnrolmentdetails())||void 0===n?void 0:n.toObject())&&void 0!==r?r:void 0;let s=!1,A=!1;a&&w.isValidEnrolmentDetails(a)&&(s=!0,A=a.enabledfeaturesList.includes(o.y5.companion)),s&&S.setActiveEventServiceClient(1),Z.sendMesage({type:o.lA.CompanionMessage,nativeAgentVersion:i,enrolmentDetails:a,companionStatus:{companionAvailable:!0,companionEnrolled:s,companionEnabled:A}}),this.isConnected||(this.isConnected=!0,e(!0))})).on("end",(t=>{0!=(null==t?void 0:t.code)&&(Z.sendMesage({type:o.lA.CompanionErrorMessage,status:t,extensionIsRegistered:w.isConnected}),S.setActiveEventServiceClient(0),this.keepReconnecting&&this.reconnectToNativeAgent(),this.isConnected||e(!1))}))}))}))}static unregisterExtension(e=!1){this.keepReconnecting=e;const t=w.isConnected;this.closeStream(),Z.sendMesage({type:o.lA.CompanionErrorMessage,extensionIsRegistered:t}),S.setActiveEventServiceClient(-1)}static isValidEnrolmentDetails(e){return!!(e&&e.username&&e.applianceid&&e.devicetoken&&e.region&&e.enabledfeaturesList)}static reconnectToNativeAgent(){return T(this,void 0,void 0,(function*(){this.closeStream(),setTimeout((()=>{this.keepReconnecting&&w.registerExtension()}),w.getReconnectionTimeout())}))}static closeStream(){this.isConnected&&(this.companionStream.cancel(),this.isConnected=!1)}static getReconnectionTimeout(){return this.nReconnectionAttempts>=o.qb.MaxReconnectionAttempts?(this.nReconnectionAttempts=0,o.qb.MaxRetryRegistrationInterval_ms):(this.nReconnectionAttempts++,this.nReconnectionAttempts*o.qb.DeltaTimeout)}static connected(){return this.isConnected}static getCompanionClient(){return this.companionClient}}w.companionClient=new i.A(o.Ui),w.isConnected=!1,w.keepReconnecting=!0,w.nReconnectionAttempts=0;var E=n(2376);class j{constructor(e,t){this.datachannel=e,this.maxMessageSize=t,this.streamingTab=null,this.lastSendTimeMs=0,this.datachannel.bufferedAmountLowThreshold=j.DC_BUFFER_LOW_MARK_BYTES}startStreaming(){clearInterval(this.streamInterval),this.streamInterval=setInterval((()=>{this.datachannel.bufferedAmount<=this.datachannel.bufferedAmountLowThreshold?this.sendScreenshot():d(`DEBUG p2p buffer NOT low, skipping screenshot. Buffered: ${(this.datachannel.bufferedAmount/1e3).toFixed(2)}kb, buffer_low_mark: ${(this.datachannel.bufferedAmountLowThreshold/1e3).toFixed(2)}`)}),1e3)}endStreaming(){clearInterval(this.streamInterval)}switchTab(e){this.streamingTab=e}sendScreenshot(){return e=this,t=void 0,r=function*(){if(!this.streamingTab)return;const e=yield Z.sendMesage({type:o.lA.P2PGetScreenshot,streamingTab:this.streamingTab});e&&this.send(e)},new((n=void 0)||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}));var e,t,n,r}send(e){const t=N.prepareMessage(e);this.lastSendTimeMs?d(`DEBUG p2p sending screenshot. Size: ${(t.length/1e3).toFixed(2)}kb, last send (secs): ${((Date.now()-this.lastSendTimeMs)/1e3).toFixed(2)}`):d(`DEBUG p2p sending screenshot. Size: ${(t.length/1e3).toFixed(2)}kb`),this.lastSendTimeMs=Date.now(),N.send(this.datachannel,t,this.maxMessageSize)}}j.DC_BUFFER_LOW_MARK_BYTES=0;class O{constructor(e,t,n){this.dataChannel=e,this.remotePeerId=t,this.maxMessageSize=n,this.streamingWindow=null}startStreaming(){clearInterval(this.streamInterval),this.streamInterval=setInterval((()=>{this.sendTabs()}),1e3)}endStreaming(){clearInterval(this.streamInterval)}setWindow(e){this.streamingWindow=e}sendTabs(){return e=this,t=void 0,r=function*(){if(!this.streamingWindow)return;const e=yield Z.sendMesage({type:o.lA.P2PGetTabs});if(!e)return;if(e.restrictedDomainFound)return void N.tearDown(this.remotePeerId);const t=N.prepareMessage(e);N.send(this.dataChannel,t,this.maxMessageSize)},new((n=void 0)||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}));var e,t,n,r}}var R=n(9255),P=n(2007),C=n(6982),L=n(2626);class N{static init(){N.initialised||(N.initialised=!0)}static initSignaler(e,t,n,r,i,o){const a=P.$.extract(C._.active(),o),s=R.K.getTracer("P2PManager").startSpan("P2PManager.initSignaler",{attributes:{[this.traceAttr("channel_name")]:t,[this.traceAttr("peer_id")]:r,[this.traceAttr("remote_peer_id")]:n}},a);if(N.iceServers=i,!N.signalers[t]||["closed","failed"].includes(N.signalers[t].client.connection.state)){const n=new E.Signaler(e);N.signalers[t]=n,n.client.connect(),n.client.connection.once("closed",(()=>{s.setStatus({code:L.s.ERROR,message:"signaler client 'closed' event"}),s.end(),delete N.signalers[t]})),n.client.connection.once("failed",(e=>{delete N.signalers[t],s.setStatus({code:L.s.ERROR,message:"signaler client 'failed' event"}),s.end(),console.error("signaler error",e)})),n.client.connection.on("failed",(e=>{delete N.signalers[t],s.setStatus({code:L.s.ERROR,message:"signaler client 'failed' event"}),s.end(),console.error("signaler error",e)}))}else s.addEvent("signaler exists for this session, not creating a new one");const A=N.signalers[t].channel(t);A.presence.enter(),N.channels[n]=t,A.subscribe(E.P2P_CONNECT_MESSAGE,(e=>{var t,n;if((null===(t=e.data)||void 0===t?void 0:t.receiver)!==r)return void s.addEvent("p2p 'connect' message received for a different peer , ignoring",{recipient:null===(n=e.data)||void 0===n?void 0:n.receiver});s.addEvent("p2p 'connect' message received");const i=N.getMessageSender(e),o=N.connect(A,i,e);o.pc.addEventListener("datachannel",(e=>{N.receiveDataChannel(e.channel,o,i),s.addEvent("datachannel active"),s.end()}))})),A.subscribe("disconnect",(e=>{var t;if((null===(t=e.data)||void 0===t?void 0:t.receiver)!==r)return;const n=N.getMessageSender(e);N.disconnect(n),N.closeChannelsWithPeer(n)}))}static tearDown(e){return t=this,n=void 0,i=function*(){N.disconnect(e),N.disconnectSnapshotStreamer(e),N.disconnectTabStreamer(e)},new((r=void 0)||(r=Promise))((function(e,o){function a(e){try{A(i.next(e))}catch(e){o(e)}}function s(e){try{A(i.throw(e))}catch(e){o(e)}}function A(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r((function(e){e(n)}))).then(a,s)}A((i=i.apply(t,n||[])).next())}));var t,n,r,i}static receiveDataChannel(e,t,n){var r,i,o,a;const s=e.label;"main"===s&&(N.streamers[n]=new j(e,null!==(i=null===(r=t.pc.sctp)||void 0===r?void 0:r.maxMessageSize)&&void 0!==i?i:0),N.streamers[n].startStreaming()),"control"===s&&(e.addEventListener("message",(e=>{const t=JSON.parse(e.data),r=t.windowId,i=t.tabId;N.streamers[n]&&N.streamers[n].switchTab(i),N.tabStreamers[n]&&N.tabStreamers[n].setWindow(r)})),N.tabStreamers[n]=new O(e,n,null!==(a=null===(o=t.pc.sctp)||void 0===o?void 0:o.maxMessageSize)&&void 0!==a?a:0),N.tabStreamers[n].startStreaming()),e.addEventListener("close",(()=>{"main"===s&&N.disconnectSnapshotStreamer(n),"control"===s&&N.disconnectTabStreamer(n),N.disconnect(n),N.closeChannelsWithPeer(n)}))}static connect(e,t,n){N.connections[t]&&N.disconnect(t);const r=new E.PeerConnection(e,N.iceServers,!0);return r.connect(t,n),N.connections[t]=r,r.pc.addEventListener("connectionstatechange",(()=>{switch(r.pc.connectionState){case"failed":case"closed":N.disconnect(t),N.disconnectSnapshotStreamer(t),N.disconnectTabStreamer(t)}})),r}static close(e){for(const[t,n]of Object.entries(N.channels))n===e&&N.closeChannelsWithPeer(t)}static disconnect(e){N.connections[e]&&(N.connections[e].close(),delete N.connections[e])}static disconnectTabStreamer(e){N.tabStreamers[e]&&(N.tabStreamers[e].endStreaming(),delete N.tabStreamers[e])}static disconnectSnapshotStreamer(e){N.streamers[e]&&(N.streamers[e].endStreaming(),delete N.streamers[e])}static closeChannelsWithPeer(e){if(N.channels[e]){const t=N.channels[e],n=N.signalers[t].channel(t);n.unsubscribe(),n.detach(),delete N.channels[e];const r=[];for(const[e,n]of Object.entries(N.channels))n===t&&r.push(e);0===r.length&&N.signalers[t]&&"connected"===N.signalers[t].client.connection.state&&N.signalers[t].client.close()}}static setCloseTimeouts(e,t,n){if(t)for(const r of n){const n=(0,y.qJ)(e,r);if(n>Date.now()/1e3){const e=`${t}/${r.group.replace(/[^a-z0-9]/gi,"-")}`;clearTimeout(N.closeTimeouts[e]),N.closeTimeouts[e]=setTimeout((()=>{N.close(e)}),1e3*n-Date.now())}}}static getMessageSender(e){return e.clientId}static prepareMessage(e){const t=JSON.stringify(Object.assign(Object.assign({},e),{timestamp:(new Date).getTime()}));return new Uint8Array([...N.encoder.encode(t),N.terminatorCharCode,N.terminatorCharCode])}static send(e,t,n){let r=0;for(;r=this.nMaxListEntries)for(let e=0;e{e()})),this.cachedCallbacks=[]}))}static getFallbackDomainNumber(){return _(this,void 0,void 0,(function*(){return yield this.waitTillDomainsAreLoaded(),this.fallbackDomains?this.fallbackDomains.size:-1}))}static domainIsBlocked(e){var t;return _(this,void 0,void 0,(function*(){return yield this.waitTillDomainsAreLoaded(),null===(t=this.fallbackDomains)||void 0===t?void 0:t.has(e)}))}static waitTillDomainsAreLoaded(){return _(this,void 0,void 0,(function*(){return new Promise((e=>{!0===this.init?e():this.cachedCallbacks.push((()=>{e()}))}))}))}}W.cachedCallbacks=[],W.init=!1;var z,D,F,q=n(6526),V=n.n(q),X=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))},J=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class Z{static init(e=!1,t){Z.initialised||(Z.initialised=!0,l("Initiating the offscreen doc..."),Z.isMv2=e,Z.registerEventHandlers(),Z.sendMessageCallback=t,N.init(),W.loadBlockedDomains())}static getOffscreenConfig(){return Z.offscreenConfig}static offscreenConfigUpdated(e,t){S.reconnectToEventSourceIfneeded(e,t),Z.onConfigUpdateEventHandler&&Z.onConfigUpdateEventHandler(e,t)}static registerConfigUpdateEventHandler(e){Z.onConfigUpdateEventHandler=e}static sendLocalIpMessage(e){Z.sendMesage({type:o.lA.UtilLocalIpUpdated,localIpAddress:e})}static registerEventHandlers(){Z.isMv2||chrome.runtime.onMessage.addListener(((e,t,n)=>Z.handleMesage(e,n)))}static getUserIP(){Z.localIpPeerConnection&&"closed"!==Z.localIpPeerConnection.iceConnectionState||(Z.localIpPeerConnection&&(Z.localIpPeerConnection.onicecandidate&&(Z.localIpPeerConnection.onicecandidate=null),Z.localIpPeerConnection=void 0),Z.localIpPeerConnection=(e=>{const t=new(window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection)({iceServers:[]}),n=/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;return t.createDataChannel(""),t.createOffer().then((function(r){var i;null===(i=r.sdp)||void 0===i||i.split("\n").forEach((function(t){if(t.indexOf("candidate")<0)return;const r=t.match(n);let i=r?r[0]:"0.0.0.0";i.startsWith("100.115.92")&&(i="10.255.255.254"),e(i)})),null==t||t.setLocalDescription(r)})).catch((function(e){(0,f.DP)(e)})),t.onicecandidate=function(t){if(t&&t.candidate&&t.candidate.candidate&&t.candidate.candidate.match(n)){const r=t.candidate.candidate.match(n);let i=r?r[0]:"0.0.0.0";i.startsWith("100.115.92")&&(i="10.255.255.254"),e(i)}},t.onsignalingstatechange=()=>{"closed"===t.connectionState&&Z.getUserIP()},t})(Z.sendLocalIpMessage)),Z.routineIPchangeCheck()}static routineIPchangeCheck(){Z.ipChangeRoutineTimeoutId||(Z.ipChangeRoutineTimeoutId=setTimeout((()=>{Z.getUserIP(),Z.ipChangeRoutineTimeoutId=null}),3e5))}static handleMesage(e,t){let n=!1;switch(e.type){case o.lA.InitOffscreenDocument:Z.init();break;case o.lA.InitOffscreenOpenTelemetry:!function(e){X(this,void 0,void 0,(function*(){try{const{isDev:t,authToken:n,version:r,config:i}=e,o=()=>X(this,void 0,void 0,(function*(){return(yield Z.getAuthToken(!0))||""}));if(!i)return void d("OpenTelemetry offscreen initialization aborted as otel config is missing (expected if in companion mode)");R.K.setup({isDev:t,extensionVersion:r,authToken:n,authTokenRefreshFn:o,env:"offscreen",config:i})}catch(e){c("Failed to initialize OpenTelemetry offscreen",null==e?void 0:e.message),(0,f.DP)(e)}}))}(e.data);break;case o.lA.RegisterExtension:w.registerExtension().then(t),n=!0;break;case o.lA.UnregisterExtension:w.unregisterExtension();break;case o.lA.LogMessage:I.processLogMessage(e.msg,e.logLevel);break;case o.lA.UploadLogData:(()=>{J(this,void 0,void 0,(function*(){const n=yield I.uploadLogData(e.data);t(n)}))})(),n=!0;break;case o.lA.IpAddressChangeRoutine:Z.getUserIP();break;case o.lA.UpdateOffscreenConfig:{const t=Z.offscreenConfig;Z.offscreenConfig=e.config,Z.offscreenConfigUpdated(t,e.config);break}case o.lA.GetBrowserDetails:t(V().getParser(window.navigator.userAgent).getResult());break;case o.lA.CheckIfDomainIsBlocked:(()=>{J(this,void 0,void 0,(function*(){const n=yield W.domainIsBlocked(e.domain);t(n)}))})(),n=!0;break;case o.lA.ExtractFallbackDomains:(()=>{J(this,void 0,void 0,(function*(){const e=yield W.getFallbackDomainNumber();t(e)}))})(),n=!0;break;case o.lA.P2PInitSignaler:N.initSignaler(e.signalToken,e.channelName,e.remotePeerId,e.peerId,e.iceServers,e.traceContext);break;case o.lA.P2PSetCloseTimeouts:N.setCloseTimeouts(e.timezone,e.deviceChannelId,e.activeConfigurations);break;case o.lA.UtilResizeAndCompressImage:(()=>{J(this,void 0,void 0,(function*(){const n=yield(r=e.image,i=e.maxWidth,o=e.compressQuality,new Promise((e=>{const t=new Image;t.onload=function(){const n=i,r=document.createElement("canvas"),a=r.getContext("2d");r.width=t.width,r.height=t.height;const s=t.width>n?n:t.width,A=s*(t.height/t.width);r.width=s,r.height=A,null==a||a.drawImage(t,0,0,s,A),e(o&&o<1?r.toDataURL("image/jpeg",o):r.toDataURL())},t.src=r})));var r,i,o;t({processedImage:n})}))})(),n=!0;break;case o.lA.BroadcastScheduleTime:Z.isMv2&&setTimeout((()=>{Z.sendMesage({type:o.lA.BroadcastWakeUpCall})}),e.timeInMs)}return Z.isMv2&&!n&&t(),n}static initAutoAuth(){return J(this,void 0,void 0,(function*(){yield Z.sendMesage({type:o.lA.InitAutoAuth})}))}static getAuthCookie(){return J(this,void 0,void 0,(function*(){return Z.sendMesage({type:o.lA.GetAuthCookie})}))}static getAuthToken(e=!1){return J(this,void 0,void 0,(function*(){return Z.sendMesage({type:o.lA.GetAuthToken,refreshToken:e})}))}static sendMesage(e){return J(this,void 0,void 0,(function*(){return Z.isMv2?yield new Promise((t=>{Z.sendMessageCallback&&Z.sendMessageCallback(e,(e=>t(e)))})):yield chrome.runtime.sendMessage(e)}))}}Z.initialised=!1,Z.isMv2=!1,Z.ipChangeRoutineTimeoutId=null,Z.registerConfigUpdateEventHandler(((e,t)=>{if((null==t?void 0:t.extensionVersion)===(null==e?void 0:e.extensionVersion)&&(null==t?void 0:t.extensionName)===(null==e?void 0:e.extensionName))return;const n={extensionName:null==t?void 0:t.extensionName,extensionVersion:null==t?void 0:t.extensionVersion,buildENV:"production"},r={userIdentifier:null==t?void 0:t.user,applianceId:null==t?void 0:t.applianceId};(0,f.Sw)(n),(0,f.Rt)(r)})),(null===(z=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===z?void 0:z.getManifest)&&2===(null===(F=null===(D=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===D?void 0:D.getManifest())||void 0===F?void 0:F.manifest_version)||Z.init()},2634:()=>{},6588:(e,t,n)=>{"use strict";n.d(t,{j:()=>r});const r=n(8597).O},8246:(e,t,n)=>{"use strict";n.d(t,{y:()=>R});var r=n(4411);var i=n(8125),o=n(7436),a=n(6591),s=n(9024),A=n(572),c=n(3986),u=n(486),l=n(6721);function d(e,t,n){const r=[{type:"client_report"},{timestamp:n||(0,l.lu)(),discarded_events:e}];return(0,s.h4)(t?{dsn:t}:{},[r])}var p=n(1380),h=n(8136),f=n(1828),m=n(9272),g=n(7986),y=n(4773);const v="Not capturing exception because it's already been captured.";class b{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=(0,a.AD)(e.dsn):o.T&&f.vF.warn("No DSN provided, client will not send events."),this._dsn){const o=(t=this._dsn,n=e.tunnel,i=e._metadata?e._metadata.sdk:void 0,n||`${function(e){return`${function(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}(e)}${e.projectId}/envelope/`}(t)}?${function(e,t){return(0,r.u4)({sentry_key:e.publicKey,sentry_version:"7",...t&&{sentry_client:`${t.name}/${t.version}`}})}(t,i)}`);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:o})}var t,n,i}captureException(e,t,n){const r=(0,m.eJ)();if((0,m.GR)(e))return o.T&&f.vF.log(v),r;const i={event_id:r,...t};return this._process(this.eventFromException(e,i).then((e=>this._captureEvent(e,i,n)))),i.event_id}captureMessage(e,t,n,r){const i={event_id:(0,m.eJ)(),...n},o=(0,h.NF)(e)?e:String(e),a=(0,h.sO)(e)?this.eventFromMessage(o,t,i):this.eventFromException(e,i);return this._process(a.then((e=>this._captureEvent(e,i,r)))),i.event_id}captureEvent(e,t,n){const r=(0,m.eJ)();if(t&&t.originalException&&(0,m.GR)(t.originalException))return o.T&&f.vF.log(v),r;const i={event_id:r,...t},a=(e.sdkProcessingMetadata||{}).capturedSpanScope;return this._process(this._captureEvent(e,i,a||n)),i.event_id}captureSession(e){"string"!=typeof e.release?o.T&&f.vF.warn("Discarded session because of missing or non-string release"):(this.sendSession(e),(0,c.qO)(e,{init:!1}))}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e))))):(0,g.XW)(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,this.emit("close"),e)))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some((e=>{let{name:t}=e;return t.startsWith("Spotlight")})))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];(0,A.qm)(this,e,this._integrations),t||(0,A.lc)(this,[e])}sendEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.emit("beforeSendEvent",e,t);let n=function(e,t,n,r){const i=(0,s.Cj)(n),o=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const a=(0,s.n2)(e,i,r,t);delete e.sdkProcessingMetadata;const A=[{type:o},e];return(0,s.h4)(a,[A])}(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=(0,s.W3)(n,(0,s.bm)(e));const r=this.sendEnvelope(n);r&&r.then((t=>this.emit("afterSendEvent",e,t)),null)}sendSession(e){const t=function(e,t,n,r){const i=(0,s.Cj)(n),o={sent_at:(new Date).toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:(0,a.SB)(t)}},A="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return(0,s.h4)(o,[A])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(t)}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const r="number"==typeof n?n:1,i=`${e}:${t}`;o.T&&f.vF.log(`Recording outcome: "${i}"${r>1?` (${r} times)`:""}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(e,t){const n=this._hooks[e]=this._hooks[e]||[];return n.push(t),()=>{const e=n.indexOf(t);e>-1&&n.splice(e,1)}}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;re(...n)))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,(e=>(o.T&&f.vF.error("Error while sending envelope:",e),e))):(o.T&&f.vF.error("Transport disabled"),(0,g.XW)({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=(0,A.P$)(this,e),(0,A.lc)(this,e)}_updateSessionFromEvent(e,t){let n=!1,r=!1;const i=t.exception&&t.exception.values;if(i){r=!0;for(const e of i){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const o="ok"===e.status;(o&&0===e.errors||o&&n)&&((0,c.qO)(e,{...n&&{status:"crashed"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new g.T2((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(0,i.rm)();const a=this.getOptions(),s=Object.keys(this._integrations);return!t.integrations&&s.length>0&&(t.integrations=s),this.emit("preprocessEvent",e,t),e.type||o.setLastEventId(e.event_id||t.event_id),(0,y.mG)(a,e,t,n,this,o).then((e=>{if(null===e)return e;const t={...o.getPropagationContext(),...n?n.getPropagationContext():void 0};if((!e.contexts||!e.contexts.trace)&&t){const{traceId:n,spanId:i,parentSpanId:o,dsc:a}=t;e.contexts={trace:(0,r.Ce)({trace_id:n,span_id:i,parent_span_id:o}),...e.contexts};const s=a||(0,u.lF)(n,this);e.sdkProcessingMetadata={dynamicSamplingContext:s,...e.sdkProcessingMetadata}}return e}))}_captureEvent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{if(o.T){const t=e;"log"===t.logLevel?f.vF.log(t.message):f.vF.warn(t)}}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:i}=r,a=S(e),s=k(e),A=e.type||"error",c=`before send for type \`${A}\``,u=void 0===i?void 0:function(e){if("boolean"==typeof e)return Number(e);const t="string"==typeof e?parseFloat(e):e;if(!("number"!=typeof t||isNaN(t)||t<0||t>1))return t;o.T&&f.vF.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`)}(i);if(s&&"number"==typeof u&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error",e),(0,g.xg)(new p.U(`Discarding event because it's not included in the random sample (sampling rate = ${i})`,"log"));const l="replay_event"===A?"replay":A,d=(e.sdkProcessingMetadata||{}).capturedSpanIsolationScope;return this._prepareEvent(e,t,n,d).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",l,e),new p.U("An event processor returned `null`, will not send event.","log");if(t.data&&!0===t.data.__sentry__)return n;const i=function(e,t,n,r){const{beforeSend:i,beforeSendTransaction:o,beforeSendSpan:a}=t;if(k(n)&&i)return i(n,r);if(S(n)){if(n.spans&&a){const t=[];for(const r of n.spans){const n=a(r);n?t.push(n):e.recordDroppedEvent("before_send","span")}n.spans=t}if(o){if(n.spans){const e=n.spans.length;n.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return o(n,r)}}return n}(this,r,n,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if((0,h.Qg)(e))return e.then((e=>{if(!(0,h.Qd)(e)&&null!==e)throw new p.U(n);return e}),(e=>{throw new p.U(`${t} rejected with ${e}`)}));if(!(0,h.Qd)(e)&&null!==e)throw new p.U(n);return e}(i,c)})).then((r=>{if(null===r){if(this.recordDroppedEvent("before_send",l,e),a){const t=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",t)}throw new p.U(`${c} returned \`null\`, will not send event.`,"log")}const i=n&&n.getSession();if(!a&&i&&this._updateSessionFromEvent(i,r),a){const e=(r.sdkProcessingMetadata&&r.sdkProcessingMetadata.spanCountBeforeProcessing||0)-(r.spans?r.spans.length:0);e>0&&this.recordDroppedEvent("before_send","span",e)}const o=r.transaction_info;if(a&&o&&r.transaction!==e.transaction){const e="custom";r.transaction_info={...o,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof p.U)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new p.U(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map((e=>{let[t,n]=e;const[r,i]=t.split(":");return{reason:r,category:i,quantity:n}}))}_flushOutcomes(){o.T&&f.vF.log("Flushing outcomes...");const e=this._clearOutcomes();if(0===e.length)return void(o.T&&f.vF.log("No outcomes to send"));if(!this._dsn)return void(o.T&&f.vF.log("No dsn provided, will not send outcomes"));o.T&&f.vF.log("Sending outcomes:",e);const t=d(e,this._options.tunnel&&(0,a.SB)(this._dsn));this.sendEnvelope(t)}}function k(e){return void 0===e.type}function S(e){return"transaction"===e.type}var T=n(5522),w=n(3705),E=n(5348),j=n(1746);function O(e,t){let{metadata:n,tunnel:r,dsn:i}=t;const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...n&&n.sdk&&{sdk:{name:n.sdk.name,version:n.sdk.version}},...!!r&&!!i&&{dsn:(0,a.SB)(i)}},A=function(e){return[{type:"user_report"},e]}(e);return(0,s.h4)(o,[A])}class R extends b{constructor(e){const t={parentSpanIsAlwaysRootSpan:!0,...e};!function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[t],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"npm";const i=e._metadata||{};i.sdk||(i.sdk={name:`sentry.javascript.${t}`,packages:n.map((e=>({name:`${r}:@sentry/${e}`,version:T.M}))),version:T.M}),e._metadata=i}(t,"browser",["browser"],j.jf.SENTRY_SDK_SOURCE||"npm"),super(t),t.sendClientReports&&j.jf.document&&j.jf.document.addEventListener("visibilitychange",(()=>{"hidden"===j.jf.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return(0,E.u)(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",n=arguments.length>2?arguments[2]:void 0;return(0,E.qv)(this._options.stackParser,e,t,n,this._options.attachStacktrace)}captureUserFeedback(e){if(!this._isEnabled())return void(w.T&&f.vF.warn("SDK not enabled, will not capture user feedback."));const t=O(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this.sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n)}}},3705:(e,t,n)=>{"use strict";n.d(t,{T:()=>r});const r="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},5348:(e,t,n)=>{"use strict";n.d(t,{H7:()=>y,K8:()=>c,qv:()=>g,u:()=>m});var r=n(8125),i=n(7047),o=n(8136),a=n(9272),s=n(7986),A=n(4411);function c(e,t){const n=l(e,t),r={type:h(t),value:f(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function u(e,t){return{exception:{values:[c(e,t)]}}}function l(e,t){const n=t.stacktrace||t.stack||"",r=function(e){return e&&d.test(e.message)?1:0}(t),i=function(e){return"number"==typeof e.framesToPop?e.framesToPop:0}(t);try{return e(n,r,i)}catch(e){}return[]}const d=/Minified React error #\d+;/i;function p(e){return"undefined"!=typeof WebAssembly&&void 0!==WebAssembly.Exception&&e instanceof WebAssembly.Exception}function h(e){const t=e&&e.name;return!t&&p(e)?e.message&&Array.isArray(e.message)&&2==e.message.length?e.message[0]:"WebAssembly.Exception":t}function f(e){const t=e&&e.message;return t?t.error&&"string"==typeof t.error.message?t.error.message:p(e)&&Array.isArray(e.message)&&2==e.message.length?e.message[1]:t:"No error message"}function m(e,t,n,r){const i=y(e,t,n&&n.syntheticException||void 0,r);return(0,a.M6)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,s.XW)(i)}function g(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"info",r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;const o=v(e,t,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),(0,s.XW)(o)}function y(e,t,n,s,A){let d;if((0,o.T2)(t)&&t.error)return u(e,t.error);if((0,o.BD)(t)||(0,o.W6)(t)){const r=t;if("stack"in t)d=u(e,t);else{const t=r.name||((0,o.BD)(r)?"DOMError":"DOMException"),i=r.message?`${t}: ${r.message}`:t;d=v(e,i,n,s),(0,a.gO)(d,i)}return"code"in r&&(d.tags={...d.tags,"DOMException.code":`${r.code}`}),d}return(0,o.bJ)(t)?u(e,t):(0,o.Qd)(t)||(0,o.xH)(t)?(d=function(e,t,n,a){const s=(0,r.KU)(),A=s&&s.getOptions().normalizeDepth,u=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}}(t),d={__serialized__:(0,i.cd)(t,A)};if(u)return{exception:{values:[c(e,u)]},extra:d};const p={exception:{values:[{type:(0,o.xH)(t)?t.constructor.name:a?"UnhandledRejection":"Error",value:b(t,{isUnhandledRejection:a})}]},extra:d};if(n){const t=l(e,n);t.length&&(p.exception.values[0].stacktrace={frames:t})}return p}(e,t,n,A),(0,a.M6)(d,{synthetic:!0}),d):(d=v(e,t,n,s),(0,a.gO)(d,`${t}`,void 0),(0,a.M6)(d,{synthetic:!0}),d)}function v(e,t,n,r){const i={};if(r&&n){const r=l(e,n);r.length&&(i.exception={values:[{value:t,stacktrace:{frames:r}}]})}if((0,o.NF)(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return i.logentry={message:e,params:n},i}return i.message=t,i}function b(e,t){let{isUnhandledRejection:n}=t;const r=(0,A.HF)(e),i=n?"promise rejection":"exception";return(0,o.T2)(e)?`Event \`ErrorEvent\` captured as ${i} with message \`${e.message}\``:(0,o.xH)(e)?`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\` (type=${e.type}) captured as ${i}`:`Object captured as ${i} with keys: ${r}`}},1746:(e,t,n)=>{"use strict";n.d(t,{LV:()=>l,jN:()=>u,jf:()=>A});var r=n(8597),i=n(4411),o=n(8125),a=n(9272),s=n(77);const A=r.O;let c=0;function u(){return c>0}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("function"!=typeof e)return e;try{const t=e.__sentry_wrapped__;if(t)return"function"==typeof t?t:e;if((0,i.sp)(e))return e}catch(t){return e}const n=function(){const n=Array.prototype.slice.call(arguments);try{const r=n.map((e=>l(e,t)));return e.apply(this,r)}catch(e){throw c++,setTimeout((()=>{c--})),(0,o.v4)((r=>{r.addEventProcessor((e=>(t.mechanism&&((0,a.gO)(e,void 0,void 0),(0,a.M6)(e,t.mechanism)),e.extra={...e.extra,arguments:n},e))),(0,s.Cp)(e)})),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}catch(e){}(0,i.pO)(n,e),(0,i.my)(e,"__sentry_wrapped__",n);try{Object.getOwnPropertyDescriptor(n,"name").configurable&&Object.defineProperty(n,"name",{get:()=>e.name})}catch(e){}return n}},7414:(e,t,n)=>{"use strict";n.d(t,{nI:()=>Ee,Ts:()=>je});var r=n(7436),i=n(572),o=n(1828),a=n(9272),s=n(4805);const A=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,"undefined is not an object (evaluating 'a.L')",'can\'t redefine non-configurable property "solana"',"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler"],c=(0,i._C)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:"InboundFilters",processEvent(t,n,i){const c=i.getOptions(),l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:A],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(e,c);return function(e,t){return t.ignoreInternal&&function(e){try{return"SentryError"===e.exception.values[0].type}catch(e){}return!1}(e)?(r.T&&o.vF.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,a.$X)(e)}`),!0):function(e,t){return!(e.type||!t||!t.length)&&function(e){const t=[];let n;e.message&&t.push(e.message);try{n=e.exception.values[e.exception.values.length-1]}catch(e){}return n&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`)),t}(e).some((e=>(0,s.Xr)(e,t)))}(e,t.ignoreErrors)?(r.T&&o.vF.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,a.$X)(e)}`),!0):function(e){return!e.type&&(!(!e.exception||!e.exception.values||0===e.exception.values.length)&&(!e.message&&!e.exception.values.some((e=>e.stacktrace||e.type&&"Error"!==e.type||e.value))))}(e)?(r.T&&o.vF.warn(`Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${(0,a.$X)(e)}`),!0):function(e,t){if("transaction"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&(0,s.Xr)(n,t)}(e,t.ignoreTransactions)?(r.T&&o.vF.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${(0,a.$X)(e)}`),!0):function(e,t){if(!t||!t.length)return!1;const n=u(e);return!!n&&(0,s.Xr)(n,t)}(e,t.denyUrls)?(r.T&&o.vF.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,a.$X)(e)}.\nUrl: ${u(e)}`),!0):!function(e,t){if(!t||!t.length)return!0;const n=u(e);return!n||(0,s.Xr)(n,t)}(e,t.allowUrls)&&(r.T&&o.vF.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,a.$X)(e)}.\nUrl: ${u(e)}`),!0)}(t,l)?null:t}}}));function u(e){try{let t;try{t=e.exception.values[0].stacktrace.frames}catch(e){}return t?function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&""!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(t):null}catch(t){return r.T&&o.vF.error(`Cannot extract url for event ${(0,a.$X)(e)}`),null}}var l=n(8125),d=n(4411);let p;const h=new WeakMap,f=(0,i._C)((()=>({name:"FunctionToString",setupOnce(){p=Function.prototype.toString;try{Function.prototype.toString=function(){const e=(0,d.sp)(this),t=h.has((0,l.KU)())&&void 0!==e?e:this;for(var n=arguments.length,r=new Array(n),i=0;i{let e;return{name:"Dedupe",processEvent(t){if(t.type)return t;try{if(function(e,t){return!!t&&(!!function(e,t){const n=e.message,r=t.message;return!(!n&&!r)&&(!(n&&!r||!n&&r)&&(n===r&&(!!v(e,t)&&!!y(e,t))))}(e,t)||!!function(e,t){const n=b(t),r=b(e);return!(!n||!r)&&(n.type===r.type&&n.value===r.value&&(!!v(e,t)&&!!y(e,t)))}(e,t))}(t,e))return r.T&&o.vF.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(e){}return e=t}}}));function y(e,t){let n=(0,m.RV)(e),r=(0,m.RV)(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let e=0;e2?n[2]:void 0;if(i){const e=N,t=String(i);N=t,R("history",{from:e,to:t})}return e.apply(this,n)}}L.j.onpopstate=function(){const t=L.j.location.href,n=N;if(N=t,R("history",{from:n,to:t}),e)try{for(var r=arguments.length,i=new Array(r),o=0;o{const n=L.j[t]&&L.j[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,d.GS)(n,"addEventListener",(function(t){return function(n,r,i){if("click"===n||"keypress"==n)try{const r=this,o=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},a=o[n]=o[n]||{refCount:0};if(!a.handler){const r=q(e);a.handler=r,t.call(this,n,r,i)}a.refCount++}catch(e){}return t.call(this,n,r,i)}})),(0,d.GS)(n,"removeEventListener",(function(e){return function(t,n,r){if("click"===t||"keypress"==t)try{const n=this,i=n.__sentry_instrumentation_handlers__||{},o=i[t];o&&(o.refCount--,o.refCount<=0&&(e.call(this,t,o.handler,r),o.handler=void 0,delete i[t]),0===Object.keys(i).length&&delete n.__sentry_instrumentation_handlers__)}catch(e){}return e.call(this,t,n,r)}})))}))}function q(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n=>{if(!n||n._sentryCaptured)return;const r=function(e){try{return e.target}catch(e){return null}}(n);if(function(e,t){return"keypress"===e&&(!t||!t.tagName||"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&!t.isContentEditable)}(n.type,r))return;(0,d.my)(n,"_sentryCaptured",!0),r&&!r._sentryId&&(0,d.my)(r,"_sentryId",(0,a.eJ)());const i="keypress"===n.type?"input":n.type;(function(e){if(e.type!==z)return!1;try{if(!e.target||e.target._sentryId!==D)return!1}catch(e){}return!0})(n)||(e({event:n,name:i,global:t}),z=n.type,D=r?r._sentryId:void 0),clearTimeout(W),W=L.j.setTimeout((()=>{D=void 0,z=void 0}),1e3)}}var V=n(6721),X=n(8136);const J="__sentry_xhr_v3__";function Z(){if(!L.j.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const r=1e3*(0,V.zf)(),i=(0,X.Kg)(n[0])?n[0].toUpperCase():void 0,o=function(e){if((0,X.Kg)(e))return e;try{return e.toString()}catch(e){}}(n[1]);if(!i||!o)return e.apply(t,n);t[J]={method:i,url:o,request_headers:{}},"POST"===i&&o.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const a=()=>{const e=t[J];if(e&&4===t.readyState){try{e.status_code=t.status}catch(e){}R("xhr",{endTimestamp:1e3*(0,V.zf)(),startTimestamp:r,xhr:t})}};return"onreadystatechange"in t&&"function"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(a(),e.apply(t,n))}):t.addEventListener("readystatechange",a),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[r,i]=n,o=t[J];return o&&(0,X.Kg)(r)&&(0,X.Kg)(i)&&(o.request_headers[r.toLowerCase()]=i),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const r=t[J];return r?(void 0!==n[0]&&(r.body=n[0]),R("xhr",{startTimestamp:1e3*(0,V.zf)(),xhr:t}),e.apply(t,n)):e.apply(t,n)}})}function K(){"console"in P.O&&o.Ow.forEach((function(e){e in P.O.console&&(0,d.GS)(P.O.console,e,(function(t){return o.Z9[e]=t,function(){for(var t=arguments.length,n=new Array(t),r=0;ri(s,t))):s;null!==A&&(n.emit&&n.emit("beforeAddBreadcrumb",A,t),r.addBreadcrumb(A,a))}var Q=n(7446);const $=["fatal","error","warning","log","info","debug"];function ee(e){return void 0===e?void 0:e>=400&&e<500?"warning":e>=500?"error":void 0}function te(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}const ne=(0,i._C)((function(){const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}};return{name:"Breadcrumbs",setup(t){var n;e.console&&function(e){const t="console";j(t,e),O(t,K)}(function(e){return function(t){if((0,l.KU)()!==e)return;const n={category:"console",data:{arguments:t.args,logger:"console"},level:(r=t.level,"warn"===r?"warning":$.includes(r)?r:"log"),message:(0,s.gt)(t.args," ")};var r;if("assert"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${(0,s.gt)(t.args.slice(1)," ")||"console.assert"}`,n.data.arguments=t.args.slice(1)}Y(n,{input:t.args,level:t.level})}}(t)),e.dom&&(n=function(e,t){return function(n){if((0,l.KU)()!==e)return;let r,i,a="object"==typeof t?t.serializeAttribute:void 0,s="object"==typeof t&&"number"==typeof t.maxStringLength?t.maxStringLength:void 0;s&&s>1024&&(I.T&&o.vF.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${s} was configured. Sentry will use 1024 instead.`),s=1024),"string"==typeof a&&(a=[a]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;r=(0,Q.Hd)(t,{keyAttrs:a,maxStringLength:s}),i=(0,Q.xE)(t)}catch(e){r=""}if(0===r.length)return;const A={category:`ui.${n.name}`,message:r};i&&(A.data={"ui.component_name":i}),Y(A,{event:n.event,name:n.name,global:n.global})}}(t,e.dom),j("dom",n),O("dom",F)),e.xhr&&function(e){j("xhr",e),O("xhr",Z)}(function(e){return function(t){if((0,l.KU)()!==e)return;const{startTimestamp:n,endTimestamp:r}=t,i=t.xhr[J];if(!n||!r||!i)return;const{method:o,url:a,status_code:s,body:A}=i,c={method:o,url:a,status_code:s},u={xhr:t.xhr,input:A,startTimestamp:n,endTimestamp:r};Y({category:"xhr",data:c,type:"http",level:ee(s)},u)}}(t)),e.fetch&&function(e){const t="fetch";j(t,e),O(t,(()=>function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&!(0,k.m7)()||(0,d.GS)(P.O,"fetch",(function(t){return function(){for(var n=arguments.length,r=new Array(n),i=0;i(e?e(t):R("fetch",{...s,endTimestamp:1e3*(0,V.zf)(),response:t}),t)),(e=>{throw R("fetch",{...s,endTimestamp:1e3*(0,V.zf)(),error:e}),(0,X.bJ)(e)&&void 0===e.stack&&(e.stack=A,(0,d.my)(e,"framesToPop",1)),e}))}}))}(void 0,undefined)))}(function(e){return function(t){if((0,l.KU)()!==e)return;const{startTimestamp:n,endTimestamp:r}=t;if(r&&(!t.fetchData.url.match(/sentry_key/)||"POST"!==t.fetchData.method))if(t.error)Y({category:"fetch",data:t.fetchData,level:"error",type:"http"},{data:t.error,input:t.args,startTimestamp:n,endTimestamp:r});else{const e=t.response,i={...t.fetchData,status_code:e&&e.status},o={input:t.args,response:e,startTimestamp:n,endTimestamp:r};Y({category:"fetch",data:i,type:"http",level:ee(i.status_code)},o)}}}(t)),e.history&&x(function(e){return function(t){if((0,l.KU)()!==e)return;let n=t.from,r=t.to;const i=te(_.jf.location.href);let o=n?te(n):void 0;const a=te(r);o&&o.path||(o=i),i.protocol===a.protocol&&i.host===a.host&&(r=a.relative),i.protocol===o.protocol&&i.host===o.host&&(n=o.relative),Y({category:"navigation",data:{from:n,to:r}})}}(t)),e.sentry&&t.on("beforeSendEvent",function(e){return function(t){(0,l.KU)()===e&&Y({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:(0,a.$X)(t)},{event:t})}}(t))}}})),re=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],ie=(0,i._C)((function(){const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}};return{name:"BrowserApiErrors",setupOnce(){e.setTimeout&&(0,d.GS)(_.jf,"setTimeout",oe),e.setInterval&&(0,d.GS)(_.jf,"setInterval",oe),e.requestAnimationFrame&&(0,d.GS)(_.jf,"requestAnimationFrame",ae),e.XMLHttpRequest&&"XMLHttpRequest"in _.jf&&(0,d.GS)(XMLHttpRequest.prototype,"send",se);const t=e.eventTarget;t&&(Array.isArray(t)?t:re).forEach(Ae)}}}));function oe(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r{e in t&&"function"==typeof t[e]&&(0,d.GS)(t,e,(function(t){const n={mechanism:{data:{function:e,handler:(0,m.qQ)(t)},handled:!1,type:"instrument"}},r=(0,d.sp)(t);return r&&(n.mechanism.data.handler=(0,m.qQ)(r)),(0,_.LV)(t,n)}))}));for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{}};return{name:"GlobalHandlers",setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(function(e){!function(){const t="error";j(t,(t=>{const{stackParser:n,attachStacktrace:r}=me();if((0,l.KU)()!==e||(0,_.jN)())return;const{msg:i,url:o,line:a,column:s,error:A}=t,c=function(e,t,n,r){const i=e.exception=e.exception||{},o=i.values=i.values||[],a=o[0]=o[0]||{},s=a.stacktrace=a.stacktrace||{},A=s.frames=s.frames||[],c=isNaN(parseInt(r,10))?void 0:r,u=isNaN(parseInt(n,10))?void 0:n,l=(0,X.Kg)(t)&&t.length>0?t:(0,Q.$N)();return 0===A.length&&A.push({colno:c,filename:l,function:m.yF,in_app:!0,lineno:u}),e}((0,pe.H7)(n,A||i,void 0,r,!1),o,a,s);c.level="error",(0,S.r)(c,{originalException:A,mechanism:{handled:!1,type:"onerror"}})})),O(t,ue)}()}(t),fe("onerror")),e.onunhandledrejection&&(function(e){!function(){const t="unhandledrejection";j(t,(t=>{const{stackParser:n,attachStacktrace:r}=me();if((0,l.KU)()!==e||(0,_.jN)())return;const i=function(e){if((0,X.sO)(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch(e){}return e}(t),o=(0,X.sO)(i)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:(0,pe.H7)(n,i,void 0,r,!0);o.level="error",(0,S.r)(o,{originalException:i,mechanism:{handled:!1,type:"onunhandledrejection"}})})),O(t,de)}()}(t),fe("onunhandledrejection"))}}}));function fe(e){I.T&&o.vF.log(`Global Handler attached: ${e}`)}function me(){const e=(0,l.KU)();return e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const ge=(0,i._C)((()=>({name:"HttpContext",preprocessEvent(e){if(!_.jf.navigator&&!_.jf.location&&!_.jf.document)return;const t=e.request&&e.request.url||_.jf.location&&_.jf.location.href,{referrer:n}=_.jf.document||{},{userAgent:r}=_.jf.navigator||{},i={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{"User-Agent":r}},o={...e.request,...t&&{url:t},headers:i};e.request=o}})));function ye(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:250,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,a=arguments.length>6?arguments[6]:void 0;if(!(o.exception&&o.exception.values&&a&&(0,X.tH)(a.originalException,Error)))return;const A=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;var c,u;A&&(o.exception.values=(c=ve(e,t,i,a.originalException,r,o.exception.values,A,0),u=n,c.map((e=>(e.value&&(e.value=(0,s.xv)(e.value,u)),e)))))}function ve(e,t,n,r,i,o,a,s){if(o.length>=n+1)return o;let A=[...o];if((0,X.tH)(r[i],Error)){be(a,s);const o=e(t,r[i]),c=A.length;ke(o,i,c,s),A=ve(e,t,n,r[i],i,[o,...A],o,c)}return Array.isArray(r.errors)&&r.errors.forEach(((r,o)=>{if((0,X.tH)(r,Error)){be(a,s);const c=e(t,r),u=A.length;ke(c,`errors[${o}]`,u,s),A=ve(e,t,n,r,i,[c,...A],c,u)}})),A}function be(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function ke(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}const Se=(0,i._C)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=e.limit||5,n=e.key||"cause";return{name:"LinkedErrors",preprocessEvent(e,r,i){const o=i.getOptions();ye(pe.K8,o.stackParser,o.maxValueLength,n,t,e,r)}}}));var Te=n(3122),we=n(6146);function Ee(e){return[c(),f(),ie(),ne(),he(),Se(),g(),ge()]}function je(){const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={defaultIntegrations:Ee(),release:"string"==typeof __SENTRY_RELEASE__?__SENTRY_RELEASE__:_.jf.SENTRY_RELEASE&&_.jf.SENTRY_RELEASE.id?_.jf.SENTRY_RELEASE.id:void 0,autoSessionTracking:!0,sendClientReports:!0};return null==e.defaultIntegrations&&delete e.defaultIntegrations,{...t,...e}}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{});if(!e.skipBrowserExtensionCheck&&function(){const e=void 0!==_.jf.window&&_.jf;if(!e)return!1;const t=e[e.chrome?"chrome":"browser"],n=t&&t.runtime&&t.runtime.id,r=_.jf.location&&_.jf.location.href||"",i=!!n&&_.jf===_.jf.top&&["chrome-extension:","moz-extension:","ms-browser-extension:","safari-web-extension:"].some((e=>r.startsWith(`${e}//`))),o=void 0!==e.nw;return!!n&&!i&&!o}())return void(0,o.pq)((()=>{console.error("[Sentry] You cannot run Sentry this way in a browser extension, check: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}));I.T&&((0,k.vm)()||o.vF.warn("No Fetch API detected. The Sentry SDK requires a Fetch API compatible environment to send events. Please add a Fetch API polyfill."));const t={...e,stackParser:(0,m.vk)(e.stackParser||Te.lG),integrations:(0,i.mH)(e),transport:e.transport||we._},n=function(e,t){!0===t.debug&&(r.T?o.vF.enable():(0,o.pq)((()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")}))),(0,l.o5)().update(t.initialScope);const n=new e(t);return function(e){(0,l.o5)().setClient(e)}(n),n.init(),n}(U.y,t);return e.autoSessionTracking&&(void 0!==_.jf.document?((0,S.J0)({ignoreDuration:!0}),(0,S.J5)(),x((e=>{let{from:t,to:n}=e;void 0!==t&&t!==n&&((0,S.J0)({ignoreDuration:!0}),(0,S.J5)())}))):I.T&&o.vF.warn("Session tracking in non-browser environment with @sentry/browser is not supported.")),n}},3122:(e,t,n)=>{"use strict";n.d(t,{lG:()=>l});var r=n(317);function i(e,t,n,i){const o={filename:e,function:""===t?r.yF:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==i&&(o.colno=i),o}const o=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,a=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,s=/\((\S*)(?::(\d+))(?::(\d+))\)/,A=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,c=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,u=[[30,e=>{const t=o.exec(e);if(t){const[,e,n,o]=t;return i(e,r.yF,+n,+o)}const n=a.exec(e);if(n){if(n[2]&&0===n[2].indexOf("eval")){const e=s.exec(n[2]);e&&(n[2]=e[1],n[3]=e[2],n[4]=e[3])}const[e,t]=d(n[1]||r.yF,n[2]);return i(t,e,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}}],[50,e=>{const t=A.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=c.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||r.yF;return[n,e]=d(n,e),i(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}]],l=(0,r.gd)(...u),d=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),i=-1!==e.indexOf("safari-web-extension");return n||i?[-1!==e.indexOf("@")?e.split("@")[0]:r.yF,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]}},6146:(e,t,n)=>{"use strict";n.d(t,{_:()=>g});var r=n(9752),i=n(1828);const o="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;var a=n(6588);const s={};function A(e){s[e]=void 0}var c=n(7986),u=n(7436),l=n(9024),d=n(1380);const p=6e4;const h=64;function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]||Promise.resolve(void 0)}return{$:t,add:function(r){if(!(void 0===e||t.lengthn(i))).then(null,(()=>n(i).then(null,(()=>{})))),i},drain:function(e){return new c.T2(((n,r)=>{let i=t.length;if(!i)return n(!0);const o=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{(0,c.XW)(e).then((()=>{--i||(clearTimeout(o),n(!0))}),r)}))}))}}}(e.bufferSize||h),r={};return{send:function(o){const a=[];if((0,l.yH)(o,((t,n)=>{const i=(0,l.zk)(n);if(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now();return function(e,t){return e[t]||e.all||0}(e,t)>n}(r,i)){const r=m(t,n);e.recordDroppedEvent("ratelimit_backoff",i,r)}else a.push(t)})),0===a.length)return(0,c.XW)({});const s=(0,l.h4)(o[0],a),A=t=>{(0,l.yH)(s,((n,r)=>{const i=m(n,r);e.recordDroppedEvent(t,(0,l.zk)(r),i)}))};return n.add((()=>t({body:(0,l.bN)(s)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&u.T&&i.vF.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=function(e,t){let{statusCode:n,headers:r}=t,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now();const o={...e},a=r&&r["x-sentry-rate-limits"],s=r&&r["retry-after"];if(a)for(const e of a.trim().split(",")){const[t,n,,,r]=e.split(":",5),a=parseInt(t,10),s=1e3*(isNaN(a)?60:a);if(n)for(const e of n.split(";"))"metric_bucket"===e&&r&&!r.split(";").includes("custom")||(o[e]=i+s);else o.all=i+s}else s?o.all=i+function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?p:r-t}(s,i):429===n&&(o.all=i+6e4);return o}(r,e),e)),(e=>{throw A("network_error"),e})))).then((e=>e),(e=>{if(e instanceof d.U)return u.T&&i.vF.error("Skipped sending event because buffer is full."),A("queue_overflow"),(0,c.XW)({});throw e}))},flush:e=>n.drain(e)}}function m(e,t){if("event"===t||"transaction"===t)return Array.isArray(e)?e[1]:void 0}function g(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){const t=s[e];if(t)return t;let n=a.j[e];if((0,r.a3)(n))return s[e]=n.bind(a.j);const A=a.j.document;if(A&&"function"==typeof A.createElement)try{const t=A.createElement("iframe");t.hidden=!0,A.head.appendChild(t);const r=t.contentWindow;r&&r[e]&&(n=r[e]),A.head.removeChild(t)}catch(t){o&&i.vF.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?s[e]=n.bind(a.j):n}("fetch"),n=0,u=0;return f(e,(function(r){const i=r.body.length;n+=i,u++;const o={body:r.body,method:"POST",referrerPolicy:"origin",headers:e.headers,keepalive:n<=6e4&&u<15,...e.fetchOptions};if(!t)return A("fetch"),(0,c.xg)("No fetch implementation available");try{return t(e.url,o).then((e=>(n-=i,u--,{statusCode:e.status,headers:{"x-sentry-rate-limits":e.headers.get("X-Sentry-Rate-Limits"),"retry-after":e.headers.get("Retry-After")}})))}catch(e){return A("fetch"),n-=i,u--,(0,c.xg)(e)}}))}},5895:(e,t,n)=>{"use strict";n.d(t,{U:()=>r});const r="production"},8125:(e,t,n)=>{"use strict";n.d(t,{KU:()=>v,o5:()=>f,m6:()=>g,rm:()=>m,v4:()=>y});var r=n(5522),i=n(8597);function o(){return a(i.O),i.O}function a(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||r.M,t[r.M]=t[r.M]||{}}var s=n(8273),A=n(8136);class c{constructor(e,t){let n,r;n=e||new s.H,r=t||new s.H,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return(0,A.Qg)(n)?n.then((e=>(this._popScope(),e)),(e=>{throw this._popScope(),e})):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1||!this._stack.pop())}}function u(){const e=a(o());return e.stack=e.stack||new c((0,i.B)("defaultCurrentScope",(()=>new s.H)),(0,i.B)("defaultIsolationScope",(()=>new s.H)))}function l(e){return u().withScope(e)}function d(e,t){const n=u();return n.withScope((()=>(n.getStackTop().scope=e,t(e))))}function p(e){return u().withScope((()=>e(u().getIsolationScope())))}function h(e){const t=a(e);return t.acs?t.acs:{withIsolationScope:p,withScope:l,withSetScope:d,withSetIsolationScope:(e,t)=>p(t),getCurrentScope:()=>u().getScope(),getIsolationScope:()=>u().getIsolationScope()}}function f(){return h(o()).getCurrentScope()}function m(){return h(o()).getIsolationScope()}function g(){return(0,i.B)("globalScope",(()=>new s.H))}function y(){const e=h(o());for(var t=arguments.length,n=new Array(t),r=0;r{"use strict";n.d(t,{T:()=>r});const r="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},77:(e,t,n)=>{"use strict";n.d(t,{Cp:()=>A,J0:()=>p,J5:()=>m,NA:()=>u,SA:()=>d,gV:()=>l,r:()=>c});var r=n(5895),i=n(8125),o=n(3986),a=n(8597),s=n(4773);function A(e,t){return(0,i.o5)().captureException(e,(0,s.li)(t))}function c(e,t){return(0,i.o5)().captureEvent(e,t)}function u(e,t){(0,i.rm)().setTag(e,t)}function l(e){(0,i.rm)().setUser(e)}function d(e){(0,i.rm)().addEventProcessor(e)}function p(e){const t=(0,i.KU)(),n=(0,i.rm)(),s=(0,i.o5)(),{release:A,environment:c=r.U}=t&&t.getOptions()||{},{userAgent:u}=a.O.navigator||{},l=(0,o.fj)({release:A,environment:c,user:s.getUser()||n.getUser(),...u&&{userAgent:u},...e}),d=n.getSession();return d&&"ok"===d.status&&(0,o.qO)(d,{status:"exited"}),h(),n.setSession(l),s.setSession(l),l}function h(){const e=(0,i.rm)(),t=(0,i.o5)(),n=t.getSession()||e.getSession();n&&(0,o.Vu)(n),f(),e.setSession(),t.setSession()}function f(){const e=(0,i.rm)(),t=(0,i.o5)(),n=(0,i.KU)(),r=t.getSession()||e.getSession();r&&n&&n.captureSession(r)}function m(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]?h():f()}},572:(e,t,n)=>{"use strict";n.d(t,{P$:()=>s,_C:()=>u,lc:()=>A,mH:()=>a,qm:()=>c});var r=n(7436),i=n(1828);const o=[];function a(e){const t=e.defaultIntegrations||[],n=e.integrations;let r;if(t.forEach((e=>{e.isDefaultInstance=!0})),Array.isArray(n))r=[...t,...n];else if("function"==typeof n){const e=n(t);r=Array.isArray(e)?e:[e]}else r=t;const i=function(e){const t={};return e.forEach((e=>{const{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)})),Object.values(t)}(r),o=i.findIndex((e=>"Debug"===e.name));if(o>-1){const[e]=i.splice(o,1);i.push(e)}return i}function s(e,t){const n={};return t.forEach((t=>{t&&c(e,t,n)})),n}function A(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function c(e,t,n){if(n[t.name])r.T&&i.vF.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,-1===o.indexOf(t.name)&&"function"==typeof t.setupOnce&&(t.setupOnce(),o.push(t.name)),t.setup&&"function"==typeof t.setup&&t.setup(e),"function"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on("preprocessEvent",((t,r)=>n(t,r,e)))}if("function"==typeof t.processEvent){const n=t.processEvent.bind(t),r=Object.assign(((t,r)=>n(t,r,e)),{id:t.name});e.addEventProcessor(r)}r.T&&i.vF.log(`Integration installed: ${t.name}`)}}function u(e){return e}},8273:(e,t,n)=>{"use strict";n.d(t,{H:()=>f});var r=n(3986),i=n(8136),o=n(1828),a=n(9272);function s(){return{traceId:(0,a.eJ)(),spanId:(0,a.eJ)().substring(16)}}var A=n(6721),c=n(7292),u=n(4411);const l="_sentrySpan";function d(e,t){t?(0,u.my)(e,l,t):delete e[l]}function p(e){return e[l]}class h{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=s()}clone(){const e=new h;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._requestSession=this._requestSession,e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,d(e,p(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&(0,r.qO)(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t="function"==typeof e?e(this):e,[n,r]=t instanceof f?[t.getScopeData(),t.getRequestSession()]:(0,i.Qd)(t)?[e,e.requestSession]:[],{tags:o,extra:a,user:s,contexts:A,level:c,fingerprint:u=[],propagationContext:l}=n||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...a},this._contexts={...this._contexts,...A},s&&Object.keys(s).length&&(this._user=s),c&&(this._level=c),u.length&&(this._fingerprint=u),l&&(this._propagationContext=l),r&&(this._requestSession=r),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._session=void 0,d(this,void 0),this._attachments=[],this._propagationContext=s(),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n="number"==typeof t?t:100;if(n<=0)return this;const r={timestamp:(0,A.lu)(),...e},i=this._breadcrumbs;return i.push(r),this._breadcrumbs=i.length>n?i.slice(-n):i,this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:p(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=(0,c.h)(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t&&t.event_id?t.event_id:(0,a.eJ)();if(!this._client)return o.vF.warn("No client configured on scope - will not capture exception!"),n;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){const r=n&&n.event_id?n.event_id:(0,a.eJ)();if(!this._client)return o.vF.warn("No client configured on scope - will not capture message!"),r;const i=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:(0,a.eJ)();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(o.vF.warn("No client configured on scope - will not capture event!"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}}const f=h},2189:(e,t,n)=>{"use strict";n.d(t,{JD:()=>a,i_:()=>r,sy:()=>i,uT:()=>o});const r="sentry.source",i="sentry.sample_rate",o="sentry.op",a="sentry.origin"},3986:(e,t,n)=>{"use strict";n.d(t,{Vu:()=>A,fj:()=>a,qO:()=>s});var r=n(4411),i=n(6721),o=n(9272);function a(e){const t=(0,i.zf)(),n={sid:(0,o.eJ)(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return(0,r.Ce)({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"==typeof e.did||"string"==typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&s(n,e),n}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||(0,i.zf)(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:(0,o.eJ)()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function A(e,t){let n={};t?n={status:t}:"ok"===e.status&&(n={status:"exited"}),s(e,n)}},486:(e,t,n)=>{"use strict";n.d(t,{lF:()=>p,k1:()=>h});var r=n(5895),i=n(8125),o=n(2189),a=n(8136);const s="sentry-",A=/^sentry-/;function c(e){return e.split(",").map((e=>e.split("=").map((e=>decodeURIComponent(e.trim()))))).reduce(((e,t)=>{let[n,r]=t;return n&&r&&(e[n]=r),e}),{})}var u=n(4411),l=n(3463);const d="_frozenDsc";function p(e,t){const n=t.getOptions(),{publicKey:i}=t.getDsn()||{},o=(0,u.Ce)({environment:n.environment||r.U,release:n.release,public_key:i,trace_id:e});return t.emit("createDsc",o),o}function h(e){const t=(0,i.KU)();if(!t)return{};const n=p((0,l.et)(e).trace_id||"",t),r=(0,l.zU)(e),u=r[d];if(u)return u;const h=r.spanContext().traceState,f=h&&h.get("sentry.dsc"),m=f&&function(e){const t=function(e){if(e&&((0,a.Kg)(e)||Array.isArray(e)))return Array.isArray(e)?e.reduce(((e,t)=>{const n=c(t);return Object.entries(n).forEach((t=>{let[n,r]=t;e[n]=r})),e}),{}):c(e)}(e);if(!t)return;const n=Object.entries(t).reduce(((e,t)=>{let[n,r]=t;return n.match(A)&&(e[n.slice(s.length)]=r),e}),{});return Object.keys(n).length>0?n:void 0}(f);if(m)return m;const g=(0,l.et)(r),y=g.data||{},v=y[o.sy];null!=v&&(n.sample_rate=`${v}`);const b=y[o.i_],k=g.description;return"url"!==b&&k&&(n.transaction=k),function(){if("boolean"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const e=(0,i.KU)(),t=e&&e.getOptions();return!!t&&(t.enableTracing||"tracesSampleRate"in t||"tracesSampler"in t)}()&&(n.sampled=String((0,l.pK)(r))),t.emit("createDsc",n,r),n}},7446:(e,t,n)=>{"use strict";n.d(t,{$N:()=>A,Hd:()=>a,xE:()=>c});var r=n(8136);const i=n(8597).O,o=80;function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return"";try{let n=e;const r=5,i=[];let a=0,A=0;const c=" > ",u=c.length;let l;const d=Array.isArray(t)?t:t.keyAttrs,p=!Array.isArray(t)&&t.maxStringLength||o;for(;n&&a++1&&A+i.length*u+l.length>=p));)i.push(l),A+=l.length,n=n.parentNode;return i.reverse().join(c)}catch(e){return""}}function s(e,t){const n=e,o=[];if(!n||!n.tagName)return"";if(i.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}o.push(n.tagName.toLowerCase());const a=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(a&&a.length)a.forEach((e=>{o.push(`[${e[0]}="${e[1]}"]`)}));else{n.id&&o.push(`#${n.id}`);const e=n.className;if(e&&(0,r.Kg)(e)){const t=e.split(/\s+/);for(const e of t)o.push(`.${e}`)}}const s=["aria-label","type","name","title","alt"];for(const e of s){const t=n.getAttribute(e);t&&o.push(`[${e}="${t}"]`)}return o.join("")}function A(){try{return i.document.location.href}catch(e){return""}}function c(e){if(!i.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}},4748:(e,t,n)=>{"use strict";n.d(t,{T:()=>r});const r="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},6591:(e,t,n)=>{"use strict";n.d(t,{AD:()=>A,SB:()=>a});var r=n(4748),i=n(1828);const o=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function a(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{host:n,path:r,pass:i,port:o,projectId:a,protocol:s,publicKey:A}=e;return`${s}://${A}${t&&i?`:${i}`:""}@${n}${o?`:${o}`:""}/${r?`${r}/`:r}${a}`}function s(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function A(e){const t="string"==typeof e?function(e){const t=o.exec(e);if(!t)return void(0,i.pq)((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,a="",A="",c="",u=""]=t.slice(1);let l="",d=u;const p=d.split("/");if(p.length>1&&(l=p.slice(0,-1).join("/"),d=p.pop()),d){const e=d.match(/^\d+/);e&&(d=e[0])}return s({host:A,pass:a,path:l,projectId:d,port:c,protocol:n,publicKey:r})}(e):s(e);if(t&&function(e){if(!r.T)return!0;const{port:t,projectId:n,protocol:o}=e;return!(["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(i.vF.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(o)?t&&isNaN(parseInt(t,10))&&(i.vF.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(i.vF.error(`Invalid Sentry Dsn: Invalid protocol ${o}`),1):(i.vF.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}},9024:(e,t,n)=>{"use strict";n.d(t,{Cj:()=>f,W3:()=>A,bN:()=>l,bm:()=>d,h4:()=>s,n2:()=>m,yH:()=>c,zk:()=>h});var r=n(6591),i=n(7047),o=n(4411),a=n(8597);function s(e){return[e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]]}function A(e,t){const[n,r]=e;return[n,[...r,t]]}function c(e,t){const n=e[1];for(const e of n)if(t(e,e[0].type))return!0;return!1}function u(e){return a.O.__SENTRY__&&a.O.__SENTRY__.encodePolyfill?a.O.__SENTRY__.encodePolyfill(e):(new TextEncoder).encode(e)}function l(e){const[t,n]=e;let r=JSON.stringify(t);function o(e){"string"==typeof r?r="string"==typeof e?r+e:[u(r),e]:r.push("string"==typeof e?u(e):e)}for(const e of n){const[t,n]=e;if(o(`\n${JSON.stringify(t)}\n`),"string"==typeof n||n instanceof Uint8Array)o(n);else{let e;try{e=JSON.stringify(n)}catch(t){e=JSON.stringify((0,i.S8)(n))}o(e)}}return"string"==typeof r?r:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(r)}function d(e){const t="string"==typeof e.data?u(e.data):e.data;return[(0,o.Ce)({type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),t]}const p={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",statsd:"metric_bucket"};function h(e){return p[e]}function f(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function m(e,t,n,i){const a=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&i&&{dsn:(0,r.SB)(i)},...a&&{trace:(0,o.Ce)({...a})}}}},1380:(e,t,n)=>{"use strict";n.d(t,{U:()=>r});class r extends Error{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"warn";super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}},8136:(e,t,n)=>{"use strict";n.d(t,{BD:()=>s,Kg:()=>c,L2:()=>v,NF:()=>u,Qd:()=>d,Qg:()=>m,T2:()=>a,W6:()=>A,bJ:()=>i,gd:()=>f,mE:()=>g,sO:()=>l,tH:()=>y,vq:()=>h,xH:()=>p});const r=Object.prototype.toString;function i(e){switch(r.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return y(e,Error)}}function o(e,t){return r.call(e)===`[object ${t}]`}function a(e){return o(e,"ErrorEvent")}function s(e){return o(e,"DOMError")}function A(e){return o(e,"DOMException")}function c(e){return o(e,"String")}function u(e){return"object"==typeof e&&null!==e&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function l(e){return null===e||u(e)||"object"!=typeof e&&"function"!=typeof e}function d(e){return o(e,"Object")}function p(e){return"undefined"!=typeof Event&&y(e,Event)}function h(e){return"undefined"!=typeof Element&&y(e,Element)}function f(e){return o(e,"RegExp")}function m(e){return Boolean(e&&e.then&&"function"==typeof e.then)}function g(e){return d(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function y(e,t){try{return e instanceof t}catch(e){return!1}}function v(e){return!("object"!=typeof e||null===e||!e.__isVue&&!e._isVue)}},1828:(e,t,n)=>{"use strict";n.d(t,{Ow:()=>o,Z9:()=>a,pq:()=>s,vF:()=>A});var r=n(4748),i=n(8597);const o=["debug","info","warn","error","log","assert","trace"],a={};function s(e){if(!("console"in i.O))return e();const t=i.O.console,n={},r=Object.keys(a);r.forEach((e=>{const r=a[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const A=(0,i.B)("logger",(function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return r.T?o.forEach((n=>{t[n]=function(){for(var t=arguments.length,r=new Array(t),o=0;o{i.O.console[n](`Sentry Logger [${n}]:`,...r)}))}})):o.forEach((e=>{t[e]=()=>{}})),t}))},9272:(e,t,n)=>{"use strict";n.d(t,{$X:()=>s,GR:()=>u,M6:()=>c,eJ:()=>o,gO:()=>A});var r=n(4411),i=n(8597);function o(){const e=i.O,t=e.crypto||e.msCrypto;let n=()=>16*Math.random();try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,"");t&&t.getRandomValues&&(n=()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]})}catch(e){}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function a(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function s(e){const{message:t,event_id:n}=e;if(t)return t;const r=a(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function A(e,t,n){const r=e.exception=e.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=t||""),o.type||(o.type=n||"Error")}function c(e,t){const n=a(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...t},t&&"data"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function u(e){if(e&&e.__sentry_captured__)return!0;try{(0,r.my)(e,"__sentry_captured__",!0)}catch(e){}return!1}},7047:(e,t,n)=>{"use strict";n.d(t,{S8:()=>a,cd:()=>s});var r=n(8136),i=n(4411),o=n(317);function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0;try{return A("",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:102400;const r=a(e,t);return i=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(i))>n?s(e,t-1,n):r;var i}function A(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){const e="function"==typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e=a){h[e]="[MaxProperties ~]";break}const t=m[e];h[e]=A(e,t,d-1,a,s),f++}return u(t),h}},4411:(e,t,n)=>{"use strict";n.d(t,{Ce:()=>g,GS:()=>A,HF:()=>m,W4:()=>p,my:()=>c,pO:()=>u,sp:()=>l,u4:()=>d});var r=n(7446),i=n(4748),o=n(8136),a=n(1828),s=n(4805);function A(e,t,n){if(!(t in e))return;const r=e[t],o=n(r);"function"==typeof o&&u(o,r);try{e[t]=o}catch(n){i.T&&a.vF.log(`Failed to replace method "${t}" in object`,e)}}function c(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(n){i.T&&a.vF.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function u(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,c(e,"__sentry_original__",t)}catch(e){}}function l(e){return e.__sentry_original__}function d(e){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}function p(e){if((0,o.bJ)(e))return{message:e.message,name:e.name,stack:e.stack,...f(e)};if((0,o.xH)(e)){const t={type:e.type,target:h(e.target),currentTarget:h(e.currentTarget),...f(e)};return"undefined"!=typeof CustomEvent&&(0,o.tH)(e,CustomEvent)&&(t.detail=e.detail),t}return e}function h(e){try{return(0,o.vq)(e)?(0,r.Hd)(e):Object.prototype.toString.call(e)}catch(e){return""}}function f(e){if("object"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40;const n=Object.keys(p(e));n.sort();const r=n[0];if(!r)return"[object has no keys]";if(r.length>=t)return(0,s.xv)(r,t);for(let e=n.length;e>0;e--){const r=n.slice(0,e).join(", ");if(!(r.length>t))return e===n.length?r:(0,s.xv)(r,t)}return""}function g(e){return y(e,new Map)}function y(e,t){if(function(e){if(!(0,o.Qd)(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||"Object"===t}catch(e){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const n of Object.getOwnPropertyNames(e))void 0!==e[n]&&(r[n]=y(e[n],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(y(e,t))})),r}return e}},317:(e,t,n)=>{"use strict";n.d(t,{RV:()=>d,gd:()=>s,qQ:()=>l,vk:()=>A,yF:()=>i});const r=50,i="?",o=/\(error: (.*)\)/,a=/captureMessage|captureException/;function s(){for(var e=arguments.length,t=new Array(e),n=0;ne[0]-t[0])).map((e=>e[1]));return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const A=[],u=e.split("\n");for(let e=t;e1024)continue;const i=o.test(t)?t.replace(o,"$1"):t;if(!i.match(/\S*Error: /)){for(const e of s){const t=e(i);if(t){A.push(t);break}}if(A.length>=r+n)break}}return function(e){if(!e.length)return[];const t=Array.from(e);return/sentryWrapped/.test(c(t).function||"")&&t.pop(),t.reverse(),a.test(c(t).function||"")&&(t.pop(),a.test(c(t).function||"")&&t.pop()),t.slice(0,r).map((e=>({...e,filename:e.filename||c(t).filename,function:e.function||i})))}(A.slice(n))}}function A(e){return Array.isArray(e)?s(...e):e}function c(e){return e[e.length-1]||{}}const u="";function l(e){try{return e&&"function"==typeof e&&e.name||u}catch(e){return u}}function d(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach((t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)})),e}catch(e){return}}}},4805:(e,t,n)=>{"use strict";n.d(t,{Xr:()=>a,gt:()=>o,xv:()=>i});var r=n(8136);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"string"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function o(e,t){if(!Array.isArray(e))return"";const n=[];for(let t=0;t2&&void 0!==arguments[2]&&arguments[2];return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).some((n=>function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!(0,r.Kg)(e)&&((0,r.gd)(t)?t.test(e):!!(0,r.Kg)(t)&&(n?e===t:e.includes(t)))}(e,n,t)))}},9752:(e,t,n)=>{"use strict";n.d(t,{a3:()=>s,m7:()=>A,vm:()=>a});var r=n(4748),i=n(1828);const o=n(8597).O;function a(){if(!("fetch"in o))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(e){return!1}}function s(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function A(){if("string"==typeof EdgeRuntime)return!0;if(!a())return!1;if(s(o.fetch))return!0;let e=!1;const t=o.document;if(t&&"function"==typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=s(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){r.T&&i.vF.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return e}},7986:(e,t,n)=>{"use strict";n.d(t,{T2:()=>s,XW:()=>o,xg:()=>a});var r,i=n(8136);function o(e){return new s((t=>{t(e)}))}function a(e){return new s(((t,n)=>{n(e)}))}!function(e){e[e.PENDING=0]="PENDING",e[e.RESOLVED=1]="RESOLVED",e[e.REJECTED=2]="REJECTED"}(r||(r={}));class s{constructor(e){s.prototype.__init.call(this),s.prototype.__init2.call(this),s.prototype.__init3.call(this),s.prototype.__init4.call(this),this._state=r.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}then(e,t){return new s(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){r(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){r(e)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new s(((t,n)=>{let r,i;return this.then((t=>{i=!1,r=t,e&&e()}),(t=>{i=!0,r=t,e&&e()})).then((()=>{i?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(r.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(r.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===r.PENDING&&((0,i.Qg)(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===r.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===r.RESOLVED&&e[1](this._value),this._state===r.REJECTED&&e[2](this._value),e[0]=!0)}))}}}},6721:(e,t,n)=>{"use strict";n.d(t,{lu:()=>o,zf:()=>a});var r=n(8597);const i=1e3;function o(){return Date.now()/i}const a=function(){const{performance:e}=r.O;if(!e||!e.now)return o;const t=Date.now()-e.now(),n=null==e.timeOrigin?t:e.timeOrigin;return()=>(n+e.now())/i}();let s;(()=>{const{performance:e}=r.O;if(!e||!e.now)return void(s="none");const t=36e5,n=e.now(),i=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-i):t,a=o{"use strict";n.d(t,{M:()=>r});const r="8.40.0"},8597:(e,t,n)=>{"use strict";n.d(t,{B:()=>o,O:()=>i});var r=n(5522);const i=globalThis;function o(e,t,n){const o=n||i,a=o.__SENTRY__=o.__SENTRY__||{},s=a[r.M]=a[r.M]||{};return s[e]||(s[e]=t())}},7292:(e,t,n)=>{"use strict";function r(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2;if(!t||"object"!=typeof t||n<=0)return t;if(e&&t&&0===Object.keys(t).length)return e;const i={...e};for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[e]=r(i[e],t[e],n-1));return i}n.d(t,{h:()=>r})},4773:(e,t,n)=>{"use strict";n.d(t,{li:()=>w,mG:()=>T});var r=n(5895),i=n(8125),o=n(7436),a=n(8136),s=n(1828),A=n(7986);function c(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;return new A.T2(((i,A)=>{const u=e[r];if(null===t||"function"!=typeof u)i(t);else{const l=u({...t},n);o.T&&u.id&&null===l&&s.vF.log(`Event processor "${u.id}" dropped event`),(0,a.Qg)(l)?l.then((t=>c(e,t,n,r+1).then(i))).then(null,A):c(e,l,n,r+1).then(i).then(null,A)}}))}var u=n(8273),l=n(8597);const d=new WeakMap;var p=n(9272),h=n(7047),f=n(4805),m=n(6721),g=n(486),y=n(4411),v=n(7292),b=n(3463);function k(e,t){const{extra:n,tags:r,user:i,contexts:o,level:a,sdkProcessingMetadata:s,breadcrumbs:A,fingerprint:c,eventProcessors:u,attachments:l,propagationContext:d,transactionName:p,span:h}=t;S(e,"extra",n),S(e,"tags",r),S(e,"user",i),S(e,"contexts",o),e.sdkProcessingMetadata=(0,v.h)(e.sdkProcessingMetadata,s,2),a&&(e.level=a),p&&(e.transactionName=p),h&&(e.span=h),A.length&&(e.breadcrumbs=[...e.breadcrumbs,...A]),c.length&&(e.fingerprint=[...e.fingerprint,...c]),u.length&&(e.eventProcessors=[...e.eventProcessors,...u]),l.length&&(e.attachments=[...e.attachments,...l]),e.propagationContext={...e.propagationContext,...d}}function S(e,t,n){e[t]=(0,v.h)(e[t],n,1)}function T(e,t,n,o,a,s){const{normalizeDepth:A=3,normalizeMaxBreadth:v=1e3}=e,S={...t,event_id:t.event_id||n.event_id||(0,p.eJ)(),timestamp:t.timestamp||(0,m.lu)()},T=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:i,dist:o,maxValueLength:a=250}=t;"environment"in e||(e.environment="environment"in t?n:r.U),void 0===e.release&&void 0!==i&&(e.release=i),void 0===e.dist&&void 0!==o&&(e.dist=o),e.message&&(e.message=(0,f.xv)(e.message,a));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=(0,f.xv)(s.value,a));const A=e.request;A&&A.url&&(A.url=(0,f.xv)(A.url,a))}(S,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(S,T),a&&a.emit("applyFrameMetadata",t),void 0===t.type&&function(e,t){const n=function(e){const t=l.O._sentryDebugIds;if(!t)return{};let n;const r=d.get(e);return r?n=r:(n=new Map,d.set(e,n)),Object.keys(t).reduce(((r,i)=>{let o;const a=n.get(i);a?o=a:(o=e(i),n.set(i,o));for(let e=o.length-1;e>=0;e--){const n=o[e],a=n&&n.filename;if(n&&a){r[a]=t[i];break}}return r}),{})}(t);try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.filename&&(e.debug_id=n[e.filename])}))}))}catch(e){}}(S,e.stackParser);const w=function(e,t){if(!t)return e;const n=e?e.clone():new u.H;return n.update(t),n}(o,n.captureContext);n.mechanism&&(0,p.M6)(S,n.mechanism);const E=a?a.getEventProcessors():[],j=(0,i.m6)().getScopeData();s&&k(j,s.getScopeData()),w&&k(j,w.getScopeData());const O=[...n.attachments||[],...j.attachments];return O.length&&(n.attachments=O),function(e,t){const{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:o}=t;!function(e,t){const{extra:n,tags:r,user:i,contexts:o,level:a,transactionName:s}=t,A=(0,y.Ce)(n);A&&Object.keys(A).length&&(e.extra={...A,...e.extra});const c=(0,y.Ce)(r);c&&Object.keys(c).length&&(e.tags={...c,...e.tags});const u=(0,y.Ce)(i);u&&Object.keys(u).length&&(e.user={...u,...e.user});const l=(0,y.Ce)(o);l&&Object.keys(l).length&&(e.contexts={...l,...e.contexts}),a&&(e.level=a),s&&"transaction"!==e.type&&(e.transaction=s)}(e,t),r&&function(e,t){e.contexts={trace:(0,b.kX)(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:(0,g.k1)(t),...e.sdkProcessingMetadata};const n=(0,b.zU)(t),r=(0,b.et)(n).description;r&&!e.transaction&&"transaction"===e.type&&(e.transaction=r)}(e,r),function(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,i),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,o)}(S,j),c([...E,...j.eventProcessors],S,n).then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(e){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach((e=>{let[t,r]=e;n.push({type:"sourcemap",code_file:t,debug_id:r})}))}(e),"number"==typeof A&&A>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:(0,h.S8)(e.data,t,n)}})))},...e.user&&{user:(0,h.S8)(e.user,t,n)},...e.contexts&&{contexts:(0,h.S8)(e.contexts,t,n)},...e.extra&&{extra:(0,h.S8)(e.extra,t,n)}};return e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=(0,h.S8)(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map((e=>({...e,...e.data&&{data:(0,h.S8)(e.data,t,n)}})))),r}(e,A,v):e)))}function w(e){if(e)return function(e){return e instanceof u.H||"function"==typeof e}(e)||function(e){return Object.keys(e).some((e=>E.includes(e)))}(e)?{captureContext:e}:e}const E=["user","level","extra","contexts","tags","fingerprint","requestSession","propagationContext"]},3463:(e,t,n)=>{"use strict";n.d(t,{zU:()=>y,pK:()=>f,et:()=>h,kX:()=>l});var r=n(4411);const i="_sentryMetrics";function o(e){const t=e[i];if(!t)return;const n={};for(const[,[e,i]]of t)(n[e]||(n[e]=[])).push((0,r.Ce)(i));return n}var a=n(2189);const s=0,A=1;var c=n(6721);const u=1;function l(e){const{spanId:t,traceId:n}=e.spanContext(),{parent_span_id:i}=h(e);return(0,r.Ce)({parent_span_id:i,span_id:t,trace_id:n})}function d(e){return"number"==typeof e?p(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?p(e.getTime()):(0,c.zf)()}function p(e){return e>9999999999?e/1e3:e}function h(e){if(function(e){return"function"==typeof e.getSpanJSON}(e))return e.getSpanJSON();try{const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:i,startTime:s,name:A,endTime:c,parentSpanId:u,status:l}=e;return(0,r.Ce)({span_id:t,trace_id:n,data:i,description:A,parent_span_id:u,start_timestamp:d(s),timestamp:d(c)||void 0,status:m(l),op:i[a.uT],origin:i[a.JD],_metrics_summary:o(e)})}return{span_id:t,trace_id:n}}catch(e){return{}}}function f(e){const{traceFlags:t}=e.spanContext();return t===u}function m(e){if(e&&e.code!==s)return e.code===A?"ok":e.message||"unknown_error"}const g="_sentryRootSpan";function y(e){return e[g]||e}},4353:(e,t,n)=>{"use strict";n.d(t,{c9:()=>dr});class r extends Error{}class i extends r{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class o extends r{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class a extends r{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class s extends r{}class A extends r{constructor(e){super(`Invalid unit ${e}`)}}class c extends r{}class u extends r{constructor(){super("Zone is an abstract class")}}const l="numeric",d="short",p="long",h={year:l,month:l,day:l},f={year:l,month:d,day:l},m={year:l,month:d,day:l,weekday:d},g={year:l,month:p,day:l},y={year:l,month:p,day:l,weekday:p},v={hour:l,minute:l},b={hour:l,minute:l,second:l},k={hour:l,minute:l,second:l,timeZoneName:d},S={hour:l,minute:l,second:l,timeZoneName:p},T={hour:l,minute:l,hourCycle:"h23"},w={hour:l,minute:l,second:l,hourCycle:"h23"},E={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:d},j={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:p},O={year:l,month:l,day:l,hour:l,minute:l},R={year:l,month:l,day:l,hour:l,minute:l,second:l},P={year:l,month:d,day:l,hour:l,minute:l},C={year:l,month:d,day:l,hour:l,minute:l,second:l},L={year:l,month:d,day:l,weekday:d,hour:l,minute:l},N={year:l,month:p,day:l,hour:l,minute:l,timeZoneName:d},x={year:l,month:p,day:l,hour:l,minute:l,second:l,timeZoneName:d},M={year:l,month:p,day:l,weekday:p,hour:l,minute:l,timeZoneName:p},U={year:l,month:p,day:l,weekday:p,hour:l,minute:l,second:l,timeZoneName:p};class I{get type(){throw new u}get name(){throw new u}get ianaName(){return this.name}get isUniversal(){throw new u}offsetName(e,t){throw new u}formatOffset(e,t){throw new u}offset(e){throw new u}equals(e){throw new u}get isValid(){throw new u}}let _=null;class W extends I{static get instance(){return null===_&&(_=new W),_}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,t){let{format:n,locale:r}=t;return nt(e,n,r)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return"system"===e.type}get isValid(){return!0}}let z={};const D={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};let F={};class q extends I{static create(e){return F[e]||(F[e]=new q(e)),F[e]}static resetCache(){F={},z={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}}constructor(e){super(),this.zoneName=e,this.valid=q.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,t){let{format:n,locale:r}=t;return nt(e,n,r,this.name)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){const t=new Date(e);if(isNaN(t))return NaN;const n=(r=this.name,z[r]||(z[r]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),z[r]);var r;let[i,o,a,s,A,c,u]=n.formatToParts?function(e,t){const n=e.formatToParts(t),r=[];for(let e=0;e=0?d:1e3+d,(Qe({year:i,month:o,day:a,hour:24===A?0:A,minute:c,second:u,millisecond:0})-l)/6e4}equals(e){return"iana"===e.type&&e.name===this.name}get isValid(){return this.valid}}let V={},X={};function J(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=JSON.stringify([e,t]);let r=X[n];return r||(r=new Intl.DateTimeFormat(e,t),X[n]=r),r}let Z={},K={},G=null,H={};function B(e,t,n,r){const i=e.listingMode();return"error"===i?null:"en"===i?n(t):r(t)}class Y{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:i,...o}=n;if(!t||Object.keys(o).length>0){const t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=JSON.stringify([e,t]);let r=Z[n];return r||(r=new Intl.NumberFormat(e,t),Z[n]=r),r}(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}return Xe(this.floor?Math.floor(e):Ge(e,3),this.padTo)}}class Q{constructor(e,t,n){let r;if(this.opts=n,this.originalZone=void 0,this.opts.timeZone)this.dt=e;else if("fixed"===e.zone.type){const t=e.offset/60*-1,n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;0!==e.offset&&q.create(n).valid?(r=n,this.dt=e):(r="UTC",this.dt=0===e.offset?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else"system"===e.zone.type?this.dt=e:"iana"===e.zone.type?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=J(t,i)}format(){return this.originalZone?this.formatToParts().map((e=>{let{value:t}=e;return t})).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map((e=>{if("timeZoneName"===e.type){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}return e})):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class ${constructor(e,t,n){this.opts={style:"long",...n},!t&&We()&&(this.rtf=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=K[i];return o||(o=new Intl.RelativeTimeFormat(e,t),K[i]=o),o}(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"always",r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&o){const n="days"===e;switch(t){case 1:return n?"tomorrow":`next ${i[e][0]}`;case-1:return n?"yesterday":`last ${i[e][0]}`;case 0:return n?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),A=1===s,c=i[e],u=r?A?c[1]:c[2]||c[1]:A?i[e][0]:e;return a?`${s} ${u} ago`:`in ${s} ${u}`}(t,e,this.opts.numeric,"long"!==this.opts.style)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const ee={firstDay:1,minimalDays:4,weekend:[6,7]};class te{static fromOpts(e){return te.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const o=e||ve.defaultLocale,a=o||(i?"en-US":G||(G=(new Intl.DateTimeFormat).resolvedOptions().locale,G)),s=t||ve.defaultNumberingSystem,A=n||ve.defaultOutputCalendar,c=qe(r)||ve.defaultWeekSettings;return new te(a,s,A,c,o)}static resetCache(){G=null,X={},Z={},K={}}static fromObject(){let{locale:e,numberingSystem:t,outputCalendar:n,weekSettings:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return te.create(e,t,n,r)}constructor(e,t,n,r,i){const[o,a,s]=function(e){const t=e.indexOf("-x-");-1!==t&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(-1===n)return[e];{let t,r;try{t=J(e).resolvedOptions(),r=e}catch(i){const o=e.substring(0,n);t=J(o).resolvedOptions(),r=o}const{numberingSystem:i,calendar:o}=t;return[r,i,o]}}(e);this.locale=o,this.numberingSystem=t||a||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=function(e,t,n){return n||t?(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"}clone(e){return e&&0!==Object.getOwnPropertyNames(e).length?te.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,qe(e.weekSettings)||this.weekSettings,e.defaultToEN||!1):this}redefaultToEN(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.clone({...e,defaultToEN:!0})}redefaultToSystem(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.clone({...e,defaultToEN:!1})}months(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return B(this,e,lt,(()=>{const n=t?{month:e,day:"numeric"}:{month:e},r=t?"format":"standalone";return this.monthsCache[r][e]||(this.monthsCache[r][e]=function(e){const t=[];for(let n=1;n<=12;n++){const r=dr.utc(2009,n,1);t.push(e(r))}return t}((e=>this.extract(e,n,"month")))),this.monthsCache[r][e]}))}weekdays(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return B(this,e,ft,(()=>{const n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=t?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=function(e){const t=[];for(let n=1;n<=7;n++){const r=dr.utc(2016,11,13+n);t.push(e(r))}return t}((e=>this.extract(e,n,"weekday")))),this.weekdaysCache[r][e]}))}meridiems(){return B(this,void 0,(()=>mt),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[dr.utc(2016,11,13,9),dr.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return B(this,e,bt,(()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[dr.utc(-40,1,1),dr.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))),this.eraCache[e]}))}extract(e,t,n){const r=this.dtFormatter(e,t).formatToParts().find((e=>e.type.toLowerCase()===n));return r?r.value:null}numberFormatter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Y(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Q(e,this.intl,t)}relFormatter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new $(this.intl,this.isEnglish(),e)}listFormatter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=JSON.stringify([e,t]);let r=V[n];return r||(r=new Intl.ListFormat(e,t),V[n]=r),r}(this.intl,e)}isEnglish(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:ze()?function(e){let t=H[e];if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,H[e]=t}return t}(this.locale):ee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let ne=null;class re extends I{static get utcInstance(){return null===ne&&(ne=new re(0)),ne}static instance(e){return 0===e?re.utcInstance:new re(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new re(rt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return 0===this.fixed?"UTC":`UTC${at(this.fixed,"narrow")}`}get ianaName(){return 0===this.fixed?"Etc/UTC":`Etc/GMT${at(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return at(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return"fixed"===e.type&&e.fixed===this.fixed}get isValid(){return!0}}class ie extends I{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function oe(e,t){if(Ue(e)||null===e)return t;if(e instanceof I)return e;if("string"==typeof e){const n=e.toLowerCase();return"default"===n?t:"local"===n||"system"===n?W.instance:"utc"===n||"gmt"===n?re.utcInstance:re.parseSpecifier(n)||q.create(e)}return Ie(e)?re.instance(e):"object"==typeof e&&"offset"in e&&"function"==typeof e.offset?e:new ie(e)}const ae={arab:"[Ù -Ù©]",arabext:"[Û°-Û¹]",bali:"[᭐-á­™]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-ï¼™]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|å››|五|å…­|七|å…«|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-à»™]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[á -á ™]",mymr:"[၀-၉]",orya:"[à­¦-à­¯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},se={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Ae=ae.hanidec.replace(/[\[|\]]/g,"").split("");let ce={};function ue(e){let{numberingSystem:t}=e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const r=t||"latn";return ce[r]||(ce[r]={}),ce[r][n]||(ce[r][n]=new RegExp(`${ae[r]}${n}`)),ce[r][n]}let le,de=()=>Date.now(),pe="system",he=null,fe=null,me=null,ge=60,ye=null;class ve{static get now(){return de}static set now(e){de=e}static set defaultZone(e){pe=e}static get defaultZone(){return oe(pe,W.instance)}static get defaultLocale(){return he}static set defaultLocale(e){he=e}static get defaultNumberingSystem(){return fe}static set defaultNumberingSystem(e){fe=e}static get defaultOutputCalendar(){return me}static set defaultOutputCalendar(e){me=e}static get defaultWeekSettings(){return ye}static set defaultWeekSettings(e){ye=qe(e)}static get twoDigitCutoffYear(){return ge}static set twoDigitCutoffYear(e){ge=e%100}static get throwOnInvalid(){return le}static set throwOnInvalid(e){le=e}static resetCaches(){te.resetCache(),q.resetCache(),dr.resetCache(),ce={}}}class be{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const ke=[0,31,59,90,120,151,181,212,243,273,304,334],Se=[0,31,60,91,121,152,182,213,244,274,305,335];function Te(e,t){return new be("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function we(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return 0===i?7:i}function Ee(e,t,n){return n+(He(e)?Se:ke)[t-1]}function je(e,t){const n=He(e)?Se:ke,r=n.findIndex((e=>e1&&void 0!==arguments[1]?arguments[1]:4,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{year:r,month:i,day:o}=e,a=Ee(r,i,o),s=Oe(we(r,i,o),n);let A,c=Math.floor((a-s+14-t)/7);return c<1?(A=r-1,c=et(A,t,n)):c>et(r,t,n)?(A=r+1,c=1):A=r,{weekYear:A,weekNumber:c,weekday:s,...st(e)}}function Pe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{weekYear:r,weekNumber:i,weekday:o}=e,a=Oe(we(r,1,t),n),s=Be(r);let A,c=7*i+o-a-7+t;c<1?(A=r-1,c+=Be(A)):c>s?(A=r+1,c-=Be(r)):A=r;const{month:u,day:l}=je(A,c);return{year:A,month:u,day:l,...st(e)}}function Ce(e){const{year:t,month:n,day:r}=e;return{year:t,ordinal:Ee(t,n,r),...st(e)}}function Le(e){const{year:t,ordinal:n}=e,{month:r,day:i}=je(t,n);return{year:t,month:r,day:i,...st(e)}}function Ne(e,t){if(!Ue(e.localWeekday)||!Ue(e.localWeekNumber)||!Ue(e.localWeekYear)){if(!Ue(e.weekday)||!Ue(e.weekNumber)||!Ue(e.weekYear))throw new s("Cannot mix locale-based week fields with ISO-based week fields");return Ue(e.localWeekday)||(e.weekday=e.localWeekday),Ue(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Ue(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}return{minDaysInFirstWeek:4,startOfWeek:1}}function xe(e){const t=_e(e.year),n=Ve(e.month,1,12),r=Ve(e.day,1,Ye(e.year,e.month));return t?n?!r&&Te("day",e.day):Te("month",e.month):Te("year",e.year)}function Me(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=Ve(t,0,23)||24===t&&0===n&&0===r&&0===i,a=Ve(n,0,59),s=Ve(r,0,59),A=Ve(i,0,999);return o?a?s?!A&&Te("millisecond",i):Te("second",r):Te("minute",n):Te("hour",t)}function Ue(e){return void 0===e}function Ie(e){return"number"==typeof e}function _e(e){return"number"==typeof e&&e%1==0}function We(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function ze(){try{return"undefined"!=typeof Intl&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return!1}}function De(e,t,n){if(0!==e.length)return e.reduce(((e,r)=>{const i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i}),null)[1]}function Fe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qe(e){if(null==e)return null;if("object"!=typeof e)throw new c("Week settings must be an object");if(!Ve(e.firstDay,1,7)||!Ve(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!Ve(e,1,7))))throw new c("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Ve(e,t,n){return _e(e)&&e>=t&&e<=n}function Xe(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return t=e<0?"-"+(""+-e).padStart(n,"0"):(""+e).padStart(n,"0"),t}function Je(e){return Ue(e)||null===e||""===e?void 0:parseInt(e,10)}function Ze(e){return Ue(e)||null===e||""===e?void 0:parseFloat(e)}function Ke(e){if(!Ue(e)&&null!==e&&""!==e){const t=1e3*parseFloat("0."+e);return Math.floor(t)}}function Ge(e,t){const n=10**t;return(arguments.length>2&&void 0!==arguments[2]&&arguments[2]?Math.trunc:Math.round)(e*n)/n}function He(e){return e%4==0&&(e%100!=0||e%400==0)}function Be(e){return He(e)?366:365}function Ye(e,t){const n=(r=t-1)-12*Math.floor(r/12)+1;var r;return 2===n?He(e+(t-n)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Qe(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function $e(e,t,n){return-Oe(we(e,1,t),n)+t-1}function et(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r=$e(e,t,n),i=$e(e+1,t,n);return(Be(e)-r+i)/7}function tt(e){return e>99?e:e>ve.twoDigitCutoffYear?1900+e:2e3+e}function nt(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find((e=>"timezonename"===e.type.toLowerCase()));return s?s.value:null}function rt(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0;return 60*n+(n<0||Object.is(n,-0)?-r:r)}function it(e){const t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new c(`Invalid unit value ${e}`);return t}function ot(e,t){const n={};for(const r in e)if(Fe(e,r)){const i=e[r];if(null==i)continue;n[t(r)]=it(i)}return n}function at(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Xe(n,2)}:${Xe(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Xe(n,2)}${Xe(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function st(e){return function(e){return["hour","minute","second","millisecond"].reduce(((t,n)=>(t[n]=e[n],t)),{})}(e)}const At=["January","February","March","April","May","June","July","August","September","October","November","December"],ct=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ut=["J","F","M","A","M","J","J","A","S","O","N","D"];function lt(e){switch(e){case"narrow":return[...ut];case"short":return[...ct];case"long":return[...At];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const dt=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],pt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ht=["M","T","W","T","F","S","S"];function ft(e){switch(e){case"narrow":return[...ht];case"short":return[...pt];case"long":return[...dt];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const mt=["AM","PM"],gt=["Before Christ","Anno Domini"],yt=["BC","AD"],vt=["B","A"];function bt(e){switch(e){case"narrow":return[...vt];case"short":return[...yt];case"long":return[...gt];default:return null}}function kt(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const St={D:h,DD:f,DDD:g,DDDD:y,t:v,tt:b,ttt:k,tttt:S,T,TT:w,TTT:E,TTTT:j,f:O,ff:P,fff:N,ffff:M,F:R,FF:C,FFF:x,FFFF:U};class Tt{static create(e){return new Tt(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}static parseFormat(e){let t=null,n="",r=!1;const i=[];for(let o=0;o0&&i.push({literal:r||/^\s+$/.test(n),val:n}),t=null,n="",r=!r):r||a===t?n+=a:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=a,t=a)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return St[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.opts.forceSimple)return Xe(e,t);const n={...this.opts};return t>0&&(n.padTo=t),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,t){const n="en"===this.loc.listingMode(),r=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,i=(t,n)=>this.loc.extract(e,t,n),o=t=>e.isOffsetFixed&&0===e.offset&&t.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,t.format):"",a=(t,r)=>n?function(e,t){return lt(t)[e.month-1]}(e,t):i(r?{month:t}:{month:t,day:"numeric"},"month"),s=(t,r)=>n?function(e,t){return ft(t)[e.weekday-1]}(e,t):i(r?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),A=t=>{const n=Tt.macroTokenToFormatOpts(t);return n?this.formatWithSystemDefault(e,n):t},c=t=>n?function(e,t){return bt(t)[e.year<0?0:1]}(e,t):i({era:t},"era");return kt(Tt.parseFormat(t),(t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12==0?12:e.hour%12);case"hh":return this.num(e.hour%12==0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return n?function(e){return mt[e.hour<12?0:1]}(e):i({hour:"numeric",hourCycle:"h12"},"dayperiod");case"d":return r?i({day:"numeric"},"day"):this.num(e.day);case"dd":return r?i({day:"2-digit"},"day"):this.num(e.day,2);case"c":case"E":return this.num(e.weekday);case"ccc":return s("short",!0);case"cccc":return s("long",!0);case"ccccc":return s("narrow",!0);case"EEE":return s("short",!1);case"EEEE":return s("long",!1);case"EEEEE":return s("narrow",!1);case"L":return r?i({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?i({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return a("short",!0);case"LLLL":return a("long",!0);case"LLLLL":return a("narrow",!0);case"M":return r?i({month:"numeric"},"month"):this.num(e.month);case"MM":return r?i({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return a("short",!1);case"MMMM":return a("long",!1);case"MMMMM":return a("narrow",!1);case"y":return r?i({year:"numeric"},"year"):this.num(e.year);case"yy":return r?i({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?i({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?i({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return A(t)}}))}formatDurationFromString(e,t){const n=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},r=Tt.parseFormat(t),i=r.reduce(((e,t)=>{let{literal:n,val:r}=t;return n?e:e.concat(r)}),[]);return kt(r,(e=>t=>{const r=n(t);return r?this.num(e.get(r),t.length):t})(e.shiftTo(...i.map(n).filter((e=>e)))))}}const wt=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Et(){for(var e=arguments.length,t=new Array(e),n=0;ne+t.source),"");return RegExp(`^${r}$`)}function jt(){for(var e=arguments.length,t=new Array(e),n=0;nt.reduce(((t,n)=>{let[r,i,o]=t;const[a,s,A]=n(e,o);return[{...r,...a},s||i,A]}),[{},null,1]).slice(0,2)}function Ot(e){if(null==e)return[null,null];for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r={};let i;for(i=0;i1&&void 0!==arguments[1]&&arguments[1]||e&&u)?-e:e};return[{years:d(Ze(n)),months:d(Ze(r)),weeks:d(Ze(i)),days:d(Ze(o)),hours:d(Ze(a)),minutes:d(Ze(s)),seconds:d(Ze(A),"-0"===A),milliseconds:d(Ke(c),l)}]}const Xt={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Jt(e,t,n,r,i,o,a){const s={year:2===t.length?tt(Je(t)):Je(t),month:ct.indexOf(n)+1,day:Je(r),hour:Je(i),minute:Je(o)};return a&&(s.second=Je(a)),e&&(s.weekday=e.length>3?dt.indexOf(e)+1:pt.indexOf(e)+1),s}const Zt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Kt(e){const[,t,n,r,i,o,a,s,A,c,u,l]=e,d=Jt(t,i,r,n,o,a,s);let p;return p=A?Xt[A]:c?0:rt(u,l),[d,new re(p)]}const Gt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Ht=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Bt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Yt(e){const[,t,n,r,i,o,a,s]=e;return[Jt(t,i,r,n,o,a,s),re.utcInstance]}function Qt(e){const[,t,n,r,i,o,a,s]=e;return[Jt(t,s,n,r,i,o,a),re.utcInstance]}const $t=Et(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Nt),en=Et(/(\d{4})-?W(\d\d)(?:-?(\d))?/,Nt),tn=Et(/(\d{4})-?(\d{3})/,Nt),nn=Et(Lt),rn=jt((function(e,t){return[{year:_t(e,t),month:_t(e,t+1,1),day:_t(e,t+2,1)},null,t+3]}),Wt,zt,Dt),on=jt(xt,Wt,zt,Dt),an=jt(Mt,Wt,zt,Dt),sn=jt(Wt,zt,Dt),An=jt(Wt),cn=Et(/(\d{4})-(\d\d)-(\d\d)/,It),un=Et(Ut),ln=jt(Wt,zt,Dt),dn="Invalid Duration",pn={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},hn={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6},...pn},fn={years:{quarters:4,months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3},...pn},mn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],gn=mn.slice(0).reverse();function yn(e,t){const n={values:arguments.length>2&&void 0!==arguments[2]&&arguments[2]?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new kn(n)}function vn(e,t){let n=t.milliseconds??0;for(const r of gn.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bn(e,t){const n=vn(e,t)<0?-1:1;mn.reduceRight(((r,i)=>{if(Ue(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i}),null),mn.reduce(((n,r)=>{if(Ue(t[r]))return n;if(n){const i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r}),null)}class kn{constructor(e){const t="longterm"===e.conversionAccuracy||!1;let n=t?fn:hn;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,t){return kn.fromObject({milliseconds:e},t)}static fromObject(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==e||"object"!=typeof e)throw new c("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new kn({values:ot(e,kn.normalizeUnit),loc:te.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Ie(e))return kn.fromMillis(e);if(kn.isDuration(e))return e;if("object"==typeof e)return kn.fromObject(e);throw new c(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[n]=function(e){return Ot(e,[qt,Vt])}(e);return n?kn.fromObject(n,t):kn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[n]=function(e){return Ot(e,[Ft,An])}(e);return n?kn.fromObject(n,t):kn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw new c("need to specify a reason the Duration is invalid");const n=e instanceof be?e:new be(e,t);if(ve.throwOnInvalid)throw new a(n);return new kn({invalid:n})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new A(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={...t,floor:!1!==t.round&&!1!==t.floor};return this.isValid?Tt.create(this.loc,n).formatDurationFromString(this,e):dn}toHuman(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isValid)return dn;const t=mn.map((t=>{const n=this.values[t];return Ue(n)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(n)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=Ge(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e}toISOTime(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isValid)return null;const t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},dr.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?vn(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=kn.fromDurationLike(e),n={};for(const e of mn)(Fe(t.values,e)||Fe(this.values,e))&&(n[e]=t.get(e)+this.get(e));return yn(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const t=kn.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=it(e(this.values[n],n));return yn(this,{values:t},!0)}get(e){return this[kn.normalizeUnit(e)]}set(e){return this.isValid?yn(this,{values:{...this.values,...ot(e,kn.normalizeUnit)}}):this}reconfigure(){let{locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return yn(this,{loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n})}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return bn(this.matrix,e),yn(this,{values:e},!0)}rescale(){return this.isValid?yn(this,{values:function(e){const t={};for(const[n,r]of Object.entries(e))0!==r&&(t[n]=r);return t}(this.normalize().shiftToAll().toObject())},!0):this}shiftTo(){for(var e=arguments.length,t=new Array(e),n=0;nkn.normalizeUnit(e)));const r={},i={},o=this.toObject();let a;for(const e of mn)if(t.indexOf(e)>=0){a=e;let t=0;for(const n in i)t+=this.matrix[n][e]*i[n],i[n]=0;Ie(o[e])&&(t+=o[e]);const n=Math.trunc(t);r[e]=n,i[e]=(1e3*t-1e3*n)/1e3}else Ie(o[e])&&(i[e]=o[e]);for(const e in i)0!==i[e]&&(r[a]+=e===a?i[e]:i[e]/this.matrix[a][e]);return bn(this.matrix,r),yn(this,{values:r},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=0===this.values[t]?0:-this.values[t];return yn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;for(const r of mn)if(t=this.values[r],n=e.values[r],!(void 0===t||0===t?void 0===n||0===n:t===n))return!1;var t,n;return!0}}const Sn="Invalid Interval";class Tn{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw new c("need to specify a reason the Interval is invalid");const n=e instanceof be?e:new be(e,t);if(ve.throwOnInvalid)throw new o(n);return new Tn({invalid:n})}static fromDateTimes(e,t){const n=pr(e),r=pr(t),i=function(e,t){return e&&e.isValid?t&&t.isValid?t0&&void 0!==arguments[0]?arguments[0]:"milliseconds";return this.isValid?this.toDuration(e).get(e):NaN}count(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"milliseconds",t=arguments.length>1?arguments[1]:void 0;if(!this.isValid)return NaN;const n=this.start.startOf(e,t);let r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return!!this.isValid&&this.s>e}isBefore(e){return!!this.isValid&&this.e<=e}contains(e){return!!this.isValid&&this.s<=e&&this.e>e}set(){let{start:e,end:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?Tn.fromDateTimes(e||this.s,t||this.e):this}splitAt(){if(!this.isValid)return[];for(var e=arguments.length,t=new Array(e),n=0;nthis.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),i=[];let{s:o}=this,a=0;for(;o+this.e?this.e:e;i.push(Tn.fromDateTimes(o,t)),o=t,a+=1}return i}splitBy(e){const t=kn.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];let n,{s:r}=this,i=1;const o=[];for(;re*i)));n=+e>+this.e?this.e:e,o.push(Tn.fromDateTimes(r,n)),r=n,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s=e.e}equals(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,n=this.e=n?null:Tn.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;const t=this.se.e?this.e:e.e;return Tn.fromDateTimes(t,n)}static merge(e){const[t,n]=e.sort(((e,t)=>e.s-t.s)).reduce(((e,t)=>{let[n,r]=e;return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]}),[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0;const r=[],i=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),o=Array.prototype.concat(...i).sort(((e,t)=>e.time-t.time));for(const e of o)n+="s"===e.type?1:-1,1===n?t=e.time:(t&&+t!=+e.time&&r.push(Tn.fromDateTimes(t,e.time)),t=null);return Tn.merge(r)}difference(){for(var e=arguments.length,t=new Array(e),n=0;nthis.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Sn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.isValid?Tt.create(this.s.loc.clone(t),e).formatInterval(this):Sn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Sn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Sn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Sn}toFormat(e){let{separator:t=" – "}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Sn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):kn.invalid(this.invalidReason)}mapEndpoints(e){return Tn.fromDateTimes(e(this.s),e(this.e))}}class wn{static hasDST(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ve.defaultZone;const t=dr.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return q.isValidZone(e)}static normalizeZone(e){return oe(e,ve.defaultZone)}static getStartOfWeek(){let{locale:e=null,locObj:t=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(t||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek(){let{locale:e=null,locObj:t=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(t||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays(){let{locale:e=null,locObj:t=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(t||te.create(e)).getWeekendDays().slice()}static months(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"long",{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i="gregory"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(r||te.create(t,n,i)).months(e)}static monthsFormat(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"long",{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i="gregory"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(r||te.create(t,n,i)).months(e,!0)}static weekdays(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"long",{locale:t=null,numberingSystem:n=null,locObj:r=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(r||te.create(t,n,null)).weekdays(e)}static weekdaysFormat(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"long",{locale:t=null,numberingSystem:n=null,locObj:r=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(r||te.create(t,n,null)).weekdays(e,!0)}static meridiems(){let{locale:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return te.create(e).meridiems()}static eras(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"short",{locale:t=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return te.create(t,null,"gregory").eras(e)}static features(){return{relative:We(),localeWeek:ze()}}}function En(e,t){const n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(kn.fromMillis(r).as("days"))}function jn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return{regex:e,deser:e=>{let[n]=e;return t(function(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}return t}(n))}}}const On=`[ ${String.fromCharCode(160)}]`,Rn=new RegExp(On,"g");function Pn(e){return e.replace(/\./g,"\\.?").replace(Rn,On)}function Cn(e){return e.replace(/\./g,"").replace(Rn," ").toLowerCase()}function Ln(e,t){return null===e?null:{regex:RegExp(e.map(Pn).join("|")),deser:n=>{let[r]=n;return e.findIndex((e=>Cn(r)===Cn(e)))+t}}}function Nn(e,t){return{regex:e,deser:e=>{let[,t,n]=e;return rt(t,n)},groups:t}}function xn(e){return{regex:e,deser:e=>{let[t]=e;return t}}}const Mn={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};let Un=null;function In(e,t){return Array.prototype.concat(...e.map((e=>function(e,t){if(e.literal)return e;const n=zn(Tt.macroTokenToFormatOpts(e.val),t);return null==n||n.includes(void 0)?e:n}(e,t))))}class _n{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=In(Tt.parseFormat(t),e),this.units=this.tokens.map((t=>function(e,t){const n=ue(t),r=ue(t,"{2}"),i=ue(t,"{3}"),o=ue(t,"{4}"),a=ue(t,"{6}"),s=ue(t,"{1,2}"),A=ue(t,"{1,3}"),c=ue(t,"{1,6}"),u=ue(t,"{1,9}"),l=ue(t,"{2,4}"),d=ue(t,"{4,6}"),p=e=>{return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:e=>{let[t]=e;return t},literal:!0};var t},h=(h=>{if(e.literal)return p(h);switch(h.val){case"G":return Ln(t.eras("short"),0);case"GG":return Ln(t.eras("long"),0);case"y":return jn(c);case"yy":case"kk":return jn(l,tt);case"yyyy":case"kkkk":return jn(o);case"yyyyy":return jn(d);case"yyyyyy":return jn(a);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return jn(s);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return jn(r);case"MMM":return Ln(t.months("short",!0),1);case"MMMM":return Ln(t.months("long",!0),1);case"LLL":return Ln(t.months("short",!1),1);case"LLLL":return Ln(t.months("long",!1),1);case"o":case"S":return jn(A);case"ooo":case"SSS":return jn(i);case"u":return xn(u);case"uu":return xn(s);case"uuu":case"E":case"c":return jn(n);case"a":return Ln(t.meridiems(),0);case"EEE":return Ln(t.weekdays("short",!1),1);case"EEEE":return Ln(t.weekdays("long",!1),1);case"ccc":return Ln(t.weekdays("short",!0),1);case"cccc":return Ln(t.weekdays("long",!0),1);case"Z":case"ZZ":return Nn(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Nn(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return xn(/[a-z_+-/]{1,256}?/i);case" ":return xn(/[^\S\n\r]/);default:return p(h)}})(e)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"};return h.token=e,h}(t,e))),this.disqualifyingUnit=this.units.find((e=>e.invalidReason)),!this.disqualifyingUnit){const[e,t]=[`^${(n=this.units).map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"")}$`,n];this.regex=RegExp(e,"i"),this.handlers=t}var n}explainFromTokens(e){if(this.isValid){const[t,n]=function(e,t,n){const r=e.match(t);if(r){const e={};let t=1;for(const i in n)if(Fe(n,i)){const o=n[i],a=o.groups?o.groups+1:1;!o.literal&&o.token&&(e[o.token.val[0]]=o.deser(r.slice(t,t+a))),t+=a}return[r,e]}return[r,{}]}(e,this.regex,this.handlers),[r,i,o]=n?function(e){let t,n=null;return Ue(e.z)||(n=q.create(e.z)),Ue(e.Z)||(n||(n=new re(e.Z)),t=e.Z),Ue(e.q)||(e.M=3*(e.q-1)+1),Ue(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),Ue(e.u)||(e.S=Ke(e.u)),[Object.keys(e).reduce(((t,n)=>{const r=(e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}})(n);return r&&(t[r]=e[n]),t}),{}),n,t]}(n):[null,null,void 0];if(Fe(n,"a")&&Fe(n,"H"))throw new s("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:o}}return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Wn(e,t,n){return new _n(e,n).explainFromTokens(t)}function zn(e,t){if(!e)return null;const n=Tt.create(t,e).dtFormatter((Un||(Un=dr.fromMillis(1555555555555)),Un)),r=n.formatToParts(),i=n.resolvedOptions();return r.map((t=>function(e,t,n){const{type:r,value:i}=e;if("literal"===r){const e=/^\s+$/.test(i);return{literal:!e,val:e?" ":i}}const o=t[r];let a=r;"hour"===r&&(a=null!=t.hour12?t.hour12?"hour12":"hour24":null!=t.hourCycle?"h11"===t.hourCycle||"h12"===t.hourCycle?"hour12":"hour24":n.hour12?"hour12":"hour24");let s=Mn[a];if("object"==typeof s&&(s=s[o]),s)return{literal:!1,val:s}}(t,e,i)))}const Dn="Invalid DateTime",Fn=864e13;function qn(e){return new be("unsupported zone",`the zone "${e.name}" is not supported`)}function Vn(e){return null===e.weekData&&(e.weekData=Re(e.c)),e.weekData}function Xn(e){return null===e.localWeekData&&(e.localWeekData=Re(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Jn(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new dr({...n,...t,old:n})}function Zn(e,t,n){let r=e-60*t*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=60*(i-t)*1e3;const o=n.offset(r);return i===o?[r,i]:[e-60*Math.min(i,o)*1e3,Math.max(i,o)]}function Kn(e,t){const n=new Date(e+=60*t*1e3);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Gn(e,t,n){return Zn(Qe(e),t,n)}function Hn(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),o={...e.c,year:r,month:i,day:Math.min(e.c.day,Ye(r,i))+Math.trunc(t.days)+7*Math.trunc(t.weeks)},a=kn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=Qe(o);let[A,c]=Zn(s,n,e.zone);return 0!==a&&(A+=a,c=e.zone.offset(A)),{ts:A,o:c}}function Bn(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&0!==Object.keys(e).length||t){const r=t||s,i=dr.fromObject(e,{...n,zone:r,specificOffset:o});return a?i:i.setZone(s)}return dr.invalid(new be("unparsable",`the input "${i}" can't be parsed as ${r}`))}function Yn(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return e.isValid?Tt.create(te.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Qn(e,t){const n=e.c.year>9999||e.c.year<0;let r="";return n&&e.c.year>=0&&(r+="+"),r+=Xe(e.c.year,n?6:4),t?(r+="-",r+=Xe(e.c.month),r+="-",r+=Xe(e.c.day)):(r+=Xe(e.c.month),r+=Xe(e.c.day)),r}function $n(e,t,n,r,i,o){let a=Xe(e.c.hour);return t?(a+=":",a+=Xe(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(a+=":")):a+=Xe(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(a+=Xe(e.c.second),0===e.c.millisecond&&r||(a+=".",a+=Xe(e.c.millisecond,3))),i&&(e.isOffsetFixed&&0===e.offset&&!o?a+="Z":e.o<0?(a+="-",a+=Xe(Math.trunc(-e.o/60)),a+=":",a+=Xe(Math.trunc(-e.o%60))):(a+="+",a+=Xe(Math.trunc(e.o/60)),a+=":",a+=Xe(Math.trunc(e.o%60)))),o&&(a+="["+e.zone.ianaName+"]"),a}const er={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},tr={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},nr={ordinal:1,hour:0,minute:0,second:0,millisecond:0},rr=["year","month","day","hour","minute","second","millisecond"],ir=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],or=["year","ordinal","hour","minute","second","millisecond"];function ar(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return function(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new A(e);return t}(e)}}function sr(e,t){const n=oe(t.zone,ve.defaultZone);if(!n.isValid)return dr.invalid(qn(n));const r=te.fromObject(t);let i,o;if(Ue(e.year))i=ve.now();else{for(const t of rr)Ue(e[t])&&(e[t]=er[t]);const t=xe(e)||Me(e);if(t)return dr.invalid(t);const r=function(e){return lr[e]||(void 0===ur&&(ur=ve.now()),lr[e]=e.offset(ur)),lr[e]}(n);[i,o]=Gn(e,r,n)}return new dr({ts:i,zone:n,loc:r,o})}function Ar(e,t,n){const r=!!Ue(n.round)||n.round,i=(e,i)=>(e=Ge(e,r||n.calendary?0:2,!0),t.loc.clone(n).relFormatter(n).format(e,i)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return i(o(n.unit),n.unit);for(const e of n.units){const t=o(e);if(Math.abs(t)>=1)return i(t,e)}return i(e>t?-0:0,n.units[n.units.length-1])}function cr(e){let t,n={};return e.length>0&&"object"==typeof e[e.length-1]?(n=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[n,t]}let ur,lr={};class dr{constructor(e){const t=e.zone||ve.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new be("invalid input"):null)||(t.isValid?null:qn(t));this.ts=Ue(e.ts)?ve.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{const o=Ie(e.o)&&!e.old?e.o:t.offset(this.ts);r=Kn(this.ts,o),n=Number.isNaN(r.year)?new be("invalid input"):null,r=n?null:r,i=n?null:o}this._zone=t,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new dr({})}static local(){const[e,t]=cr(arguments),[n,r,i,o,a,s,A]=t;return sr({year:n,month:r,day:i,hour:o,minute:a,second:s,millisecond:A},e)}static utc(){const[e,t]=cr(arguments),[n,r,i,o,a,s,A]=t;return e.zone=re.utcInstance,sr({year:n,month:r,day:i,hour:o,minute:a,second:s,millisecond:A},e)}static fromJSDate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(r=e,"[object Date]"===Object.prototype.toString.call(r)?e.valueOf():NaN);var r;if(Number.isNaN(n))return dr.invalid("invalid input");const i=oe(t.zone,ve.defaultZone);return i.isValid?new dr({ts:n,zone:i,loc:te.fromObject(t)}):dr.invalid(qn(i))}static fromMillis(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Ie(e))return e<-Fn||e>Fn?dr.invalid("Timestamp out of range"):new dr({ts:e,zone:oe(t.zone,ve.defaultZone),loc:te.fromObject(t)});throw new c(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Ie(e))return new dr({ts:1e3*e,zone:oe(t.zone,ve.defaultZone),loc:te.fromObject(t)});throw new c("fromSeconds requires a numerical input")}static fromObject(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=e||{};const n=oe(t.zone,ve.defaultZone);if(!n.isValid)return dr.invalid(qn(n));const r=te.fromObject(t),i=ot(e,ar),{minDaysInFirstWeek:o,startOfWeek:a}=Ne(i,r),A=ve.now(),c=Ue(t.specificOffset)?n.offset(A):t.specificOffset,u=!Ue(i.ordinal),l=!Ue(i.year),d=!Ue(i.month)||!Ue(i.day),p=l||d,h=i.weekYear||i.weekNumber;if((p||u)&&h)throw new s("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(d&&u)throw new s("Can't mix ordinal dates with month/day");const f=h||i.weekday&&!p;let m,g,y=Kn(A,c);f?(m=ir,g=tr,y=Re(y,o,a)):u?(m=or,g=nr,y=Ce(y)):(m=rr,g=er);let v=!1;for(const e of m)Ue(i[e])?i[e]=v?g[e]:y[e]:v=!0;const b=f?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r=_e(e.weekYear),i=Ve(e.weekNumber,1,et(e.weekYear,t,n)),o=Ve(e.weekday,1,7);return r?i?!o&&Te("weekday",e.weekday):Te("week",e.weekNumber):Te("weekYear",e.weekYear)}(i,o,a):u?function(e){const t=_e(e.year),n=Ve(e.ordinal,1,Be(e.year));return t?!n&&Te("ordinal",e.ordinal):Te("year",e.year)}(i):xe(i),k=b||Me(i);if(k)return dr.invalid(k);const S=f?Pe(i,o,a):u?Le(i):i,[T,w]=Gn(S,c,n),E=new dr({ts:T,zone:n,o:w,loc:r});return i.weekday&&p&&e.weekday!==E.weekday?dr.invalid("mismatched weekday",`you can't specify both a weekday of ${i.weekday} and a date of ${E.toISO()}`):E.isValid?E:dr.invalid(E.invalid)}static fromISO(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[n,r]=function(e){return Ot(e,[$t,rn],[en,on],[tn,an],[nn,sn])}(e);return Bn(n,r,t,"ISO 8601",e)}static fromRFC2822(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[n,r]=function(e){return Ot(function(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[Zt,Kt])}(e);return Bn(n,r,t,"RFC 2822",e)}static fromHTTP(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[n,r]=function(e){return Ot(e,[Gt,Yt],[Ht,Yt],[Bt,Qt])}(e);return Bn(n,r,t,"HTTP",t)}static fromFormat(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Ue(e)||Ue(t))throw new c("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:i=null}=n,o=te.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),[a,s,A,u]=function(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Wn(e,t,n);return[r,i,o,a]}(o,e,t);return u?dr.invalid(u):Bn(a,s,n,`format ${t}`,e,A)}static fromString(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return dr.fromFormat(e,t,n)}static fromSQL(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const[n,r]=function(e){return Ot(e,[cn,rn],[un,ln])}(e);return Bn(n,r,t,"SQL",e)}static invalid(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e)throw new c("need to specify a reason the DateTime is invalid");const n=e instanceof be?e:new be(e,t);if(ve.throwOnInvalid)throw new i(n);return new dr({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=zn(e,te.fromObject(t));return n?n.map((e=>e?e.val:null)).join(""):null}static expandFormat(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return In(Tt.parseFormat(e),te.fromObject(t)).map((e=>e.val)).join("")}static resetCache(){ur=void 0,lr={}}get(e){return this[e]}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Vn(this).weekYear:NaN}get weekNumber(){return this.isValid?Vn(this).weekNumber:NaN}get weekday(){return this.isValid?Vn(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Xn(this).weekday:NaN}get localWeekNumber(){return this.isValid?Xn(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Xn(this).weekYear:NaN}get ordinal(){return this.isValid?Ce(this.c).ordinal:NaN}get monthShort(){return this.isValid?wn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?wn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?wn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?wn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,t=6e4,n=Qe(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),o=this.zone.offset(n-r*t),a=this.zone.offset(n-i*t);if(o===a)return[this];const s=n-o*t,A=n-a*t,c=Kn(s,o),u=Kn(A,a);return c.hour===u.hour&&c.minute===u.minute&&c.second===u.second&&c.millisecond===u.millisecond?[Jn(this,{ts:s}),Jn(this,{ts:A})]:[this]}get isInLeapYear(){return He(this.year)}get daysInMonth(){return Ye(this.year,this.month)}get daysInYear(){return this.isValid?Be(this.year):NaN}get weeksInWeekYear(){return this.isValid?et(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?et(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{locale:t,numberingSystem:n,calendar:r}=Tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setZone(re.instance(e),t)}toLocal(){return this.setZone(ve.defaultZone)}setZone(e){let{keepLocalTime:t=!1,keepCalendarTime:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((e=oe(e,ve.defaultZone)).equals(this.zone))return this;if(e.isValid){let r=this.ts;if(t||n){const t=e.offset(this.ts),n=this.toObject();[r]=Gn(n,t,e)}return Jn(this,{ts:r,zone:e})}return dr.invalid(qn(e))}reconfigure(){let{locale:e,numberingSystem:t,outputCalendar:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Jn(this,{loc:this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n})})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=ot(e,ar),{minDaysInFirstWeek:n,startOfWeek:r}=Ne(t,this.loc),i=!Ue(t.weekYear)||!Ue(t.weekNumber)||!Ue(t.weekday),o=!Ue(t.ordinal),a=!Ue(t.year),A=!Ue(t.month)||!Ue(t.day),c=a||A,u=t.weekYear||t.weekNumber;if((c||o)&&u)throw new s("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(A&&o)throw new s("Can't mix ordinal dates with month/day");let l;i?l=Pe({...Re(this.c,n,r),...t},n,r):Ue(t.ordinal)?(l={...this.toObject(),...t},Ue(t.day)&&(l.day=Math.min(Ye(l.year,l.month),l.day))):l=Le({...Ce(this.c),...t});const[d,p]=Gn(l,this.o,this.zone);return Jn(this,{ts:d,o:p})}plus(e){return this.isValid?Jn(this,Hn(this,kn.fromDurationLike(e))):this}minus(e){return this.isValid?Jn(this,Hn(this,kn.fromDurationLike(e).negate())):this}startOf(e){let{useLocaleWeeks:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isValid)return this;const n={},r=kn.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0}if("weeks"===r)if(t){const e=this.loc.getStartOfWeek(),{weekday:t}=this;t1&&void 0!==arguments[1]?arguments[1]:{};return this.isValid?Tt.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Dn}toLocaleString(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.isValid?Tt.create(this.loc.clone(t),e).formatDateTime(this):Dn}toLocaleParts(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?Tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO(){let{format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isValid)return null;const o="extended"===e;let a=Qn(this,o);return a+="T",a+=$n(this,o,t,n,r,i),a}toISODate(){let{format:e="extended"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?Qn(this,"extended"===e):null}toISOWeekDate(){return Yn(this,"kkkk-'W'WW-c")}toISOTime(){let{suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:o="extended"}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?(r?"T":"")+$n(this,"extended"===o,t,e,n,i):null}toRFC2822(){return Yn(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Yn(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qn(this,!0):null}toSQLTime(){let{includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r="HH:mm:ss.SSS";return(t||e)&&(n&&(r+=" "),t?r+="z":e&&(r+="ZZ")),Yn(this,r,!0)}toSQL(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Dn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"milliseconds",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!this.isValid||!e.isValid)return kn.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=(s=t,Array.isArray(s)?s:[s]).map(kn.normalizeUnit),o=e.valueOf()>this.valueOf(),a=function(e,t,n,r){let[i,o,a,s]=function(e,t,n){const r=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+4*(t.year-e.year)],["months",(e,t)=>t.month-e.month+12*(t.year-e.year)],["weeks",(e,t)=>{const n=En(e,t);return(n-n%7)/7}],["days",En]],i={},o=e;let a,s;for(const[A,c]of r)n.indexOf(A)>=0&&(a=A,i[A]=c(e,t),s=o.plus(i),s>t?(i[A]--,(e=o.plus(i))>t&&(s=e,i[A]--,e=o.plus(i))):e=s);return[e,i,s,a]}(e,t,n);const A=t-i,c=n.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));0===c.length&&(a0?kn.fromMillis(A,r).shiftTo(...c).plus(u):u}(o?this:e,o?e:this,i,r);var s;return o?a.negate():a}diffNow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"milliseconds",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.diff(dr.now(),e,t)}until(e){return this.isValid?Tn.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;const r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isValid)return null;const t=e.base||dr.fromObject({},{zone:this.zone}),n=e.padding?this0&&void 0!==arguments[0]?arguments[0]:{};return this.isValid?Ar(e.base||dr.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(){for(var e=arguments.length,t=new Array(e),n=0;ne.valueOf()),Math.min)}static max(){for(var e=arguments.length,t=new Array(e),n=0;ne.valueOf()),Math.max)}static fromFormatExplain(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{locale:r=null,numberingSystem:i=null}=n;return Wn(te.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return dr.fromFormatExplain(e,t,n)}static buildFormatParser(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{locale:n=null,numberingSystem:r=null}=t,i=te.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new _n(i,e)}static fromFormatParser(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Ue(e)||Ue(t))throw new c("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:i=null}=n,o=te.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});if(!o.equals(t.locale))throw new c(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${t.locale}`);const{result:a,zone:s,specificOffset:A,invalidReason:u}=t.explainFromTokens(e);return u?dr.invalid(u):Bn(a,s,n,`format ${t.format}`,e,A)}static get DATE_SHORT(){return h}static get DATE_MED(){return f}static get DATE_MED_WITH_WEEKDAY(){return m}static get DATE_FULL(){return g}static get DATE_HUGE(){return y}static get TIME_SIMPLE(){return v}static get TIME_WITH_SECONDS(){return b}static get TIME_WITH_SHORT_OFFSET(){return k}static get TIME_WITH_LONG_OFFSET(){return S}static get TIME_24_SIMPLE(){return T}static get TIME_24_WITH_SECONDS(){return w}static get TIME_24_WITH_SHORT_OFFSET(){return E}static get TIME_24_WITH_LONG_OFFSET(){return j}static get DATETIME_SHORT(){return O}static get DATETIME_SHORT_WITH_SECONDS(){return R}static get DATETIME_MED(){return P}static get DATETIME_MED_WITH_SECONDS(){return C}static get DATETIME_MED_WITH_WEEKDAY(){return L}static get DATETIME_FULL(){return N}static get DATETIME_FULL_WITH_SECONDS(){return x}static get DATETIME_HUGE(){return M}static get DATETIME_HUGE_WITH_SECONDS(){return U}}function pr(e){if(dr.isDateTime(e))return e;if(e&&e.valueOf&&Ie(e.valueOf()))return dr.fromJSDate(e);if(e&&"object"==typeof e)return dr.fromObject(e);throw new c(`Unknown datetime argument: ${e}, of type ${typeof e}`)}},4109:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});const r=(e,t)=>t.some((t=>t instanceof RegExp?t.test(e):t===e)),i=new Set(["https:","http:","file:"]),o=e=>{try{const{protocol:t}=new URL(e);return t.endsWith(":")&&!t.includes(".")&&!i.has(t)}catch{return!1}},a=(e,t)=>{let{stripHash:n}=t;const r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:i,data:o,hash:a}=r.groups;const s=i.split(";");a=n?"":a;let A=!1;"base64"===s[s.length-1]&&(s.pop(),A=!0);const c=s.shift()?.toLowerCase()??"",u=[...s.map((e=>{let[t,n=""]=e.split("=").map((e=>e.trim()));return"charset"===t&&(n=n.toLowerCase(),"us-ascii"===n)?"":`${t}${n?`=${n}`:""}`})).filter(Boolean)];return A&&u.push("base64"),(u.length>0||c&&"text/plain"!==c)&&u.unshift(c),`data:${u.join(";")},${A?o.trim():o}${a?`#${a}`:""}`};function s(e,t){if("string"!=typeof(t={defaultProtocol:"http",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,removeExplicitPort:!1,sortQueryParameters:!0,...t}).defaultProtocol||t.defaultProtocol.endsWith(":")||(t.defaultProtocol=`${t.defaultProtocol}:`),e=e.trim(),/^data:/i.test(e))return a(e,t);if(o(e))return e;const n=e.startsWith("//");!n&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));const i=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&"https:"===i.protocol&&(i.protocol="http:"),t.forceHttps&&"http:"===i.protocol&&(i.protocol="https:"),t.stripAuthentication&&(i.username="",i.password=""),t.stripHash?i.hash="":t.stripTextFragment&&(i.hash=i.hash.replace(/#?:~:text.*?$/i,"")),i.pathname){const e=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g;let t=0,n="";for(;;){const r=e.exec(i.pathname);if(!r)break;const o=r[0],a=r.index;n+=i.pathname.slice(t,a).replace(/\/{2,}/g,"/"),n+=o,t=a+o.length}n+=i.pathname.slice(t,i.pathname.length).replace(/\/{2,}/g,"/"),i.pathname=n}if(i.pathname)try{i.pathname=decodeURI(i.pathname)}catch{}if(!0===t.removeDirectoryIndex&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=i.pathname.split("/");const n=e[e.length-1];r(n,t.removeDirectoryIndex)&&(e=e.slice(0,-1),i.pathname=e.slice(1).join("/")+"/")}if(i.hostname&&(i.hostname=i.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(i.hostname)&&(i.hostname=i.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(const e of[...i.searchParams.keys()])r(e,t.removeQueryParameters)&&i.searchParams.delete(e);if(Array.isArray(t.keepQueryParameters)||!0!==t.removeQueryParameters||(i.search=""),Array.isArray(t.keepQueryParameters)&&t.keepQueryParameters.length>0)for(const e of[...i.searchParams.keys()])r(e,t.keepQueryParameters)||i.searchParams.delete(e);if(t.sortQueryParameters){i.searchParams.sort();try{i.search=decodeURIComponent(i.search)}catch{}}t.removeTrailingSlash&&(i.pathname=i.pathname.replace(/\/$/,"")),t.removeExplicitPort&&i.port&&(i.port="");const s=e;return e=i.toString(),t.removeSingleSlash||"/"!==i.pathname||s.endsWith("/")||""!==i.hash||(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||"/"===i.pathname)&&""===i.hash&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),n&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e}},6109:e=>{"use strict";e.exports=JSON.parse('{"icann":{"ac":1,"com.ac":2,"edu.ac":2,"gov.ac":2,"net.ac":2,"mil.ac":2,"org.ac":2,"ad":1,"nom.ad":2,"ae":1,"co.ae":2,"net.ae":2,"org.ae":2,"sch.ae":2,"ac.ae":2,"gov.ae":2,"mil.ae":2,"aero":1,"accident-investigation.aero":2,"accident-prevention.aero":2,"aerobatic.aero":2,"aeroclub.aero":2,"aerodrome.aero":2,"agents.aero":2,"aircraft.aero":2,"airline.aero":2,"airport.aero":2,"air-surveillance.aero":2,"airtraffic.aero":2,"air-traffic-control.aero":2,"ambulance.aero":2,"amusement.aero":2,"association.aero":2,"author.aero":2,"ballooning.aero":2,"broker.aero":2,"caa.aero":2,"cargo.aero":2,"catering.aero":2,"certification.aero":2,"championship.aero":2,"charter.aero":2,"civilaviation.aero":2,"club.aero":2,"conference.aero":2,"consultant.aero":2,"consulting.aero":2,"control.aero":2,"council.aero":2,"crew.aero":2,"design.aero":2,"dgca.aero":2,"educator.aero":2,"emergency.aero":2,"engine.aero":2,"engineer.aero":2,"entertainment.aero":2,"equipment.aero":2,"exchange.aero":2,"express.aero":2,"federation.aero":2,"flight.aero":2,"fuel.aero":2,"gliding.aero":2,"government.aero":2,"groundhandling.aero":2,"group.aero":2,"hanggliding.aero":2,"homebuilt.aero":2,"insurance.aero":2,"journal.aero":2,"journalist.aero":2,"leasing.aero":2,"logistics.aero":2,"magazine.aero":2,"maintenance.aero":2,"media.aero":2,"microlight.aero":2,"modelling.aero":2,"navigation.aero":2,"parachuting.aero":2,"paragliding.aero":2,"passenger-association.aero":2,"pilot.aero":2,"press.aero":2,"production.aero":2,"recreation.aero":2,"repbody.aero":2,"res.aero":2,"research.aero":2,"rotorcraft.aero":2,"safety.aero":2,"scientist.aero":2,"services.aero":2,"show.aero":2,"skydiving.aero":2,"software.aero":2,"student.aero":2,"trader.aero":2,"trading.aero":2,"trainer.aero":2,"union.aero":2,"workinggroup.aero":2,"works.aero":2,"af":1,"gov.af":2,"com.af":2,"org.af":2,"net.af":2,"edu.af":2,"ag":1,"com.ag":2,"org.ag":2,"net.ag":2,"co.ag":2,"nom.ag":2,"ai":1,"off.ai":2,"com.ai":2,"net.ai":2,"org.ai":2,"al":1,"com.al":2,"edu.al":2,"gov.al":2,"mil.al":2,"net.al":2,"org.al":2,"am":1,"co.am":2,"com.am":2,"commune.am":2,"net.am":2,"org.am":2,"ao":1,"ed.ao":2,"gv.ao":2,"og.ao":2,"co.ao":2,"pb.ao":2,"it.ao":2,"aq":1,"ar":1,"com.ar":2,"edu.ar":2,"gob.ar":2,"gov.ar":2,"int.ar":2,"mil.ar":2,"musica.ar":2,"net.ar":2,"org.ar":2,"tur.ar":2,"arpa":1,"e164.arpa":2,"in-addr.arpa":2,"ip6.arpa":2,"iris.arpa":2,"uri.arpa":2,"urn.arpa":2,"as":1,"gov.as":2,"asia":1,"at":1,"ac.at":2,"co.at":2,"gv.at":2,"or.at":2,"sth.ac.at":3,"au":1,"com.au":2,"net.au":2,"org.au":2,"edu.au":2,"gov.au":2,"asn.au":2,"id.au":2,"info.au":2,"conf.au":2,"oz.au":2,"act.au":2,"nsw.au":2,"nt.au":2,"qld.au":2,"sa.au":2,"tas.au":2,"vic.au":2,"wa.au":2,"act.edu.au":3,"catholic.edu.au":3,"nsw.edu.au":3,"nt.edu.au":3,"qld.edu.au":3,"sa.edu.au":3,"tas.edu.au":3,"vic.edu.au":3,"wa.edu.au":3,"qld.gov.au":3,"sa.gov.au":3,"tas.gov.au":3,"vic.gov.au":3,"wa.gov.au":3,"schools.nsw.edu.au":4,"aw":1,"com.aw":2,"ax":1,"az":1,"com.az":2,"net.az":2,"int.az":2,"gov.az":2,"org.az":2,"edu.az":2,"info.az":2,"pp.az":2,"mil.az":2,"name.az":2,"pro.az":2,"biz.az":2,"ba":1,"com.ba":2,"edu.ba":2,"gov.ba":2,"mil.ba":2,"net.ba":2,"org.ba":2,"bb":1,"biz.bb":2,"co.bb":2,"com.bb":2,"edu.bb":2,"gov.bb":2,"info.bb":2,"net.bb":2,"org.bb":2,"store.bb":2,"tv.bb":2,"bd":2,"be":1,"ac.be":2,"bf":1,"gov.bf":2,"bg":1,"a.bg":2,"b.bg":2,"c.bg":2,"d.bg":2,"e.bg":2,"f.bg":2,"g.bg":2,"h.bg":2,"i.bg":2,"j.bg":2,"k.bg":2,"l.bg":2,"m.bg":2,"n.bg":2,"o.bg":2,"p.bg":2,"q.bg":2,"r.bg":2,"s.bg":2,"t.bg":2,"u.bg":2,"v.bg":2,"w.bg":2,"x.bg":2,"y.bg":2,"z.bg":2,"0.bg":2,"1.bg":2,"2.bg":2,"3.bg":2,"4.bg":2,"5.bg":2,"6.bg":2,"7.bg":2,"8.bg":2,"9.bg":2,"bh":1,"com.bh":2,"edu.bh":2,"net.bh":2,"org.bh":2,"gov.bh":2,"bi":1,"co.bi":2,"com.bi":2,"edu.bi":2,"or.bi":2,"org.bi":2,"biz":1,"bj":1,"asso.bj":2,"barreau.bj":2,"gouv.bj":2,"bm":1,"com.bm":2,"edu.bm":2,"gov.bm":2,"net.bm":2,"org.bm":2,"bn":1,"com.bn":2,"edu.bn":2,"gov.bn":2,"net.bn":2,"org.bn":2,"bo":1,"com.bo":2,"edu.bo":2,"gob.bo":2,"int.bo":2,"org.bo":2,"net.bo":2,"mil.bo":2,"tv.bo":2,"web.bo":2,"academia.bo":2,"agro.bo":2,"arte.bo":2,"blog.bo":2,"bolivia.bo":2,"ciencia.bo":2,"cooperativa.bo":2,"democracia.bo":2,"deporte.bo":2,"ecologia.bo":2,"economia.bo":2,"empresa.bo":2,"indigena.bo":2,"industria.bo":2,"info.bo":2,"medicina.bo":2,"movimiento.bo":2,"musica.bo":2,"natural.bo":2,"nombre.bo":2,"noticias.bo":2,"patria.bo":2,"politica.bo":2,"profesional.bo":2,"plurinacional.bo":2,"pueblo.bo":2,"revista.bo":2,"salud.bo":2,"tecnologia.bo":2,"tksat.bo":2,"transporte.bo":2,"wiki.bo":2,"br":1,"9guacu.br":2,"abc.br":2,"adm.br":2,"adv.br":2,"agr.br":2,"aju.br":2,"am.br":2,"anani.br":2,"aparecida.br":2,"app.br":2,"arq.br":2,"art.br":2,"ato.br":2,"b.br":2,"barueri.br":2,"belem.br":2,"bhz.br":2,"bib.br":2,"bio.br":2,"blog.br":2,"bmd.br":2,"boavista.br":2,"bsb.br":2,"campinagrande.br":2,"campinas.br":2,"caxias.br":2,"cim.br":2,"cng.br":2,"cnt.br":2,"com.br":2,"contagem.br":2,"coop.br":2,"coz.br":2,"cri.br":2,"cuiaba.br":2,"curitiba.br":2,"def.br":2,"des.br":2,"det.br":2,"dev.br":2,"ecn.br":2,"eco.br":2,"edu.br":2,"emp.br":2,"enf.br":2,"eng.br":2,"esp.br":2,"etc.br":2,"eti.br":2,"far.br":2,"feira.br":2,"flog.br":2,"floripa.br":2,"fm.br":2,"fnd.br":2,"fortal.br":2,"fot.br":2,"foz.br":2,"fst.br":2,"g12.br":2,"geo.br":2,"ggf.br":2,"goiania.br":2,"gov.br":2,"ac.gov.br":3,"al.gov.br":3,"am.gov.br":3,"ap.gov.br":3,"ba.gov.br":3,"ce.gov.br":3,"df.gov.br":3,"es.gov.br":3,"go.gov.br":3,"ma.gov.br":3,"mg.gov.br":3,"ms.gov.br":3,"mt.gov.br":3,"pa.gov.br":3,"pb.gov.br":3,"pe.gov.br":3,"pi.gov.br":3,"pr.gov.br":3,"rj.gov.br":3,"rn.gov.br":3,"ro.gov.br":3,"rr.gov.br":3,"rs.gov.br":3,"sc.gov.br":3,"se.gov.br":3,"sp.gov.br":3,"to.gov.br":3,"gru.br":2,"imb.br":2,"ind.br":2,"inf.br":2,"jab.br":2,"jampa.br":2,"jdf.br":2,"joinville.br":2,"jor.br":2,"jus.br":2,"leg.br":2,"lel.br":2,"log.br":2,"londrina.br":2,"macapa.br":2,"maceio.br":2,"manaus.br":2,"maringa.br":2,"mat.br":2,"med.br":2,"mil.br":2,"morena.br":2,"mp.br":2,"mus.br":2,"natal.br":2,"net.br":2,"niteroi.br":2,"nom.br":3,"not.br":2,"ntr.br":2,"odo.br":2,"ong.br":2,"org.br":2,"osasco.br":2,"palmas.br":2,"poa.br":2,"ppg.br":2,"pro.br":2,"psc.br":2,"psi.br":2,"pvh.br":2,"qsl.br":2,"radio.br":2,"rec.br":2,"recife.br":2,"rep.br":2,"ribeirao.br":2,"rio.br":2,"riobranco.br":2,"riopreto.br":2,"salvador.br":2,"sampa.br":2,"santamaria.br":2,"santoandre.br":2,"saobernardo.br":2,"saogonca.br":2,"seg.br":2,"sjc.br":2,"slg.br":2,"slz.br":2,"sorocaba.br":2,"srv.br":2,"taxi.br":2,"tc.br":2,"tec.br":2,"teo.br":2,"the.br":2,"tmp.br":2,"trd.br":2,"tur.br":2,"tv.br":2,"udi.br":2,"vet.br":2,"vix.br":2,"vlog.br":2,"wiki.br":2,"zlg.br":2,"bs":1,"com.bs":2,"net.bs":2,"org.bs":2,"edu.bs":2,"gov.bs":2,"bt":1,"com.bt":2,"edu.bt":2,"gov.bt":2,"net.bt":2,"org.bt":2,"bv":1,"bw":1,"co.bw":2,"org.bw":2,"by":1,"gov.by":2,"mil.by":2,"com.by":2,"of.by":2,"bz":1,"com.bz":2,"net.bz":2,"org.bz":2,"edu.bz":2,"gov.bz":2,"ca":1,"ab.ca":2,"bc.ca":2,"mb.ca":2,"nb.ca":2,"nf.ca":2,"nl.ca":2,"ns.ca":2,"nt.ca":2,"nu.ca":2,"on.ca":2,"pe.ca":2,"qc.ca":2,"sk.ca":2,"yk.ca":2,"gc.ca":2,"cat":1,"cc":1,"cd":1,"gov.cd":2,"cf":1,"cg":1,"ch":1,"ci":1,"org.ci":2,"or.ci":2,"com.ci":2,"co.ci":2,"edu.ci":2,"ed.ci":2,"ac.ci":2,"net.ci":2,"go.ci":2,"asso.ci":2,"aéroport.ci":2,"int.ci":2,"presse.ci":2,"md.ci":2,"gouv.ci":2,"ck":2,"www.ck":1,"cl":1,"aprendemas.cl":2,"co.cl":2,"gob.cl":2,"gov.cl":2,"mil.cl":2,"cm":1,"co.cm":2,"com.cm":2,"gov.cm":2,"net.cm":2,"cn":1,"ac.cn":2,"com.cn":2,"edu.cn":2,"gov.cn":2,"net.cn":2,"org.cn":2,"mil.cn":2,"公司.cn":2,"网络.cn":2,"網絡.cn":2,"ah.cn":2,"bj.cn":2,"cq.cn":2,"fj.cn":2,"gd.cn":2,"gs.cn":2,"gz.cn":2,"gx.cn":2,"ha.cn":2,"hb.cn":2,"he.cn":2,"hi.cn":2,"hl.cn":2,"hn.cn":2,"jl.cn":2,"js.cn":2,"jx.cn":2,"ln.cn":2,"nm.cn":2,"nx.cn":2,"qh.cn":2,"sc.cn":2,"sd.cn":2,"sh.cn":2,"sn.cn":2,"sx.cn":2,"tj.cn":2,"xj.cn":2,"xz.cn":2,"yn.cn":2,"zj.cn":2,"hk.cn":2,"mo.cn":2,"tw.cn":2,"co":1,"arts.co":2,"com.co":2,"edu.co":2,"firm.co":2,"gov.co":2,"info.co":2,"int.co":2,"mil.co":2,"net.co":2,"nom.co":2,"org.co":2,"rec.co":2,"web.co":2,"com":1,"coop":1,"cr":1,"ac.cr":2,"co.cr":2,"ed.cr":2,"fi.cr":2,"go.cr":2,"or.cr":2,"sa.cr":2,"cu":1,"com.cu":2,"edu.cu":2,"org.cu":2,"net.cu":2,"gov.cu":2,"inf.cu":2,"cv":1,"cw":1,"com.cw":2,"edu.cw":2,"net.cw":2,"org.cw":2,"cx":1,"gov.cx":2,"cy":1,"ac.cy":2,"biz.cy":2,"com.cy":2,"ekloges.cy":2,"gov.cy":2,"ltd.cy":2,"name.cy":2,"net.cy":2,"org.cy":2,"parliament.cy":2,"press.cy":2,"pro.cy":2,"tm.cy":2,"cz":1,"de":1,"dj":1,"dk":1,"dm":1,"com.dm":2,"net.dm":2,"org.dm":2,"edu.dm":2,"gov.dm":2,"do":1,"art.do":2,"com.do":2,"edu.do":2,"gob.do":2,"gov.do":2,"mil.do":2,"net.do":2,"org.do":2,"sld.do":2,"web.do":2,"dz":1,"art.dz":2,"asso.dz":2,"com.dz":2,"edu.dz":2,"gov.dz":2,"org.dz":2,"net.dz":2,"pol.dz":2,"soc.dz":2,"tm.dz":2,"ec":1,"com.ec":2,"info.ec":2,"net.ec":2,"fin.ec":2,"k12.ec":2,"med.ec":2,"pro.ec":2,"org.ec":2,"edu.ec":2,"gov.ec":2,"gob.ec":2,"mil.ec":2,"edu":1,"ee":1,"edu.ee":2,"gov.ee":2,"riik.ee":2,"lib.ee":2,"med.ee":2,"com.ee":2,"pri.ee":2,"aip.ee":2,"org.ee":2,"fie.ee":2,"eg":1,"com.eg":2,"edu.eg":2,"eun.eg":2,"gov.eg":2,"mil.eg":2,"name.eg":2,"net.eg":2,"org.eg":2,"sci.eg":2,"er":2,"es":1,"com.es":2,"nom.es":2,"org.es":2,"gob.es":2,"edu.es":2,"et":1,"com.et":2,"gov.et":2,"org.et":2,"edu.et":2,"biz.et":2,"name.et":2,"info.et":2,"net.et":2,"eu":1,"fi":1,"aland.fi":2,"fj":1,"ac.fj":2,"biz.fj":2,"com.fj":2,"gov.fj":2,"info.fj":2,"mil.fj":2,"name.fj":2,"net.fj":2,"org.fj":2,"pro.fj":2,"fk":2,"com.fm":2,"edu.fm":2,"net.fm":2,"org.fm":2,"fm":1,"fo":1,"fr":1,"asso.fr":2,"com.fr":2,"gouv.fr":2,"nom.fr":2,"prd.fr":2,"tm.fr":2,"aeroport.fr":2,"avocat.fr":2,"avoues.fr":2,"cci.fr":2,"chambagri.fr":2,"chirurgiens-dentistes.fr":2,"experts-comptables.fr":2,"geometre-expert.fr":2,"greta.fr":2,"huissier-justice.fr":2,"medecin.fr":2,"notaires.fr":2,"pharmacien.fr":2,"port.fr":2,"veterinaire.fr":2,"ga":1,"gb":1,"edu.gd":2,"gov.gd":2,"gd":1,"ge":1,"com.ge":2,"edu.ge":2,"gov.ge":2,"org.ge":2,"mil.ge":2,"net.ge":2,"pvt.ge":2,"gf":1,"gg":1,"co.gg":2,"net.gg":2,"org.gg":2,"gh":1,"com.gh":2,"edu.gh":2,"gov.gh":2,"org.gh":2,"mil.gh":2,"gi":1,"com.gi":2,"ltd.gi":2,"gov.gi":2,"mod.gi":2,"edu.gi":2,"org.gi":2,"gl":1,"co.gl":2,"com.gl":2,"edu.gl":2,"net.gl":2,"org.gl":2,"gm":1,"gn":1,"ac.gn":2,"com.gn":2,"edu.gn":2,"gov.gn":2,"org.gn":2,"net.gn":2,"gov":1,"gp":1,"com.gp":2,"net.gp":2,"mobi.gp":2,"edu.gp":2,"org.gp":2,"asso.gp":2,"gq":1,"gr":1,"com.gr":2,"edu.gr":2,"net.gr":2,"org.gr":2,"gov.gr":2,"gs":1,"gt":1,"com.gt":2,"edu.gt":2,"gob.gt":2,"ind.gt":2,"mil.gt":2,"net.gt":2,"org.gt":2,"gu":1,"com.gu":2,"edu.gu":2,"gov.gu":2,"guam.gu":2,"info.gu":2,"net.gu":2,"org.gu":2,"web.gu":2,"gw":1,"gy":1,"co.gy":2,"com.gy":2,"edu.gy":2,"gov.gy":2,"net.gy":2,"org.gy":2,"hk":1,"com.hk":2,"edu.hk":2,"gov.hk":2,"idv.hk":2,"net.hk":2,"org.hk":2,"公司.hk":2,"教育.hk":2,"敎育.hk":2,"政府.hk":2,"個人.hk":2,"个人.hk":2,"箇人.hk":2,"網络.hk":2,"网络.hk":2,"组織.hk":2,"網絡.hk":2,"网絡.hk":2,"组织.hk":2,"組織.hk":2,"組织.hk":2,"hm":1,"hn":1,"com.hn":2,"edu.hn":2,"org.hn":2,"net.hn":2,"mil.hn":2,"gob.hn":2,"hr":1,"iz.hr":2,"from.hr":2,"name.hr":2,"com.hr":2,"ht":1,"com.ht":2,"shop.ht":2,"firm.ht":2,"info.ht":2,"adult.ht":2,"net.ht":2,"pro.ht":2,"org.ht":2,"med.ht":2,"art.ht":2,"coop.ht":2,"pol.ht":2,"asso.ht":2,"edu.ht":2,"rel.ht":2,"gouv.ht":2,"perso.ht":2,"hu":1,"co.hu":2,"info.hu":2,"org.hu":2,"priv.hu":2,"sport.hu":2,"tm.hu":2,"2000.hu":2,"agrar.hu":2,"bolt.hu":2,"casino.hu":2,"city.hu":2,"erotica.hu":2,"erotika.hu":2,"film.hu":2,"forum.hu":2,"games.hu":2,"hotel.hu":2,"ingatlan.hu":2,"jogasz.hu":2,"konyvelo.hu":2,"lakas.hu":2,"media.hu":2,"news.hu":2,"reklam.hu":2,"sex.hu":2,"shop.hu":2,"suli.hu":2,"szex.hu":2,"tozsde.hu":2,"utazas.hu":2,"video.hu":2,"id":1,"ac.id":2,"biz.id":2,"co.id":2,"desa.id":2,"go.id":2,"mil.id":2,"my.id":2,"net.id":2,"or.id":2,"ponpes.id":2,"sch.id":2,"web.id":2,"ie":1,"gov.ie":2,"il":1,"ac.il":2,"co.il":2,"gov.il":2,"idf.il":2,"k12.il":2,"muni.il":2,"net.il":2,"org.il":2,"im":1,"ac.im":2,"co.im":2,"com.im":2,"ltd.co.im":3,"net.im":2,"org.im":2,"plc.co.im":3,"tt.im":2,"tv.im":2,"in":1,"co.in":2,"firm.in":2,"net.in":2,"org.in":2,"gen.in":2,"ind.in":2,"nic.in":2,"ac.in":2,"edu.in":2,"res.in":2,"gov.in":2,"mil.in":2,"info":1,"int":1,"eu.int":2,"io":1,"com.io":2,"iq":1,"gov.iq":2,"edu.iq":2,"mil.iq":2,"com.iq":2,"org.iq":2,"net.iq":2,"ir":1,"ac.ir":2,"co.ir":2,"gov.ir":2,"id.ir":2,"net.ir":2,"org.ir":2,"sch.ir":2,"ایران.ir":2,"ايران.ir":2,"is":1,"net.is":2,"com.is":2,"edu.is":2,"gov.is":2,"org.is":2,"int.is":2,"it":1,"gov.it":2,"edu.it":2,"abr.it":2,"abruzzo.it":2,"aosta-valley.it":2,"aostavalley.it":2,"bas.it":2,"basilicata.it":2,"cal.it":2,"calabria.it":2,"cam.it":2,"campania.it":2,"emilia-romagna.it":2,"emiliaromagna.it":2,"emr.it":2,"friuli-v-giulia.it":2,"friuli-ve-giulia.it":2,"friuli-vegiulia.it":2,"friuli-venezia-giulia.it":2,"friuli-veneziagiulia.it":2,"friuli-vgiulia.it":2,"friuliv-giulia.it":2,"friulive-giulia.it":2,"friulivegiulia.it":2,"friulivenezia-giulia.it":2,"friuliveneziagiulia.it":2,"friulivgiulia.it":2,"fvg.it":2,"laz.it":2,"lazio.it":2,"lig.it":2,"liguria.it":2,"lom.it":2,"lombardia.it":2,"lombardy.it":2,"lucania.it":2,"mar.it":2,"marche.it":2,"mol.it":2,"molise.it":2,"piedmont.it":2,"piemonte.it":2,"pmn.it":2,"pug.it":2,"puglia.it":2,"sar.it":2,"sardegna.it":2,"sardinia.it":2,"sic.it":2,"sicilia.it":2,"sicily.it":2,"taa.it":2,"tos.it":2,"toscana.it":2,"trentin-sud-tirol.it":2,"trentin-süd-tirol.it":2,"trentin-sudtirol.it":2,"trentin-südtirol.it":2,"trentin-sued-tirol.it":2,"trentin-suedtirol.it":2,"trentino-a-adige.it":2,"trentino-aadige.it":2,"trentino-alto-adige.it":2,"trentino-altoadige.it":2,"trentino-s-tirol.it":2,"trentino-stirol.it":2,"trentino-sud-tirol.it":2,"trentino-süd-tirol.it":2,"trentino-sudtirol.it":2,"trentino-südtirol.it":2,"trentino-sued-tirol.it":2,"trentino-suedtirol.it":2,"trentino.it":2,"trentinoa-adige.it":2,"trentinoaadige.it":2,"trentinoalto-adige.it":2,"trentinoaltoadige.it":2,"trentinos-tirol.it":2,"trentinostirol.it":2,"trentinosud-tirol.it":2,"trentinosüd-tirol.it":2,"trentinosudtirol.it":2,"trentinosüdtirol.it":2,"trentinosued-tirol.it":2,"trentinosuedtirol.it":2,"trentinsud-tirol.it":2,"trentinsüd-tirol.it":2,"trentinsudtirol.it":2,"trentinsüdtirol.it":2,"trentinsued-tirol.it":2,"trentinsuedtirol.it":2,"tuscany.it":2,"umb.it":2,"umbria.it":2,"val-d-aosta.it":2,"val-daosta.it":2,"vald-aosta.it":2,"valdaosta.it":2,"valle-aosta.it":2,"valle-d-aosta.it":2,"valle-daosta.it":2,"valleaosta.it":2,"valled-aosta.it":2,"valledaosta.it":2,"vallee-aoste.it":2,"vallée-aoste.it":2,"vallee-d-aoste.it":2,"vallée-d-aoste.it":2,"valleeaoste.it":2,"valléeaoste.it":2,"valleedaoste.it":2,"valléedaoste.it":2,"vao.it":2,"vda.it":2,"ven.it":2,"veneto.it":2,"ag.it":2,"agrigento.it":2,"al.it":2,"alessandria.it":2,"alto-adige.it":2,"altoadige.it":2,"an.it":2,"ancona.it":2,"andria-barletta-trani.it":2,"andria-trani-barletta.it":2,"andriabarlettatrani.it":2,"andriatranibarletta.it":2,"ao.it":2,"aosta.it":2,"aoste.it":2,"ap.it":2,"aq.it":2,"aquila.it":2,"ar.it":2,"arezzo.it":2,"ascoli-piceno.it":2,"ascolipiceno.it":2,"asti.it":2,"at.it":2,"av.it":2,"avellino.it":2,"ba.it":2,"balsan-sudtirol.it":2,"balsan-südtirol.it":2,"balsan-suedtirol.it":2,"balsan.it":2,"bari.it":2,"barletta-trani-andria.it":2,"barlettatraniandria.it":2,"belluno.it":2,"benevento.it":2,"bergamo.it":2,"bg.it":2,"bi.it":2,"biella.it":2,"bl.it":2,"bn.it":2,"bo.it":2,"bologna.it":2,"bolzano-altoadige.it":2,"bolzano.it":2,"bozen-sudtirol.it":2,"bozen-südtirol.it":2,"bozen-suedtirol.it":2,"bozen.it":2,"br.it":2,"brescia.it":2,"brindisi.it":2,"bs.it":2,"bt.it":2,"bulsan-sudtirol.it":2,"bulsan-südtirol.it":2,"bulsan-suedtirol.it":2,"bulsan.it":2,"bz.it":2,"ca.it":2,"cagliari.it":2,"caltanissetta.it":2,"campidano-medio.it":2,"campidanomedio.it":2,"campobasso.it":2,"carbonia-iglesias.it":2,"carboniaiglesias.it":2,"carrara-massa.it":2,"carraramassa.it":2,"caserta.it":2,"catania.it":2,"catanzaro.it":2,"cb.it":2,"ce.it":2,"cesena-forli.it":2,"cesena-forlì.it":2,"cesenaforli.it":2,"cesenaforlì.it":2,"ch.it":2,"chieti.it":2,"ci.it":2,"cl.it":2,"cn.it":2,"co.it":2,"como.it":2,"cosenza.it":2,"cr.it":2,"cremona.it":2,"crotone.it":2,"cs.it":2,"ct.it":2,"cuneo.it":2,"cz.it":2,"dell-ogliastra.it":2,"dellogliastra.it":2,"en.it":2,"enna.it":2,"fc.it":2,"fe.it":2,"fermo.it":2,"ferrara.it":2,"fg.it":2,"fi.it":2,"firenze.it":2,"florence.it":2,"fm.it":2,"foggia.it":2,"forli-cesena.it":2,"forlì-cesena.it":2,"forlicesena.it":2,"forlìcesena.it":2,"fr.it":2,"frosinone.it":2,"ge.it":2,"genoa.it":2,"genova.it":2,"go.it":2,"gorizia.it":2,"gr.it":2,"grosseto.it":2,"iglesias-carbonia.it":2,"iglesiascarbonia.it":2,"im.it":2,"imperia.it":2,"is.it":2,"isernia.it":2,"kr.it":2,"la-spezia.it":2,"laquila.it":2,"laspezia.it":2,"latina.it":2,"lc.it":2,"le.it":2,"lecce.it":2,"lecco.it":2,"li.it":2,"livorno.it":2,"lo.it":2,"lodi.it":2,"lt.it":2,"lu.it":2,"lucca.it":2,"macerata.it":2,"mantova.it":2,"massa-carrara.it":2,"massacarrara.it":2,"matera.it":2,"mb.it":2,"mc.it":2,"me.it":2,"medio-campidano.it":2,"mediocampidano.it":2,"messina.it":2,"mi.it":2,"milan.it":2,"milano.it":2,"mn.it":2,"mo.it":2,"modena.it":2,"monza-brianza.it":2,"monza-e-della-brianza.it":2,"monza.it":2,"monzabrianza.it":2,"monzaebrianza.it":2,"monzaedellabrianza.it":2,"ms.it":2,"mt.it":2,"na.it":2,"naples.it":2,"napoli.it":2,"no.it":2,"novara.it":2,"nu.it":2,"nuoro.it":2,"og.it":2,"ogliastra.it":2,"olbia-tempio.it":2,"olbiatempio.it":2,"or.it":2,"oristano.it":2,"ot.it":2,"pa.it":2,"padova.it":2,"padua.it":2,"palermo.it":2,"parma.it":2,"pavia.it":2,"pc.it":2,"pd.it":2,"pe.it":2,"perugia.it":2,"pesaro-urbino.it":2,"pesarourbino.it":2,"pescara.it":2,"pg.it":2,"pi.it":2,"piacenza.it":2,"pisa.it":2,"pistoia.it":2,"pn.it":2,"po.it":2,"pordenone.it":2,"potenza.it":2,"pr.it":2,"prato.it":2,"pt.it":2,"pu.it":2,"pv.it":2,"pz.it":2,"ra.it":2,"ragusa.it":2,"ravenna.it":2,"rc.it":2,"re.it":2,"reggio-calabria.it":2,"reggio-emilia.it":2,"reggiocalabria.it":2,"reggioemilia.it":2,"rg.it":2,"ri.it":2,"rieti.it":2,"rimini.it":2,"rm.it":2,"rn.it":2,"ro.it":2,"roma.it":2,"rome.it":2,"rovigo.it":2,"sa.it":2,"salerno.it":2,"sassari.it":2,"savona.it":2,"si.it":2,"siena.it":2,"siracusa.it":2,"so.it":2,"sondrio.it":2,"sp.it":2,"sr.it":2,"ss.it":2,"suedtirol.it":2,"südtirol.it":2,"sv.it":2,"ta.it":2,"taranto.it":2,"te.it":2,"tempio-olbia.it":2,"tempioolbia.it":2,"teramo.it":2,"terni.it":2,"tn.it":2,"to.it":2,"torino.it":2,"tp.it":2,"tr.it":2,"trani-andria-barletta.it":2,"trani-barletta-andria.it":2,"traniandriabarletta.it":2,"tranibarlettaandria.it":2,"trapani.it":2,"trento.it":2,"treviso.it":2,"trieste.it":2,"ts.it":2,"turin.it":2,"tv.it":2,"ud.it":2,"udine.it":2,"urbino-pesaro.it":2,"urbinopesaro.it":2,"va.it":2,"varese.it":2,"vb.it":2,"vc.it":2,"ve.it":2,"venezia.it":2,"venice.it":2,"verbania.it":2,"vercelli.it":2,"verona.it":2,"vi.it":2,"vibo-valentia.it":2,"vibovalentia.it":2,"vicenza.it":2,"viterbo.it":2,"vr.it":2,"vs.it":2,"vt.it":2,"vv.it":2,"je":1,"co.je":2,"net.je":2,"org.je":2,"jm":2,"jo":1,"com.jo":2,"org.jo":2,"net.jo":2,"edu.jo":2,"sch.jo":2,"gov.jo":2,"mil.jo":2,"name.jo":2,"jobs":1,"jp":1,"ac.jp":2,"ad.jp":2,"co.jp":2,"ed.jp":2,"go.jp":2,"gr.jp":2,"lg.jp":2,"ne.jp":2,"or.jp":2,"aichi.jp":2,"akita.jp":2,"aomori.jp":2,"chiba.jp":2,"ehime.jp":2,"fukui.jp":2,"fukuoka.jp":2,"fukushima.jp":2,"gifu.jp":2,"gunma.jp":2,"hiroshima.jp":2,"hokkaido.jp":2,"hyogo.jp":2,"ibaraki.jp":2,"ishikawa.jp":2,"iwate.jp":2,"kagawa.jp":2,"kagoshima.jp":2,"kanagawa.jp":2,"kochi.jp":2,"kumamoto.jp":2,"kyoto.jp":2,"mie.jp":2,"miyagi.jp":2,"miyazaki.jp":2,"nagano.jp":2,"nagasaki.jp":2,"nara.jp":2,"niigata.jp":2,"oita.jp":2,"okayama.jp":2,"okinawa.jp":2,"osaka.jp":2,"saga.jp":2,"saitama.jp":2,"shiga.jp":2,"shimane.jp":2,"shizuoka.jp":2,"tochigi.jp":2,"tokushima.jp":2,"tokyo.jp":2,"tottori.jp":2,"toyama.jp":2,"wakayama.jp":2,"yamagata.jp":2,"yamaguchi.jp":2,"yamanashi.jp":2,"æ ƒæœ¨.jp":2,"愛知.jp":2,"愛媛.jp":2,"兵庫.jp":2,"熊本.jp":2,"茨城.jp":2,"北海道.jp":2,"千葉.jp":2,"和歌山.jp":2,"é•·å´Ž.jp":2,"長野.jp":2,"新潟.jp":2,"青森.jp":2,"静岡.jp":2,"東京.jp":2,"石川.jp":2,"埼玉.jp":2,"三重.jp":2,"京都.jp":2,"佐賀.jp":2,"大分.jp":2,"大阪.jp":2,"奈良.jp":2,"宮城.jp":2,"宮崎.jp":2,"富山.jp":2,"山口.jp":2,"山形.jp":2,"山梨.jp":2,"岩手.jp":2,"岐阜.jp":2,"岡山.jp":2,"å³¶æ ¹.jp":2,"広島.jp":2,"徳島.jp":2,"沖縄.jp":2,"滋賀.jp":2,"神奈川.jp":2,"福井.jp":2,"福岡.jp":2,"福島.jp":2,"ç§‹ç”°.jp":2,"群馬.jp":2,"香川.jp":2,"高知.jp":2,"鳥取.jp":2,"鹿児島.jp":2,"kawasaki.jp":3,"kitakyushu.jp":3,"kobe.jp":3,"nagoya.jp":3,"sapporo.jp":3,"sendai.jp":3,"yokohama.jp":3,"city.kawasaki.jp":2,"city.kitakyushu.jp":2,"city.kobe.jp":2,"city.nagoya.jp":2,"city.sapporo.jp":2,"city.sendai.jp":2,"city.yokohama.jp":2,"aisai.aichi.jp":3,"ama.aichi.jp":3,"anjo.aichi.jp":3,"asuke.aichi.jp":3,"chiryu.aichi.jp":3,"chita.aichi.jp":3,"fuso.aichi.jp":3,"gamagori.aichi.jp":3,"handa.aichi.jp":3,"hazu.aichi.jp":3,"hekinan.aichi.jp":3,"higashiura.aichi.jp":3,"ichinomiya.aichi.jp":3,"inazawa.aichi.jp":3,"inuyama.aichi.jp":3,"isshiki.aichi.jp":3,"iwakura.aichi.jp":3,"kanie.aichi.jp":3,"kariya.aichi.jp":3,"kasugai.aichi.jp":3,"kira.aichi.jp":3,"kiyosu.aichi.jp":3,"komaki.aichi.jp":3,"konan.aichi.jp":3,"kota.aichi.jp":3,"mihama.aichi.jp":3,"miyoshi.aichi.jp":3,"nishio.aichi.jp":3,"nisshin.aichi.jp":3,"obu.aichi.jp":3,"oguchi.aichi.jp":3,"oharu.aichi.jp":3,"okazaki.aichi.jp":3,"owariasahi.aichi.jp":3,"seto.aichi.jp":3,"shikatsu.aichi.jp":3,"shinshiro.aichi.jp":3,"shitara.aichi.jp":3,"tahara.aichi.jp":3,"takahama.aichi.jp":3,"tobishima.aichi.jp":3,"toei.aichi.jp":3,"togo.aichi.jp":3,"tokai.aichi.jp":3,"tokoname.aichi.jp":3,"toyoake.aichi.jp":3,"toyohashi.aichi.jp":3,"toyokawa.aichi.jp":3,"toyone.aichi.jp":3,"toyota.aichi.jp":3,"tsushima.aichi.jp":3,"yatomi.aichi.jp":3,"akita.akita.jp":3,"daisen.akita.jp":3,"fujisato.akita.jp":3,"gojome.akita.jp":3,"hachirogata.akita.jp":3,"happou.akita.jp":3,"higashinaruse.akita.jp":3,"honjo.akita.jp":3,"honjyo.akita.jp":3,"ikawa.akita.jp":3,"kamikoani.akita.jp":3,"kamioka.akita.jp":3,"katagami.akita.jp":3,"kazuno.akita.jp":3,"kitaakita.akita.jp":3,"kosaka.akita.jp":3,"kyowa.akita.jp":3,"misato.akita.jp":3,"mitane.akita.jp":3,"moriyoshi.akita.jp":3,"nikaho.akita.jp":3,"noshiro.akita.jp":3,"odate.akita.jp":3,"oga.akita.jp":3,"ogata.akita.jp":3,"semboku.akita.jp":3,"yokote.akita.jp":3,"yurihonjo.akita.jp":3,"aomori.aomori.jp":3,"gonohe.aomori.jp":3,"hachinohe.aomori.jp":3,"hashikami.aomori.jp":3,"hiranai.aomori.jp":3,"hirosaki.aomori.jp":3,"itayanagi.aomori.jp":3,"kuroishi.aomori.jp":3,"misawa.aomori.jp":3,"mutsu.aomori.jp":3,"nakadomari.aomori.jp":3,"noheji.aomori.jp":3,"oirase.aomori.jp":3,"owani.aomori.jp":3,"rokunohe.aomori.jp":3,"sannohe.aomori.jp":3,"shichinohe.aomori.jp":3,"shingo.aomori.jp":3,"takko.aomori.jp":3,"towada.aomori.jp":3,"tsugaru.aomori.jp":3,"tsuruta.aomori.jp":3,"abiko.chiba.jp":3,"asahi.chiba.jp":3,"chonan.chiba.jp":3,"chosei.chiba.jp":3,"choshi.chiba.jp":3,"chuo.chiba.jp":3,"funabashi.chiba.jp":3,"futtsu.chiba.jp":3,"hanamigawa.chiba.jp":3,"ichihara.chiba.jp":3,"ichikawa.chiba.jp":3,"ichinomiya.chiba.jp":3,"inzai.chiba.jp":3,"isumi.chiba.jp":3,"kamagaya.chiba.jp":3,"kamogawa.chiba.jp":3,"kashiwa.chiba.jp":3,"katori.chiba.jp":3,"katsuura.chiba.jp":3,"kimitsu.chiba.jp":3,"kisarazu.chiba.jp":3,"kozaki.chiba.jp":3,"kujukuri.chiba.jp":3,"kyonan.chiba.jp":3,"matsudo.chiba.jp":3,"midori.chiba.jp":3,"mihama.chiba.jp":3,"minamiboso.chiba.jp":3,"mobara.chiba.jp":3,"mutsuzawa.chiba.jp":3,"nagara.chiba.jp":3,"nagareyama.chiba.jp":3,"narashino.chiba.jp":3,"narita.chiba.jp":3,"noda.chiba.jp":3,"oamishirasato.chiba.jp":3,"omigawa.chiba.jp":3,"onjuku.chiba.jp":3,"otaki.chiba.jp":3,"sakae.chiba.jp":3,"sakura.chiba.jp":3,"shimofusa.chiba.jp":3,"shirako.chiba.jp":3,"shiroi.chiba.jp":3,"shisui.chiba.jp":3,"sodegaura.chiba.jp":3,"sosa.chiba.jp":3,"tako.chiba.jp":3,"tateyama.chiba.jp":3,"togane.chiba.jp":3,"tohnosho.chiba.jp":3,"tomisato.chiba.jp":3,"urayasu.chiba.jp":3,"yachimata.chiba.jp":3,"yachiyo.chiba.jp":3,"yokaichiba.chiba.jp":3,"yokoshibahikari.chiba.jp":3,"yotsukaido.chiba.jp":3,"ainan.ehime.jp":3,"honai.ehime.jp":3,"ikata.ehime.jp":3,"imabari.ehime.jp":3,"iyo.ehime.jp":3,"kamijima.ehime.jp":3,"kihoku.ehime.jp":3,"kumakogen.ehime.jp":3,"masaki.ehime.jp":3,"matsuno.ehime.jp":3,"matsuyama.ehime.jp":3,"namikata.ehime.jp":3,"niihama.ehime.jp":3,"ozu.ehime.jp":3,"saijo.ehime.jp":3,"seiyo.ehime.jp":3,"shikokuchuo.ehime.jp":3,"tobe.ehime.jp":3,"toon.ehime.jp":3,"uchiko.ehime.jp":3,"uwajima.ehime.jp":3,"yawatahama.ehime.jp":3,"echizen.fukui.jp":3,"eiheiji.fukui.jp":3,"fukui.fukui.jp":3,"ikeda.fukui.jp":3,"katsuyama.fukui.jp":3,"mihama.fukui.jp":3,"minamiechizen.fukui.jp":3,"obama.fukui.jp":3,"ohi.fukui.jp":3,"ono.fukui.jp":3,"sabae.fukui.jp":3,"sakai.fukui.jp":3,"takahama.fukui.jp":3,"tsuruga.fukui.jp":3,"wakasa.fukui.jp":3,"ashiya.fukuoka.jp":3,"buzen.fukuoka.jp":3,"chikugo.fukuoka.jp":3,"chikuho.fukuoka.jp":3,"chikujo.fukuoka.jp":3,"chikushino.fukuoka.jp":3,"chikuzen.fukuoka.jp":3,"chuo.fukuoka.jp":3,"dazaifu.fukuoka.jp":3,"fukuchi.fukuoka.jp":3,"hakata.fukuoka.jp":3,"higashi.fukuoka.jp":3,"hirokawa.fukuoka.jp":3,"hisayama.fukuoka.jp":3,"iizuka.fukuoka.jp":3,"inatsuki.fukuoka.jp":3,"kaho.fukuoka.jp":3,"kasuga.fukuoka.jp":3,"kasuya.fukuoka.jp":3,"kawara.fukuoka.jp":3,"keisen.fukuoka.jp":3,"koga.fukuoka.jp":3,"kurate.fukuoka.jp":3,"kurogi.fukuoka.jp":3,"kurume.fukuoka.jp":3,"minami.fukuoka.jp":3,"miyako.fukuoka.jp":3,"miyama.fukuoka.jp":3,"miyawaka.fukuoka.jp":3,"mizumaki.fukuoka.jp":3,"munakata.fukuoka.jp":3,"nakagawa.fukuoka.jp":3,"nakama.fukuoka.jp":3,"nishi.fukuoka.jp":3,"nogata.fukuoka.jp":3,"ogori.fukuoka.jp":3,"okagaki.fukuoka.jp":3,"okawa.fukuoka.jp":3,"oki.fukuoka.jp":3,"omuta.fukuoka.jp":3,"onga.fukuoka.jp":3,"onojo.fukuoka.jp":3,"oto.fukuoka.jp":3,"saigawa.fukuoka.jp":3,"sasaguri.fukuoka.jp":3,"shingu.fukuoka.jp":3,"shinyoshitomi.fukuoka.jp":3,"shonai.fukuoka.jp":3,"soeda.fukuoka.jp":3,"sue.fukuoka.jp":3,"tachiarai.fukuoka.jp":3,"tagawa.fukuoka.jp":3,"takata.fukuoka.jp":3,"toho.fukuoka.jp":3,"toyotsu.fukuoka.jp":3,"tsuiki.fukuoka.jp":3,"ukiha.fukuoka.jp":3,"umi.fukuoka.jp":3,"usui.fukuoka.jp":3,"yamada.fukuoka.jp":3,"yame.fukuoka.jp":3,"yanagawa.fukuoka.jp":3,"yukuhashi.fukuoka.jp":3,"aizubange.fukushima.jp":3,"aizumisato.fukushima.jp":3,"aizuwakamatsu.fukushima.jp":3,"asakawa.fukushima.jp":3,"bandai.fukushima.jp":3,"date.fukushima.jp":3,"fukushima.fukushima.jp":3,"furudono.fukushima.jp":3,"futaba.fukushima.jp":3,"hanawa.fukushima.jp":3,"higashi.fukushima.jp":3,"hirata.fukushima.jp":3,"hirono.fukushima.jp":3,"iitate.fukushima.jp":3,"inawashiro.fukushima.jp":3,"ishikawa.fukushima.jp":3,"iwaki.fukushima.jp":3,"izumizaki.fukushima.jp":3,"kagamiishi.fukushima.jp":3,"kaneyama.fukushima.jp":3,"kawamata.fukushima.jp":3,"kitakata.fukushima.jp":3,"kitashiobara.fukushima.jp":3,"koori.fukushima.jp":3,"koriyama.fukushima.jp":3,"kunimi.fukushima.jp":3,"miharu.fukushima.jp":3,"mishima.fukushima.jp":3,"namie.fukushima.jp":3,"nango.fukushima.jp":3,"nishiaizu.fukushima.jp":3,"nishigo.fukushima.jp":3,"okuma.fukushima.jp":3,"omotego.fukushima.jp":3,"ono.fukushima.jp":3,"otama.fukushima.jp":3,"samegawa.fukushima.jp":3,"shimogo.fukushima.jp":3,"shirakawa.fukushima.jp":3,"showa.fukushima.jp":3,"soma.fukushima.jp":3,"sukagawa.fukushima.jp":3,"taishin.fukushima.jp":3,"tamakawa.fukushima.jp":3,"tanagura.fukushima.jp":3,"tenei.fukushima.jp":3,"yabuki.fukushima.jp":3,"yamato.fukushima.jp":3,"yamatsuri.fukushima.jp":3,"yanaizu.fukushima.jp":3,"yugawa.fukushima.jp":3,"anpachi.gifu.jp":3,"ena.gifu.jp":3,"gifu.gifu.jp":3,"ginan.gifu.jp":3,"godo.gifu.jp":3,"gujo.gifu.jp":3,"hashima.gifu.jp":3,"hichiso.gifu.jp":3,"hida.gifu.jp":3,"higashishirakawa.gifu.jp":3,"ibigawa.gifu.jp":3,"ikeda.gifu.jp":3,"kakamigahara.gifu.jp":3,"kani.gifu.jp":3,"kasahara.gifu.jp":3,"kasamatsu.gifu.jp":3,"kawaue.gifu.jp":3,"kitagata.gifu.jp":3,"mino.gifu.jp":3,"minokamo.gifu.jp":3,"mitake.gifu.jp":3,"mizunami.gifu.jp":3,"motosu.gifu.jp":3,"nakatsugawa.gifu.jp":3,"ogaki.gifu.jp":3,"sakahogi.gifu.jp":3,"seki.gifu.jp":3,"sekigahara.gifu.jp":3,"shirakawa.gifu.jp":3,"tajimi.gifu.jp":3,"takayama.gifu.jp":3,"tarui.gifu.jp":3,"toki.gifu.jp":3,"tomika.gifu.jp":3,"wanouchi.gifu.jp":3,"yamagata.gifu.jp":3,"yaotsu.gifu.jp":3,"yoro.gifu.jp":3,"annaka.gunma.jp":3,"chiyoda.gunma.jp":3,"fujioka.gunma.jp":3,"higashiagatsuma.gunma.jp":3,"isesaki.gunma.jp":3,"itakura.gunma.jp":3,"kanna.gunma.jp":3,"kanra.gunma.jp":3,"katashina.gunma.jp":3,"kawaba.gunma.jp":3,"kiryu.gunma.jp":3,"kusatsu.gunma.jp":3,"maebashi.gunma.jp":3,"meiwa.gunma.jp":3,"midori.gunma.jp":3,"minakami.gunma.jp":3,"naganohara.gunma.jp":3,"nakanojo.gunma.jp":3,"nanmoku.gunma.jp":3,"numata.gunma.jp":3,"oizumi.gunma.jp":3,"ora.gunma.jp":3,"ota.gunma.jp":3,"shibukawa.gunma.jp":3,"shimonita.gunma.jp":3,"shinto.gunma.jp":3,"showa.gunma.jp":3,"takasaki.gunma.jp":3,"takayama.gunma.jp":3,"tamamura.gunma.jp":3,"tatebayashi.gunma.jp":3,"tomioka.gunma.jp":3,"tsukiyono.gunma.jp":3,"tsumagoi.gunma.jp":3,"ueno.gunma.jp":3,"yoshioka.gunma.jp":3,"asaminami.hiroshima.jp":3,"daiwa.hiroshima.jp":3,"etajima.hiroshima.jp":3,"fuchu.hiroshima.jp":3,"fukuyama.hiroshima.jp":3,"hatsukaichi.hiroshima.jp":3,"higashihiroshima.hiroshima.jp":3,"hongo.hiroshima.jp":3,"jinsekikogen.hiroshima.jp":3,"kaita.hiroshima.jp":3,"kui.hiroshima.jp":3,"kumano.hiroshima.jp":3,"kure.hiroshima.jp":3,"mihara.hiroshima.jp":3,"miyoshi.hiroshima.jp":3,"naka.hiroshima.jp":3,"onomichi.hiroshima.jp":3,"osakikamijima.hiroshima.jp":3,"otake.hiroshima.jp":3,"saka.hiroshima.jp":3,"sera.hiroshima.jp":3,"seranishi.hiroshima.jp":3,"shinichi.hiroshima.jp":3,"shobara.hiroshima.jp":3,"takehara.hiroshima.jp":3,"abashiri.hokkaido.jp":3,"abira.hokkaido.jp":3,"aibetsu.hokkaido.jp":3,"akabira.hokkaido.jp":3,"akkeshi.hokkaido.jp":3,"asahikawa.hokkaido.jp":3,"ashibetsu.hokkaido.jp":3,"ashoro.hokkaido.jp":3,"assabu.hokkaido.jp":3,"atsuma.hokkaido.jp":3,"bibai.hokkaido.jp":3,"biei.hokkaido.jp":3,"bifuka.hokkaido.jp":3,"bihoro.hokkaido.jp":3,"biratori.hokkaido.jp":3,"chippubetsu.hokkaido.jp":3,"chitose.hokkaido.jp":3,"date.hokkaido.jp":3,"ebetsu.hokkaido.jp":3,"embetsu.hokkaido.jp":3,"eniwa.hokkaido.jp":3,"erimo.hokkaido.jp":3,"esan.hokkaido.jp":3,"esashi.hokkaido.jp":3,"fukagawa.hokkaido.jp":3,"fukushima.hokkaido.jp":3,"furano.hokkaido.jp":3,"furubira.hokkaido.jp":3,"haboro.hokkaido.jp":3,"hakodate.hokkaido.jp":3,"hamatonbetsu.hokkaido.jp":3,"hidaka.hokkaido.jp":3,"higashikagura.hokkaido.jp":3,"higashikawa.hokkaido.jp":3,"hiroo.hokkaido.jp":3,"hokuryu.hokkaido.jp":3,"hokuto.hokkaido.jp":3,"honbetsu.hokkaido.jp":3,"horokanai.hokkaido.jp":3,"horonobe.hokkaido.jp":3,"ikeda.hokkaido.jp":3,"imakane.hokkaido.jp":3,"ishikari.hokkaido.jp":3,"iwamizawa.hokkaido.jp":3,"iwanai.hokkaido.jp":3,"kamifurano.hokkaido.jp":3,"kamikawa.hokkaido.jp":3,"kamishihoro.hokkaido.jp":3,"kamisunagawa.hokkaido.jp":3,"kamoenai.hokkaido.jp":3,"kayabe.hokkaido.jp":3,"kembuchi.hokkaido.jp":3,"kikonai.hokkaido.jp":3,"kimobetsu.hokkaido.jp":3,"kitahiroshima.hokkaido.jp":3,"kitami.hokkaido.jp":3,"kiyosato.hokkaido.jp":3,"koshimizu.hokkaido.jp":3,"kunneppu.hokkaido.jp":3,"kuriyama.hokkaido.jp":3,"kuromatsunai.hokkaido.jp":3,"kushiro.hokkaido.jp":3,"kutchan.hokkaido.jp":3,"kyowa.hokkaido.jp":3,"mashike.hokkaido.jp":3,"matsumae.hokkaido.jp":3,"mikasa.hokkaido.jp":3,"minamifurano.hokkaido.jp":3,"mombetsu.hokkaido.jp":3,"moseushi.hokkaido.jp":3,"mukawa.hokkaido.jp":3,"muroran.hokkaido.jp":3,"naie.hokkaido.jp":3,"nakagawa.hokkaido.jp":3,"nakasatsunai.hokkaido.jp":3,"nakatombetsu.hokkaido.jp":3,"nanae.hokkaido.jp":3,"nanporo.hokkaido.jp":3,"nayoro.hokkaido.jp":3,"nemuro.hokkaido.jp":3,"niikappu.hokkaido.jp":3,"niki.hokkaido.jp":3,"nishiokoppe.hokkaido.jp":3,"noboribetsu.hokkaido.jp":3,"numata.hokkaido.jp":3,"obihiro.hokkaido.jp":3,"obira.hokkaido.jp":3,"oketo.hokkaido.jp":3,"okoppe.hokkaido.jp":3,"otaru.hokkaido.jp":3,"otobe.hokkaido.jp":3,"otofuke.hokkaido.jp":3,"otoineppu.hokkaido.jp":3,"oumu.hokkaido.jp":3,"ozora.hokkaido.jp":3,"pippu.hokkaido.jp":3,"rankoshi.hokkaido.jp":3,"rebun.hokkaido.jp":3,"rikubetsu.hokkaido.jp":3,"rishiri.hokkaido.jp":3,"rishirifuji.hokkaido.jp":3,"saroma.hokkaido.jp":3,"sarufutsu.hokkaido.jp":3,"shakotan.hokkaido.jp":3,"shari.hokkaido.jp":3,"shibecha.hokkaido.jp":3,"shibetsu.hokkaido.jp":3,"shikabe.hokkaido.jp":3,"shikaoi.hokkaido.jp":3,"shimamaki.hokkaido.jp":3,"shimizu.hokkaido.jp":3,"shimokawa.hokkaido.jp":3,"shinshinotsu.hokkaido.jp":3,"shintoku.hokkaido.jp":3,"shiranuka.hokkaido.jp":3,"shiraoi.hokkaido.jp":3,"shiriuchi.hokkaido.jp":3,"sobetsu.hokkaido.jp":3,"sunagawa.hokkaido.jp":3,"taiki.hokkaido.jp":3,"takasu.hokkaido.jp":3,"takikawa.hokkaido.jp":3,"takinoue.hokkaido.jp":3,"teshikaga.hokkaido.jp":3,"tobetsu.hokkaido.jp":3,"tohma.hokkaido.jp":3,"tomakomai.hokkaido.jp":3,"tomari.hokkaido.jp":3,"toya.hokkaido.jp":3,"toyako.hokkaido.jp":3,"toyotomi.hokkaido.jp":3,"toyoura.hokkaido.jp":3,"tsubetsu.hokkaido.jp":3,"tsukigata.hokkaido.jp":3,"urakawa.hokkaido.jp":3,"urausu.hokkaido.jp":3,"uryu.hokkaido.jp":3,"utashinai.hokkaido.jp":3,"wakkanai.hokkaido.jp":3,"wassamu.hokkaido.jp":3,"yakumo.hokkaido.jp":3,"yoichi.hokkaido.jp":3,"aioi.hyogo.jp":3,"akashi.hyogo.jp":3,"ako.hyogo.jp":3,"amagasaki.hyogo.jp":3,"aogaki.hyogo.jp":3,"asago.hyogo.jp":3,"ashiya.hyogo.jp":3,"awaji.hyogo.jp":3,"fukusaki.hyogo.jp":3,"goshiki.hyogo.jp":3,"harima.hyogo.jp":3,"himeji.hyogo.jp":3,"ichikawa.hyogo.jp":3,"inagawa.hyogo.jp":3,"itami.hyogo.jp":3,"kakogawa.hyogo.jp":3,"kamigori.hyogo.jp":3,"kamikawa.hyogo.jp":3,"kasai.hyogo.jp":3,"kasuga.hyogo.jp":3,"kawanishi.hyogo.jp":3,"miki.hyogo.jp":3,"minamiawaji.hyogo.jp":3,"nishinomiya.hyogo.jp":3,"nishiwaki.hyogo.jp":3,"ono.hyogo.jp":3,"sanda.hyogo.jp":3,"sannan.hyogo.jp":3,"sasayama.hyogo.jp":3,"sayo.hyogo.jp":3,"shingu.hyogo.jp":3,"shinonsen.hyogo.jp":3,"shiso.hyogo.jp":3,"sumoto.hyogo.jp":3,"taishi.hyogo.jp":3,"taka.hyogo.jp":3,"takarazuka.hyogo.jp":3,"takasago.hyogo.jp":3,"takino.hyogo.jp":3,"tamba.hyogo.jp":3,"tatsuno.hyogo.jp":3,"toyooka.hyogo.jp":3,"yabu.hyogo.jp":3,"yashiro.hyogo.jp":3,"yoka.hyogo.jp":3,"yokawa.hyogo.jp":3,"ami.ibaraki.jp":3,"asahi.ibaraki.jp":3,"bando.ibaraki.jp":3,"chikusei.ibaraki.jp":3,"daigo.ibaraki.jp":3,"fujishiro.ibaraki.jp":3,"hitachi.ibaraki.jp":3,"hitachinaka.ibaraki.jp":3,"hitachiomiya.ibaraki.jp":3,"hitachiota.ibaraki.jp":3,"ibaraki.ibaraki.jp":3,"ina.ibaraki.jp":3,"inashiki.ibaraki.jp":3,"itako.ibaraki.jp":3,"iwama.ibaraki.jp":3,"joso.ibaraki.jp":3,"kamisu.ibaraki.jp":3,"kasama.ibaraki.jp":3,"kashima.ibaraki.jp":3,"kasumigaura.ibaraki.jp":3,"koga.ibaraki.jp":3,"miho.ibaraki.jp":3,"mito.ibaraki.jp":3,"moriya.ibaraki.jp":3,"naka.ibaraki.jp":3,"namegata.ibaraki.jp":3,"oarai.ibaraki.jp":3,"ogawa.ibaraki.jp":3,"omitama.ibaraki.jp":3,"ryugasaki.ibaraki.jp":3,"sakai.ibaraki.jp":3,"sakuragawa.ibaraki.jp":3,"shimodate.ibaraki.jp":3,"shimotsuma.ibaraki.jp":3,"shirosato.ibaraki.jp":3,"sowa.ibaraki.jp":3,"suifu.ibaraki.jp":3,"takahagi.ibaraki.jp":3,"tamatsukuri.ibaraki.jp":3,"tokai.ibaraki.jp":3,"tomobe.ibaraki.jp":3,"tone.ibaraki.jp":3,"toride.ibaraki.jp":3,"tsuchiura.ibaraki.jp":3,"tsukuba.ibaraki.jp":3,"uchihara.ibaraki.jp":3,"ushiku.ibaraki.jp":3,"yachiyo.ibaraki.jp":3,"yamagata.ibaraki.jp":3,"yawara.ibaraki.jp":3,"yuki.ibaraki.jp":3,"anamizu.ishikawa.jp":3,"hakui.ishikawa.jp":3,"hakusan.ishikawa.jp":3,"kaga.ishikawa.jp":3,"kahoku.ishikawa.jp":3,"kanazawa.ishikawa.jp":3,"kawakita.ishikawa.jp":3,"komatsu.ishikawa.jp":3,"nakanoto.ishikawa.jp":3,"nanao.ishikawa.jp":3,"nomi.ishikawa.jp":3,"nonoichi.ishikawa.jp":3,"noto.ishikawa.jp":3,"shika.ishikawa.jp":3,"suzu.ishikawa.jp":3,"tsubata.ishikawa.jp":3,"tsurugi.ishikawa.jp":3,"uchinada.ishikawa.jp":3,"wajima.ishikawa.jp":3,"fudai.iwate.jp":3,"fujisawa.iwate.jp":3,"hanamaki.iwate.jp":3,"hiraizumi.iwate.jp":3,"hirono.iwate.jp":3,"ichinohe.iwate.jp":3,"ichinoseki.iwate.jp":3,"iwaizumi.iwate.jp":3,"iwate.iwate.jp":3,"joboji.iwate.jp":3,"kamaishi.iwate.jp":3,"kanegasaki.iwate.jp":3,"karumai.iwate.jp":3,"kawai.iwate.jp":3,"kitakami.iwate.jp":3,"kuji.iwate.jp":3,"kunohe.iwate.jp":3,"kuzumaki.iwate.jp":3,"miyako.iwate.jp":3,"mizusawa.iwate.jp":3,"morioka.iwate.jp":3,"ninohe.iwate.jp":3,"noda.iwate.jp":3,"ofunato.iwate.jp":3,"oshu.iwate.jp":3,"otsuchi.iwate.jp":3,"rikuzentakata.iwate.jp":3,"shiwa.iwate.jp":3,"shizukuishi.iwate.jp":3,"sumita.iwate.jp":3,"tanohata.iwate.jp":3,"tono.iwate.jp":3,"yahaba.iwate.jp":3,"yamada.iwate.jp":3,"ayagawa.kagawa.jp":3,"higashikagawa.kagawa.jp":3,"kanonji.kagawa.jp":3,"kotohira.kagawa.jp":3,"manno.kagawa.jp":3,"marugame.kagawa.jp":3,"mitoyo.kagawa.jp":3,"naoshima.kagawa.jp":3,"sanuki.kagawa.jp":3,"tadotsu.kagawa.jp":3,"takamatsu.kagawa.jp":3,"tonosho.kagawa.jp":3,"uchinomi.kagawa.jp":3,"utazu.kagawa.jp":3,"zentsuji.kagawa.jp":3,"akune.kagoshima.jp":3,"amami.kagoshima.jp":3,"hioki.kagoshima.jp":3,"isa.kagoshima.jp":3,"isen.kagoshima.jp":3,"izumi.kagoshima.jp":3,"kagoshima.kagoshima.jp":3,"kanoya.kagoshima.jp":3,"kawanabe.kagoshima.jp":3,"kinko.kagoshima.jp":3,"kouyama.kagoshima.jp":3,"makurazaki.kagoshima.jp":3,"matsumoto.kagoshima.jp":3,"minamitane.kagoshima.jp":3,"nakatane.kagoshima.jp":3,"nishinoomote.kagoshima.jp":3,"satsumasendai.kagoshima.jp":3,"soo.kagoshima.jp":3,"tarumizu.kagoshima.jp":3,"yusui.kagoshima.jp":3,"aikawa.kanagawa.jp":3,"atsugi.kanagawa.jp":3,"ayase.kanagawa.jp":3,"chigasaki.kanagawa.jp":3,"ebina.kanagawa.jp":3,"fujisawa.kanagawa.jp":3,"hadano.kanagawa.jp":3,"hakone.kanagawa.jp":3,"hiratsuka.kanagawa.jp":3,"isehara.kanagawa.jp":3,"kaisei.kanagawa.jp":3,"kamakura.kanagawa.jp":3,"kiyokawa.kanagawa.jp":3,"matsuda.kanagawa.jp":3,"minamiashigara.kanagawa.jp":3,"miura.kanagawa.jp":3,"nakai.kanagawa.jp":3,"ninomiya.kanagawa.jp":3,"odawara.kanagawa.jp":3,"oi.kanagawa.jp":3,"oiso.kanagawa.jp":3,"sagamihara.kanagawa.jp":3,"samukawa.kanagawa.jp":3,"tsukui.kanagawa.jp":3,"yamakita.kanagawa.jp":3,"yamato.kanagawa.jp":3,"yokosuka.kanagawa.jp":3,"yugawara.kanagawa.jp":3,"zama.kanagawa.jp":3,"zushi.kanagawa.jp":3,"aki.kochi.jp":3,"geisei.kochi.jp":3,"hidaka.kochi.jp":3,"higashitsuno.kochi.jp":3,"ino.kochi.jp":3,"kagami.kochi.jp":3,"kami.kochi.jp":3,"kitagawa.kochi.jp":3,"kochi.kochi.jp":3,"mihara.kochi.jp":3,"motoyama.kochi.jp":3,"muroto.kochi.jp":3,"nahari.kochi.jp":3,"nakamura.kochi.jp":3,"nankoku.kochi.jp":3,"nishitosa.kochi.jp":3,"niyodogawa.kochi.jp":3,"ochi.kochi.jp":3,"okawa.kochi.jp":3,"otoyo.kochi.jp":3,"otsuki.kochi.jp":3,"sakawa.kochi.jp":3,"sukumo.kochi.jp":3,"susaki.kochi.jp":3,"tosa.kochi.jp":3,"tosashimizu.kochi.jp":3,"toyo.kochi.jp":3,"tsuno.kochi.jp":3,"umaji.kochi.jp":3,"yasuda.kochi.jp":3,"yusuhara.kochi.jp":3,"amakusa.kumamoto.jp":3,"arao.kumamoto.jp":3,"aso.kumamoto.jp":3,"choyo.kumamoto.jp":3,"gyokuto.kumamoto.jp":3,"kamiamakusa.kumamoto.jp":3,"kikuchi.kumamoto.jp":3,"kumamoto.kumamoto.jp":3,"mashiki.kumamoto.jp":3,"mifune.kumamoto.jp":3,"minamata.kumamoto.jp":3,"minamioguni.kumamoto.jp":3,"nagasu.kumamoto.jp":3,"nishihara.kumamoto.jp":3,"oguni.kumamoto.jp":3,"ozu.kumamoto.jp":3,"sumoto.kumamoto.jp":3,"takamori.kumamoto.jp":3,"uki.kumamoto.jp":3,"uto.kumamoto.jp":3,"yamaga.kumamoto.jp":3,"yamato.kumamoto.jp":3,"yatsushiro.kumamoto.jp":3,"ayabe.kyoto.jp":3,"fukuchiyama.kyoto.jp":3,"higashiyama.kyoto.jp":3,"ide.kyoto.jp":3,"ine.kyoto.jp":3,"joyo.kyoto.jp":3,"kameoka.kyoto.jp":3,"kamo.kyoto.jp":3,"kita.kyoto.jp":3,"kizu.kyoto.jp":3,"kumiyama.kyoto.jp":3,"kyotamba.kyoto.jp":3,"kyotanabe.kyoto.jp":3,"kyotango.kyoto.jp":3,"maizuru.kyoto.jp":3,"minami.kyoto.jp":3,"minamiyamashiro.kyoto.jp":3,"miyazu.kyoto.jp":3,"muko.kyoto.jp":3,"nagaokakyo.kyoto.jp":3,"nakagyo.kyoto.jp":3,"nantan.kyoto.jp":3,"oyamazaki.kyoto.jp":3,"sakyo.kyoto.jp":3,"seika.kyoto.jp":3,"tanabe.kyoto.jp":3,"uji.kyoto.jp":3,"ujitawara.kyoto.jp":3,"wazuka.kyoto.jp":3,"yamashina.kyoto.jp":3,"yawata.kyoto.jp":3,"asahi.mie.jp":3,"inabe.mie.jp":3,"ise.mie.jp":3,"kameyama.mie.jp":3,"kawagoe.mie.jp":3,"kiho.mie.jp":3,"kisosaki.mie.jp":3,"kiwa.mie.jp":3,"komono.mie.jp":3,"kumano.mie.jp":3,"kuwana.mie.jp":3,"matsusaka.mie.jp":3,"meiwa.mie.jp":3,"mihama.mie.jp":3,"minamiise.mie.jp":3,"misugi.mie.jp":3,"miyama.mie.jp":3,"nabari.mie.jp":3,"shima.mie.jp":3,"suzuka.mie.jp":3,"tado.mie.jp":3,"taiki.mie.jp":3,"taki.mie.jp":3,"tamaki.mie.jp":3,"toba.mie.jp":3,"tsu.mie.jp":3,"udono.mie.jp":3,"ureshino.mie.jp":3,"watarai.mie.jp":3,"yokkaichi.mie.jp":3,"furukawa.miyagi.jp":3,"higashimatsushima.miyagi.jp":3,"ishinomaki.miyagi.jp":3,"iwanuma.miyagi.jp":3,"kakuda.miyagi.jp":3,"kami.miyagi.jp":3,"kawasaki.miyagi.jp":3,"marumori.miyagi.jp":3,"matsushima.miyagi.jp":3,"minamisanriku.miyagi.jp":3,"misato.miyagi.jp":3,"murata.miyagi.jp":3,"natori.miyagi.jp":3,"ogawara.miyagi.jp":3,"ohira.miyagi.jp":3,"onagawa.miyagi.jp":3,"osaki.miyagi.jp":3,"rifu.miyagi.jp":3,"semine.miyagi.jp":3,"shibata.miyagi.jp":3,"shichikashuku.miyagi.jp":3,"shikama.miyagi.jp":3,"shiogama.miyagi.jp":3,"shiroishi.miyagi.jp":3,"tagajo.miyagi.jp":3,"taiwa.miyagi.jp":3,"tome.miyagi.jp":3,"tomiya.miyagi.jp":3,"wakuya.miyagi.jp":3,"watari.miyagi.jp":3,"yamamoto.miyagi.jp":3,"zao.miyagi.jp":3,"aya.miyazaki.jp":3,"ebino.miyazaki.jp":3,"gokase.miyazaki.jp":3,"hyuga.miyazaki.jp":3,"kadogawa.miyazaki.jp":3,"kawaminami.miyazaki.jp":3,"kijo.miyazaki.jp":3,"kitagawa.miyazaki.jp":3,"kitakata.miyazaki.jp":3,"kitaura.miyazaki.jp":3,"kobayashi.miyazaki.jp":3,"kunitomi.miyazaki.jp":3,"kushima.miyazaki.jp":3,"mimata.miyazaki.jp":3,"miyakonojo.miyazaki.jp":3,"miyazaki.miyazaki.jp":3,"morotsuka.miyazaki.jp":3,"nichinan.miyazaki.jp":3,"nishimera.miyazaki.jp":3,"nobeoka.miyazaki.jp":3,"saito.miyazaki.jp":3,"shiiba.miyazaki.jp":3,"shintomi.miyazaki.jp":3,"takaharu.miyazaki.jp":3,"takanabe.miyazaki.jp":3,"takazaki.miyazaki.jp":3,"tsuno.miyazaki.jp":3,"achi.nagano.jp":3,"agematsu.nagano.jp":3,"anan.nagano.jp":3,"aoki.nagano.jp":3,"asahi.nagano.jp":3,"azumino.nagano.jp":3,"chikuhoku.nagano.jp":3,"chikuma.nagano.jp":3,"chino.nagano.jp":3,"fujimi.nagano.jp":3,"hakuba.nagano.jp":3,"hara.nagano.jp":3,"hiraya.nagano.jp":3,"iida.nagano.jp":3,"iijima.nagano.jp":3,"iiyama.nagano.jp":3,"iizuna.nagano.jp":3,"ikeda.nagano.jp":3,"ikusaka.nagano.jp":3,"ina.nagano.jp":3,"karuizawa.nagano.jp":3,"kawakami.nagano.jp":3,"kiso.nagano.jp":3,"kisofukushima.nagano.jp":3,"kitaaiki.nagano.jp":3,"komagane.nagano.jp":3,"komoro.nagano.jp":3,"matsukawa.nagano.jp":3,"matsumoto.nagano.jp":3,"miasa.nagano.jp":3,"minamiaiki.nagano.jp":3,"minamimaki.nagano.jp":3,"minamiminowa.nagano.jp":3,"minowa.nagano.jp":3,"miyada.nagano.jp":3,"miyota.nagano.jp":3,"mochizuki.nagano.jp":3,"nagano.nagano.jp":3,"nagawa.nagano.jp":3,"nagiso.nagano.jp":3,"nakagawa.nagano.jp":3,"nakano.nagano.jp":3,"nozawaonsen.nagano.jp":3,"obuse.nagano.jp":3,"ogawa.nagano.jp":3,"okaya.nagano.jp":3,"omachi.nagano.jp":3,"omi.nagano.jp":3,"ookuwa.nagano.jp":3,"ooshika.nagano.jp":3,"otaki.nagano.jp":3,"otari.nagano.jp":3,"sakae.nagano.jp":3,"sakaki.nagano.jp":3,"saku.nagano.jp":3,"sakuho.nagano.jp":3,"shimosuwa.nagano.jp":3,"shinanomachi.nagano.jp":3,"shiojiri.nagano.jp":3,"suwa.nagano.jp":3,"suzaka.nagano.jp":3,"takagi.nagano.jp":3,"takamori.nagano.jp":3,"takayama.nagano.jp":3,"tateshina.nagano.jp":3,"tatsuno.nagano.jp":3,"togakushi.nagano.jp":3,"togura.nagano.jp":3,"tomi.nagano.jp":3,"ueda.nagano.jp":3,"wada.nagano.jp":3,"yamagata.nagano.jp":3,"yamanouchi.nagano.jp":3,"yasaka.nagano.jp":3,"yasuoka.nagano.jp":3,"chijiwa.nagasaki.jp":3,"futsu.nagasaki.jp":3,"goto.nagasaki.jp":3,"hasami.nagasaki.jp":3,"hirado.nagasaki.jp":3,"iki.nagasaki.jp":3,"isahaya.nagasaki.jp":3,"kawatana.nagasaki.jp":3,"kuchinotsu.nagasaki.jp":3,"matsuura.nagasaki.jp":3,"nagasaki.nagasaki.jp":3,"obama.nagasaki.jp":3,"omura.nagasaki.jp":3,"oseto.nagasaki.jp":3,"saikai.nagasaki.jp":3,"sasebo.nagasaki.jp":3,"seihi.nagasaki.jp":3,"shimabara.nagasaki.jp":3,"shinkamigoto.nagasaki.jp":3,"togitsu.nagasaki.jp":3,"tsushima.nagasaki.jp":3,"unzen.nagasaki.jp":3,"ando.nara.jp":3,"gose.nara.jp":3,"heguri.nara.jp":3,"higashiyoshino.nara.jp":3,"ikaruga.nara.jp":3,"ikoma.nara.jp":3,"kamikitayama.nara.jp":3,"kanmaki.nara.jp":3,"kashiba.nara.jp":3,"kashihara.nara.jp":3,"katsuragi.nara.jp":3,"kawai.nara.jp":3,"kawakami.nara.jp":3,"kawanishi.nara.jp":3,"koryo.nara.jp":3,"kurotaki.nara.jp":3,"mitsue.nara.jp":3,"miyake.nara.jp":3,"nara.nara.jp":3,"nosegawa.nara.jp":3,"oji.nara.jp":3,"ouda.nara.jp":3,"oyodo.nara.jp":3,"sakurai.nara.jp":3,"sango.nara.jp":3,"shimoichi.nara.jp":3,"shimokitayama.nara.jp":3,"shinjo.nara.jp":3,"soni.nara.jp":3,"takatori.nara.jp":3,"tawaramoto.nara.jp":3,"tenkawa.nara.jp":3,"tenri.nara.jp":3,"uda.nara.jp":3,"yamatokoriyama.nara.jp":3,"yamatotakada.nara.jp":3,"yamazoe.nara.jp":3,"yoshino.nara.jp":3,"aga.niigata.jp":3,"agano.niigata.jp":3,"gosen.niigata.jp":3,"itoigawa.niigata.jp":3,"izumozaki.niigata.jp":3,"joetsu.niigata.jp":3,"kamo.niigata.jp":3,"kariwa.niigata.jp":3,"kashiwazaki.niigata.jp":3,"minamiuonuma.niigata.jp":3,"mitsuke.niigata.jp":3,"muika.niigata.jp":3,"murakami.niigata.jp":3,"myoko.niigata.jp":3,"nagaoka.niigata.jp":3,"niigata.niigata.jp":3,"ojiya.niigata.jp":3,"omi.niigata.jp":3,"sado.niigata.jp":3,"sanjo.niigata.jp":3,"seiro.niigata.jp":3,"seirou.niigata.jp":3,"sekikawa.niigata.jp":3,"shibata.niigata.jp":3,"tagami.niigata.jp":3,"tainai.niigata.jp":3,"tochio.niigata.jp":3,"tokamachi.niigata.jp":3,"tsubame.niigata.jp":3,"tsunan.niigata.jp":3,"uonuma.niigata.jp":3,"yahiko.niigata.jp":3,"yoita.niigata.jp":3,"yuzawa.niigata.jp":3,"beppu.oita.jp":3,"bungoono.oita.jp":3,"bungotakada.oita.jp":3,"hasama.oita.jp":3,"hiji.oita.jp":3,"himeshima.oita.jp":3,"hita.oita.jp":3,"kamitsue.oita.jp":3,"kokonoe.oita.jp":3,"kuju.oita.jp":3,"kunisaki.oita.jp":3,"kusu.oita.jp":3,"oita.oita.jp":3,"saiki.oita.jp":3,"taketa.oita.jp":3,"tsukumi.oita.jp":3,"usa.oita.jp":3,"usuki.oita.jp":3,"yufu.oita.jp":3,"akaiwa.okayama.jp":3,"asakuchi.okayama.jp":3,"bizen.okayama.jp":3,"hayashima.okayama.jp":3,"ibara.okayama.jp":3,"kagamino.okayama.jp":3,"kasaoka.okayama.jp":3,"kibichuo.okayama.jp":3,"kumenan.okayama.jp":3,"kurashiki.okayama.jp":3,"maniwa.okayama.jp":3,"misaki.okayama.jp":3,"nagi.okayama.jp":3,"niimi.okayama.jp":3,"nishiawakura.okayama.jp":3,"okayama.okayama.jp":3,"satosho.okayama.jp":3,"setouchi.okayama.jp":3,"shinjo.okayama.jp":3,"shoo.okayama.jp":3,"soja.okayama.jp":3,"takahashi.okayama.jp":3,"tamano.okayama.jp":3,"tsuyama.okayama.jp":3,"wake.okayama.jp":3,"yakage.okayama.jp":3,"aguni.okinawa.jp":3,"ginowan.okinawa.jp":3,"ginoza.okinawa.jp":3,"gushikami.okinawa.jp":3,"haebaru.okinawa.jp":3,"higashi.okinawa.jp":3,"hirara.okinawa.jp":3,"iheya.okinawa.jp":3,"ishigaki.okinawa.jp":3,"ishikawa.okinawa.jp":3,"itoman.okinawa.jp":3,"izena.okinawa.jp":3,"kadena.okinawa.jp":3,"kin.okinawa.jp":3,"kitadaito.okinawa.jp":3,"kitanakagusuku.okinawa.jp":3,"kumejima.okinawa.jp":3,"kunigami.okinawa.jp":3,"minamidaito.okinawa.jp":3,"motobu.okinawa.jp":3,"nago.okinawa.jp":3,"naha.okinawa.jp":3,"nakagusuku.okinawa.jp":3,"nakijin.okinawa.jp":3,"nanjo.okinawa.jp":3,"nishihara.okinawa.jp":3,"ogimi.okinawa.jp":3,"okinawa.okinawa.jp":3,"onna.okinawa.jp":3,"shimoji.okinawa.jp":3,"taketomi.okinawa.jp":3,"tarama.okinawa.jp":3,"tokashiki.okinawa.jp":3,"tomigusuku.okinawa.jp":3,"tonaki.okinawa.jp":3,"urasoe.okinawa.jp":3,"uruma.okinawa.jp":3,"yaese.okinawa.jp":3,"yomitan.okinawa.jp":3,"yonabaru.okinawa.jp":3,"yonaguni.okinawa.jp":3,"zamami.okinawa.jp":3,"abeno.osaka.jp":3,"chihayaakasaka.osaka.jp":3,"chuo.osaka.jp":3,"daito.osaka.jp":3,"fujiidera.osaka.jp":3,"habikino.osaka.jp":3,"hannan.osaka.jp":3,"higashiosaka.osaka.jp":3,"higashisumiyoshi.osaka.jp":3,"higashiyodogawa.osaka.jp":3,"hirakata.osaka.jp":3,"ibaraki.osaka.jp":3,"ikeda.osaka.jp":3,"izumi.osaka.jp":3,"izumiotsu.osaka.jp":3,"izumisano.osaka.jp":3,"kadoma.osaka.jp":3,"kaizuka.osaka.jp":3,"kanan.osaka.jp":3,"kashiwara.osaka.jp":3,"katano.osaka.jp":3,"kawachinagano.osaka.jp":3,"kishiwada.osaka.jp":3,"kita.osaka.jp":3,"kumatori.osaka.jp":3,"matsubara.osaka.jp":3,"minato.osaka.jp":3,"minoh.osaka.jp":3,"misaki.osaka.jp":3,"moriguchi.osaka.jp":3,"neyagawa.osaka.jp":3,"nishi.osaka.jp":3,"nose.osaka.jp":3,"osakasayama.osaka.jp":3,"sakai.osaka.jp":3,"sayama.osaka.jp":3,"sennan.osaka.jp":3,"settsu.osaka.jp":3,"shijonawate.osaka.jp":3,"shimamoto.osaka.jp":3,"suita.osaka.jp":3,"tadaoka.osaka.jp":3,"taishi.osaka.jp":3,"tajiri.osaka.jp":3,"takaishi.osaka.jp":3,"takatsuki.osaka.jp":3,"tondabayashi.osaka.jp":3,"toyonaka.osaka.jp":3,"toyono.osaka.jp":3,"yao.osaka.jp":3,"ariake.saga.jp":3,"arita.saga.jp":3,"fukudomi.saga.jp":3,"genkai.saga.jp":3,"hamatama.saga.jp":3,"hizen.saga.jp":3,"imari.saga.jp":3,"kamimine.saga.jp":3,"kanzaki.saga.jp":3,"karatsu.saga.jp":3,"kashima.saga.jp":3,"kitagata.saga.jp":3,"kitahata.saga.jp":3,"kiyama.saga.jp":3,"kouhoku.saga.jp":3,"kyuragi.saga.jp":3,"nishiarita.saga.jp":3,"ogi.saga.jp":3,"omachi.saga.jp":3,"ouchi.saga.jp":3,"saga.saga.jp":3,"shiroishi.saga.jp":3,"taku.saga.jp":3,"tara.saga.jp":3,"tosu.saga.jp":3,"yoshinogari.saga.jp":3,"arakawa.saitama.jp":3,"asaka.saitama.jp":3,"chichibu.saitama.jp":3,"fujimi.saitama.jp":3,"fujimino.saitama.jp":3,"fukaya.saitama.jp":3,"hanno.saitama.jp":3,"hanyu.saitama.jp":3,"hasuda.saitama.jp":3,"hatogaya.saitama.jp":3,"hatoyama.saitama.jp":3,"hidaka.saitama.jp":3,"higashichichibu.saitama.jp":3,"higashimatsuyama.saitama.jp":3,"honjo.saitama.jp":3,"ina.saitama.jp":3,"iruma.saitama.jp":3,"iwatsuki.saitama.jp":3,"kamiizumi.saitama.jp":3,"kamikawa.saitama.jp":3,"kamisato.saitama.jp":3,"kasukabe.saitama.jp":3,"kawagoe.saitama.jp":3,"kawaguchi.saitama.jp":3,"kawajima.saitama.jp":3,"kazo.saitama.jp":3,"kitamoto.saitama.jp":3,"koshigaya.saitama.jp":3,"kounosu.saitama.jp":3,"kuki.saitama.jp":3,"kumagaya.saitama.jp":3,"matsubushi.saitama.jp":3,"minano.saitama.jp":3,"misato.saitama.jp":3,"miyashiro.saitama.jp":3,"miyoshi.saitama.jp":3,"moroyama.saitama.jp":3,"nagatoro.saitama.jp":3,"namegawa.saitama.jp":3,"niiza.saitama.jp":3,"ogano.saitama.jp":3,"ogawa.saitama.jp":3,"ogose.saitama.jp":3,"okegawa.saitama.jp":3,"omiya.saitama.jp":3,"otaki.saitama.jp":3,"ranzan.saitama.jp":3,"ryokami.saitama.jp":3,"saitama.saitama.jp":3,"sakado.saitama.jp":3,"satte.saitama.jp":3,"sayama.saitama.jp":3,"shiki.saitama.jp":3,"shiraoka.saitama.jp":3,"soka.saitama.jp":3,"sugito.saitama.jp":3,"toda.saitama.jp":3,"tokigawa.saitama.jp":3,"tokorozawa.saitama.jp":3,"tsurugashima.saitama.jp":3,"urawa.saitama.jp":3,"warabi.saitama.jp":3,"yashio.saitama.jp":3,"yokoze.saitama.jp":3,"yono.saitama.jp":3,"yorii.saitama.jp":3,"yoshida.saitama.jp":3,"yoshikawa.saitama.jp":3,"yoshimi.saitama.jp":3,"aisho.shiga.jp":3,"gamo.shiga.jp":3,"higashiomi.shiga.jp":3,"hikone.shiga.jp":3,"koka.shiga.jp":3,"konan.shiga.jp":3,"kosei.shiga.jp":3,"koto.shiga.jp":3,"kusatsu.shiga.jp":3,"maibara.shiga.jp":3,"moriyama.shiga.jp":3,"nagahama.shiga.jp":3,"nishiazai.shiga.jp":3,"notogawa.shiga.jp":3,"omihachiman.shiga.jp":3,"otsu.shiga.jp":3,"ritto.shiga.jp":3,"ryuoh.shiga.jp":3,"takashima.shiga.jp":3,"takatsuki.shiga.jp":3,"torahime.shiga.jp":3,"toyosato.shiga.jp":3,"yasu.shiga.jp":3,"akagi.shimane.jp":3,"ama.shimane.jp":3,"gotsu.shimane.jp":3,"hamada.shimane.jp":3,"higashiizumo.shimane.jp":3,"hikawa.shimane.jp":3,"hikimi.shimane.jp":3,"izumo.shimane.jp":3,"kakinoki.shimane.jp":3,"masuda.shimane.jp":3,"matsue.shimane.jp":3,"misato.shimane.jp":3,"nishinoshima.shimane.jp":3,"ohda.shimane.jp":3,"okinoshima.shimane.jp":3,"okuizumo.shimane.jp":3,"shimane.shimane.jp":3,"tamayu.shimane.jp":3,"tsuwano.shimane.jp":3,"unnan.shimane.jp":3,"yakumo.shimane.jp":3,"yasugi.shimane.jp":3,"yatsuka.shimane.jp":3,"arai.shizuoka.jp":3,"atami.shizuoka.jp":3,"fuji.shizuoka.jp":3,"fujieda.shizuoka.jp":3,"fujikawa.shizuoka.jp":3,"fujinomiya.shizuoka.jp":3,"fukuroi.shizuoka.jp":3,"gotemba.shizuoka.jp":3,"haibara.shizuoka.jp":3,"hamamatsu.shizuoka.jp":3,"higashiizu.shizuoka.jp":3,"ito.shizuoka.jp":3,"iwata.shizuoka.jp":3,"izu.shizuoka.jp":3,"izunokuni.shizuoka.jp":3,"kakegawa.shizuoka.jp":3,"kannami.shizuoka.jp":3,"kawanehon.shizuoka.jp":3,"kawazu.shizuoka.jp":3,"kikugawa.shizuoka.jp":3,"kosai.shizuoka.jp":3,"makinohara.shizuoka.jp":3,"matsuzaki.shizuoka.jp":3,"minamiizu.shizuoka.jp":3,"mishima.shizuoka.jp":3,"morimachi.shizuoka.jp":3,"nishiizu.shizuoka.jp":3,"numazu.shizuoka.jp":3,"omaezaki.shizuoka.jp":3,"shimada.shizuoka.jp":3,"shimizu.shizuoka.jp":3,"shimoda.shizuoka.jp":3,"shizuoka.shizuoka.jp":3,"susono.shizuoka.jp":3,"yaizu.shizuoka.jp":3,"yoshida.shizuoka.jp":3,"ashikaga.tochigi.jp":3,"bato.tochigi.jp":3,"haga.tochigi.jp":3,"ichikai.tochigi.jp":3,"iwafune.tochigi.jp":3,"kaminokawa.tochigi.jp":3,"kanuma.tochigi.jp":3,"karasuyama.tochigi.jp":3,"kuroiso.tochigi.jp":3,"mashiko.tochigi.jp":3,"mibu.tochigi.jp":3,"moka.tochigi.jp":3,"motegi.tochigi.jp":3,"nasu.tochigi.jp":3,"nasushiobara.tochigi.jp":3,"nikko.tochigi.jp":3,"nishikata.tochigi.jp":3,"nogi.tochigi.jp":3,"ohira.tochigi.jp":3,"ohtawara.tochigi.jp":3,"oyama.tochigi.jp":3,"sakura.tochigi.jp":3,"sano.tochigi.jp":3,"shimotsuke.tochigi.jp":3,"shioya.tochigi.jp":3,"takanezawa.tochigi.jp":3,"tochigi.tochigi.jp":3,"tsuga.tochigi.jp":3,"ujiie.tochigi.jp":3,"utsunomiya.tochigi.jp":3,"yaita.tochigi.jp":3,"aizumi.tokushima.jp":3,"anan.tokushima.jp":3,"ichiba.tokushima.jp":3,"itano.tokushima.jp":3,"kainan.tokushima.jp":3,"komatsushima.tokushima.jp":3,"matsushige.tokushima.jp":3,"mima.tokushima.jp":3,"minami.tokushima.jp":3,"miyoshi.tokushima.jp":3,"mugi.tokushima.jp":3,"nakagawa.tokushima.jp":3,"naruto.tokushima.jp":3,"sanagochi.tokushima.jp":3,"shishikui.tokushima.jp":3,"tokushima.tokushima.jp":3,"wajiki.tokushima.jp":3,"adachi.tokyo.jp":3,"akiruno.tokyo.jp":3,"akishima.tokyo.jp":3,"aogashima.tokyo.jp":3,"arakawa.tokyo.jp":3,"bunkyo.tokyo.jp":3,"chiyoda.tokyo.jp":3,"chofu.tokyo.jp":3,"chuo.tokyo.jp":3,"edogawa.tokyo.jp":3,"fuchu.tokyo.jp":3,"fussa.tokyo.jp":3,"hachijo.tokyo.jp":3,"hachioji.tokyo.jp":3,"hamura.tokyo.jp":3,"higashikurume.tokyo.jp":3,"higashimurayama.tokyo.jp":3,"higashiyamato.tokyo.jp":3,"hino.tokyo.jp":3,"hinode.tokyo.jp":3,"hinohara.tokyo.jp":3,"inagi.tokyo.jp":3,"itabashi.tokyo.jp":3,"katsushika.tokyo.jp":3,"kita.tokyo.jp":3,"kiyose.tokyo.jp":3,"kodaira.tokyo.jp":3,"koganei.tokyo.jp":3,"kokubunji.tokyo.jp":3,"komae.tokyo.jp":3,"koto.tokyo.jp":3,"kouzushima.tokyo.jp":3,"kunitachi.tokyo.jp":3,"machida.tokyo.jp":3,"meguro.tokyo.jp":3,"minato.tokyo.jp":3,"mitaka.tokyo.jp":3,"mizuho.tokyo.jp":3,"musashimurayama.tokyo.jp":3,"musashino.tokyo.jp":3,"nakano.tokyo.jp":3,"nerima.tokyo.jp":3,"ogasawara.tokyo.jp":3,"okutama.tokyo.jp":3,"ome.tokyo.jp":3,"oshima.tokyo.jp":3,"ota.tokyo.jp":3,"setagaya.tokyo.jp":3,"shibuya.tokyo.jp":3,"shinagawa.tokyo.jp":3,"shinjuku.tokyo.jp":3,"suginami.tokyo.jp":3,"sumida.tokyo.jp":3,"tachikawa.tokyo.jp":3,"taito.tokyo.jp":3,"tama.tokyo.jp":3,"toshima.tokyo.jp":3,"chizu.tottori.jp":3,"hino.tottori.jp":3,"kawahara.tottori.jp":3,"koge.tottori.jp":3,"kotoura.tottori.jp":3,"misasa.tottori.jp":3,"nanbu.tottori.jp":3,"nichinan.tottori.jp":3,"sakaiminato.tottori.jp":3,"tottori.tottori.jp":3,"wakasa.tottori.jp":3,"yazu.tottori.jp":3,"yonago.tottori.jp":3,"asahi.toyama.jp":3,"fuchu.toyama.jp":3,"fukumitsu.toyama.jp":3,"funahashi.toyama.jp":3,"himi.toyama.jp":3,"imizu.toyama.jp":3,"inami.toyama.jp":3,"johana.toyama.jp":3,"kamiichi.toyama.jp":3,"kurobe.toyama.jp":3,"nakaniikawa.toyama.jp":3,"namerikawa.toyama.jp":3,"nanto.toyama.jp":3,"nyuzen.toyama.jp":3,"oyabe.toyama.jp":3,"taira.toyama.jp":3,"takaoka.toyama.jp":3,"tateyama.toyama.jp":3,"toga.toyama.jp":3,"tonami.toyama.jp":3,"toyama.toyama.jp":3,"unazuki.toyama.jp":3,"uozu.toyama.jp":3,"yamada.toyama.jp":3,"arida.wakayama.jp":3,"aridagawa.wakayama.jp":3,"gobo.wakayama.jp":3,"hashimoto.wakayama.jp":3,"hidaka.wakayama.jp":3,"hirogawa.wakayama.jp":3,"inami.wakayama.jp":3,"iwade.wakayama.jp":3,"kainan.wakayama.jp":3,"kamitonda.wakayama.jp":3,"katsuragi.wakayama.jp":3,"kimino.wakayama.jp":3,"kinokawa.wakayama.jp":3,"kitayama.wakayama.jp":3,"koya.wakayama.jp":3,"koza.wakayama.jp":3,"kozagawa.wakayama.jp":3,"kudoyama.wakayama.jp":3,"kushimoto.wakayama.jp":3,"mihama.wakayama.jp":3,"misato.wakayama.jp":3,"nachikatsuura.wakayama.jp":3,"shingu.wakayama.jp":3,"shirahama.wakayama.jp":3,"taiji.wakayama.jp":3,"tanabe.wakayama.jp":3,"wakayama.wakayama.jp":3,"yuasa.wakayama.jp":3,"yura.wakayama.jp":3,"asahi.yamagata.jp":3,"funagata.yamagata.jp":3,"higashine.yamagata.jp":3,"iide.yamagata.jp":3,"kahoku.yamagata.jp":3,"kaminoyama.yamagata.jp":3,"kaneyama.yamagata.jp":3,"kawanishi.yamagata.jp":3,"mamurogawa.yamagata.jp":3,"mikawa.yamagata.jp":3,"murayama.yamagata.jp":3,"nagai.yamagata.jp":3,"nakayama.yamagata.jp":3,"nanyo.yamagata.jp":3,"nishikawa.yamagata.jp":3,"obanazawa.yamagata.jp":3,"oe.yamagata.jp":3,"oguni.yamagata.jp":3,"ohkura.yamagata.jp":3,"oishida.yamagata.jp":3,"sagae.yamagata.jp":3,"sakata.yamagata.jp":3,"sakegawa.yamagata.jp":3,"shinjo.yamagata.jp":3,"shirataka.yamagata.jp":3,"shonai.yamagata.jp":3,"takahata.yamagata.jp":3,"tendo.yamagata.jp":3,"tozawa.yamagata.jp":3,"tsuruoka.yamagata.jp":3,"yamagata.yamagata.jp":3,"yamanobe.yamagata.jp":3,"yonezawa.yamagata.jp":3,"yuza.yamagata.jp":3,"abu.yamaguchi.jp":3,"hagi.yamaguchi.jp":3,"hikari.yamaguchi.jp":3,"hofu.yamaguchi.jp":3,"iwakuni.yamaguchi.jp":3,"kudamatsu.yamaguchi.jp":3,"mitou.yamaguchi.jp":3,"nagato.yamaguchi.jp":3,"oshima.yamaguchi.jp":3,"shimonoseki.yamaguchi.jp":3,"shunan.yamaguchi.jp":3,"tabuse.yamaguchi.jp":3,"tokuyama.yamaguchi.jp":3,"toyota.yamaguchi.jp":3,"ube.yamaguchi.jp":3,"yuu.yamaguchi.jp":3,"chuo.yamanashi.jp":3,"doshi.yamanashi.jp":3,"fuefuki.yamanashi.jp":3,"fujikawa.yamanashi.jp":3,"fujikawaguchiko.yamanashi.jp":3,"fujiyoshida.yamanashi.jp":3,"hayakawa.yamanashi.jp":3,"hokuto.yamanashi.jp":3,"ichikawamisato.yamanashi.jp":3,"kai.yamanashi.jp":3,"kofu.yamanashi.jp":3,"koshu.yamanashi.jp":3,"kosuge.yamanashi.jp":3,"minami-alps.yamanashi.jp":3,"minobu.yamanashi.jp":3,"nakamichi.yamanashi.jp":3,"nanbu.yamanashi.jp":3,"narusawa.yamanashi.jp":3,"nirasaki.yamanashi.jp":3,"nishikatsura.yamanashi.jp":3,"oshino.yamanashi.jp":3,"otsuki.yamanashi.jp":3,"showa.yamanashi.jp":3,"tabayama.yamanashi.jp":3,"tsuru.yamanashi.jp":3,"uenohara.yamanashi.jp":3,"yamanakako.yamanashi.jp":3,"yamanashi.yamanashi.jp":3,"ke":1,"ac.ke":2,"co.ke":2,"go.ke":2,"info.ke":2,"me.ke":2,"mobi.ke":2,"ne.ke":2,"or.ke":2,"sc.ke":2,"kg":1,"org.kg":2,"net.kg":2,"com.kg":2,"edu.kg":2,"gov.kg":2,"mil.kg":2,"kh":2,"ki":1,"edu.ki":2,"biz.ki":2,"net.ki":2,"org.ki":2,"gov.ki":2,"info.ki":2,"com.ki":2,"km":1,"org.km":2,"nom.km":2,"gov.km":2,"prd.km":2,"tm.km":2,"edu.km":2,"mil.km":2,"ass.km":2,"com.km":2,"coop.km":2,"asso.km":2,"presse.km":2,"medecin.km":2,"notaires.km":2,"pharmaciens.km":2,"veterinaire.km":2,"gouv.km":2,"kn":1,"net.kn":2,"org.kn":2,"edu.kn":2,"gov.kn":2,"kp":1,"com.kp":2,"edu.kp":2,"gov.kp":2,"org.kp":2,"rep.kp":2,"tra.kp":2,"kr":1,"ac.kr":2,"co.kr":2,"es.kr":2,"go.kr":2,"hs.kr":2,"kg.kr":2,"mil.kr":2,"ms.kr":2,"ne.kr":2,"or.kr":2,"pe.kr":2,"re.kr":2,"sc.kr":2,"busan.kr":2,"chungbuk.kr":2,"chungnam.kr":2,"daegu.kr":2,"daejeon.kr":2,"gangwon.kr":2,"gwangju.kr":2,"gyeongbuk.kr":2,"gyeonggi.kr":2,"gyeongnam.kr":2,"incheon.kr":2,"jeju.kr":2,"jeonbuk.kr":2,"jeonnam.kr":2,"seoul.kr":2,"ulsan.kr":2,"kw":1,"com.kw":2,"edu.kw":2,"emb.kw":2,"gov.kw":2,"ind.kw":2,"net.kw":2,"org.kw":2,"ky":1,"edu.ky":2,"gov.ky":2,"com.ky":2,"org.ky":2,"net.ky":2,"kz":1,"org.kz":2,"edu.kz":2,"net.kz":2,"gov.kz":2,"mil.kz":2,"com.kz":2,"la":1,"int.la":2,"net.la":2,"info.la":2,"edu.la":2,"gov.la":2,"per.la":2,"com.la":2,"org.la":2,"lb":1,"com.lb":2,"edu.lb":2,"gov.lb":2,"net.lb":2,"org.lb":2,"lc":1,"com.lc":2,"net.lc":2,"co.lc":2,"org.lc":2,"edu.lc":2,"gov.lc":2,"li":1,"lk":1,"gov.lk":2,"sch.lk":2,"net.lk":2,"int.lk":2,"com.lk":2,"org.lk":2,"edu.lk":2,"ngo.lk":2,"soc.lk":2,"web.lk":2,"ltd.lk":2,"assn.lk":2,"grp.lk":2,"hotel.lk":2,"ac.lk":2,"lr":1,"com.lr":2,"edu.lr":2,"gov.lr":2,"org.lr":2,"net.lr":2,"ls":1,"ac.ls":2,"biz.ls":2,"co.ls":2,"edu.ls":2,"gov.ls":2,"info.ls":2,"net.ls":2,"org.ls":2,"sc.ls":2,"lt":1,"gov.lt":2,"lu":1,"lv":1,"com.lv":2,"edu.lv":2,"gov.lv":2,"org.lv":2,"mil.lv":2,"id.lv":2,"net.lv":2,"asn.lv":2,"conf.lv":2,"ly":1,"com.ly":2,"net.ly":2,"gov.ly":2,"plc.ly":2,"edu.ly":2,"sch.ly":2,"med.ly":2,"org.ly":2,"id.ly":2,"ma":1,"co.ma":2,"net.ma":2,"gov.ma":2,"org.ma":2,"ac.ma":2,"press.ma":2,"mc":1,"tm.mc":2,"asso.mc":2,"md":1,"me":1,"co.me":2,"net.me":2,"org.me":2,"edu.me":2,"ac.me":2,"gov.me":2,"its.me":2,"priv.me":2,"mg":1,"org.mg":2,"nom.mg":2,"gov.mg":2,"prd.mg":2,"tm.mg":2,"edu.mg":2,"mil.mg":2,"com.mg":2,"co.mg":2,"mh":1,"mil":1,"mk":1,"com.mk":2,"org.mk":2,"net.mk":2,"edu.mk":2,"gov.mk":2,"inf.mk":2,"name.mk":2,"ml":1,"com.ml":2,"edu.ml":2,"gouv.ml":2,"gov.ml":2,"net.ml":2,"org.ml":2,"presse.ml":2,"mm":2,"mn":1,"gov.mn":2,"edu.mn":2,"org.mn":2,"mo":1,"com.mo":2,"net.mo":2,"org.mo":2,"edu.mo":2,"gov.mo":2,"mobi":1,"mp":1,"mq":1,"mr":1,"gov.mr":2,"ms":1,"com.ms":2,"edu.ms":2,"gov.ms":2,"net.ms":2,"org.ms":2,"mt":1,"com.mt":2,"edu.mt":2,"net.mt":2,"org.mt":2,"mu":1,"com.mu":2,"net.mu":2,"org.mu":2,"gov.mu":2,"ac.mu":2,"co.mu":2,"or.mu":2,"museum":1,"academy.museum":2,"agriculture.museum":2,"air.museum":2,"airguard.museum":2,"alabama.museum":2,"alaska.museum":2,"amber.museum":2,"ambulance.museum":2,"american.museum":2,"americana.museum":2,"americanantiques.museum":2,"americanart.museum":2,"amsterdam.museum":2,"and.museum":2,"annefrank.museum":2,"anthro.museum":2,"anthropology.museum":2,"antiques.museum":2,"aquarium.museum":2,"arboretum.museum":2,"archaeological.museum":2,"archaeology.museum":2,"architecture.museum":2,"art.museum":2,"artanddesign.museum":2,"artcenter.museum":2,"artdeco.museum":2,"arteducation.museum":2,"artgallery.museum":2,"arts.museum":2,"artsandcrafts.museum":2,"asmatart.museum":2,"assassination.museum":2,"assisi.museum":2,"association.museum":2,"astronomy.museum":2,"atlanta.museum":2,"austin.museum":2,"australia.museum":2,"automotive.museum":2,"aviation.museum":2,"axis.museum":2,"badajoz.museum":2,"baghdad.museum":2,"bahn.museum":2,"bale.museum":2,"baltimore.museum":2,"barcelona.museum":2,"baseball.museum":2,"basel.museum":2,"baths.museum":2,"bauern.museum":2,"beauxarts.museum":2,"beeldengeluid.museum":2,"bellevue.museum":2,"bergbau.museum":2,"berkeley.museum":2,"berlin.museum":2,"bern.museum":2,"bible.museum":2,"bilbao.museum":2,"bill.museum":2,"birdart.museum":2,"birthplace.museum":2,"bonn.museum":2,"boston.museum":2,"botanical.museum":2,"botanicalgarden.museum":2,"botanicgarden.museum":2,"botany.museum":2,"brandywinevalley.museum":2,"brasil.museum":2,"bristol.museum":2,"british.museum":2,"britishcolumbia.museum":2,"broadcast.museum":2,"brunel.museum":2,"brussel.museum":2,"brussels.museum":2,"bruxelles.museum":2,"building.museum":2,"burghof.museum":2,"bus.museum":2,"bushey.museum":2,"cadaques.museum":2,"california.museum":2,"cambridge.museum":2,"can.museum":2,"canada.museum":2,"capebreton.museum":2,"carrier.museum":2,"cartoonart.museum":2,"casadelamoneda.museum":2,"castle.museum":2,"castres.museum":2,"celtic.museum":2,"center.museum":2,"chattanooga.museum":2,"cheltenham.museum":2,"chesapeakebay.museum":2,"chicago.museum":2,"children.museum":2,"childrens.museum":2,"childrensgarden.museum":2,"chiropractic.museum":2,"chocolate.museum":2,"christiansburg.museum":2,"cincinnati.museum":2,"cinema.museum":2,"circus.museum":2,"civilisation.museum":2,"civilization.museum":2,"civilwar.museum":2,"clinton.museum":2,"clock.museum":2,"coal.museum":2,"coastaldefence.museum":2,"cody.museum":2,"coldwar.museum":2,"collection.museum":2,"colonialwilliamsburg.museum":2,"coloradoplateau.museum":2,"columbia.museum":2,"columbus.museum":2,"communication.museum":2,"communications.museum":2,"community.museum":2,"computer.museum":2,"computerhistory.museum":2,"comunicações.museum":2,"contemporary.museum":2,"contemporaryart.museum":2,"convent.museum":2,"copenhagen.museum":2,"corporation.museum":2,"correios-e-telecomunicações.museum":2,"corvette.museum":2,"costume.museum":2,"countryestate.museum":2,"county.museum":2,"crafts.museum":2,"cranbrook.museum":2,"creation.museum":2,"cultural.museum":2,"culturalcenter.museum":2,"culture.museum":2,"cyber.museum":2,"cymru.museum":2,"dali.museum":2,"dallas.museum":2,"database.museum":2,"ddr.museum":2,"decorativearts.museum":2,"delaware.museum":2,"delmenhorst.museum":2,"denmark.museum":2,"depot.museum":2,"design.museum":2,"detroit.museum":2,"dinosaur.museum":2,"discovery.museum":2,"dolls.museum":2,"donostia.museum":2,"durham.museum":2,"eastafrica.museum":2,"eastcoast.museum":2,"education.museum":2,"educational.museum":2,"egyptian.museum":2,"eisenbahn.museum":2,"elburg.museum":2,"elvendrell.museum":2,"embroidery.museum":2,"encyclopedic.museum":2,"england.museum":2,"entomology.museum":2,"environment.museum":2,"environmentalconservation.museum":2,"epilepsy.museum":2,"essex.museum":2,"estate.museum":2,"ethnology.museum":2,"exeter.museum":2,"exhibition.museum":2,"family.museum":2,"farm.museum":2,"farmequipment.museum":2,"farmers.museum":2,"farmstead.museum":2,"field.museum":2,"figueres.museum":2,"filatelia.museum":2,"film.museum":2,"fineart.museum":2,"finearts.museum":2,"finland.museum":2,"flanders.museum":2,"florida.museum":2,"force.museum":2,"fortmissoula.museum":2,"fortworth.museum":2,"foundation.museum":2,"francaise.museum":2,"frankfurt.museum":2,"franziskaner.museum":2,"freemasonry.museum":2,"freiburg.museum":2,"fribourg.museum":2,"frog.museum":2,"fundacio.museum":2,"furniture.museum":2,"gallery.museum":2,"garden.museum":2,"gateway.museum":2,"geelvinck.museum":2,"gemological.museum":2,"geology.museum":2,"georgia.museum":2,"giessen.museum":2,"glas.museum":2,"glass.museum":2,"gorge.museum":2,"grandrapids.museum":2,"graz.museum":2,"guernsey.museum":2,"halloffame.museum":2,"hamburg.museum":2,"handson.museum":2,"harvestcelebration.museum":2,"hawaii.museum":2,"health.museum":2,"heimatunduhren.museum":2,"hellas.museum":2,"helsinki.museum":2,"hembygdsforbund.museum":2,"heritage.museum":2,"histoire.museum":2,"historical.museum":2,"historicalsociety.museum":2,"historichouses.museum":2,"historisch.museum":2,"historisches.museum":2,"history.museum":2,"historyofscience.museum":2,"horology.museum":2,"house.museum":2,"humanities.museum":2,"illustration.museum":2,"imageandsound.museum":2,"indian.museum":2,"indiana.museum":2,"indianapolis.museum":2,"indianmarket.museum":2,"intelligence.museum":2,"interactive.museum":2,"iraq.museum":2,"iron.museum":2,"isleofman.museum":2,"jamison.museum":2,"jefferson.museum":2,"jerusalem.museum":2,"jewelry.museum":2,"jewish.museum":2,"jewishart.museum":2,"jfk.museum":2,"journalism.museum":2,"judaica.museum":2,"judygarland.museum":2,"juedisches.museum":2,"juif.museum":2,"karate.museum":2,"karikatur.museum":2,"kids.museum":2,"koebenhavn.museum":2,"koeln.museum":2,"kunst.museum":2,"kunstsammlung.museum":2,"kunstunddesign.museum":2,"labor.museum":2,"labour.museum":2,"lajolla.museum":2,"lancashire.museum":2,"landes.museum":2,"lans.museum":2,"läns.museum":2,"larsson.museum":2,"lewismiller.museum":2,"lincoln.museum":2,"linz.museum":2,"living.museum":2,"livinghistory.museum":2,"localhistory.museum":2,"london.museum":2,"losangeles.museum":2,"louvre.museum":2,"loyalist.museum":2,"lucerne.museum":2,"luxembourg.museum":2,"luzern.museum":2,"mad.museum":2,"madrid.museum":2,"mallorca.museum":2,"manchester.museum":2,"mansion.museum":2,"mansions.museum":2,"manx.museum":2,"marburg.museum":2,"maritime.museum":2,"maritimo.museum":2,"maryland.museum":2,"marylhurst.museum":2,"media.museum":2,"medical.museum":2,"medizinhistorisches.museum":2,"meeres.museum":2,"memorial.museum":2,"mesaverde.museum":2,"michigan.museum":2,"midatlantic.museum":2,"military.museum":2,"mill.museum":2,"miners.museum":2,"mining.museum":2,"minnesota.museum":2,"missile.museum":2,"missoula.museum":2,"modern.museum":2,"moma.museum":2,"money.museum":2,"monmouth.museum":2,"monticello.museum":2,"montreal.museum":2,"moscow.museum":2,"motorcycle.museum":2,"muenchen.museum":2,"muenster.museum":2,"mulhouse.museum":2,"muncie.museum":2,"museet.museum":2,"museumcenter.museum":2,"museumvereniging.museum":2,"music.museum":2,"national.museum":2,"nationalfirearms.museum":2,"nationalheritage.museum":2,"nativeamerican.museum":2,"naturalhistory.museum":2,"naturalhistorymuseum.museum":2,"naturalsciences.museum":2,"nature.museum":2,"naturhistorisches.museum":2,"natuurwetenschappen.museum":2,"naumburg.museum":2,"naval.museum":2,"nebraska.museum":2,"neues.museum":2,"newhampshire.museum":2,"newjersey.museum":2,"newmexico.museum":2,"newport.museum":2,"newspaper.museum":2,"newyork.museum":2,"niepce.museum":2,"norfolk.museum":2,"north.museum":2,"nrw.museum":2,"nyc.museum":2,"nyny.museum":2,"oceanographic.museum":2,"oceanographique.museum":2,"omaha.museum":2,"online.museum":2,"ontario.museum":2,"openair.museum":2,"oregon.museum":2,"oregontrail.museum":2,"otago.museum":2,"oxford.museum":2,"pacific.museum":2,"paderborn.museum":2,"palace.museum":2,"paleo.museum":2,"palmsprings.museum":2,"panama.museum":2,"paris.museum":2,"pasadena.museum":2,"pharmacy.museum":2,"philadelphia.museum":2,"philadelphiaarea.museum":2,"philately.museum":2,"phoenix.museum":2,"photography.museum":2,"pilots.museum":2,"pittsburgh.museum":2,"planetarium.museum":2,"plantation.museum":2,"plants.museum":2,"plaza.museum":2,"portal.museum":2,"portland.museum":2,"portlligat.museum":2,"posts-and-telecommunications.museum":2,"preservation.museum":2,"presidio.museum":2,"press.museum":2,"project.museum":2,"public.museum":2,"pubol.museum":2,"quebec.museum":2,"railroad.museum":2,"railway.museum":2,"research.museum":2,"resistance.museum":2,"riodejaneiro.museum":2,"rochester.museum":2,"rockart.museum":2,"roma.museum":2,"russia.museum":2,"saintlouis.museum":2,"salem.museum":2,"salvadordali.museum":2,"salzburg.museum":2,"sandiego.museum":2,"sanfrancisco.museum":2,"santabarbara.museum":2,"santacruz.museum":2,"santafe.museum":2,"saskatchewan.museum":2,"satx.museum":2,"savannahga.museum":2,"schlesisches.museum":2,"schoenbrunn.museum":2,"schokoladen.museum":2,"school.museum":2,"schweiz.museum":2,"science.museum":2,"scienceandhistory.museum":2,"scienceandindustry.museum":2,"sciencecenter.museum":2,"sciencecenters.museum":2,"science-fiction.museum":2,"sciencehistory.museum":2,"sciences.museum":2,"sciencesnaturelles.museum":2,"scotland.museum":2,"seaport.museum":2,"settlement.museum":2,"settlers.museum":2,"shell.museum":2,"sherbrooke.museum":2,"sibenik.museum":2,"silk.museum":2,"ski.museum":2,"skole.museum":2,"society.museum":2,"sologne.museum":2,"soundandvision.museum":2,"southcarolina.museum":2,"southwest.museum":2,"space.museum":2,"spy.museum":2,"square.museum":2,"stadt.museum":2,"stalbans.museum":2,"starnberg.museum":2,"state.museum":2,"stateofdelaware.museum":2,"station.museum":2,"steam.museum":2,"steiermark.museum":2,"stjohn.museum":2,"stockholm.museum":2,"stpetersburg.museum":2,"stuttgart.museum":2,"suisse.museum":2,"surgeonshall.museum":2,"surrey.museum":2,"svizzera.museum":2,"sweden.museum":2,"sydney.museum":2,"tank.museum":2,"tcm.museum":2,"technology.museum":2,"telekommunikation.museum":2,"television.museum":2,"texas.museum":2,"textile.museum":2,"theater.museum":2,"time.museum":2,"timekeeping.museum":2,"topology.museum":2,"torino.museum":2,"touch.museum":2,"town.museum":2,"transport.museum":2,"tree.museum":2,"trolley.museum":2,"trust.museum":2,"trustee.museum":2,"uhren.museum":2,"ulm.museum":2,"undersea.museum":2,"university.museum":2,"usa.museum":2,"usantiques.museum":2,"usarts.museum":2,"uscountryestate.museum":2,"usculture.museum":2,"usdecorativearts.museum":2,"usgarden.museum":2,"ushistory.museum":2,"ushuaia.museum":2,"uslivinghistory.museum":2,"utah.museum":2,"uvic.museum":2,"valley.museum":2,"vantaa.museum":2,"versailles.museum":2,"viking.museum":2,"village.museum":2,"virginia.museum":2,"virtual.museum":2,"virtuel.museum":2,"vlaanderen.museum":2,"volkenkunde.museum":2,"wales.museum":2,"wallonie.museum":2,"war.museum":2,"washingtondc.museum":2,"watchandclock.museum":2,"watch-and-clock.museum":2,"western.museum":2,"westfalen.museum":2,"whaling.museum":2,"wildlife.museum":2,"williamsburg.museum":2,"windmill.museum":2,"workshop.museum":2,"york.museum":2,"yorkshire.museum":2,"yosemite.museum":2,"youth.museum":2,"zoological.museum":2,"zoology.museum":2,"ירושלים.museum":2,"иком.museum":2,"mv":1,"aero.mv":2,"biz.mv":2,"com.mv":2,"coop.mv":2,"edu.mv":2,"gov.mv":2,"info.mv":2,"int.mv":2,"mil.mv":2,"museum.mv":2,"name.mv":2,"net.mv":2,"org.mv":2,"pro.mv":2,"mw":1,"ac.mw":2,"biz.mw":2,"co.mw":2,"com.mw":2,"coop.mw":2,"edu.mw":2,"gov.mw":2,"int.mw":2,"museum.mw":2,"net.mw":2,"org.mw":2,"mx":1,"com.mx":2,"org.mx":2,"gob.mx":2,"edu.mx":2,"net.mx":2,"my":1,"biz.my":2,"com.my":2,"edu.my":2,"gov.my":2,"mil.my":2,"name.my":2,"net.my":2,"org.my":2,"mz":1,"ac.mz":2,"adv.mz":2,"co.mz":2,"edu.mz":2,"gov.mz":2,"mil.mz":2,"net.mz":2,"org.mz":2,"na":1,"info.na":2,"pro.na":2,"name.na":2,"school.na":2,"or.na":2,"dr.na":2,"us.na":2,"mx.na":2,"ca.na":2,"in.na":2,"cc.na":2,"tv.na":2,"ws.na":2,"mobi.na":2,"co.na":2,"com.na":2,"org.na":2,"name":1,"nc":1,"asso.nc":2,"nom.nc":2,"ne":1,"net":1,"nf":1,"com.nf":2,"net.nf":2,"per.nf":2,"rec.nf":2,"web.nf":2,"arts.nf":2,"firm.nf":2,"info.nf":2,"other.nf":2,"store.nf":2,"ng":1,"com.ng":2,"edu.ng":2,"gov.ng":2,"i.ng":2,"mil.ng":2,"mobi.ng":2,"name.ng":2,"net.ng":2,"org.ng":2,"sch.ng":2,"ni":1,"ac.ni":2,"biz.ni":2,"co.ni":2,"com.ni":2,"edu.ni":2,"gob.ni":2,"in.ni":2,"info.ni":2,"int.ni":2,"mil.ni":2,"net.ni":2,"nom.ni":2,"org.ni":2,"web.ni":2,"nl":1,"no":1,"fhs.no":2,"vgs.no":2,"fylkesbibl.no":2,"folkebibl.no":2,"museum.no":2,"idrett.no":2,"priv.no":2,"mil.no":2,"stat.no":2,"dep.no":2,"kommune.no":2,"herad.no":2,"aa.no":2,"ah.no":2,"bu.no":2,"fm.no":2,"hl.no":2,"hm.no":2,"jan-mayen.no":2,"mr.no":2,"nl.no":2,"nt.no":2,"of.no":2,"ol.no":2,"oslo.no":2,"rl.no":2,"sf.no":2,"st.no":2,"svalbard.no":2,"tm.no":2,"tr.no":2,"va.no":2,"vf.no":2,"gs.aa.no":3,"gs.ah.no":3,"gs.bu.no":3,"gs.fm.no":3,"gs.hl.no":3,"gs.hm.no":3,"gs.jan-mayen.no":3,"gs.mr.no":3,"gs.nl.no":3,"gs.nt.no":3,"gs.of.no":3,"gs.ol.no":3,"gs.oslo.no":3,"gs.rl.no":3,"gs.sf.no":3,"gs.st.no":3,"gs.svalbard.no":3,"gs.tm.no":3,"gs.tr.no":3,"gs.va.no":3,"gs.vf.no":3,"akrehamn.no":2,"Ã¥krehamn.no":2,"algard.no":2,"Ã¥lgÃ¥rd.no":2,"arna.no":2,"brumunddal.no":2,"bryne.no":2,"bronnoysund.no":2,"brønnøysund.no":2,"drobak.no":2,"drøbak.no":2,"egersund.no":2,"fetsund.no":2,"floro.no":2,"florø.no":2,"fredrikstad.no":2,"hokksund.no":2,"honefoss.no":2,"hønefoss.no":2,"jessheim.no":2,"jorpeland.no":2,"jørpeland.no":2,"kirkenes.no":2,"kopervik.no":2,"krokstadelva.no":2,"langevag.no":2,"langevÃ¥g.no":2,"leirvik.no":2,"mjondalen.no":2,"mjøndalen.no":2,"mo-i-rana.no":2,"mosjoen.no":2,"mosjøen.no":2,"nesoddtangen.no":2,"orkanger.no":2,"osoyro.no":2,"osøyro.no":2,"raholt.no":2,"rÃ¥holt.no":2,"sandnessjoen.no":2,"sandnessjøen.no":2,"skedsmokorset.no":2,"slattum.no":2,"spjelkavik.no":2,"stathelle.no":2,"stavern.no":2,"stjordalshalsen.no":2,"stjørdalshalsen.no":2,"tananger.no":2,"tranby.no":2,"vossevangen.no":2,"afjord.no":2,"Ã¥fjord.no":2,"agdenes.no":2,"al.no":2,"Ã¥l.no":2,"alesund.no":2,"Ã¥lesund.no":2,"alstahaug.no":2,"alta.no":2,"áltá.no":2,"alaheadju.no":2,"álaheadju.no":2,"alvdal.no":2,"amli.no":2,"Ã¥mli.no":2,"amot.no":2,"Ã¥mot.no":2,"andebu.no":2,"andoy.no":2,"andøy.no":2,"andasuolo.no":2,"ardal.no":2,"Ã¥rdal.no":2,"aremark.no":2,"arendal.no":2,"Ã¥s.no":2,"aseral.no":2,"Ã¥seral.no":2,"asker.no":2,"askim.no":2,"askvoll.no":2,"askoy.no":2,"askøy.no":2,"asnes.no":2,"Ã¥snes.no":2,"audnedaln.no":2,"aukra.no":2,"aure.no":2,"aurland.no":2,"aurskog-holand.no":2,"aurskog-høland.no":2,"austevoll.no":2,"austrheim.no":2,"averoy.no":2,"averøy.no":2,"balestrand.no":2,"ballangen.no":2,"balat.no":2,"bálát.no":2,"balsfjord.no":2,"bahccavuotna.no":2,"báhccavuotna.no":2,"bamble.no":2,"bardu.no":2,"beardu.no":2,"beiarn.no":2,"bajddar.no":2,"bájddar.no":2,"baidar.no":2,"báidár.no":2,"berg.no":2,"bergen.no":2,"berlevag.no":2,"berlevÃ¥g.no":2,"bearalvahki.no":2,"bearalváhki.no":2,"bindal.no":2,"birkenes.no":2,"bjarkoy.no":2,"bjarkøy.no":2,"bjerkreim.no":2,"bjugn.no":2,"bodo.no":2,"bodø.no":2,"badaddja.no":2,"bÃ¥dÃ¥ddjÃ¥.no":2,"budejju.no":2,"bokn.no":2,"bremanger.no":2,"bronnoy.no":2,"brønnøy.no":2,"bygland.no":2,"bykle.no":2,"barum.no":2,"bærum.no":2,"bo.telemark.no":3,"bø.telemark.no":3,"bo.nordland.no":3,"bø.nordland.no":3,"bievat.no":2,"bievát.no":2,"bomlo.no":2,"bømlo.no":2,"batsfjord.no":2,"bÃ¥tsfjord.no":2,"bahcavuotna.no":2,"báhcavuotna.no":2,"dovre.no":2,"drammen.no":2,"drangedal.no":2,"dyroy.no":2,"dyrøy.no":2,"donna.no":2,"dønna.no":2,"eid.no":2,"eidfjord.no":2,"eidsberg.no":2,"eidskog.no":2,"eidsvoll.no":2,"eigersund.no":2,"elverum.no":2,"enebakk.no":2,"engerdal.no":2,"etne.no":2,"etnedal.no":2,"evenes.no":2,"evenassi.no":2,"evenášši.no":2,"evje-og-hornnes.no":2,"farsund.no":2,"fauske.no":2,"fuossko.no":2,"fuoisku.no":2,"fedje.no":2,"fet.no":2,"finnoy.no":2,"finnøy.no":2,"fitjar.no":2,"fjaler.no":2,"fjell.no":2,"flakstad.no":2,"flatanger.no":2,"flekkefjord.no":2,"flesberg.no":2,"flora.no":2,"fla.no":2,"flÃ¥.no":2,"folldal.no":2,"forsand.no":2,"fosnes.no":2,"frei.no":2,"frogn.no":2,"froland.no":2,"frosta.no":2,"frana.no":2,"fræna.no":2,"froya.no":2,"frøya.no":2,"fusa.no":2,"fyresdal.no":2,"forde.no":2,"førde.no":2,"gamvik.no":2,"gangaviika.no":2,"gáŋgaviika.no":2,"gaular.no":2,"gausdal.no":2,"gildeskal.no":2,"gildeskÃ¥l.no":2,"giske.no":2,"gjemnes.no":2,"gjerdrum.no":2,"gjerstad.no":2,"gjesdal.no":2,"gjovik.no":2,"gjøvik.no":2,"gloppen.no":2,"gol.no":2,"gran.no":2,"grane.no":2,"granvin.no":2,"gratangen.no":2,"grimstad.no":2,"grong.no":2,"kraanghke.no":2,"krÃ¥anghke.no":2,"grue.no":2,"gulen.no":2,"hadsel.no":2,"halden.no":2,"halsa.no":2,"hamar.no":2,"hamaroy.no":2,"habmer.no":2,"hábmer.no":2,"hapmir.no":2,"hápmir.no":2,"hammerfest.no":2,"hammarfeasta.no":2,"hámmárfeasta.no":2,"haram.no":2,"hareid.no":2,"harstad.no":2,"hasvik.no":2,"aknoluokta.no":2,"ákÅ‹oluokta.no":2,"hattfjelldal.no":2,"aarborte.no":2,"haugesund.no":2,"hemne.no":2,"hemnes.no":2,"hemsedal.no":2,"heroy.more-og-romsdal.no":3,"herøy.møre-og-romsdal.no":3,"heroy.nordland.no":3,"herøy.nordland.no":3,"hitra.no":2,"hjartdal.no":2,"hjelmeland.no":2,"hobol.no":2,"hobøl.no":2,"hof.no":2,"hol.no":2,"hole.no":2,"holmestrand.no":2,"holtalen.no":2,"holtÃ¥len.no":2,"hornindal.no":2,"horten.no":2,"hurdal.no":2,"hurum.no":2,"hvaler.no":2,"hyllestad.no":2,"hagebostad.no":2,"hægebostad.no":2,"hoyanger.no":2,"høyanger.no":2,"hoylandet.no":2,"høylandet.no":2,"ha.no":2,"hÃ¥.no":2,"ibestad.no":2,"inderoy.no":2,"inderøy.no":2,"iveland.no":2,"jevnaker.no":2,"jondal.no":2,"jolster.no":2,"jølster.no":2,"karasjok.no":2,"karasjohka.no":2,"kárášjohka.no":2,"karlsoy.no":2,"galsa.no":2,"gálsá.no":2,"karmoy.no":2,"karmøy.no":2,"kautokeino.no":2,"guovdageaidnu.no":2,"klepp.no":2,"klabu.no":2,"klæbu.no":2,"kongsberg.no":2,"kongsvinger.no":2,"kragero.no":2,"kragerø.no":2,"kristiansand.no":2,"kristiansund.no":2,"krodsherad.no":2,"krødsherad.no":2,"kvalsund.no":2,"rahkkeravju.no":2,"ráhkkerávju.no":2,"kvam.no":2,"kvinesdal.no":2,"kvinnherad.no":2,"kviteseid.no":2,"kvitsoy.no":2,"kvitsøy.no":2,"kvafjord.no":2,"kvæfjord.no":2,"giehtavuoatna.no":2,"kvanangen.no":2,"kvænangen.no":2,"navuotna.no":2,"návuotna.no":2,"kafjord.no":2,"kÃ¥fjord.no":2,"gaivuotna.no":2,"gáivuotna.no":2,"larvik.no":2,"lavangen.no":2,"lavagis.no":2,"loabat.no":2,"loabát.no":2,"lebesby.no":2,"davvesiida.no":2,"leikanger.no":2,"leirfjord.no":2,"leka.no":2,"leksvik.no":2,"lenvik.no":2,"leangaviika.no":2,"leaÅ‹gaviika.no":2,"lesja.no":2,"levanger.no":2,"lier.no":2,"lierne.no":2,"lillehammer.no":2,"lillesand.no":2,"lindesnes.no":2,"lindas.no":2,"lindÃ¥s.no":2,"lom.no":2,"loppa.no":2,"lahppi.no":2,"láhppi.no":2,"lund.no":2,"lunner.no":2,"luroy.no":2,"lurøy.no":2,"luster.no":2,"lyngdal.no":2,"lyngen.no":2,"ivgu.no":2,"lardal.no":2,"lerdal.no":2,"lærdal.no":2,"lodingen.no":2,"lødingen.no":2,"lorenskog.no":2,"lørenskog.no":2,"loten.no":2,"løten.no":2,"malvik.no":2,"masoy.no":2,"mÃ¥søy.no":2,"muosat.no":2,"muosát.no":2,"mandal.no":2,"marker.no":2,"marnardal.no":2,"masfjorden.no":2,"meland.no":2,"meldal.no":2,"melhus.no":2,"meloy.no":2,"meløy.no":2,"meraker.no":2,"merÃ¥ker.no":2,"moareke.no":2,"moÃ¥reke.no":2,"midsund.no":2,"midtre-gauldal.no":2,"modalen.no":2,"modum.no":2,"molde.no":2,"moskenes.no":2,"moss.no":2,"mosvik.no":2,"malselv.no":2,"mÃ¥lselv.no":2,"malatvuopmi.no":2,"málatvuopmi.no":2,"namdalseid.no":2,"aejrie.no":2,"namsos.no":2,"namsskogan.no":2,"naamesjevuemie.no":2,"nååmesjevuemie.no":2,"laakesvuemie.no":2,"nannestad.no":2,"narvik.no":2,"narviika.no":2,"naustdal.no":2,"nedre-eiker.no":2,"nes.akershus.no":3,"nes.buskerud.no":3,"nesna.no":2,"nesodden.no":2,"nesseby.no":2,"unjarga.no":2,"unjárga.no":2,"nesset.no":2,"nissedal.no":2,"nittedal.no":2,"nord-aurdal.no":2,"nord-fron.no":2,"nord-odal.no":2,"norddal.no":2,"nordkapp.no":2,"davvenjarga.no":2,"davvenjárga.no":2,"nordre-land.no":2,"nordreisa.no":2,"raisa.no":2,"ráisa.no":2,"nore-og-uvdal.no":2,"notodden.no":2,"naroy.no":2,"nærøy.no":2,"notteroy.no":2,"nøtterøy.no":2,"odda.no":2,"oksnes.no":2,"øksnes.no":2,"oppdal.no":2,"oppegard.no":2,"oppegÃ¥rd.no":2,"orkdal.no":2,"orland.no":2,"ørland.no":2,"orskog.no":2,"ørskog.no":2,"orsta.no":2,"ørsta.no":2,"os.hedmark.no":3,"os.hordaland.no":3,"osen.no":2,"osteroy.no":2,"osterøy.no":2,"ostre-toten.no":2,"østre-toten.no":2,"overhalla.no":2,"ovre-eiker.no":2,"øvre-eiker.no":2,"oyer.no":2,"øyer.no":2,"oygarden.no":2,"øygarden.no":2,"oystre-slidre.no":2,"øystre-slidre.no":2,"porsanger.no":2,"porsangu.no":2,"porsáŋgu.no":2,"porsgrunn.no":2,"radoy.no":2,"radøy.no":2,"rakkestad.no":2,"rana.no":2,"ruovat.no":2,"randaberg.no":2,"rauma.no":2,"rendalen.no":2,"rennebu.no":2,"rennesoy.no":2,"rennesøy.no":2,"rindal.no":2,"ringebu.no":2,"ringerike.no":2,"ringsaker.no":2,"rissa.no":2,"risor.no":2,"risør.no":2,"roan.no":2,"rollag.no":2,"rygge.no":2,"ralingen.no":2,"rælingen.no":2,"rodoy.no":2,"rødøy.no":2,"romskog.no":2,"rømskog.no":2,"roros.no":2,"røros.no":2,"rost.no":2,"røst.no":2,"royken.no":2,"røyken.no":2,"royrvik.no":2,"røyrvik.no":2,"rade.no":2,"rÃ¥de.no":2,"salangen.no":2,"siellak.no":2,"saltdal.no":2,"salat.no":2,"sálát.no":2,"sálat.no":2,"samnanger.no":2,"sande.more-og-romsdal.no":3,"sande.møre-og-romsdal.no":3,"sande.vestfold.no":3,"sandefjord.no":2,"sandnes.no":2,"sandoy.no":2,"sandøy.no":2,"sarpsborg.no":2,"sauda.no":2,"sauherad.no":2,"sel.no":2,"selbu.no":2,"selje.no":2,"seljord.no":2,"sigdal.no":2,"siljan.no":2,"sirdal.no":2,"skaun.no":2,"skedsmo.no":2,"ski.no":2,"skien.no":2,"skiptvet.no":2,"skjervoy.no":2,"skjervøy.no":2,"skierva.no":2,"skiervá.no":2,"skjak.no":2,"skjÃ¥k.no":2,"skodje.no":2,"skanland.no":2,"skÃ¥nland.no":2,"skanit.no":2,"skánit.no":2,"smola.no":2,"smøla.no":2,"snillfjord.no":2,"snasa.no":2,"snÃ¥sa.no":2,"snoasa.no":2,"snaase.no":2,"snÃ¥ase.no":2,"sogndal.no":2,"sokndal.no":2,"sola.no":2,"solund.no":2,"songdalen.no":2,"sortland.no":2,"spydeberg.no":2,"stange.no":2,"stavanger.no":2,"steigen.no":2,"steinkjer.no":2,"stjordal.no":2,"stjørdal.no":2,"stokke.no":2,"stor-elvdal.no":2,"stord.no":2,"stordal.no":2,"storfjord.no":2,"omasvuotna.no":2,"strand.no":2,"stranda.no":2,"stryn.no":2,"sula.no":2,"suldal.no":2,"sund.no":2,"sunndal.no":2,"surnadal.no":2,"sveio.no":2,"svelvik.no":2,"sykkylven.no":2,"sogne.no":2,"søgne.no":2,"somna.no":2,"sømna.no":2,"sondre-land.no":2,"søndre-land.no":2,"sor-aurdal.no":2,"sør-aurdal.no":2,"sor-fron.no":2,"sør-fron.no":2,"sor-odal.no":2,"sør-odal.no":2,"sor-varanger.no":2,"sør-varanger.no":2,"matta-varjjat.no":2,"mátta-várjjat.no":2,"sorfold.no":2,"sørfold.no":2,"sorreisa.no":2,"sørreisa.no":2,"sorum.no":2,"sørum.no":2,"tana.no":2,"deatnu.no":2,"time.no":2,"tingvoll.no":2,"tinn.no":2,"tjeldsund.no":2,"dielddanuorri.no":2,"tjome.no":2,"tjøme.no":2,"tokke.no":2,"tolga.no":2,"torsken.no":2,"tranoy.no":2,"tranøy.no":2,"tromso.no":2,"tromsø.no":2,"tromsa.no":2,"romsa.no":2,"trondheim.no":2,"troandin.no":2,"trysil.no":2,"trana.no":2,"træna.no":2,"trogstad.no":2,"trøgstad.no":2,"tvedestrand.no":2,"tydal.no":2,"tynset.no":2,"tysfjord.no":2,"divtasvuodna.no":2,"divttasvuotna.no":2,"tysnes.no":2,"tysvar.no":2,"tysvær.no":2,"tonsberg.no":2,"tønsberg.no":2,"ullensaker.no":2,"ullensvang.no":2,"ulvik.no":2,"utsira.no":2,"vadso.no":2,"vadsø.no":2,"cahcesuolo.no":2,"čáhcesuolo.no":2,"vaksdal.no":2,"valle.no":2,"vang.no":2,"vanylven.no":2,"vardo.no":2,"vardø.no":2,"varggat.no":2,"várggát.no":2,"vefsn.no":2,"vaapste.no":2,"vega.no":2,"vegarshei.no":2,"vegÃ¥rshei.no":2,"vennesla.no":2,"verdal.no":2,"verran.no":2,"vestby.no":2,"vestnes.no":2,"vestre-slidre.no":2,"vestre-toten.no":2,"vestvagoy.no":2,"vestvÃ¥gøy.no":2,"vevelstad.no":2,"vik.no":2,"vikna.no":2,"vindafjord.no":2,"volda.no":2,"voss.no":2,"varoy.no":2,"værøy.no":2,"vagan.no":2,"vÃ¥gan.no":2,"voagat.no":2,"vagsoy.no":2,"vÃ¥gsøy.no":2,"vaga.no":2,"vÃ¥gÃ¥.no":2,"valer.ostfold.no":3,"vÃ¥ler.østfold.no":3,"valer.hedmark.no":3,"vÃ¥ler.hedmark.no":3,"np":2,"nr":1,"biz.nr":2,"info.nr":2,"gov.nr":2,"edu.nr":2,"org.nr":2,"net.nr":2,"com.nr":2,"nu":1,"nz":1,"ac.nz":2,"co.nz":2,"cri.nz":2,"geek.nz":2,"gen.nz":2,"govt.nz":2,"health.nz":2,"iwi.nz":2,"kiwi.nz":2,"maori.nz":2,"mil.nz":2,"māori.nz":2,"net.nz":2,"org.nz":2,"parliament.nz":2,"school.nz":2,"om":1,"co.om":2,"com.om":2,"edu.om":2,"gov.om":2,"med.om":2,"museum.om":2,"net.om":2,"org.om":2,"pro.om":2,"onion":1,"org":1,"pa":1,"ac.pa":2,"gob.pa":2,"com.pa":2,"org.pa":2,"sld.pa":2,"edu.pa":2,"net.pa":2,"ing.pa":2,"abo.pa":2,"med.pa":2,"nom.pa":2,"pe":1,"edu.pe":2,"gob.pe":2,"nom.pe":2,"mil.pe":2,"org.pe":2,"com.pe":2,"net.pe":2,"pf":1,"com.pf":2,"org.pf":2,"edu.pf":2,"pg":2,"ph":1,"com.ph":2,"net.ph":2,"org.ph":2,"gov.ph":2,"edu.ph":2,"ngo.ph":2,"mil.ph":2,"i.ph":2,"pk":1,"com.pk":2,"net.pk":2,"edu.pk":2,"org.pk":2,"fam.pk":2,"biz.pk":2,"web.pk":2,"gov.pk":2,"gob.pk":2,"gok.pk":2,"gon.pk":2,"gop.pk":2,"gos.pk":2,"info.pk":2,"pl":1,"com.pl":2,"net.pl":2,"org.pl":2,"aid.pl":2,"agro.pl":2,"atm.pl":2,"auto.pl":2,"biz.pl":2,"edu.pl":2,"gmina.pl":2,"gsm.pl":2,"info.pl":2,"mail.pl":2,"miasta.pl":2,"media.pl":2,"mil.pl":2,"nieruchomosci.pl":2,"nom.pl":2,"pc.pl":2,"powiat.pl":2,"priv.pl":2,"realestate.pl":2,"rel.pl":2,"sex.pl":2,"shop.pl":2,"sklep.pl":2,"sos.pl":2,"szkola.pl":2,"targi.pl":2,"tm.pl":2,"tourism.pl":2,"travel.pl":2,"turystyka.pl":2,"gov.pl":2,"ap.gov.pl":3,"ic.gov.pl":3,"is.gov.pl":3,"us.gov.pl":3,"kmpsp.gov.pl":3,"kppsp.gov.pl":3,"kwpsp.gov.pl":3,"psp.gov.pl":3,"wskr.gov.pl":3,"kwp.gov.pl":3,"mw.gov.pl":3,"ug.gov.pl":3,"um.gov.pl":3,"umig.gov.pl":3,"ugim.gov.pl":3,"upow.gov.pl":3,"uw.gov.pl":3,"starostwo.gov.pl":3,"pa.gov.pl":3,"po.gov.pl":3,"psse.gov.pl":3,"pup.gov.pl":3,"rzgw.gov.pl":3,"sa.gov.pl":3,"so.gov.pl":3,"sr.gov.pl":3,"wsa.gov.pl":3,"sko.gov.pl":3,"uzs.gov.pl":3,"wiih.gov.pl":3,"winb.gov.pl":3,"pinb.gov.pl":3,"wios.gov.pl":3,"witd.gov.pl":3,"wzmiuw.gov.pl":3,"piw.gov.pl":3,"wiw.gov.pl":3,"griw.gov.pl":3,"wif.gov.pl":3,"oum.gov.pl":3,"sdn.gov.pl":3,"zp.gov.pl":3,"uppo.gov.pl":3,"mup.gov.pl":3,"wuoz.gov.pl":3,"konsulat.gov.pl":3,"oirm.gov.pl":3,"augustow.pl":2,"babia-gora.pl":2,"bedzin.pl":2,"beskidy.pl":2,"bialowieza.pl":2,"bialystok.pl":2,"bielawa.pl":2,"bieszczady.pl":2,"boleslawiec.pl":2,"bydgoszcz.pl":2,"bytom.pl":2,"cieszyn.pl":2,"czeladz.pl":2,"czest.pl":2,"dlugoleka.pl":2,"elblag.pl":2,"elk.pl":2,"glogow.pl":2,"gniezno.pl":2,"gorlice.pl":2,"grajewo.pl":2,"ilawa.pl":2,"jaworzno.pl":2,"jelenia-gora.pl":2,"jgora.pl":2,"kalisz.pl":2,"kazimierz-dolny.pl":2,"karpacz.pl":2,"kartuzy.pl":2,"kaszuby.pl":2,"katowice.pl":2,"kepno.pl":2,"ketrzyn.pl":2,"klodzko.pl":2,"kobierzyce.pl":2,"kolobrzeg.pl":2,"konin.pl":2,"konskowola.pl":2,"kutno.pl":2,"lapy.pl":2,"lebork.pl":2,"legnica.pl":2,"lezajsk.pl":2,"limanowa.pl":2,"lomza.pl":2,"lowicz.pl":2,"lubin.pl":2,"lukow.pl":2,"malbork.pl":2,"malopolska.pl":2,"mazowsze.pl":2,"mazury.pl":2,"mielec.pl":2,"mielno.pl":2,"mragowo.pl":2,"naklo.pl":2,"nowaruda.pl":2,"nysa.pl":2,"olawa.pl":2,"olecko.pl":2,"olkusz.pl":2,"olsztyn.pl":2,"opoczno.pl":2,"opole.pl":2,"ostroda.pl":2,"ostroleka.pl":2,"ostrowiec.pl":2,"ostrowwlkp.pl":2,"pila.pl":2,"pisz.pl":2,"podhale.pl":2,"podlasie.pl":2,"polkowice.pl":2,"pomorze.pl":2,"pomorskie.pl":2,"prochowice.pl":2,"pruszkow.pl":2,"przeworsk.pl":2,"pulawy.pl":2,"radom.pl":2,"rawa-maz.pl":2,"rybnik.pl":2,"rzeszow.pl":2,"sanok.pl":2,"sejny.pl":2,"slask.pl":2,"slupsk.pl":2,"sosnowiec.pl":2,"stalowa-wola.pl":2,"skoczow.pl":2,"starachowice.pl":2,"stargard.pl":2,"suwalki.pl":2,"swidnica.pl":2,"swiebodzin.pl":2,"swinoujscie.pl":2,"szczecin.pl":2,"szczytno.pl":2,"tarnobrzeg.pl":2,"tgory.pl":2,"turek.pl":2,"tychy.pl":2,"ustka.pl":2,"walbrzych.pl":2,"warmia.pl":2,"warszawa.pl":2,"waw.pl":2,"wegrow.pl":2,"wielun.pl":2,"wlocl.pl":2,"wloclawek.pl":2,"wodzislaw.pl":2,"wolomin.pl":2,"wroclaw.pl":2,"zachpomor.pl":2,"zagan.pl":2,"zarow.pl":2,"zgora.pl":2,"zgorzelec.pl":2,"pm":1,"pn":1,"gov.pn":2,"co.pn":2,"org.pn":2,"edu.pn":2,"net.pn":2,"post":1,"pr":1,"com.pr":2,"net.pr":2,"org.pr":2,"gov.pr":2,"edu.pr":2,"isla.pr":2,"pro.pr":2,"biz.pr":2,"info.pr":2,"name.pr":2,"est.pr":2,"prof.pr":2,"ac.pr":2,"pro":1,"aaa.pro":2,"aca.pro":2,"acct.pro":2,"avocat.pro":2,"bar.pro":2,"cpa.pro":2,"eng.pro":2,"jur.pro":2,"law.pro":2,"med.pro":2,"recht.pro":2,"ps":1,"edu.ps":2,"gov.ps":2,"sec.ps":2,"plo.ps":2,"com.ps":2,"org.ps":2,"net.ps":2,"pt":1,"net.pt":2,"gov.pt":2,"org.pt":2,"edu.pt":2,"int.pt":2,"publ.pt":2,"com.pt":2,"nome.pt":2,"pw":1,"co.pw":2,"ne.pw":2,"or.pw":2,"ed.pw":2,"go.pw":2,"belau.pw":2,"py":1,"com.py":2,"coop.py":2,"edu.py":2,"gov.py":2,"mil.py":2,"net.py":2,"org.py":2,"qa":1,"com.qa":2,"edu.qa":2,"gov.qa":2,"mil.qa":2,"name.qa":2,"net.qa":2,"org.qa":2,"sch.qa":2,"re":1,"asso.re":2,"com.re":2,"nom.re":2,"ro":1,"arts.ro":2,"com.ro":2,"firm.ro":2,"info.ro":2,"nom.ro":2,"nt.ro":2,"org.ro":2,"rec.ro":2,"store.ro":2,"tm.ro":2,"www.ro":2,"rs":1,"ac.rs":2,"co.rs":2,"edu.rs":2,"gov.rs":2,"in.rs":2,"org.rs":2,"ru":1,"rw":1,"ac.rw":2,"co.rw":2,"coop.rw":2,"gov.rw":2,"mil.rw":2,"net.rw":2,"org.rw":2,"sa":1,"com.sa":2,"net.sa":2,"org.sa":2,"gov.sa":2,"med.sa":2,"pub.sa":2,"edu.sa":2,"sch.sa":2,"sb":1,"com.sb":2,"edu.sb":2,"gov.sb":2,"net.sb":2,"org.sb":2,"sc":1,"com.sc":2,"gov.sc":2,"net.sc":2,"org.sc":2,"edu.sc":2,"sd":1,"com.sd":2,"net.sd":2,"org.sd":2,"edu.sd":2,"med.sd":2,"tv.sd":2,"gov.sd":2,"info.sd":2,"se":1,"a.se":2,"ac.se":2,"b.se":2,"bd.se":2,"brand.se":2,"c.se":2,"d.se":2,"e.se":2,"f.se":2,"fh.se":2,"fhsk.se":2,"fhv.se":2,"g.se":2,"h.se":2,"i.se":2,"k.se":2,"komforb.se":2,"kommunalforbund.se":2,"komvux.se":2,"l.se":2,"lanbib.se":2,"m.se":2,"n.se":2,"naturbruksgymn.se":2,"o.se":2,"org.se":2,"p.se":2,"parti.se":2,"pp.se":2,"press.se":2,"r.se":2,"s.se":2,"t.se":2,"tm.se":2,"u.se":2,"w.se":2,"x.se":2,"y.se":2,"z.se":2,"sg":1,"com.sg":2,"net.sg":2,"org.sg":2,"gov.sg":2,"edu.sg":2,"per.sg":2,"sh":1,"com.sh":2,"net.sh":2,"gov.sh":2,"org.sh":2,"mil.sh":2,"si":1,"sj":1,"sk":1,"sl":1,"com.sl":2,"net.sl":2,"edu.sl":2,"gov.sl":2,"org.sl":2,"sm":1,"sn":1,"art.sn":2,"com.sn":2,"edu.sn":2,"gouv.sn":2,"org.sn":2,"perso.sn":2,"univ.sn":2,"so":1,"com.so":2,"edu.so":2,"gov.so":2,"me.so":2,"net.so":2,"org.so":2,"sr":1,"ss":1,"biz.ss":2,"com.ss":2,"edu.ss":2,"gov.ss":2,"net.ss":2,"org.ss":2,"st":1,"co.st":2,"com.st":2,"consulado.st":2,"edu.st":2,"embaixada.st":2,"gov.st":2,"mil.st":2,"net.st":2,"org.st":2,"principe.st":2,"saotome.st":2,"store.st":2,"su":1,"sv":1,"com.sv":2,"edu.sv":2,"gob.sv":2,"org.sv":2,"red.sv":2,"sx":1,"gov.sx":2,"sy":1,"edu.sy":2,"gov.sy":2,"net.sy":2,"mil.sy":2,"com.sy":2,"org.sy":2,"sz":1,"co.sz":2,"ac.sz":2,"org.sz":2,"tc":1,"td":1,"tel":1,"tf":1,"tg":1,"th":1,"ac.th":2,"co.th":2,"go.th":2,"in.th":2,"mi.th":2,"net.th":2,"or.th":2,"tj":1,"ac.tj":2,"biz.tj":2,"co.tj":2,"com.tj":2,"edu.tj":2,"go.tj":2,"gov.tj":2,"int.tj":2,"mil.tj":2,"name.tj":2,"net.tj":2,"nic.tj":2,"org.tj":2,"test.tj":2,"web.tj":2,"tk":1,"tl":1,"gov.tl":2,"tm":1,"com.tm":2,"co.tm":2,"org.tm":2,"net.tm":2,"nom.tm":2,"gov.tm":2,"mil.tm":2,"edu.tm":2,"tn":1,"com.tn":2,"ens.tn":2,"fin.tn":2,"gov.tn":2,"ind.tn":2,"intl.tn":2,"nat.tn":2,"net.tn":2,"org.tn":2,"info.tn":2,"perso.tn":2,"tourism.tn":2,"edunet.tn":2,"rnrt.tn":2,"rns.tn":2,"rnu.tn":2,"mincom.tn":2,"agrinet.tn":2,"defense.tn":2,"turen.tn":2,"to":1,"com.to":2,"gov.to":2,"net.to":2,"org.to":2,"edu.to":2,"mil.to":2,"tr":1,"av.tr":2,"bbs.tr":2,"bel.tr":2,"biz.tr":2,"com.tr":2,"dr.tr":2,"edu.tr":2,"gen.tr":2,"gov.tr":2,"info.tr":2,"mil.tr":2,"k12.tr":2,"kep.tr":2,"name.tr":2,"net.tr":2,"org.tr":2,"pol.tr":2,"tel.tr":2,"tsk.tr":2,"tv.tr":2,"web.tr":2,"nc.tr":2,"gov.nc.tr":3,"tt":1,"co.tt":2,"com.tt":2,"org.tt":2,"net.tt":2,"biz.tt":2,"info.tt":2,"pro.tt":2,"int.tt":2,"coop.tt":2,"jobs.tt":2,"mobi.tt":2,"travel.tt":2,"museum.tt":2,"aero.tt":2,"name.tt":2,"gov.tt":2,"edu.tt":2,"tv":1,"tw":1,"edu.tw":2,"gov.tw":2,"mil.tw":2,"com.tw":2,"net.tw":2,"org.tw":2,"idv.tw":2,"game.tw":2,"ebiz.tw":2,"club.tw":2,"網路.tw":2,"組織.tw":2,"商業.tw":2,"tz":1,"ac.tz":2,"co.tz":2,"go.tz":2,"hotel.tz":2,"info.tz":2,"me.tz":2,"mil.tz":2,"mobi.tz":2,"ne.tz":2,"or.tz":2,"sc.tz":2,"tv.tz":2,"ua":1,"com.ua":2,"edu.ua":2,"gov.ua":2,"in.ua":2,"net.ua":2,"org.ua":2,"cherkassy.ua":2,"cherkasy.ua":2,"chernigov.ua":2,"chernihiv.ua":2,"chernivtsi.ua":2,"chernovtsy.ua":2,"ck.ua":2,"cn.ua":2,"cr.ua":2,"crimea.ua":2,"cv.ua":2,"dn.ua":2,"dnepropetrovsk.ua":2,"dnipropetrovsk.ua":2,"donetsk.ua":2,"dp.ua":2,"if.ua":2,"ivano-frankivsk.ua":2,"kh.ua":2,"kharkiv.ua":2,"kharkov.ua":2,"kherson.ua":2,"khmelnitskiy.ua":2,"khmelnytskyi.ua":2,"kiev.ua":2,"kirovograd.ua":2,"km.ua":2,"kr.ua":2,"krym.ua":2,"ks.ua":2,"kv.ua":2,"kyiv.ua":2,"lg.ua":2,"lt.ua":2,"lugansk.ua":2,"lutsk.ua":2,"lv.ua":2,"lviv.ua":2,"mk.ua":2,"mykolaiv.ua":2,"nikolaev.ua":2,"od.ua":2,"odesa.ua":2,"odessa.ua":2,"pl.ua":2,"poltava.ua":2,"rivne.ua":2,"rovno.ua":2,"rv.ua":2,"sb.ua":2,"sebastopol.ua":2,"sevastopol.ua":2,"sm.ua":2,"sumy.ua":2,"te.ua":2,"ternopil.ua":2,"uz.ua":2,"uzhgorod.ua":2,"vinnica.ua":2,"vinnytsia.ua":2,"vn.ua":2,"volyn.ua":2,"yalta.ua":2,"zaporizhzhe.ua":2,"zaporizhzhia.ua":2,"zhitomir.ua":2,"zhytomyr.ua":2,"zp.ua":2,"zt.ua":2,"ug":1,"co.ug":2,"or.ug":2,"ac.ug":2,"sc.ug":2,"go.ug":2,"ne.ug":2,"com.ug":2,"org.ug":2,"uk":1,"ac.uk":2,"co.uk":2,"gov.uk":2,"ltd.uk":2,"me.uk":2,"net.uk":2,"nhs.uk":2,"org.uk":2,"plc.uk":2,"police.uk":2,"sch.uk":3,"us":1,"dni.us":2,"fed.us":2,"isa.us":2,"kids.us":2,"nsn.us":2,"ak.us":2,"al.us":2,"ar.us":2,"as.us":2,"az.us":2,"ca.us":2,"co.us":2,"ct.us":2,"dc.us":2,"de.us":2,"fl.us":2,"ga.us":2,"gu.us":2,"hi.us":2,"ia.us":2,"id.us":2,"il.us":2,"in.us":2,"ks.us":2,"ky.us":2,"la.us":2,"ma.us":2,"md.us":2,"me.us":2,"mi.us":2,"mn.us":2,"mo.us":2,"ms.us":2,"mt.us":2,"nc.us":2,"nd.us":2,"ne.us":2,"nh.us":2,"nj.us":2,"nm.us":2,"nv.us":2,"ny.us":2,"oh.us":2,"ok.us":2,"or.us":2,"pa.us":2,"pr.us":2,"ri.us":2,"sc.us":2,"sd.us":2,"tn.us":2,"tx.us":2,"ut.us":2,"vi.us":2,"vt.us":2,"va.us":2,"wa.us":2,"wi.us":2,"wv.us":2,"wy.us":2,"k12.ak.us":3,"k12.al.us":3,"k12.ar.us":3,"k12.as.us":3,"k12.az.us":3,"k12.ca.us":3,"k12.co.us":3,"k12.ct.us":3,"k12.dc.us":3,"k12.de.us":3,"k12.fl.us":3,"k12.ga.us":3,"k12.gu.us":3,"k12.ia.us":3,"k12.id.us":3,"k12.il.us":3,"k12.in.us":3,"k12.ks.us":3,"k12.ky.us":3,"k12.la.us":3,"k12.ma.us":3,"k12.md.us":3,"k12.me.us":3,"k12.mi.us":3,"k12.mn.us":3,"k12.mo.us":3,"k12.ms.us":3,"k12.mt.us":3,"k12.nc.us":3,"k12.ne.us":3,"k12.nh.us":3,"k12.nj.us":3,"k12.nm.us":3,"k12.nv.us":3,"k12.ny.us":3,"k12.oh.us":3,"k12.ok.us":3,"k12.or.us":3,"k12.pa.us":3,"k12.pr.us":3,"k12.sc.us":3,"k12.tn.us":3,"k12.tx.us":3,"k12.ut.us":3,"k12.vi.us":3,"k12.vt.us":3,"k12.va.us":3,"k12.wa.us":3,"k12.wi.us":3,"k12.wy.us":3,"cc.ak.us":3,"cc.al.us":3,"cc.ar.us":3,"cc.as.us":3,"cc.az.us":3,"cc.ca.us":3,"cc.co.us":3,"cc.ct.us":3,"cc.dc.us":3,"cc.de.us":3,"cc.fl.us":3,"cc.ga.us":3,"cc.gu.us":3,"cc.hi.us":3,"cc.ia.us":3,"cc.id.us":3,"cc.il.us":3,"cc.in.us":3,"cc.ks.us":3,"cc.ky.us":3,"cc.la.us":3,"cc.ma.us":3,"cc.md.us":3,"cc.me.us":3,"cc.mi.us":3,"cc.mn.us":3,"cc.mo.us":3,"cc.ms.us":3,"cc.mt.us":3,"cc.nc.us":3,"cc.nd.us":3,"cc.ne.us":3,"cc.nh.us":3,"cc.nj.us":3,"cc.nm.us":3,"cc.nv.us":3,"cc.ny.us":3,"cc.oh.us":3,"cc.ok.us":3,"cc.or.us":3,"cc.pa.us":3,"cc.pr.us":3,"cc.ri.us":3,"cc.sc.us":3,"cc.sd.us":3,"cc.tn.us":3,"cc.tx.us":3,"cc.ut.us":3,"cc.vi.us":3,"cc.vt.us":3,"cc.va.us":3,"cc.wa.us":3,"cc.wi.us":3,"cc.wv.us":3,"cc.wy.us":3,"lib.ak.us":3,"lib.al.us":3,"lib.ar.us":3,"lib.as.us":3,"lib.az.us":3,"lib.ca.us":3,"lib.co.us":3,"lib.ct.us":3,"lib.dc.us":3,"lib.fl.us":3,"lib.ga.us":3,"lib.gu.us":3,"lib.hi.us":3,"lib.ia.us":3,"lib.id.us":3,"lib.il.us":3,"lib.in.us":3,"lib.ks.us":3,"lib.ky.us":3,"lib.la.us":3,"lib.ma.us":3,"lib.md.us":3,"lib.me.us":3,"lib.mi.us":3,"lib.mn.us":3,"lib.mo.us":3,"lib.ms.us":3,"lib.mt.us":3,"lib.nc.us":3,"lib.nd.us":3,"lib.ne.us":3,"lib.nh.us":3,"lib.nj.us":3,"lib.nm.us":3,"lib.nv.us":3,"lib.ny.us":3,"lib.oh.us":3,"lib.ok.us":3,"lib.or.us":3,"lib.pa.us":3,"lib.pr.us":3,"lib.ri.us":3,"lib.sc.us":3,"lib.sd.us":3,"lib.tn.us":3,"lib.tx.us":3,"lib.ut.us":3,"lib.vi.us":3,"lib.vt.us":3,"lib.va.us":3,"lib.wa.us":3,"lib.wi.us":3,"lib.wy.us":3,"pvt.k12.ma.us":4,"chtr.k12.ma.us":4,"paroch.k12.ma.us":4,"ann-arbor.mi.us":3,"cog.mi.us":3,"dst.mi.us":3,"eaton.mi.us":3,"gen.mi.us":3,"mus.mi.us":3,"tec.mi.us":3,"washtenaw.mi.us":3,"uy":1,"com.uy":2,"edu.uy":2,"gub.uy":2,"mil.uy":2,"net.uy":2,"org.uy":2,"uz":1,"co.uz":2,"com.uz":2,"net.uz":2,"org.uz":2,"va":1,"vc":1,"com.vc":2,"net.vc":2,"org.vc":2,"gov.vc":2,"mil.vc":2,"edu.vc":2,"ve":1,"arts.ve":2,"co.ve":2,"com.ve":2,"e12.ve":2,"edu.ve":2,"firm.ve":2,"gob.ve":2,"gov.ve":2,"info.ve":2,"int.ve":2,"mil.ve":2,"net.ve":2,"org.ve":2,"rec.ve":2,"store.ve":2,"tec.ve":2,"web.ve":2,"vg":1,"vi":1,"co.vi":2,"com.vi":2,"k12.vi":2,"net.vi":2,"org.vi":2,"vn":1,"com.vn":2,"net.vn":2,"org.vn":2,"edu.vn":2,"gov.vn":2,"int.vn":2,"ac.vn":2,"biz.vn":2,"info.vn":2,"name.vn":2,"pro.vn":2,"health.vn":2,"vu":1,"com.vu":2,"edu.vu":2,"net.vu":2,"org.vu":2,"wf":1,"ws":1,"com.ws":2,"net.ws":2,"org.ws":2,"gov.ws":2,"edu.ws":2,"yt":1,"امارات":1,"Õ°Õ¡Õµ":1,"বাংলা":1,"бг":1,"البحرين":1,"бел":1,"中国":1,"中國":1,"الجزائر":1,"مصر":1,"ею":1,"ευ":1,"موريتانيا":1,"გე":1,"ελ":1,"香港":1,"公司.香港":2,"教育.香港":2,"政府.香港":2,"個人.香港":2,"網絡.香港":2,"組織.香港":2,"ಭಾರತ":1,"ଭାରତ":1,"ভাৰত":1,"भारतम्":1,"भारोत":1,"ڀارت":1,"ഭാരതം":1,"भारत":1,"بارت":1,"بھارت":1,"భారత్":1,"ભારત":1,"ਭਾਰਤ":1,"ভারত":1,"இந்தியா":1,"ایران":1,"ايران":1,"عراق":1,"الاردن":1,"한국":1,"қаз":1,"ລາວ":1,"ලංකා":1,"இலங்கை":1,"المغرب":1,"мкд":1,"мон":1,"澳門":1,"澳门":1,"مليسيا":1,"عمان":1,"پاکستان":1,"پاكستان":1,"فلسطين":1,"срб":1,"пр.срб":2,"орг.срб":2,"обр.срб":2,"од.срб":2,"упр.срб":2,"ак.срб":2,"рф":1,"قطر":1,"السعودية":1,"السعودیة":1,"السعودیۃ":1,"السعوديه":1,"سودان":1,"æ–°åŠ å¡":1,"சிங்கப்பூர்":1,"سورية":1,"سوريا":1,"ไทย":1,"ศึกษา.ไทย":2,"ธุรกิจ.ไทย":2,"รัฐบาล.ไทย":2,"ทหาร.ไทย":2,"เน็ต.ไทย":2,"องค์กร.ไทย":2,"تونس":1,"台灣":1,"台湾":1,"臺灣":1,"укр":1,"اليمن":1,"xxx":1,"ye":1,"com.ye":2,"edu.ye":2,"gov.ye":2,"net.ye":2,"mil.ye":2,"org.ye":2,"ac.za":2,"agric.za":2,"alt.za":2,"co.za":2,"edu.za":2,"gov.za":2,"grondar.za":2,"law.za":2,"mil.za":2,"net.za":2,"ngo.za":2,"nic.za":2,"nis.za":2,"nom.za":2,"org.za":2,"school.za":2,"tm.za":2,"web.za":2,"zm":1,"ac.zm":2,"biz.zm":2,"co.zm":2,"com.zm":2,"edu.zm":2,"gov.zm":2,"info.zm":2,"mil.zm":2,"net.zm":2,"org.zm":2,"sch.zm":2,"zw":1,"ac.zw":2,"co.zw":2,"gov.zw":2,"mil.zw":2,"org.zw":2,"aaa":1,"aarp":1,"abarth":1,"abb":1,"abbott":1,"abbvie":1,"abc":1,"able":1,"abogado":1,"abudhabi":1,"academy":1,"accenture":1,"accountant":1,"accountants":1,"aco":1,"actor":1,"adac":1,"ads":1,"adult":1,"aeg":1,"aetna":1,"afamilycompany":1,"afl":1,"africa":1,"agakhan":1,"agency":1,"aig":1,"airbus":1,"airforce":1,"airtel":1,"akdn":1,"alfaromeo":1,"alibaba":1,"alipay":1,"allfinanz":1,"allstate":1,"ally":1,"alsace":1,"alstom":1,"amazon":1,"americanexpress":1,"americanfamily":1,"amex":1,"amfam":1,"amica":1,"amsterdam":1,"analytics":1,"android":1,"anquan":1,"anz":1,"aol":1,"apartments":1,"app":1,"apple":1,"aquarelle":1,"arab":1,"aramco":1,"archi":1,"army":1,"art":1,"arte":1,"asda":1,"associates":1,"athleta":1,"attorney":1,"auction":1,"audi":1,"audible":1,"audio":1,"auspost":1,"author":1,"auto":1,"autos":1,"avianca":1,"aws":1,"axa":1,"azure":1,"baby":1,"baidu":1,"banamex":1,"bananarepublic":1,"band":1,"bank":1,"bar":1,"barcelona":1,"barclaycard":1,"barclays":1,"barefoot":1,"bargains":1,"baseball":1,"basketball":1,"bauhaus":1,"bayern":1,"bbc":1,"bbt":1,"bbva":1,"bcg":1,"bcn":1,"beats":1,"beauty":1,"beer":1,"bentley":1,"berlin":1,"best":1,"bestbuy":1,"bet":1,"bharti":1,"bible":1,"bid":1,"bike":1,"bing":1,"bingo":1,"bio":1,"black":1,"blackfriday":1,"blockbuster":1,"blog":1,"bloomberg":1,"blue":1,"bms":1,"bmw":1,"bnpparibas":1,"boats":1,"boehringer":1,"bofa":1,"bom":1,"bond":1,"boo":1,"book":1,"booking":1,"bosch":1,"bostik":1,"boston":1,"bot":1,"boutique":1,"box":1,"bradesco":1,"bridgestone":1,"broadway":1,"broker":1,"brother":1,"brussels":1,"budapest":1,"bugatti":1,"build":1,"builders":1,"business":1,"buy":1,"buzz":1,"bzh":1,"cab":1,"cafe":1,"cal":1,"call":1,"calvinklein":1,"cam":1,"camera":1,"camp":1,"cancerresearch":1,"canon":1,"capetown":1,"capital":1,"capitalone":1,"car":1,"caravan":1,"cards":1,"care":1,"career":1,"careers":1,"cars":1,"casa":1,"case":1,"cash":1,"casino":1,"catering":1,"catholic":1,"cba":1,"cbn":1,"cbre":1,"cbs":1,"center":1,"ceo":1,"cern":1,"cfa":1,"cfd":1,"chanel":1,"channel":1,"charity":1,"chase":1,"chat":1,"cheap":1,"chintai":1,"christmas":1,"chrome":1,"church":1,"cipriani":1,"circle":1,"cisco":1,"citadel":1,"citi":1,"citic":1,"city":1,"cityeats":1,"claims":1,"cleaning":1,"click":1,"clinic":1,"clinique":1,"clothing":1,"cloud":1,"club":1,"clubmed":1,"coach":1,"codes":1,"coffee":1,"college":1,"cologne":1,"comcast":1,"commbank":1,"community":1,"company":1,"compare":1,"computer":1,"comsec":1,"condos":1,"construction":1,"consulting":1,"contact":1,"contractors":1,"cooking":1,"cookingchannel":1,"cool":1,"corsica":1,"country":1,"coupon":1,"coupons":1,"courses":1,"cpa":1,"credit":1,"creditcard":1,"creditunion":1,"cricket":1,"crown":1,"crs":1,"cruise":1,"cruises":1,"csc":1,"cuisinella":1,"cymru":1,"cyou":1,"dabur":1,"dad":1,"dance":1,"data":1,"date":1,"dating":1,"datsun":1,"day":1,"dclk":1,"dds":1,"deal":1,"dealer":1,"deals":1,"degree":1,"delivery":1,"dell":1,"deloitte":1,"delta":1,"democrat":1,"dental":1,"dentist":1,"desi":1,"design":1,"dev":1,"dhl":1,"diamonds":1,"diet":1,"digital":1,"direct":1,"directory":1,"discount":1,"discover":1,"dish":1,"diy":1,"dnp":1,"docs":1,"doctor":1,"dog":1,"domains":1,"dot":1,"download":1,"drive":1,"dtv":1,"dubai":1,"duck":1,"dunlop":1,"dupont":1,"durban":1,"dvag":1,"dvr":1,"earth":1,"eat":1,"eco":1,"edeka":1,"education":1,"email":1,"emerck":1,"energy":1,"engineer":1,"engineering":1,"enterprises":1,"epson":1,"equipment":1,"ericsson":1,"erni":1,"esq":1,"estate":1,"etisalat":1,"eurovision":1,"eus":1,"events":1,"exchange":1,"expert":1,"exposed":1,"express":1,"extraspace":1,"fage":1,"fail":1,"fairwinds":1,"faith":1,"family":1,"fan":1,"fans":1,"farm":1,"farmers":1,"fashion":1,"fast":1,"fedex":1,"feedback":1,"ferrari":1,"ferrero":1,"fiat":1,"fidelity":1,"fido":1,"film":1,"final":1,"finance":1,"financial":1,"fire":1,"firestone":1,"firmdale":1,"fish":1,"fishing":1,"fit":1,"fitness":1,"flickr":1,"flights":1,"flir":1,"florist":1,"flowers":1,"fly":1,"foo":1,"food":1,"foodnetwork":1,"football":1,"ford":1,"forex":1,"forsale":1,"forum":1,"foundation":1,"fox":1,"free":1,"fresenius":1,"frl":1,"frogans":1,"frontdoor":1,"frontier":1,"ftr":1,"fujitsu":1,"fujixerox":1,"fun":1,"fund":1,"furniture":1,"futbol":1,"fyi":1,"gal":1,"gallery":1,"gallo":1,"gallup":1,"game":1,"games":1,"gap":1,"garden":1,"gay":1,"gbiz":1,"gdn":1,"gea":1,"gent":1,"genting":1,"george":1,"ggee":1,"gift":1,"gifts":1,"gives":1,"giving":1,"glade":1,"glass":1,"gle":1,"global":1,"globo":1,"gmail":1,"gmbh":1,"gmo":1,"gmx":1,"godaddy":1,"gold":1,"goldpoint":1,"golf":1,"goo":1,"goodyear":1,"goog":1,"google":1,"gop":1,"got":1,"grainger":1,"graphics":1,"gratis":1,"green":1,"gripe":1,"grocery":1,"group":1,"guardian":1,"gucci":1,"guge":1,"guide":1,"guitars":1,"guru":1,"hair":1,"hamburg":1,"hangout":1,"haus":1,"hbo":1,"hdfc":1,"hdfcbank":1,"health":1,"healthcare":1,"help":1,"helsinki":1,"here":1,"hermes":1,"hgtv":1,"hiphop":1,"hisamitsu":1,"hitachi":1,"hiv":1,"hkt":1,"hockey":1,"holdings":1,"holiday":1,"homedepot":1,"homegoods":1,"homes":1,"homesense":1,"honda":1,"horse":1,"hospital":1,"host":1,"hosting":1,"hot":1,"hoteles":1,"hotels":1,"hotmail":1,"house":1,"how":1,"hsbc":1,"hughes":1,"hyatt":1,"hyundai":1,"ibm":1,"icbc":1,"ice":1,"icu":1,"ieee":1,"ifm":1,"ikano":1,"imamat":1,"imdb":1,"immo":1,"immobilien":1,"inc":1,"industries":1,"infiniti":1,"ing":1,"ink":1,"institute":1,"insurance":1,"insure":1,"international":1,"intuit":1,"investments":1,"ipiranga":1,"irish":1,"ismaili":1,"ist":1,"istanbul":1,"itau":1,"itv":1,"iveco":1,"jaguar":1,"java":1,"jcb":1,"jeep":1,"jetzt":1,"jewelry":1,"jio":1,"jll":1,"jmp":1,"jnj":1,"joburg":1,"jot":1,"joy":1,"jpmorgan":1,"jprs":1,"juegos":1,"juniper":1,"kaufen":1,"kddi":1,"kerryhotels":1,"kerrylogistics":1,"kerryproperties":1,"kfh":1,"kia":1,"kim":1,"kinder":1,"kindle":1,"kitchen":1,"kiwi":1,"koeln":1,"komatsu":1,"kosher":1,"kpmg":1,"kpn":1,"krd":1,"kred":1,"kuokgroup":1,"kyoto":1,"lacaixa":1,"lamborghini":1,"lamer":1,"lancaster":1,"lancia":1,"land":1,"landrover":1,"lanxess":1,"lasalle":1,"lat":1,"latino":1,"latrobe":1,"law":1,"lawyer":1,"lds":1,"lease":1,"leclerc":1,"lefrak":1,"legal":1,"lego":1,"lexus":1,"lgbt":1,"lidl":1,"life":1,"lifeinsurance":1,"lifestyle":1,"lighting":1,"like":1,"lilly":1,"limited":1,"limo":1,"lincoln":1,"linde":1,"link":1,"lipsy":1,"live":1,"living":1,"lixil":1,"llc":1,"llp":1,"loan":1,"loans":1,"locker":1,"locus":1,"loft":1,"lol":1,"london":1,"lotte":1,"lotto":1,"love":1,"lpl":1,"lplfinancial":1,"ltd":1,"ltda":1,"lundbeck":1,"luxe":1,"luxury":1,"macys":1,"madrid":1,"maif":1,"maison":1,"makeup":1,"man":1,"management":1,"mango":1,"map":1,"market":1,"marketing":1,"markets":1,"marriott":1,"marshalls":1,"maserati":1,"mattel":1,"mba":1,"mckinsey":1,"med":1,"media":1,"meet":1,"melbourne":1,"meme":1,"memorial":1,"men":1,"menu":1,"merckmsd":1,"miami":1,"microsoft":1,"mini":1,"mint":1,"mit":1,"mitsubishi":1,"mlb":1,"mls":1,"mma":1,"mobile":1,"moda":1,"moe":1,"moi":1,"mom":1,"monash":1,"money":1,"monster":1,"mormon":1,"mortgage":1,"moscow":1,"moto":1,"motorcycles":1,"mov":1,"movie":1,"msd":1,"mtn":1,"mtr":1,"mutual":1,"nab":1,"nagoya":1,"nationwide":1,"natura":1,"navy":1,"nba":1,"nec":1,"netbank":1,"netflix":1,"network":1,"neustar":1,"new":1,"news":1,"next":1,"nextdirect":1,"nexus":1,"nfl":1,"ngo":1,"nhk":1,"nico":1,"nike":1,"nikon":1,"ninja":1,"nissan":1,"nissay":1,"nokia":1,"northwesternmutual":1,"norton":1,"now":1,"nowruz":1,"nowtv":1,"nra":1,"nrw":1,"ntt":1,"nyc":1,"obi":1,"observer":1,"off":1,"office":1,"okinawa":1,"olayan":1,"olayangroup":1,"oldnavy":1,"ollo":1,"omega":1,"one":1,"ong":1,"onl":1,"online":1,"onyourside":1,"ooo":1,"open":1,"oracle":1,"orange":1,"organic":1,"origins":1,"osaka":1,"otsuka":1,"ott":1,"ovh":1,"page":1,"panasonic":1,"paris":1,"pars":1,"partners":1,"parts":1,"party":1,"passagens":1,"pay":1,"pccw":1,"pet":1,"pfizer":1,"pharmacy":1,"phd":1,"philips":1,"phone":1,"photo":1,"photography":1,"photos":1,"physio":1,"pics":1,"pictet":1,"pictures":1,"pid":1,"pin":1,"ping":1,"pink":1,"pioneer":1,"pizza":1,"place":1,"play":1,"playstation":1,"plumbing":1,"plus":1,"pnc":1,"pohl":1,"poker":1,"politie":1,"porn":1,"pramerica":1,"praxi":1,"press":1,"prime":1,"prod":1,"productions":1,"prof":1,"progressive":1,"promo":1,"properties":1,"property":1,"protection":1,"pru":1,"prudential":1,"pub":1,"pwc":1,"qpon":1,"quebec":1,"quest":1,"qvc":1,"racing":1,"radio":1,"raid":1,"read":1,"realestate":1,"realtor":1,"realty":1,"recipes":1,"red":1,"redstone":1,"redumbrella":1,"rehab":1,"reise":1,"reisen":1,"reit":1,"reliance":1,"ren":1,"rent":1,"rentals":1,"repair":1,"report":1,"republican":1,"rest":1,"restaurant":1,"review":1,"reviews":1,"rexroth":1,"rich":1,"richardli":1,"ricoh":1,"ril":1,"rio":1,"rip":1,"rmit":1,"rocher":1,"rocks":1,"rodeo":1,"rogers":1,"room":1,"rsvp":1,"rugby":1,"ruhr":1,"run":1,"rwe":1,"ryukyu":1,"saarland":1,"safe":1,"safety":1,"sakura":1,"sale":1,"salon":1,"samsclub":1,"samsung":1,"sandvik":1,"sandvikcoromant":1,"sanofi":1,"sap":1,"sarl":1,"sas":1,"save":1,"saxo":1,"sbi":1,"sbs":1,"sca":1,"scb":1,"schaeffler":1,"schmidt":1,"scholarships":1,"school":1,"schule":1,"schwarz":1,"science":1,"scjohnson":1,"scot":1,"search":1,"seat":1,"secure":1,"security":1,"seek":1,"select":1,"sener":1,"services":1,"ses":1,"seven":1,"sew":1,"sex":1,"sexy":1,"sfr":1,"shangrila":1,"sharp":1,"shaw":1,"shell":1,"shia":1,"shiksha":1,"shoes":1,"shop":1,"shopping":1,"shouji":1,"show":1,"showtime":1,"silk":1,"sina":1,"singles":1,"site":1,"ski":1,"skin":1,"sky":1,"skype":1,"sling":1,"smart":1,"smile":1,"sncf":1,"soccer":1,"social":1,"softbank":1,"software":1,"sohu":1,"solar":1,"solutions":1,"song":1,"sony":1,"soy":1,"spa":1,"space":1,"sport":1,"spot":1,"spreadbetting":1,"srl":1,"stada":1,"staples":1,"star":1,"statebank":1,"statefarm":1,"stc":1,"stcgroup":1,"stockholm":1,"storage":1,"store":1,"stream":1,"studio":1,"study":1,"style":1,"sucks":1,"supplies":1,"supply":1,"support":1,"surf":1,"surgery":1,"suzuki":1,"swatch":1,"swiftcover":1,"swiss":1,"sydney":1,"systems":1,"tab":1,"taipei":1,"talk":1,"taobao":1,"target":1,"tatamotors":1,"tatar":1,"tattoo":1,"tax":1,"taxi":1,"tci":1,"tdk":1,"team":1,"tech":1,"technology":1,"temasek":1,"tennis":1,"teva":1,"thd":1,"theater":1,"theatre":1,"tiaa":1,"tickets":1,"tienda":1,"tiffany":1,"tips":1,"tires":1,"tirol":1,"tjmaxx":1,"tjx":1,"tkmaxx":1,"tmall":1,"today":1,"tokyo":1,"tools":1,"top":1,"toray":1,"toshiba":1,"total":1,"tours":1,"town":1,"toyota":1,"toys":1,"trade":1,"trading":1,"training":1,"travel":1,"travelchannel":1,"travelers":1,"travelersinsurance":1,"trust":1,"trv":1,"tube":1,"tui":1,"tunes":1,"tushu":1,"tvs":1,"ubank":1,"ubs":1,"unicom":1,"university":1,"uno":1,"uol":1,"ups":1,"vacations":1,"vana":1,"vanguard":1,"vegas":1,"ventures":1,"verisign":1,"versicherung":1,"vet":1,"viajes":1,"video":1,"vig":1,"viking":1,"villas":1,"vin":1,"vip":1,"virgin":1,"visa":1,"vision":1,"viva":1,"vivo":1,"vlaanderen":1,"vodka":1,"volkswagen":1,"volvo":1,"vote":1,"voting":1,"voto":1,"voyage":1,"vuelos":1,"wales":1,"walmart":1,"walter":1,"wang":1,"wanggou":1,"watch":1,"watches":1,"weather":1,"weatherchannel":1,"webcam":1,"weber":1,"website":1,"wedding":1,"weibo":1,"weir":1,"whoswho":1,"wien":1,"wiki":1,"williamhill":1,"win":1,"windows":1,"wine":1,"winners":1,"wme":1,"wolterskluwer":1,"woodside":1,"work":1,"works":1,"world":1,"wow":1,"wtc":1,"wtf":1,"xbox":1,"xerox":1,"xfinity":1,"xihuan":1,"xin":1,"कॉम":1,"セール":1,"佛山":1,"慈善":1,"集团":1,"在线":1,"大众汽车":1,"点看":1,"คอม":1,"八卦":1,"موقع":1,"公益":1,"公司":1,"é¦™æ ¼é‡Œæ‹‰":1,"网站":1,"移动":1,"æˆ‘çˆ±ä½ ":1,"москва":1,"католик":1,"онлайн":1,"сайт":1,"联通":1,"קום":1,"æ—¶å°š":1,"微博":1,"淡马锡":1,"ファッション":1,"орг":1,"नेट":1,"ストア":1,"アマゾン":1,"삼성":1,"å•†æ ‡":1,"商店":1,"商城":1,"дети":1,"ポイント":1,"æ–°é—»":1,"å®¶é›»":1,"كوم":1,"中文网":1,"中信":1,"娱乐":1,"è°·æ­Œ":1,"電訊盈科":1,"购物":1,"クラウド":1,"通販":1,"网店":1,"संगठन":1,"餐厅":1,"网络":1,"ком":1,"亚马逊":1,"诺基亚":1,"食品":1,"飞利浦":1,"手机":1,"ارامكو":1,"العليان":1,"اتصالات":1,"بازار":1,"ابوظبي":1,"كاثوليك":1,"همراه":1,"ë‹·ì»´":1,"政府":1,"شبكة":1,"بيتك":1,"عرب":1,"机构":1,"组织机构":1,"健康":1,"招聘":1,"рус":1,"大拿":1,"みんな":1,"グーグル":1,"世界":1,"書籍":1,"网址":1,"ë‹·ë„·":1,"コム":1,"天主教":1,"游戏":1,"vermögensberater":1,"vermögensberatung":1,"企业":1,"信息":1,"嘉里大酒店":1,"嘉里":1,"广东":1,"政务":1,"xyz":1,"yachts":1,"yahoo":1,"yamaxun":1,"yandex":1,"yodobashi":1,"yoga":1,"yokohama":1,"you":1,"youtube":1,"yun":1,"zappos":1,"zara":1,"zero":1,"zip":1,"zone":1,"zuerich":1},"private":{"cc.ua":2,"inf.ua":2,"ltd.ua":2,"611.to":2,"adobeaemcloud.com":2,"adobeaemcloud.net":2,"dev.adobeaemcloud.com":4,"beep.pl":2,"barsy.ca":2,"compute.estate":3,"alces.network":3,"kasserver.com":2,"altervista.org":2,"alwaysdata.net":2,"cloudfront.net":2,"compute.amazonaws.com":4,"compute-1.amazonaws.com":4,"compute.amazonaws.com.cn":5,"us-east-1.amazonaws.com":3,"cn-north-1.eb.amazonaws.com.cn":5,"cn-northwest-1.eb.amazonaws.com.cn":5,"elasticbeanstalk.com":2,"ap-northeast-1.elasticbeanstalk.com":3,"ap-northeast-2.elasticbeanstalk.com":3,"ap-northeast-3.elasticbeanstalk.com":3,"ap-south-1.elasticbeanstalk.com":3,"ap-southeast-1.elasticbeanstalk.com":3,"ap-southeast-2.elasticbeanstalk.com":3,"ca-central-1.elasticbeanstalk.com":3,"eu-central-1.elasticbeanstalk.com":3,"eu-west-1.elasticbeanstalk.com":3,"eu-west-2.elasticbeanstalk.com":3,"eu-west-3.elasticbeanstalk.com":3,"sa-east-1.elasticbeanstalk.com":3,"us-east-1.elasticbeanstalk.com":3,"us-east-2.elasticbeanstalk.com":3,"us-gov-west-1.elasticbeanstalk.com":3,"us-west-1.elasticbeanstalk.com":3,"us-west-2.elasticbeanstalk.com":3,"elb.amazonaws.com":4,"elb.amazonaws.com.cn":5,"awsglobalaccelerator.com":2,"s3.amazonaws.com":3,"s3-ap-northeast-1.amazonaws.com":3,"s3-ap-northeast-2.amazonaws.com":3,"s3-ap-south-1.amazonaws.com":3,"s3-ap-southeast-1.amazonaws.com":3,"s3-ap-southeast-2.amazonaws.com":3,"s3-ca-central-1.amazonaws.com":3,"s3-eu-central-1.amazonaws.com":3,"s3-eu-west-1.amazonaws.com":3,"s3-eu-west-2.amazonaws.com":3,"s3-eu-west-3.amazonaws.com":3,"s3-external-1.amazonaws.com":3,"s3-fips-us-gov-west-1.amazonaws.com":3,"s3-sa-east-1.amazonaws.com":3,"s3-us-gov-west-1.amazonaws.com":3,"s3-us-east-2.amazonaws.com":3,"s3-us-west-1.amazonaws.com":3,"s3-us-west-2.amazonaws.com":3,"s3.ap-northeast-2.amazonaws.com":4,"s3.ap-south-1.amazonaws.com":4,"s3.cn-north-1.amazonaws.com.cn":5,"s3.ca-central-1.amazonaws.com":4,"s3.eu-central-1.amazonaws.com":4,"s3.eu-west-2.amazonaws.com":4,"s3.eu-west-3.amazonaws.com":4,"s3.us-east-2.amazonaws.com":4,"s3.dualstack.ap-northeast-1.amazonaws.com":5,"s3.dualstack.ap-northeast-2.amazonaws.com":5,"s3.dualstack.ap-south-1.amazonaws.com":5,"s3.dualstack.ap-southeast-1.amazonaws.com":5,"s3.dualstack.ap-southeast-2.amazonaws.com":5,"s3.dualstack.ca-central-1.amazonaws.com":5,"s3.dualstack.eu-central-1.amazonaws.com":5,"s3.dualstack.eu-west-1.amazonaws.com":5,"s3.dualstack.eu-west-2.amazonaws.com":5,"s3.dualstack.eu-west-3.amazonaws.com":5,"s3.dualstack.sa-east-1.amazonaws.com":5,"s3.dualstack.us-east-1.amazonaws.com":5,"s3.dualstack.us-east-2.amazonaws.com":5,"s3-website-us-east-1.amazonaws.com":3,"s3-website-us-west-1.amazonaws.com":3,"s3-website-us-west-2.amazonaws.com":3,"s3-website-ap-northeast-1.amazonaws.com":3,"s3-website-ap-southeast-1.amazonaws.com":3,"s3-website-ap-southeast-2.amazonaws.com":3,"s3-website-eu-west-1.amazonaws.com":3,"s3-website-sa-east-1.amazonaws.com":3,"s3-website.ap-northeast-2.amazonaws.com":4,"s3-website.ap-south-1.amazonaws.com":4,"s3-website.ca-central-1.amazonaws.com":4,"s3-website.eu-central-1.amazonaws.com":4,"s3-website.eu-west-2.amazonaws.com":4,"s3-website.eu-west-3.amazonaws.com":4,"s3-website.us-east-2.amazonaws.com":4,"amsw.nl":2,"t3l3p0rt.net":2,"tele.amune.org":3,"apigee.io":2,"appspacehosted.com":2,"appspaceusercontent.com":2,"on-aptible.com":2,"user.aseinet.ne.jp":4,"gv.vc":2,"d.gv.vc":3,"user.party.eus":3,"pimienta.org":2,"poivron.org":2,"potager.org":2,"sweetpepper.org":2,"myasustor.com":2,"myfritz.net":2,"awdev.ca":3,"advisor.ws":3,"b-data.io":2,"backplaneapp.io":2,"balena-devices.com":2,"banzai.cloud":3,"app.banzaicloud.io":3,"backyards.banzaicloud.io":4,"betainabox.com":2,"bnr.la":2,"blackbaudcdn.net":2,"of.je":2,"boomla.net":2,"boxfuse.io":2,"square7.ch":2,"bplaced.com":2,"bplaced.de":2,"square7.de":2,"bplaced.net":2,"square7.net":2,"browsersafetymark.io":2,"uk0.bigv.io":3,"dh.bytemark.co.uk":4,"vm.bytemark.co.uk":4,"mycd.eu":2,"carrd.co":2,"crd.co":2,"uwu.ai":2,"ae.org":2,"br.com":2,"cn.com":2,"com.de":2,"com.se":2,"de.com":2,"eu.com":2,"gb.net":2,"hu.net":2,"jp.net":2,"jpn.com":2,"mex.com":2,"ru.com":2,"sa.com":2,"se.net":2,"uk.com":2,"uk.net":2,"us.com":2,"za.bz":2,"za.com":2,"ar.com":2,"gb.com":2,"hu.com":2,"kr.com":2,"no.com":2,"qc.com":2,"uy.com":2,"africa.com":2,"gr.com":2,"in.net":2,"web.in":2,"us.org":2,"co.com":2,"aus.basketball":2,"nz.basketball":2,"radio.am":2,"radio.fm":2,"co.ro":2,"shop.ro":2,"c.la":2,"certmgr.org":2,"discourse.group":2,"discourse.team":2,"virtueeldomein.nl":2,"cleverapps.io":2,"lcl.dev":3,"lclstage.dev":3,"stg.dev":3,"stgstage.dev":3,"clic2000.net":2,"clickrising.net":2,"c66.me":2,"cloud66.ws":2,"cloud66.zone":2,"jdevcloud.com":2,"wpdevcloud.com":2,"cloudaccess.host":2,"freesite.host":2,"cloudaccess.net":2,"cloudcontrolled.com":2,"cloudcontrolapp.com":2,"cloudera.site":2,"pages.dev":2,"trycloudflare.com":2,"workers.dev":2,"wnext.app":2,"co.ca":2,"otap.co":3,"co.cz":2,"c.cdn77.org":3,"cdn77-ssl.net":2,"r.cdn77.net":3,"rsc.cdn77.org":3,"ssl.origin.cdn77-secure.org":4,"cloudns.asia":2,"cloudns.biz":2,"cloudns.club":2,"cloudns.cc":2,"cloudns.eu":2,"cloudns.in":2,"cloudns.info":2,"cloudns.org":2,"cloudns.pro":2,"cloudns.pw":2,"cloudns.us":2,"cnpy.gdn":2,"co.nl":2,"co.no":2,"webhosting.be":2,"hosting-cluster.nl":2,"ac.ru":2,"edu.ru":2,"gov.ru":2,"int.ru":2,"mil.ru":2,"test.ru":2,"dyn.cosidns.de":3,"dynamisches-dns.de":2,"dnsupdater.de":2,"internet-dns.de":2,"l-o-g-i-n.de":2,"dynamic-dns.info":2,"feste-ip.net":2,"knx-server.net":2,"static-access.net":2,"realm.cz":2,"cryptonomic.net":3,"cupcake.is":2,"curv.dev":2,"customer-oci.com":3,"oci.customer-oci.com":4,"ocp.customer-oci.com":4,"ocs.customer-oci.com":4,"cyon.link":2,"cyon.site":2,"fnwk.site":2,"folionetwork.site":2,"platform0.app":2,"daplie.me":2,"localhost.daplie.me":3,"dattolocal.com":2,"dattorelay.com":2,"dattoweb.com":2,"mydatto.com":2,"dattolocal.net":2,"mydatto.net":2,"biz.dk":2,"co.dk":2,"firm.dk":2,"reg.dk":2,"store.dk":2,"dyndns.dappnode.io":3,"dapps.earth":3,"bzz.dapps.earth":4,"builtwithdark.com":2,"edgestack.me":2,"debian.net":2,"deno.dev":2,"deno-staging.dev":2,"dedyn.io":2,"jozi.biz":2,"dnshome.de":2,"online.th":2,"shop.th":2,"drayddns.com":2,"shoparena.pl":2,"dreamhosters.com":2,"mydrobo.com":2,"drud.io":2,"drud.us":2,"duckdns.org":2,"bip.sh":2,"bitbridge.net":2,"dy.fi":2,"tunk.org":2,"dyndns-at-home.com":2,"dyndns-at-work.com":2,"dyndns-blog.com":2,"dyndns-free.com":2,"dyndns-home.com":2,"dyndns-ip.com":2,"dyndns-mail.com":2,"dyndns-office.com":2,"dyndns-pics.com":2,"dyndns-remote.com":2,"dyndns-server.com":2,"dyndns-web.com":2,"dyndns-wiki.com":2,"dyndns-work.com":2,"dyndns.biz":2,"dyndns.info":2,"dyndns.org":2,"dyndns.tv":2,"at-band-camp.net":2,"ath.cx":2,"barrel-of-knowledge.info":2,"barrell-of-knowledge.info":2,"better-than.tv":2,"blogdns.com":2,"blogdns.net":2,"blogdns.org":2,"blogsite.org":2,"boldlygoingnowhere.org":2,"broke-it.net":2,"buyshouses.net":2,"cechire.com":2,"dnsalias.com":2,"dnsalias.net":2,"dnsalias.org":2,"dnsdojo.com":2,"dnsdojo.net":2,"dnsdojo.org":2,"does-it.net":2,"doesntexist.com":2,"doesntexist.org":2,"dontexist.com":2,"dontexist.net":2,"dontexist.org":2,"doomdns.com":2,"doomdns.org":2,"dvrdns.org":2,"dyn-o-saur.com":2,"dynalias.com":2,"dynalias.net":2,"dynalias.org":2,"dynathome.net":2,"dyndns.ws":2,"endofinternet.net":2,"endofinternet.org":2,"endoftheinternet.org":2,"est-a-la-maison.com":2,"est-a-la-masion.com":2,"est-le-patron.com":2,"est-mon-blogueur.com":2,"for-better.biz":2,"for-more.biz":2,"for-our.info":2,"for-some.biz":2,"for-the.biz":2,"forgot.her.name":3,"forgot.his.name":3,"from-ak.com":2,"from-al.com":2,"from-ar.com":2,"from-az.net":2,"from-ca.com":2,"from-co.net":2,"from-ct.com":2,"from-dc.com":2,"from-de.com":2,"from-fl.com":2,"from-ga.com":2,"from-hi.com":2,"from-ia.com":2,"from-id.com":2,"from-il.com":2,"from-in.com":2,"from-ks.com":2,"from-ky.com":2,"from-la.net":2,"from-ma.com":2,"from-md.com":2,"from-me.org":2,"from-mi.com":2,"from-mn.com":2,"from-mo.com":2,"from-ms.com":2,"from-mt.com":2,"from-nc.com":2,"from-nd.com":2,"from-ne.com":2,"from-nh.com":2,"from-nj.com":2,"from-nm.com":2,"from-nv.com":2,"from-ny.net":2,"from-oh.com":2,"from-ok.com":2,"from-or.com":2,"from-pa.com":2,"from-pr.com":2,"from-ri.com":2,"from-sc.com":2,"from-sd.com":2,"from-tn.com":2,"from-tx.com":2,"from-ut.com":2,"from-va.com":2,"from-vt.com":2,"from-wa.com":2,"from-wi.com":2,"from-wv.com":2,"from-wy.com":2,"ftpaccess.cc":2,"fuettertdasnetz.de":2,"game-host.org":2,"game-server.cc":2,"getmyip.com":2,"gets-it.net":2,"go.dyndns.org":3,"gotdns.com":2,"gotdns.org":2,"groks-the.info":2,"groks-this.info":2,"ham-radio-op.net":2,"here-for-more.info":2,"hobby-site.com":2,"hobby-site.org":2,"home.dyndns.org":3,"homedns.org":2,"homeftp.net":2,"homeftp.org":2,"homeip.net":2,"homelinux.com":2,"homelinux.net":2,"homelinux.org":2,"homeunix.com":2,"homeunix.net":2,"homeunix.org":2,"iamallama.com":2,"in-the-band.net":2,"is-a-anarchist.com":2,"is-a-blogger.com":2,"is-a-bookkeeper.com":2,"is-a-bruinsfan.org":2,"is-a-bulls-fan.com":2,"is-a-candidate.org":2,"is-a-caterer.com":2,"is-a-celticsfan.org":2,"is-a-chef.com":2,"is-a-chef.net":2,"is-a-chef.org":2,"is-a-conservative.com":2,"is-a-cpa.com":2,"is-a-cubicle-slave.com":2,"is-a-democrat.com":2,"is-a-designer.com":2,"is-a-doctor.com":2,"is-a-financialadvisor.com":2,"is-a-geek.com":2,"is-a-geek.net":2,"is-a-geek.org":2,"is-a-green.com":2,"is-a-guru.com":2,"is-a-hard-worker.com":2,"is-a-hunter.com":2,"is-a-knight.org":2,"is-a-landscaper.com":2,"is-a-lawyer.com":2,"is-a-liberal.com":2,"is-a-libertarian.com":2,"is-a-linux-user.org":2,"is-a-llama.com":2,"is-a-musician.com":2,"is-a-nascarfan.com":2,"is-a-nurse.com":2,"is-a-painter.com":2,"is-a-patsfan.org":2,"is-a-personaltrainer.com":2,"is-a-photographer.com":2,"is-a-player.com":2,"is-a-republican.com":2,"is-a-rockstar.com":2,"is-a-socialist.com":2,"is-a-soxfan.org":2,"is-a-student.com":2,"is-a-teacher.com":2,"is-a-techie.com":2,"is-a-therapist.com":2,"is-an-accountant.com":2,"is-an-actor.com":2,"is-an-actress.com":2,"is-an-anarchist.com":2,"is-an-artist.com":2,"is-an-engineer.com":2,"is-an-entertainer.com":2,"is-by.us":2,"is-certified.com":2,"is-found.org":2,"is-gone.com":2,"is-into-anime.com":2,"is-into-cars.com":2,"is-into-cartoons.com":2,"is-into-games.com":2,"is-leet.com":2,"is-lost.org":2,"is-not-certified.com":2,"is-saved.org":2,"is-slick.com":2,"is-uberleet.com":2,"is-very-bad.org":2,"is-very-evil.org":2,"is-very-good.org":2,"is-very-nice.org":2,"is-very-sweet.org":2,"is-with-theband.com":2,"isa-geek.com":2,"isa-geek.net":2,"isa-geek.org":2,"isa-hockeynut.com":2,"issmarterthanyou.com":2,"isteingeek.de":2,"istmein.de":2,"kicks-ass.net":2,"kicks-ass.org":2,"knowsitall.info":2,"land-4-sale.us":2,"lebtimnetz.de":2,"leitungsen.de":2,"likes-pie.com":2,"likescandy.com":2,"merseine.nu":2,"mine.nu":2,"misconfused.org":2,"mypets.ws":2,"myphotos.cc":2,"neat-url.com":2,"office-on-the.net":2,"on-the-web.tv":2,"podzone.net":2,"podzone.org":2,"readmyblog.org":2,"saves-the-whales.com":2,"scrapper-site.net":2,"scrapping.cc":2,"selfip.biz":2,"selfip.com":2,"selfip.info":2,"selfip.net":2,"selfip.org":2,"sells-for-less.com":2,"sells-for-u.com":2,"sells-it.net":2,"sellsyourhome.org":2,"servebbs.com":2,"servebbs.net":2,"servebbs.org":2,"serveftp.net":2,"serveftp.org":2,"servegame.org":2,"shacknet.nu":2,"simple-url.com":2,"space-to-rent.com":2,"stuff-4-sale.org":2,"stuff-4-sale.us":2,"teaches-yoga.com":2,"thruhere.net":2,"traeumtgerade.de":2,"webhop.biz":2,"webhop.info":2,"webhop.net":2,"webhop.org":2,"worse-than.tv":2,"writesthisblog.com":2,"ddnss.de":2,"dyn.ddnss.de":3,"dyndns.ddnss.de":3,"dyndns1.de":2,"dyn-ip24.de":2,"home-webserver.de":2,"dyn.home-webserver.de":3,"myhome-server.de":2,"ddnss.org":2,"definima.net":2,"definima.io":2,"ondigitalocean.app":2,"bci.dnstrace.pro":3,"ddnsfree.com":2,"ddnsgeek.com":2,"giize.com":2,"gleeze.com":2,"kozow.com":2,"loseyourip.com":2,"ooguy.com":2,"theworkpc.com":2,"casacam.net":2,"dynu.net":2,"accesscam.org":2,"camdvr.org":2,"freeddns.org":2,"mywire.org":2,"webredirect.org":2,"myddns.rocks":2,"blogsite.xyz":2,"dynv6.net":2,"e4.cz":2,"en-root.fr":2,"mytuleap.com":2,"onred.one":2,"staging.onred.one":3,"service.one":2,"enonic.io":2,"customer.enonic.io":3,"eu.org":2,"al.eu.org":3,"asso.eu.org":3,"at.eu.org":3,"au.eu.org":3,"be.eu.org":3,"bg.eu.org":3,"ca.eu.org":3,"cd.eu.org":3,"ch.eu.org":3,"cn.eu.org":3,"cy.eu.org":3,"cz.eu.org":3,"de.eu.org":3,"dk.eu.org":3,"edu.eu.org":3,"ee.eu.org":3,"es.eu.org":3,"fi.eu.org":3,"fr.eu.org":3,"gr.eu.org":3,"hr.eu.org":3,"hu.eu.org":3,"ie.eu.org":3,"il.eu.org":3,"in.eu.org":3,"int.eu.org":3,"is.eu.org":3,"it.eu.org":3,"jp.eu.org":3,"kr.eu.org":3,"lt.eu.org":3,"lu.eu.org":3,"lv.eu.org":3,"mc.eu.org":3,"me.eu.org":3,"mk.eu.org":3,"mt.eu.org":3,"my.eu.org":3,"net.eu.org":3,"ng.eu.org":3,"nl.eu.org":3,"no.eu.org":3,"nz.eu.org":3,"paris.eu.org":3,"pl.eu.org":3,"pt.eu.org":3,"q-a.eu.org":3,"ro.eu.org":3,"ru.eu.org":3,"se.eu.org":3,"si.eu.org":3,"sk.eu.org":3,"tr.eu.org":3,"uk.eu.org":3,"us.eu.org":3,"eurodir.ru":2,"eu-1.evennode.com":3,"eu-2.evennode.com":3,"eu-3.evennode.com":3,"eu-4.evennode.com":3,"us-1.evennode.com":3,"us-2.evennode.com":3,"us-3.evennode.com":3,"us-4.evennode.com":3,"twmail.cc":2,"twmail.net":2,"twmail.org":2,"mymailer.com.tw":3,"url.tw":2,"onfabrica.com":2,"apps.fbsbx.com":3,"ru.net":2,"adygeya.ru":2,"bashkiria.ru":2,"bir.ru":2,"cbg.ru":2,"com.ru":2,"dagestan.ru":2,"grozny.ru":2,"kalmykia.ru":2,"kustanai.ru":2,"marine.ru":2,"mordovia.ru":2,"msk.ru":2,"mytis.ru":2,"nalchik.ru":2,"nov.ru":2,"pyatigorsk.ru":2,"spb.ru":2,"vladikavkaz.ru":2,"vladimir.ru":2,"abkhazia.su":2,"adygeya.su":2,"aktyubinsk.su":2,"arkhangelsk.su":2,"armenia.su":2,"ashgabad.su":2,"azerbaijan.su":2,"balashov.su":2,"bashkiria.su":2,"bryansk.su":2,"bukhara.su":2,"chimkent.su":2,"dagestan.su":2,"east-kazakhstan.su":2,"exnet.su":2,"georgia.su":2,"grozny.su":2,"ivanovo.su":2,"jambyl.su":2,"kalmykia.su":2,"kaluga.su":2,"karacol.su":2,"karaganda.su":2,"karelia.su":2,"khakassia.su":2,"krasnodar.su":2,"kurgan.su":2,"kustanai.su":2,"lenug.su":2,"mangyshlak.su":2,"mordovia.su":2,"msk.su":2,"murmansk.su":2,"nalchik.su":2,"navoi.su":2,"north-kazakhstan.su":2,"nov.su":2,"obninsk.su":2,"penza.su":2,"pokrovsk.su":2,"sochi.su":2,"spb.su":2,"tashkent.su":2,"termez.su":2,"togliatti.su":2,"troitsk.su":2,"tselinograd.su":2,"tula.su":2,"tuva.su":2,"vladikavkaz.su":2,"vladimir.su":2,"vologda.su":2,"channelsdvr.net":2,"u.channelsdvr.net":3,"edgecompute.app":2,"fastly-terrarium.com":2,"fastlylb.net":2,"map.fastlylb.net":3,"freetls.fastly.net":3,"map.fastly.net":3,"a.prod.fastly.net":4,"global.prod.fastly.net":4,"a.ssl.fastly.net":4,"b.ssl.fastly.net":4,"global.ssl.fastly.net":4,"fastvps-server.com":2,"fastvps.host":2,"myfast.host":2,"fastvps.site":2,"myfast.space":2,"fedorainfracloud.org":2,"fedorapeople.org":2,"cloud.fedoraproject.org":3,"app.os.fedoraproject.org":4,"app.os.stg.fedoraproject.org":5,"conn.uk":2,"copro.uk":2,"couk.me":2,"ukco.me":2,"mydobiss.com":2,"fh-muenster.io":2,"filegear.me":2,"filegear-au.me":2,"filegear-de.me":2,"filegear-gb.me":2,"filegear-ie.me":2,"filegear-jp.me":2,"filegear-sg.me":2,"firebaseapp.com":2,"fireweb.app":2,"flap.id":2,"fly.dev":2,"edgeapp.net":2,"shw.io":2,"flynnhosting.net":2,"framer.app":2,"framercanvas.com":2,"0e.vc":2,"freebox-os.com":2,"freeboxos.com":2,"fbx-os.fr":2,"fbxos.fr":2,"freebox-os.fr":2,"freeboxos.fr":2,"freedesktop.org":2,"freemyip.com":2,"wien.funkfeuer.at":3,"futurecms.at":3,"ex.futurecms.at":4,"in.futurecms.at":4,"futurehosting.at":2,"futuremailing.at":2,"ex.ortsinfo.at":4,"kunden.ortsinfo.at":4,"statics.cloud":3,"service.gov.uk":3,"gehirn.ne.jp":3,"usercontent.jp":2,"gentapps.com":2,"gentlentapis.com":2,"lab.ms":2,"cdn-edges.net":2,"ghost.io":2,"github.io":2,"githubusercontent.com":2,"gitlab.io":2,"gitapp.si":2,"gitpage.si":2,"glitch.me":2,"lolipop.io":2,"cloudapps.digital":2,"london.cloudapps.digital":3,"pymnt.uk":2,"homeoffice.gov.uk":3,"ro.im":2,"goip.de":2,"run.app":2,"a.run.app":3,"web.app":2,"0emm.com":3,"appspot.com":2,"r.appspot.com":4,"codespot.com":2,"googleapis.com":2,"googlecode.com":2,"pagespeedmobilizer.com":2,"publishproxy.com":2,"withgoogle.com":2,"withyoutube.com":2,"gateway.dev":3,"cloud.goog":2,"translate.goog":2,"cloudfunctions.net":2,"blogspot.ae":2,"blogspot.al":2,"blogspot.am":2,"blogspot.ba":2,"blogspot.be":2,"blogspot.bg":2,"blogspot.bj":2,"blogspot.ca":2,"blogspot.cf":2,"blogspot.ch":2,"blogspot.cl":2,"blogspot.co.at":3,"blogspot.co.id":3,"blogspot.co.il":3,"blogspot.co.ke":3,"blogspot.co.nz":3,"blogspot.co.uk":3,"blogspot.co.za":3,"blogspot.com":2,"blogspot.com.ar":3,"blogspot.com.au":3,"blogspot.com.br":3,"blogspot.com.by":3,"blogspot.com.co":3,"blogspot.com.cy":3,"blogspot.com.ee":3,"blogspot.com.eg":3,"blogspot.com.es":3,"blogspot.com.mt":3,"blogspot.com.ng":3,"blogspot.com.tr":3,"blogspot.com.uy":3,"blogspot.cv":2,"blogspot.cz":2,"blogspot.de":2,"blogspot.dk":2,"blogspot.fi":2,"blogspot.fr":2,"blogspot.gr":2,"blogspot.hk":2,"blogspot.hr":2,"blogspot.hu":2,"blogspot.ie":2,"blogspot.in":2,"blogspot.is":2,"blogspot.it":2,"blogspot.jp":2,"blogspot.kr":2,"blogspot.li":2,"blogspot.lt":2,"blogspot.lu":2,"blogspot.md":2,"blogspot.mk":2,"blogspot.mr":2,"blogspot.mx":2,"blogspot.my":2,"blogspot.nl":2,"blogspot.no":2,"blogspot.pe":2,"blogspot.pt":2,"blogspot.qa":2,"blogspot.re":2,"blogspot.ro":2,"blogspot.rs":2,"blogspot.ru":2,"blogspot.se":2,"blogspot.sg":2,"blogspot.si":2,"blogspot.sk":2,"blogspot.sn":2,"blogspot.td":2,"blogspot.tw":2,"blogspot.ug":2,"blogspot.vn":2,"graphox.us":2,"awsmppl.com":2,"günstigbestellen.de":2,"günstigliefern.de":2,"fin.ci":2,"free.hr":2,"caa.li":2,"ua.rs":2,"conf.se":2,"hs.zone":2,"hs.run":2,"hashbang.sh":2,"hasura.app":2,"hasura-app.io":2,"hepforge.org":2,"herokuapp.com":2,"herokussl.com":2,"myravendb.com":2,"ravendb.community":2,"ravendb.me":2,"development.run":2,"ravendb.run":2,"secaas.hk":2,"orx.biz":2,"biz.gl":2,"col.ng":2,"firm.ng":2,"gen.ng":2,"ltd.ng":2,"ngo.ng":2,"edu.scot":2,"sch.so":2,"org.yt":2,"hostyhosting.io":2,"häkkinen.fi":2,"moonscale.io":3,"moonscale.net":2,"iki.fi":2,"smushcdn.com":2,"wphostedmail.com":2,"wpmucdn.com":2,"tempurl.host":2,"wpmudev.host":2,"dyn-berlin.de":2,"in-berlin.de":2,"in-brb.de":2,"in-butter.de":2,"in-dsl.de":2,"in-dsl.net":2,"in-dsl.org":2,"in-vpn.de":2,"in-vpn.net":2,"in-vpn.org":2,"biz.at":2,"info.at":2,"info.cx":2,"ac.leg.br":3,"al.leg.br":3,"am.leg.br":3,"ap.leg.br":3,"ba.leg.br":3,"ce.leg.br":3,"df.leg.br":3,"es.leg.br":3,"go.leg.br":3,"ma.leg.br":3,"mg.leg.br":3,"ms.leg.br":3,"mt.leg.br":3,"pa.leg.br":3,"pb.leg.br":3,"pe.leg.br":3,"pi.leg.br":3,"pr.leg.br":3,"rj.leg.br":3,"rn.leg.br":3,"ro.leg.br":3,"rr.leg.br":3,"rs.leg.br":3,"sc.leg.br":3,"se.leg.br":3,"sp.leg.br":3,"to.leg.br":3,"pixolino.com":2,"na4u.ru":2,"iopsys.se":2,"ipifony.net":2,"mein-iserv.de":2,"schulserver.de":2,"test-iserv.de":2,"iserv.dev":2,"iobb.net":2,"mel.cloudlets.com.au":4,"cloud.interhostsolutions.be":3,"users.scale.virtualcloud.com.br":5,"mycloud.by":2,"alp1.ae.flow.ch":4,"appengine.flow.ch":3,"es-1.axarnet.cloud":3,"diadem.cloud":2,"vip.jelastic.cloud":3,"jele.cloud":2,"it1.eur.aruba.jenv-aruba.cloud":5,"it1.jenv-aruba.cloud":3,"it1-eur.jenv-arubabiz.cloud":3,"oxa.cloud":2,"tn.oxa.cloud":3,"uk.oxa.cloud":3,"primetel.cloud":2,"uk.primetel.cloud":3,"ca.reclaim.cloud":3,"uk.reclaim.cloud":3,"us.reclaim.cloud":3,"ch.trendhosting.cloud":3,"de.trendhosting.cloud":3,"jele.club":2,"clicketcloud.com":2,"ams.cloudswitches.com":3,"au.cloudswitches.com":3,"sg.cloudswitches.com":3,"dopaas.com":2,"elastyco.com":2,"nv.elastyco.com":3,"hidora.com":2,"paas.hosted-by-previder.com":3,"rag-cloud.hosteur.com":3,"rag-cloud-ch.hosteur.com":3,"jcloud.ik-server.com":3,"jcloud-ver-jpc.ik-server.com":3,"demo.jelastic.com":3,"kilatiron.com":2,"paas.massivegrid.com":3,"jed.wafaicloud.com":3,"lon.wafaicloud.com":3,"ryd.wafaicloud.com":3,"j.scaleforce.com.cy":4,"jelastic.dogado.eu":3,"paas.leviracloud.eu":3,"fi.cloudplatform.fi":3,"demo.datacenter.fi":3,"paas.datacenter.fi":3,"jele.host":2,"mircloud.host":2,"jele.io":2,"ocs.opusinteractive.io":3,"cloud.unispace.io":3,"cloud-de.unispace.io":3,"cloud-fr1.unispace.io":3,"jc.neen.it":3,"cloud.jelastic.open.tim.it":5,"jcloud.kz":2,"upaas.kazteleport.kz":3,"jl.serv.net.mx":4,"cloudjiffy.net":2,"fra1-de.cloudjiffy.net":3,"west1-us.cloudjiffy.net":3,"ams1.jls.docktera.net":4,"jls-sto1.elastx.net":3,"jls-sto2.elastx.net":3,"jls-sto3.elastx.net":3,"fr-1.paas.massivegrid.net":4,"lon-1.paas.massivegrid.net":4,"lon-2.paas.massivegrid.net":4,"ny-1.paas.massivegrid.net":4,"ny-2.paas.massivegrid.net":4,"sg-1.paas.massivegrid.net":4,"jelastic.saveincloud.net":3,"nordeste-idc.saveincloud.net":3,"j.scaleforce.net":3,"jelastic.tsukaeru.net":3,"atl.jelastic.vps-host.net":4,"njs.jelastic.vps-host.net":4,"unicloud.pl":2,"mircloud.ru":2,"jelastic.regruhosting.ru":3,"enscaled.sg":2,"jele.site":2,"jelastic.team":2,"orangecloud.tn":2,"j.layershift.co.uk":4,"phx.enscaled.us":3,"mircloud.us":2,"myjino.ru":2,"hosting.myjino.ru":4,"landing.myjino.ru":4,"spectrum.myjino.ru":4,"vps.myjino.ru":4,"triton.zone":3,"cns.joyent.com":4,"js.org":2,"kaas.gg":2,"khplay.nl":2,"keymachine.de":2,"kinghost.net":2,"uni5.net":2,"knightpoint.systems":2,"oya.to":2,"kuleuven.cloud":2,"ezproxy.kuleuven.be":3,"co.krd":2,"edu.krd":2,"krellian.net":2,"webthings.io":2,"git-repos.de":2,"lcube-server.de":2,"svn-repos.de":2,"leadpages.co":2,"lpages.co":2,"lpusercontent.com":2,"lelux.site":2,"co.business":2,"co.education":2,"co.events":2,"co.financial":2,"co.network":2,"co.place":2,"co.technology":2,"app.lmpm.com":3,"linkyard.cloud":2,"linkyard-cloud.ch":2,"members.linode.com":3,"nodebalancer.linode.com":4,"linodeobjects.com":3,"we.bs":2,"localzone.xyz":2,"loginline.app":2,"loginline.dev":2,"loginline.io":2,"loginline.services":2,"loginline.site":2,"lohmus.me":2,"krasnik.pl":2,"leczna.pl":2,"lubartow.pl":2,"lublin.pl":2,"poniatowa.pl":2,"swidnik.pl":2,"glug.org.uk":3,"lug.org.uk":3,"lugs.org.uk":3,"barsy.bg":2,"barsy.co.uk":3,"barsyonline.co.uk":3,"barsycenter.com":2,"barsyonline.com":2,"barsy.club":2,"barsy.de":2,"barsy.eu":2,"barsy.in":2,"barsy.info":2,"barsy.io":2,"barsy.me":2,"barsy.menu":2,"barsy.mobi":2,"barsy.net":2,"barsy.online":2,"barsy.org":2,"barsy.pro":2,"barsy.pub":2,"barsy.shop":2,"barsy.site":2,"barsy.support":2,"barsy.uk":2,"magentosite.cloud":3,"mayfirst.info":2,"mayfirst.org":2,"hb.cldmail.ru":3,"mcpe.me":2,"mcdir.me":2,"mcdir.ru":2,"mcpre.ru":2,"vps.mcdir.ru":3,"miniserver.com":2,"memset.net":2,"cloud.metacentrum.cz":4,"custom.metacentrum.cz":3,"flt.cloud.muni.cz":4,"usr.cloud.muni.cz":4,"meteorapp.com":2,"eu.meteorapp.com":3,"co.pl":2,"azurecontainer.io":3,"azurewebsites.net":2,"azure-mobile.net":2,"cloudapp.net":2,"azurestaticapps.net":2,"centralus.azurestaticapps.net":3,"eastasia.azurestaticapps.net":3,"eastus2.azurestaticapps.net":3,"westeurope.azurestaticapps.net":3,"westus2.azurestaticapps.net":3,"csx.cc":2,"forte.id":2,"mozilla-iot.org":2,"bmoattachments.org":2,"net.ru":2,"org.ru":2,"pp.ru":2,"hostedpi.com":2,"customer.mythic-beasts.com":3,"caracal.mythic-beasts.com":3,"fentiger.mythic-beasts.com":3,"lynx.mythic-beasts.com":3,"ocelot.mythic-beasts.com":3,"oncilla.mythic-beasts.com":3,"onza.mythic-beasts.com":3,"sphinx.mythic-beasts.com":3,"vs.mythic-beasts.com":3,"x.mythic-beasts.com":3,"yali.mythic-beasts.com":3,"cust.retrosnub.co.uk":4,"ui.nabu.casa":3,"pony.club":2,"of.fashion":2,"in.london":2,"of.london":2,"from.marketing":2,"with.marketing":2,"for.men":2,"repair.men":2,"and.mom":2,"for.mom":2,"for.one":2,"under.one":2,"for.sale":2,"that.win":2,"from.work":2,"to.work":2,"nctu.me":2,"netlify.app":2,"4u.com":2,"ngrok.io":2,"nh-serv.co.uk":3,"nfshost.com":2,"northflank.app":3,"code.run":3,"noticeable.news":2,"dnsking.ch":2,"mypi.co":2,"n4t.co":2,"001www.com":2,"ddnslive.com":2,"myiphost.com":2,"forumz.info":2,"16-b.it":2,"32-b.it":2,"64-b.it":2,"soundcast.me":2,"tcp4.me":2,"dnsup.net":2,"hicam.net":2,"now-dns.net":2,"ownip.net":2,"vpndns.net":2,"dynserv.org":2,"now-dns.org":2,"x443.pw":2,"now-dns.top":2,"ntdll.top":2,"freeddns.us":2,"crafting.xyz":2,"zapto.xyz":2,"nsupdate.info":2,"nerdpol.ovh":2,"blogsyte.com":2,"brasilia.me":2,"cable-modem.org":2,"ciscofreak.com":2,"collegefan.org":2,"couchpotatofries.org":2,"damnserver.com":2,"ddns.me":2,"ditchyourip.com":2,"dnsfor.me":2,"dnsiskinky.com":2,"dvrcam.info":2,"dynns.com":2,"eating-organic.net":2,"fantasyleague.cc":2,"geekgalaxy.com":2,"golffan.us":2,"health-carereform.com":2,"homesecuritymac.com":2,"homesecuritypc.com":2,"hopto.me":2,"ilovecollege.info":2,"loginto.me":2,"mlbfan.org":2,"mmafan.biz":2,"myactivedirectory.com":2,"mydissent.net":2,"myeffect.net":2,"mymediapc.net":2,"mypsx.net":2,"mysecuritycamera.com":2,"mysecuritycamera.net":2,"mysecuritycamera.org":2,"net-freaks.com":2,"nflfan.org":2,"nhlfan.net":2,"no-ip.ca":2,"no-ip.co.uk":3,"no-ip.net":2,"noip.us":2,"onthewifi.com":2,"pgafan.net":2,"point2this.com":2,"pointto.us":2,"privatizehealthinsurance.net":2,"quicksytes.com":2,"read-books.org":2,"securitytactics.com":2,"serveexchange.com":2,"servehumour.com":2,"servep2p.com":2,"servesarcasm.com":2,"stufftoread.com":2,"ufcfan.org":2,"unusualperson.com":2,"workisboring.com":2,"3utilities.com":2,"bounceme.net":2,"ddns.net":2,"ddnsking.com":2,"gotdns.ch":2,"hopto.org":2,"myftp.biz":2,"myftp.org":2,"myvnc.com":2,"no-ip.biz":2,"no-ip.info":2,"no-ip.org":2,"noip.me":2,"redirectme.net":2,"servebeer.com":2,"serveblog.net":2,"servecounterstrike.com":2,"serveftp.com":2,"servegame.com":2,"servehalflife.com":2,"servehttp.com":2,"serveirc.com":2,"serveminecraft.net":2,"servemp3.com":2,"servepics.com":2,"servequake.com":2,"sytes.net":2,"webhop.me":2,"zapto.org":2,"stage.nodeart.io":3,"nodum.co":2,"nodum.io":2,"pcloud.host":2,"nyc.mn":2,"nom.ae":2,"nom.af":2,"nom.ai":2,"nom.al":2,"nym.by":2,"nom.bz":2,"nym.bz":2,"nom.cl":2,"nym.ec":2,"nom.gd":2,"nom.ge":2,"nom.gl":2,"nym.gr":2,"nom.gt":2,"nym.gy":2,"nym.hk":2,"nom.hn":2,"nym.ie":2,"nom.im":2,"nom.ke":2,"nym.kz":2,"nym.la":2,"nym.lc":2,"nom.li":2,"nym.li":2,"nym.lt":2,"nym.lu":2,"nom.lv":2,"nym.me":2,"nom.mk":2,"nym.mn":2,"nym.mx":2,"nom.nu":2,"nym.nz":2,"nym.pe":2,"nym.pt":2,"nom.pw":2,"nom.qa":2,"nym.ro":2,"nom.rs":2,"nom.si":2,"nym.sk":2,"nom.st":2,"nym.su":2,"nym.sx":2,"nom.tj":2,"nym.tw":2,"nom.ug":2,"nom.uy":2,"nom.vc":2,"nom.vg":2,"static.observableusercontent.com":3,"cya.gg":2,"omg.lol":2,"cloudycluster.net":2,"omniwe.site":2,"nid.io":2,"opensocial.site":2,"opencraft.hosting":2,"orsites.com":2,"operaunite.com":2,"skygearapp.com":2,"outsystemscloud.com":2,"webpaas.ovh.net":4,"hosting.ovh.net":4,"ownprovider.com":2,"own.pm":2,"owo.codes":3,"ox.rs":2,"oy.lc":2,"pgfog.com":2,"pagefrontapp.com":2,"pagexl.com":2,"bar0.net":2,"bar1.net":2,"bar2.net":2,"rdv.to":2,"art.pl":2,"gliwice.pl":2,"krakow.pl":2,"poznan.pl":2,"wroc.pl":2,"zakopane.pl":2,"pantheonsite.io":2,"gotpantheon.com":2,"mypep.link":2,"perspecta.cloud":2,"lk3.ru":2,"ra-ru.ru":2,"zsew.ru":2,"on-web.fr":2,"bc.platform.sh":3,"ent.platform.sh":3,"eu.platform.sh":3,"us.platform.sh":3,"platformsh.site":3,"platter-app.com":2,"platter-app.dev":2,"platterp.us":2,"pdns.page":2,"plesk.page":2,"pleskns.com":2,"dyn53.io":2,"co.bn":2,"xen.prgmr.com":3,"priv.at":2,"prvcy.page":2,"dweb.link":3,"protonet.io":2,"chirurgiens-dentistes-en-france.fr":2,"byen.site":2,"pubtls.org":2,"qoto.io":2,"qualifioapp.com":2,"qbuser.com":2,"cloudsite.builders":2,"instantcloud.cn":2,"ras.ru":2,"qa2.com":2,"qcx.io":2,"sys.qcx.io":4,"dev-myqnapcloud.com":2,"alpha-myqnapcloud.com":2,"myqnapcloud.com":2,"quipelements.com":3,"vapor.cloud":2,"vaporcloud.io":2,"rackmaze.com":2,"rackmaze.net":2,"g.vbrplsbx.io":3,"on-k3s.io":3,"on-rancher.cloud":3,"on-rio.io":3,"readthedocs.io":2,"rhcloud.com":2,"app.render.com":3,"onrender.com":2,"repl.co":2,"repl.run":2,"resindevice.io":2,"devices.resinstaging.io":3,"hzc.io":2,"wellbeingzone.eu":2,"wellbeingzone.co.uk":3,"git-pages.rit.edu":3,"sandcats.io":2,"logoip.de":2,"logoip.com":2,"schokokeks.net":2,"gov.scot":2,"service.gov.scot":3,"scrysec.com":2,"firewall-gateway.com":2,"firewall-gateway.de":2,"my-gateway.de":2,"my-router.de":2,"spdns.de":2,"spdns.eu":2,"firewall-gateway.net":2,"my-firewall.org":2,"myfirewall.org":2,"spdns.org":2,"seidat.net":2,"senseering.net":2,"biz.ua":2,"co.ua":2,"pp.ua":2,"shiftedit.io":2,"myshopblocks.com":2,"myshopify.com":2,"shopitsite.com":2,"shopware.store":2,"mo-siemens.io":2,"1kapp.com":2,"appchizi.com":2,"applinzi.com":2,"sinaapp.com":2,"vipsinaapp.com":2,"siteleaf.net":2,"bounty-full.com":2,"alpha.bounty-full.com":3,"beta.bounty-full.com":3,"small-web.org":2,"try-snowplow.com":2,"srht.site":2,"stackhero-network.com":2,"static.land":2,"dev.static.land":3,"sites.static.land":3,"playstation-cloud.com":2,"apps.lair.io":3,"stolos.io":3,"spacekit.io":2,"customer.speedpartner.de":3,"api.stdlib.com":3,"storj.farm":2,"utwente.io":2,"soc.srcf.net":3,"user.srcf.net":3,"temp-dns.com":2,"s5y.io":3,"sensiosite.cloud":3,"syncloud.it":2,"diskstation.me":2,"dscloud.biz":2,"dscloud.me":2,"dscloud.mobi":2,"dsmynas.com":2,"dsmynas.net":2,"dsmynas.org":2,"familyds.com":2,"familyds.net":2,"familyds.org":2,"i234.me":2,"myds.me":2,"synology.me":2,"vpnplus.to":2,"direct.quickconnect.to":3,"taifun-dns.de":2,"gda.pl":2,"gdansk.pl":2,"gdynia.pl":2,"med.pl":2,"sopot.pl":2,"edugit.org":2,"telebit.app":2,"telebit.io":2,"telebit.xyz":3,"gwiddle.co.uk":3,"thingdustdata.com":2,"cust.dev.thingdust.io":4,"cust.disrec.thingdust.io":4,"cust.prod.thingdust.io":4,"cust.testing.thingdust.io":4,"firenet.ch":3,"svc.firenet.ch":4,"arvo.network":2,"azimuth.network":2,"tlon.network":2,"torproject.net":2,"pages.torproject.net":3,"bloxcms.com":2,"townnews-staging.com":2,"12hp.at":2,"2ix.at":2,"4lima.at":2,"lima-city.at":2,"12hp.ch":2,"2ix.ch":2,"4lima.ch":2,"lima-city.ch":2,"trafficplex.cloud":2,"de.cool":2,"12hp.de":2,"2ix.de":2,"4lima.de":2,"lima-city.de":2,"1337.pictures":2,"clan.rip":2,"lima-city.rocks":2,"webspace.rocks":2,"lima.zone":2,"transurl.be":3,"transurl.eu":3,"transurl.nl":3,"tuxfamily.org":2,"dd-dns.de":2,"diskstation.eu":2,"diskstation.org":2,"dray-dns.de":2,"draydns.de":2,"dyn-vpn.de":2,"dynvpn.de":2,"mein-vigor.de":2,"my-vigor.de":2,"my-wan.de":2,"syno-ds.de":2,"synology-diskstation.de":2,"synology-ds.de":2,"uber.space":2,"uberspace.de":3,"hk.com":2,"hk.org":2,"ltd.hk":2,"inc.hk":2,"virtualuser.de":2,"virtual-user.de":2,"urown.cloud":2,"dnsupdate.info":2,"lib.de.us":3,"2038.io":2,"vercel.app":2,"vercel.dev":2,"now.sh":2,"router.management":2,"v-info.info":2,"voorloper.cloud":2,"neko.am":2,"nyaa.am":2,"be.ax":2,"cat.ax":2,"es.ax":2,"eu.ax":2,"gg.ax":2,"mc.ax":2,"us.ax":2,"xy.ax":2,"nl.ci":2,"xx.gl":2,"app.gp":2,"blog.gt":2,"de.gt":2,"to.gt":2,"be.gy":2,"cc.hn":2,"blog.kg":2,"io.kg":2,"jp.kg":2,"tv.kg":2,"uk.kg":2,"us.kg":2,"de.ls":2,"at.md":2,"de.md":2,"jp.md":2,"to.md":2,"uwu.nu":2,"indie.porn":2,"vxl.sh":2,"ch.tc":2,"me.tc":2,"we.tc":2,"nyan.to":2,"at.vg":2,"blog.vu":2,"dev.vu":2,"me.vu":2,"v.ua":2,"wafflecell.com":2,"idnblogger.com":2,"indowapblog.com":2,"bloger.id":2,"wblog.id":2,"wbq.me":2,"fastblog.net":2,"webhare.dev":3,"wedeploy.io":2,"wedeploy.me":2,"wedeploy.sh":2,"remotewd.com":2,"pages.wiardweb.com":3,"wmflabs.org":2,"toolforge.org":2,"wmcloud.org":2,"panel.gg":2,"daemon.panel.gg":3,"woltlab-demo.com":2,"myforum.community":2,"community-pro.de":2,"diskussionsbereich.de":2,"community-pro.net":2,"meinforum.net":2,"cn.vu":2,"half.host":2,"xnbay.com":2,"u2.xnbay.com":3,"u2-local.xnbay.com":3,"cistron.nl":2,"demon.nl":2,"xs4all.space":2,"yandexcloud.net":2,"storage.yandexcloud.net":3,"website.yandexcloud.net":3,"official.academy":2,"yolasite.com":2,"ybo.faith":2,"yombo.me":2,"homelink.one":2,"ybo.party":2,"ybo.review":2,"ybo.science":2,"ybo.trade":2,"nohost.me":2,"noho.st":2,"za.net":2,"za.org":2,"bss.design":2,"basicserver.io":2,"virtualserver.io":2,"enterprisecloud.nu":2,"mintere.site":2,"cx.ua":2,"wpenginepowered.com":2,"js.wpenginepowered.com":3,"impertrixcdn.com":2,"impertrix.com":2,"gsj.bz":2,"биз.рус":2,"ком.рус":2,"крым.рус":2,"�":1}}')},8951:e=>{"use strict";e.exports=JSON.parse('{"region":"Enter your region here","applianceId":"Enter your appliance id here","preSharedKey":"Enter your pre-shared key here"}')}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var r={};(()=>{"use strict";n.d(r,{A:()=>wd}),n(7021);var e=n(4622),t=n(2450),i=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class o{static waitTillConfigLoaded(){return i(this,void 0,void 0,(function*(){yield this.cachedConfigurations.waitTillCacheLoaded()}))}static setOffscreenDocumentCreated(e){this.setCachedConfigValue("offscreen_document_created",e)}static getOffscreenDocumentCreated(){return this.getCachedConfigValue("offscreen_document_created",!1)}static getPlatformIsChromeOs(){return this.getCachedConfigValue("platform_is_chrome_os",!1)}static setPlatformIsChromeOs(e){this.setCachedConfigValue("platform_is_chrome_os",e)}static getBrowserType(){return this.getCachedConfigValue("browser_type",t.ei.chrome)}static setBrowserType(e){this.setCachedConfigValue("browser_type",e)}static getBrowserDetails(){return this.getCachedConfigValue("browser_details",null)}static setBrowserDetails(e){this.setCachedConfigValue("browser_details",e)}static getBuildVersion(){return this.getCachedConfigValue("build_version","0.0.0")}static setBuildVersion(e){this.setCachedConfigValue("build_version",e)}static getCachedConfigValue(e,t){var n;return null!==(n=this.cachedConfigurations.getValue(e,t))&&void 0!==n?n:t}static setCachedConfigValue(e,t){return i(this,void 0,void 0,(function*(){yield this.waitTillConfigLoaded(),this.cachedConfigurations.setValue(e,t),this.cachedConfigurations.flush()}))}}o.cachedConfigurations=new e.CachedStorage(t.Dw.CacheId);var a=n(3203),s=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class A{static init(){return s(this,void 0,void 0,(function*(){if(A.initialised)return!1;A.initialised=!0;let e=!1;if((0,a.cz)()){const{OffscreenManager:t}=yield Promise.resolve().then(n.bind(n,3537));t.init((0,a.cz)(),A.handleMessage),A.sendMessageFunction=t.handleMesage,e=!0}else(yield chrome.offscreen.hasDocument())||(yield chrome.offscreen.createDocument({reasons:[chrome.offscreen.Reason.WEB_RTC],url:"/offscreen/index.html",justification:"Used for Linewize features that needs access to the DOM APIs"}),e=!0);return yield A.sendMessage({type:t.lA.InitOffscreenDocument}),o.setOffscreenDocumentCreated(e),e}))}static sendMessage(e){return s(this,void 0,void 0,(function*(){return(0,a.cz)()?yield new Promise((t=>{A.sendMessageFunction(e,(e=>t(e)))})):yield chrome.runtime.sendMessage(e)}))}static handleMessage(e,t){if(A.messageListeners[e.type]){const n=A.messageListeners[e.type](e,t);"boolean"!=typeof n||n||t()}}static addMessageListener(e,t){(0,a.cz)()?A.messageListeners[e]=t:chrome.runtime.onMessage.addListener(((n,r,i)=>{if(n.type===e)return t(n,i)}))}}A.initialised=!1,A.messageListeners={};const c=(e,...n)=>{const r=f(),i=h(e,r,t.$b.ERROR);p(i,console.error,t.$b.ERROR,n)},u=(e,...n)=>{const r=f(),i=h(e,r,t.$b.WARN);p(i,console.warn,t.$b.WARN,n)},l=(e,...n)=>{const r=f(),i=h(e,r,t.$b.INFO);p(i,console.log,t.$b.INFO,n)},d=(e,...n)=>{const r=f(),i=h(e,r,t.$b.DEBUG);p(i,console.debug,t.$b.DEBUG,n)},p=(e,t,n,...r)=>{let i="";r.length>0?(t(e,r),i=e+" : "+JSON.stringify(r)):(t(e),i=e),m(i,n)},h=(e,t,n)=>"["+(new Date).toLocaleTimeString()+":"+n+"]["+t+"] "+e,f=(e=3)=>{try{throw new Error}catch(t){let n=t.stack.split("\n")[e].split("/");return n=n[n.length-1],n.substring(0,n.lastIndexOf(":"))}},m=(e,n)=>{if(o.getOffscreenDocumentCreated()){const r=o.getBrowserType(),i=o.getBuildVersion();A.sendMessage({type:t.lA.LogMessage,msg:`[${r}_${i}]${e}`,logLevel:n})}};var g=n(1131);class y extends Error{constructor(e,t){super(`fetch failed with status ${e.statusText||e.status}`),this.response=e,this.respJson=t,this.name="EasyFetchStatusError"}}function v(e,t={}){return n=this,r=void 0,o=function*(){t.credentials||(t.credentials="include");const n=yield fetch(e,t);if(!n.ok){let e=null;try{e=yield n.json()}catch(t){(0,g.DP)(t),e={error:"failed to decode the response body, or no error information was given"}}finally{throw new y(n,e)}}return n.json()},new((i=void 0)||(i=Promise))((function(e,t){function a(e){try{A(o.next(e))}catch(e){t(e)}}function s(e){try{A(o.throw(e))}catch(e){t(e)}}function A(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(a,s)}A((o=o.apply(n,r||[])).next())}));var n,r,i,o}var b=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class k{static waitTillConfigLoaded(){return b(this,void 0,void 0,(function*(){yield this.cachedConfigurations.waitTillCacheLoaded()}))}static setNativeAgentVersion(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("native_agent_version",e)}))}static getNativeAgentVersion(){return this.getCachedConfigValue("native_agent_version",void 0)}static setCompanionAvailable(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_available",e)}))}static isCompanionAvailable(){return this.getCachedConfigValue("companion_available",!1)}static setCompanionModeLite(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_mode_lite",e)}))}static isCompanionModeLite(){return this.getCachedConfigValue("companion_mode_lite",!1)}static setCompanionEnrolled(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_enrolled",e)}))}static isCompanionEnrolled(){return this.getCachedConfigValue("companion_enrolled",!1)}static setCompanionToken(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_token",e)}))}static getCompanionToken(){return this.getCachedConfigValue("companion_token","")}static setCompanionEnabled(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_enabled",e)}))}static isCompanionEnabled(){return this.getCachedConfigValue("companion_enabled",!1)}static setCompanionFilteringEnabled(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_filtering_enabled",e)}))}static isCompanionFilteringEnabled(){return this.getCachedConfigValue("companion_filtering_enabled",!1)}static isCompanionReconnecting(){return this.getCachedConfigValue("companion_connection_retry_mode",!1)}static setCompanionAsReconnecting(e){this.setCachedConfigValue("companion_connection_retry_mode",e)}static setCompanionEnrolmentDetails(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_enrolment_details",e)}))}static enableCompanionMode(e){this.setCompanionEnrolmentDetails(e)}static disableCompanionMode(){return b(this,void 0,void 0,(function*(){yield this.setCompanionAvailable(!1),yield this.setCompanionEnrolled(!1),yield this.setCompanionEnabled(!1),yield this.setCompanionEnrolmentDetails(void 0),yield this.setCompanionToken(""),yield this.setCompanionModeLite(!1),yield this.setCompanionFilteringEnabled(!1),yield this.setCompanionClassroomEnabled(!1)}))}static getCompanionEnrolmentDetails(){return this.getCachedConfigValue("companion_enrolment_details",null)}static setCompanionClassroomEnabled(e){return b(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("companion_classroom_enabled",e)}))}static isCompanionClassroomEnabled(){return this.getCachedConfigValue("companion_classroom_enabled",!1)}static isCompanionEnrolmentDetailsSet(){return!!this.getCompanionEnrolmentDetails()}static getCachedConfigValue(e,t){var n;return null!==(n=this.cachedConfigurations.getValue(e,t))&&void 0!==n?n:t}static setCachedConfigValue(e,t){return b(this,void 0,void 0,(function*(){yield this.waitTillConfigLoaded(),this.cachedConfigurations.setValue(e,t),this.cachedConfigurations.flush()}))}}k.cachedConfigurations=new e.CachedStorage(t.qb.CacheId);var S=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class T{static waitTillConfigLoaded(){return S(this,void 0,void 0,(function*(){yield this.cachedConfigurations.waitTillCacheLoaded()}))}static saveDelegationConfig(e){var t,n;return S(this,void 0,void 0,(function*(){e?(yield T.setDelegationEnabledInSM(null==e?void 0:e.delegation_enabled),yield T.setParentsOptedIn(null==e?void 0:e.parents_opted_in),yield T.setSchoolTimeStart(null===(t=null==e?void 0:e.school_time)||void 0===t?void 0:t.start),yield T.setSchoolTimeEnd(null===(n=null==e?void 0:e.school_time)||void 0===n?void 0:n.end),yield T.setSafeSearchEnabled(null==e?void 0:e.safe_search_enabled),yield T.setReportingSetting(null==e?void 0:e.reporting_setting)):u("Delegation config is not found. Delegation is not initiated!")}))}static getDelegationActive(){return T.getLoggedIn()&&T.getDelegationEnabled()&&T.getAfterSchoolHours()&&T.getQustodioDelegationOn()}static enforceSafeSearchOnDelegation(){return T.getSafeSearchEnabled()}static getDelegationEnabled(){return T.getDelegationEnabledInSM()&&T.getParentsOptedIn()}static getDelegationEnabledInSM(){return this.getCachedConfigValue("delegation_enabled",!1)}static setDelegationEnabledInSM(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("delegation_enabled",e)}))}static getParentsOptedIn(){return this.getCachedConfigValue("parents_opted_in",!1)}static setParentsOptedIn(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("parents_opted_in",e)}))}static getQustodioDelegationOn(){return this.getCachedConfigValue("qustodio_delegation_on",!1)}static setQustodioDelegationOn(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("qustodio_delegation_on",e)}))}static getSchoolTimeStart(){return this.getCachedConfigValue("school_time_start",void 0)}static setSchoolTimeStart(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("school_time_start",e)}))}static getSchoolTimeEnd(){return this.getCachedConfigValue("school_time_end",void 0)}static setSchoolTimeEnd(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("school_time_end",e)}))}static getAfterSchoolHours(){return this.getCachedConfigValue("after_school_hours",!1)}static setAfterSchoolHours(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("after_school_hours",e)}))}static getSafeSearchEnabled(){return this.getCachedConfigValue("safe_search_enabled",!1)}static setSafeSearchEnabled(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("safe_search_enabled",e)}))}static getReportingSetting(){return this.getCachedConfigValue("reporting_setting",t.f0.ALL)}static setReportingSetting(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("reporting_setting",e)}))}static getLoggedIn(){return this.getCachedConfigValue("logged_in",!1)}static setLoggedIn(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("logged_in",e)}))}static getQustodioIsPresent(){return this.getCachedConfigValue("get_qustodio_is_present",!1)}static setQustodioIsPresent(e){return S(this,void 0,void 0,(function*(){yield this.setCachedConfigValue("get_qustodio_is_present",e)}))}static getCachedConfigValue(e,t){var n;return null!==(n=this.cachedConfigurations.getValue(e,t))&&void 0!==n?n:t}static setCachedConfigValue(e,t){return S(this,void 0,void 0,(function*(){yield this.waitTillConfigLoaded(),this.cachedConfigurations.setValue(e,t),yield this.cachedConfigurations.flush()}))}}T.cachedConfigurations=new e.CachedStorage(t.o3.CacheId);var w,E,j=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};(E=w||(w={})).CONFIG_SAVED="config_saved",E.DEVICE_MANAGEMENT_URL="device_management_url",E.INSIDE_DEVICE_NETWORK="inside_device_network",E.FILTER_ON_NETWORK_ENABLED="filter_on_network_enabled",E.FILTER_OFF_NETWORK_ENABLED="filter_off_network_enabled",E.CLASSROOM_ON_NETWORK_ENABLED="classroom_on_network_enabled",E.CLASSROOM_OFF_NETWORK_ENABLED="classroom_off_network_enabled",E.USER_FOUND="user_found",E.TIMESTAMP="timestamp",E.CHROME_ID="chrome_id",E.LAST_FZ_PROBE_CODE="last_fz_probe_code",E.LAST_FZ_PROBE_PROVIDER="last_fz_probe_provider",E.USER_INFO="userInfo",E.ACTIVE_CONFIGURATIONS="active_configurations",E.ACTIVE_REGION="active_region",E.DEVICE_ID="device_id",E.PARENT_DEVICE="parent_device",E.BLOCK_PAGE_URL="block_page_url",E.EVENT_SERVICE_URL="event_service_url",E.VERDICT_SERVER_URL="verdict_server_url",E.API_DISPATCHER_URL="api_dispatcher_url",E.LOCK_URL="lock_url",E.CLOSED_TAB_URL="closed_tab_url",E.GOOGLE_ALLOW_INSECURE_CHROME="google_allow_insecure_chrome",E.GOOGLE_CLASSROOM_EXTENSION_LOGIN="google_classroom_extension_login",E.LOCAL_IP="local_ip",E.FALLBACK_IS_ACTIVE="fallback_is_active",E.USER_INFORMATION="user_information",E.CHROMEBOOK_SCREENSHOT_UPLOAD_INTERVAL_SECONDS="chromebook_screenshot_upload_interval_seconds",E.SCREENSHOT_MAX_WIDTH="screenshot_max_width",E.COMPRESSED_SCREENSHOTS="compressed_screenshots",E.SCREENSHOT_JPEG_QUALITY="screenshot_jpeg_quality",E.CLASSROOM_CHAT_ENABLED="classroom_chat_enabled",E.TIME_ZONE="time_zone",E.REAUTH_ALLOWED_TIMER_SECONDS="reauth_allowed_timer_seconds",E.OTEL_CLIENT_CONFIG="otel_client_config",E.SAFESEARCH_ON_NETWORK_CONFIG="safeSearch_on_network_config",E.SAFESEARCH_OFF_NETWORK_CONFIG="safeSearch_off_network_config",E.INSIDE_DEVICE_NETWORK__USER="inside_device_network__user",E.ENABLE_EXTENSION_CHROMEBOOKS_ONLY="enable_extension_chromebooks_only",E.INSIDE_DEVICE_NETWORK__AUTHENTICATED="inside_device_network__authenticated",E.INSIDE_CLOUD_SAFE_NETWORK="inside_cloud_safe_network",E.ALLOW_CONNECTIONS_INSIDE_NETWORK="allow_connections_inside_network",E.IS_TEACHER="is_teacher",E.MULTIPLE_FOCUS_ALLOWED_DOMAINS="multiple_focus_allowed_domains",E.STUDENT_AUTO_ENROLMENT_ENABLED="student_auto_enrolment_enabled",E.FZBOX_POLING_INTERVAL_DATA="fzbox_poling_interval_data",E.RESTRICTED_DOMAINS="restricted_domains",E.RESTRICTED_APPS_EMPTY="restricted_apps_empty",E.USER_OVERRIDE="user_override",E.PERIODIC_LOGS_UPLOAD_CONFIG="periodic_logs_upload_config";class O{static waitTillConfigLoaded(){return j(this,void 0,void 0,(function*(){yield this.cachedConfigurations.waitTillCacheLoaded()}))}static clearCachePartialOnError(){this.keysToClearOnError.forEach((e=>{this.cachedConfigurations.removeValue(e)})),this.cachedConfigurations.flush()}static getLinewizeApiServiceUrl(e){return"https://api."+e+".linewize.net"}static getDeviceId(){var e;return null!==(e=this.getParentDevice())&&void 0!==e?e:this.getApplianceId()}static getChatBaseUrl(){var e;return this.getLinewizeApiServiceUrl(null!==(e=this.getActiveRegion())&&void 0!==e?e:"")+"/chat"}static getScreenshotUploadInterval(){return 1e3*this.getChromebookScreenshotUploadIntervalSeconds()}static shouldCaptureScreenshots(){return this.isClassroomEnabled()&&!!this.hasActiveClass()}static hasActiveClass(){const e=this.getActiveConfigurations(),t=this.getDeviceTimezone();return e.find((e=>(0,a.qm)(t,e)))}static isConnectionReportingEnabled(){switch(!0){case this.isPlatformMismatch():return!1;case this.isFilteringEnabled():return!0;default:return this.getInsideDeviceNetwork()&&this.getAllowConnectionsInsideNetwork()}}static isPlatformMismatch(){return this.getEnableExtensionChromebooksOnly()&&!o.getPlatformIsChromeOs()&&!k.isCompanionAvailable()}static isFilteringEnabled(){switch(!0){case k.isCompanionAvailable():return k.isCompanionEnrolled()&&k.isCompanionEnabled()&&k.isCompanionFilteringEnabled();case this.isPlatformMismatch():return!1;case this.getInsideDeviceNetwork():return this.getFilterOnNetworkEnabled();default:return this.getFilterOffNetworkEnabled()}}static isClassroomEnabled(){switch(!0){case k.isCompanionAvailable():return k.isCompanionEnrolled()&&k.isCompanionEnabled()&&k.isCompanionClassroomEnabled();case this.isPlatformMismatch():return!1;case this.getInsideDeviceNetwork():return this.getClassroomOnNetworkEnabled();default:return this.getClassroomOffNetworkEnabled()}}static getYoutubeSafeSearchMode(){var e,n;if(!this.isFilteringEnabled())return null;if(T.getDelegationActive())return T.enforceSafeSearchOnDelegation()?t.Cp:null;if(k.isCompanionAvailable()&&!k.isCompanionModeLite())return null;if(this.getInsideDeviceNetwork()){const t=null===(e=this.getSafeSearchOnNetworkConfig())||void 0===e?void 0:e.youtube;return(null==t?void 0:t.enabled)?t.mode:null}{const e=null===(n=this.getSafeSearchOffNetworkConfig())||void 0===n?void 0:n.youtube;return(null==e?void 0:e.enabled)?e.mode:null}}static isBingSafeSearchEnabled(){var e,t,n,r,i,o;return T.getDelegationActive()?T.enforceSafeSearchOnDelegation():!(k.isCompanionAvailable()&&!k.isCompanionModeLite())&&(this.getInsideDeviceNetwork()?null!==(n=null===(t=null===(e=this.getSafeSearchOnNetworkConfig())||void 0===e?void 0:e.bing)||void 0===t?void 0:t.enabled)&&void 0!==n&&n:null!==(o=null===(i=null===(r=this.getSafeSearchOffNetworkConfig())||void 0===r?void 0:r.bing)||void 0===i?void 0:i.enabled)&&void 0!==o&&o)}static isGoogleSafeSearchEnabled(){var e,t,n,r,i,o;return T.getDelegationActive()?T.enforceSafeSearchOnDelegation():!(k.isCompanionAvailable()&&!k.isCompanionModeLite())&&(this.getInsideDeviceNetwork()?null!==(n=null===(t=null===(e=this.getSafeSearchOnNetworkConfig())||void 0===e?void 0:e.google)||void 0===t?void 0:t.enabled)&&void 0!==n&&n:null!==(o=null===(i=null===(r=this.getSafeSearchOffNetworkConfig())||void 0===r?void 0:r.google)||void 0===i?void 0:i.enabled)&&void 0!==o&&o)}static isExtensionDisabled(){return!!this.isPlatformMismatch()||!this.isClassroomEnabled()&&!this.isFilteringEnabled()}static getConfigSaved(){return this.getCachedConfigValue(w.CONFIG_SAVED,!1)}static setConfigSaved(e){this.setCachedConfigValue(w.CONFIG_SAVED,e)}static getDeviceManagementUrl(){return this.getCachedConfigValue(w.DEVICE_MANAGEMENT_URL,void 0)}static setDeviceManagementUrl(e){this.setCachedConfigValue(w.DEVICE_MANAGEMENT_URL,e)}static getInsideDeviceNetwork(){return this.getCachedConfigValue(w.INSIDE_DEVICE_NETWORK,!1)}static setInsideDeviceNetwork(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.INSIDE_DEVICE_NETWORK,e)}))}static getFilterOnNetworkEnabled(){return this.getCachedConfigValue(w.FILTER_ON_NETWORK_ENABLED,!1)}static setFilterOnNetworkEnabled(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.FILTER_ON_NETWORK_ENABLED,e)}))}static getFilterOffNetworkEnabled(){return this.getCachedConfigValue(w.FILTER_OFF_NETWORK_ENABLED,!1)}static setFilterOffNetworkEnabled(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.FILTER_OFF_NETWORK_ENABLED,e)}))}static getClassroomOnNetworkEnabled(){return this.getCachedConfigValue(w.CLASSROOM_ON_NETWORK_ENABLED,!1)}static setClassroomOnNetworkEnabled(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.CLASSROOM_ON_NETWORK_ENABLED,e)}))}static getClassroomOffNetworkEnabled(){return this.getCachedConfigValue(w.CLASSROOM_OFF_NETWORK_ENABLED,!1)}static setClassroomOffNetworkEnabled(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.CLASSROOM_OFF_NETWORK_ENABLED,e)}))}static getUserFound(){return this.getCachedConfigValue(w.USER_FOUND,!1)}static setUserFound(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.USER_FOUND,e)}))}static userLoggedInFallback(){return!!o.getPlatformIsChromeOs()||O.getConfigSaved()||O.getFallbackState()}static getTimestamp(){return this.getCachedConfigValue(w.TIMESTAMP,0)}static setTimestamp(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.TIMESTAMP,e)}))}static getChromeId(){return this.getCachedConfigValue(w.CHROME_ID,void 0)}static setChromeId(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.CHROME_ID,e)}))}static getLastFzProbeCode(){return this.getCachedConfigValue(w.LAST_FZ_PROBE_CODE,0)}static setLastFzProbeCode(e){this.setCachedConfigValue(w.LAST_FZ_PROBE_CODE,e)}static getLastFzProbeProvider(){return this.getCachedConfigValue(w.LAST_FZ_PROBE_PROVIDER,void 0)}static setLastFzProbeProvider(e){this.setCachedConfigValue(w.LAST_FZ_PROBE_PROVIDER,e)}static getCurrentUserInfo(){return this.getCachedConfigValue(w.USER_INFO,{user:void 0})}static setCurrentUserInfo(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.USER_INFO,e)}))}static getActiveConfigurations(){return this.getCachedConfigValue(w.ACTIVE_CONFIGURATIONS,[])}static setActiveConfigurations(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.ACTIVE_CONFIGURATIONS,e)}))}static getActiveRegion(){return this.getCachedConfigValue(w.ACTIVE_REGION,void 0)}static setActiveRegion(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.ACTIVE_REGION,e)}))}static getApplianceId(){return this.getCachedConfigValue(w.DEVICE_ID,void 0)}static setApplianceId(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.DEVICE_ID,e)}))}static getParentDevice(){return this.getCachedConfigValue(w.PARENT_DEVICE,void 0)}static setParentDevice(e){this.setCachedConfigValue(w.PARENT_DEVICE,e)}static getBlockPageUrl(){return this.getCachedConfigValue(w.BLOCK_PAGE_URL,void 0)}static setBlockPageUrl(e){this.setCachedConfigValue(w.BLOCK_PAGE_URL,e)}static getEventServiceUrl(){return this.getCachedConfigValue(w.EVENT_SERVICE_URL,void 0)}static setEventServiceUrl(e){this.setCachedConfigValue(w.EVENT_SERVICE_URL,e)}static getVerdictServerUrl(){return this.getCachedConfigValue(w.VERDICT_SERVER_URL,void 0)}static setVerdictServerUrl(e){this.setCachedConfigValue(w.VERDICT_SERVER_URL,e)}static getApiDispatcherUrl(){return this.getCachedConfigValue(w.API_DISPATCHER_URL,void 0)}static setApiDispatcherUrl(e){this.setCachedConfigValue(w.API_DISPATCHER_URL,e)}static getLockUrl(){return this.getCachedConfigValue(w.LOCK_URL,void 0)}static setLockUrl(e){this.setCachedConfigValue(w.LOCK_URL,e)}static getClosedTabUrl(){return this.getCachedConfigValue(w.CLOSED_TAB_URL,void 0)}static setClosedTabUrl(e){this.setCachedConfigValue(w.CLOSED_TAB_URL,e)}static getGoogleAllowInsecureChrome(){return this.getCachedConfigValue(w.GOOGLE_ALLOW_INSECURE_CHROME,!1)}static setGoogleAllowInsecureChrome(e){this.setCachedConfigValue(w.GOOGLE_ALLOW_INSECURE_CHROME,e)}static getGoogleClassroomExtensionLogin(){return this.getCachedConfigValue(w.GOOGLE_CLASSROOM_EXTENSION_LOGIN,!1)}static setGoogleClassroomExtensionLogin(e){this.setCachedConfigValue(w.GOOGLE_CLASSROOM_EXTENSION_LOGIN,e)}static getLocalIp(){return this.getCachedConfigValue(w.LOCAL_IP,"0.0.0.0")}static setLocalIp(e){this.setCachedConfigValue(w.LOCAL_IP,e)}static getFallbackState(){return this.getCachedConfigValue(w.FALLBACK_IS_ACTIVE,!1)}static setFallbackState(e){this.setCachedConfigValue(w.FALLBACK_IS_ACTIVE,e)}static getUserInformation(){return this.getCachedConfigValue(w.USER_INFORMATION,{identifier:"",first_name:null,last_name:null})}static setUserInformation(e){this.setCachedConfigValue(w.USER_INFORMATION,e)}static getChromebookScreenshotUploadIntervalSeconds(){return this.getCachedConfigValue(w.CHROMEBOOK_SCREENSHOT_UPLOAD_INTERVAL_SECONDS,10)}static setChromebookScreenshotUploadIntervalSeconds(e){this.setCachedConfigValue(w.CHROMEBOOK_SCREENSHOT_UPLOAD_INTERVAL_SECONDS,e)}static getScreenshotMaxWidth(){return this.getCachedConfigValue(w.SCREENSHOT_MAX_WIDTH,300)}static setScreenshotMaxWidth(e){this.setCachedConfigValue(w.SCREENSHOT_MAX_WIDTH,e)}static getCompressedScreenshots(){return this.getCachedConfigValue(w.COMPRESSED_SCREENSHOTS,!0)}static setCompressedScreenshots(e){this.setCachedConfigValue(w.COMPRESSED_SCREENSHOTS,e)}static getScreenshotJpegQuality(){return this.getCachedConfigValue(w.SCREENSHOT_JPEG_QUALITY,.1)}static setScreenshotJpegQuality(e){this.setCachedConfigValue(w.SCREENSHOT_JPEG_QUALITY,e)}static getClassroomChatEnabled(){return this.getCachedConfigValue(w.CLASSROOM_CHAT_ENABLED,!1)}static setClassroomChatEnabled(e){this.setCachedConfigValue(w.CLASSROOM_CHAT_ENABLED,e)}static getDeviceTimezone(){return this.getCachedConfigValue(w.TIME_ZONE,"")}static setDeviceTimezone(e){this.setCachedConfigValue(w.TIME_ZONE,e)}static getReauthAllowedTimerSeconds(){return this.getCachedConfigValue(w.REAUTH_ALLOWED_TIMER_SECONDS,void 0)}static setReauthAllowedTimerSeconds(e){this.setCachedConfigValue(w.REAUTH_ALLOWED_TIMER_SECONDS,e)}static setOtelClientConfig(e){e&&!k.isCompanionAvailable()&&this.setCachedConfigValue(w.OTEL_CLIENT_CONFIG,e)}static getOtelClientConfig(){if(!k.isCompanionAvailable())return this.getCachedConfigValue(w.OTEL_CLIENT_CONFIG,void 0)}static getSafeSearchOnNetworkConfig(){return this.getCachedConfigValue(w.SAFESEARCH_ON_NETWORK_CONFIG,void 0)}static setSafeSearchOnNetworkConfig(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.SAFESEARCH_ON_NETWORK_CONFIG,e)}))}static getSafeSearchOffNetworkConfig(){return this.getCachedConfigValue(w.SAFESEARCH_OFF_NETWORK_CONFIG,void 0)}static setSafeSearchOffNetworkConfig(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.SAFESEARCH_OFF_NETWORK_CONFIG,e)}))}static getInsideDeviceNetworkUser(){return this.getCachedConfigValue(w.INSIDE_DEVICE_NETWORK__USER,"")}static setInsideDeviceNetworkUser(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.INSIDE_DEVICE_NETWORK__USER,e)}))}static getEnableExtensionChromebooksOnly(){return this.getCachedConfigValue(w.ENABLE_EXTENSION_CHROMEBOOKS_ONLY,!1)}static setEnableExtensionChromebooksOnly(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.ENABLE_EXTENSION_CHROMEBOOKS_ONLY,e)}))}static getInsideDeviceNetworkAuthenticated(){return this.getCachedConfigValue(w.INSIDE_DEVICE_NETWORK__AUTHENTICATED,!1)}static setInsideDeviceNetworkAuthenticated(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.INSIDE_DEVICE_NETWORK__AUTHENTICATED,e)}))}static getInsideCloudSafeNetwork(){return this.getCachedConfigValue(w.INSIDE_CLOUD_SAFE_NETWORK,!1)}static setInsideCloudSafeNetwork(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.INSIDE_CLOUD_SAFE_NETWORK,e)}))}static getAllowConnectionsInsideNetwork(){return this.getCachedConfigValue(w.ALLOW_CONNECTIONS_INSIDE_NETWORK,!1)}static setAllowConnectionsInsideNetwork(e){this.setCachedConfigValue(w.ALLOW_CONNECTIONS_INSIDE_NETWORK,e)}static getIsTeacher(){return this.getCachedConfigValue(w.IS_TEACHER,!1)}static setIsTeacher(e){this.setCachedConfigValue(w.IS_TEACHER,e)}static getMultipleFocusAllowedDomains(){return this.getCachedConfigValue(w.MULTIPLE_FOCUS_ALLOWED_DOMAINS,[])}static setMultipleFocusAllowedDomains(e){this.setCachedConfigValue(w.MULTIPLE_FOCUS_ALLOWED_DOMAINS,e)}static setStudentAutoEnrolment(e){this.getCachedConfigValue(w.STUDENT_AUTO_ENROLMENT_ENABLED,e)}static studentAutoEnrolmentEnabled(){return!1}static setFzBoxPollingInterval(e){const n=e&&O.getInsideDeviceNetworkAuthenticated()?t.Xg.WalledGardenBasedInterval:t.Xg.DefaultPollingInterval,r={updated:n!==this.getFzBoxPollingIntervalData().currentValue,currentValue:n};this.setCachedConfigValue(w.FZBOX_POLING_INTERVAL_DATA,r)}static getFzBoxPollingIntervalData(){return this.getCachedConfigValue(w.FZBOX_POLING_INTERVAL_DATA,{updated:!1,currentValue:t.Xg.DefaultPollingInterval})}static setRestrictedDomains(e){this.setCachedConfigValue(w.RESTRICTED_DOMAINS,e)}static getRestrictedDomains(){return this.getCachedConfigValue(w.RESTRICTED_DOMAINS,[])}static setRestrictedAppsEmpty(e){this.setCachedConfigValue(w.RESTRICTED_APPS_EMPTY,e)}static restrictedAppsEmpty(){return this.getCachedConfigValue(w.RESTRICTED_APPS_EMPTY,!0)}static setUserDataOverride(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.USER_OVERRIDE,e)}))}static getUserDataOverride(){return this.getCachedConfigValue(w.USER_OVERRIDE,void 0)}static getPeriodicLogsUploadConfig(){return this.getCachedConfigValue(w.PERIODIC_LOGS_UPLOAD_CONFIG,void 0)}static setPeriodicLogsUploadConfig(e){return j(this,void 0,void 0,(function*(){yield this.setCachedConfigValue(w.PERIODIC_LOGS_UPLOAD_CONFIG,e)}))}static isDefaultChromeOsFilteringOn(){return o.getPlatformIsChromeOs()&&!O.getConfigSaved()}static getCachedConfigValue(e,t){var n;return null!==(n=this.cachedConfigurations.getValue(e,t))&&void 0!==n?n:t}static setCachedConfigValue(e,t){return j(this,void 0,void 0,(function*(){yield this.waitTillConfigLoaded(),this.cachedConfigurations.setValue(e,t),this.cachedConfigurations.flush()}))}}O.cachedConfigurations=new e.CachedStorage(t.e6.ConfigurationCacheId),O.keysToClearOnError=[w.CONFIG_SAVED,w.INSIDE_DEVICE_NETWORK,w.FILTER_ON_NETWORK_ENABLED,w.FILTER_OFF_NETWORK_ENABLED,w.USER_FOUND,w.TIMESTAMP,w.CHROME_ID,w.LAST_FZ_PROBE_CODE,w.LAST_FZ_PROBE_PROVIDER,w.GOOGLE_ALLOW_INSECURE_CHROME,w.GOOGLE_CLASSROOM_EXTENSION_LOGIN,w.LOCAL_IP,w.FALLBACK_IS_ACTIVE,w.REAUTH_ALLOWED_TIMER_SECONDS,w.SAFESEARCH_ON_NETWORK_CONFIG,w.SAFESEARCH_OFF_NETWORK_CONFIG,w.INSIDE_DEVICE_NETWORK__USER,w.ENABLE_EXTENSION_CHROMEBOOKS_ONLY,w.INSIDE_DEVICE_NETWORK__AUTHENTICATED,w.INSIDE_CLOUD_SAFE_NETWORK,w.ALLOW_CONNECTIONS_INSIDE_NETWORK,w.FZBOX_POLING_INTERVAL_DATA,w.USER_OVERRIDE];var R=n(4353),P=n(5825),C=n.n(P),L=n(4109),N=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class x{constructor(n=10){this.maxSize=n,this.backing=new e.CachedStorage(t.UA.VerdictResponseTimeCacheId,void 0,1e3)}reset(){this.backing.setValue("queue",[]),this.backing.flush()}push(e){return N(this,void 0,void 0,(function*(){yield this.backing.waitTillCacheLoaded();const t=this.backing.getValue("queue",[]);t.length>this.maxSize&&t.shift(),t.push(e),this.backing.setValue("queue",t),this.backing.flush()}))}getAverageResponseTime(){return N(this,void 0,void 0,(function*(){yield this.backing.waitTillCacheLoaded();const e=this.backing.getValue("queue",[]);return e.reduce(((e,t)=>e+t))/e.length}))}}var M,U,I=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class _{constructor(n=5){this.maxSize=n,this.backing=new e.CachedStorage(t.UA.VerdictYoutubeQueryCacheId,void 0,1e3)}get(e){return I(this,void 0,void 0,(function*(){return yield this.backing.waitTillCacheLoaded(),this.backing.getValue("store",{})[e]}))}set(e,t){return I(this,void 0,void 0,(function*(){yield this.backing.waitTillCacheLoaded();const n=this.backing.getValue("store",{}),r=this.backing.getValue("keys",[]);n[e]=t,r.includes(e)||r.push(e),r.length>this.maxSize&&delete n[r.shift()],this.backing.setValue("store",n),this.backing.setValue("keys",r),this.backing.flush()}))}}(U=M||(M={}))[U.BLOCK=0]="BLOCK",U[U.ALLOW=1]="ALLOW";class W{static generate(){return new this}setValues(e,t){t.verdict=e,t.signatures={signature:"Fallback",category:"sphirewall.application.internetandtelecom",subCategory:"sphirewall.application.fallback"},e||(t.redirect_uri=this.getUrlToLocalBlockPage())}getUrlToLocalBlockPage(){return chrome.runtime.getURL("background/assets/pages/default-blocked.html")}}var z=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class D{static init(){this.initialised||(this.initVerdictResponseCache(),this.initialised=!0)}static setVerdict(e,t){if(!D.fallbackVerdictsCache.getValue(e)){const n={action:t,timestamp:(0,a.$1)()};D.fallbackVerdictsCache.setValue(e,n)}}static getVerdict(e){const t=D.fallbackVerdictsCache.getValue(e);return t?t.action:void 0}static initVerdictResponseCache(){return z(this,void 0,void 0,(function*(){yield D.fallbackVerdictsCache.waitTillCacheLoaded(),e.CacheScheduler.setInterval(t.e$.PurgeOldVerdictEntries,this.purgeOldEntries,D.MAX_RECORD_CHECK_ms)}))}static purgeOldEntries(){const e=(0,a.$1)(),t=Object.keys(D.fallbackVerdictsCache.getCache());let n=t.length;if(!(n=D.MAX_RECORD_TTL_ms&&(D.fallbackVerdictsCache.removeValue(r),n-=1,n<=D.MAX_RECORDS))break}}}D.fallbackVerdictsCache=new e.CachedStorage(t.UA.FallbackVerdictsCacheId,void 0,1e3),D.MAX_RECORDS=1e3,D.MAX_RECORD_CHECK_ms=3e4,D.MAX_RECORD_TTL_ms=3e5,D.initialised=!1;var F=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class q{constructor(n){this.fallbackVerdictHandler=n,this.cache=new e.CachedStorage(t.UA.VerdictRawResponseCacheId,void 0,1e3),this.youtubeQueryCache=new _(20),this.pendingAsyncVerdicts={},this.responseTimes=new x(10)}getVerdict(e){const t=e.url,n=(0,a.vI)(t),r=encodeURIComponent((0,a.wB)(t)),i=this.isSearchPathExclusion(n,r),o=`${n}_${i?Date.now():""}`,s=this.getEarlyVerdict(n,t,i);if(void 0!==s&&!(s instanceof Promise))return s;let A;o in this.pendingAsyncVerdicts&&(A=this.pendingAsyncVerdicts[o]);const u=A?A.callbacks:[],l=A?A.requestTabs:new Set,d=A?A.requestTime:(0,a.$1)(),p=new Promise((e=>{u.push((t=>{e(t)}))}));l.add(e.tabId);const h=(0,a.$1)()-d;if(this.pendingAsyncVerdicts[o]={callbacks:u,requestTime:d,requestTabs:l},A&&h<5)return p;let f;return e.requestBody&&(f=this.getYoutubeSearchQuery(e)),this.getAsyncVerdict(t,n,r,i,e,f,s).then((t=>{if(o in this.pendingAsyncVerdicts){const n=this.pendingAsyncVerdicts[o];for(const r of n.callbacks)try{r(t)}catch(t){(0,g.DP)(t),c(`[${e.requestId}] Exception caught during async verdict callback`,t)}delete this.pendingAsyncVerdicts[o]}})),p}getAsyncVerdict(e,n,r,i,o,s,A){return F(this,void 0,void 0,(function*(){if(A instanceof Promise){const e=yield A;if(void 0!==e)return e}let c={ttl:5,method:t.UA.VerdictClientFallback};const l=(0,a.$1)();if(!this.isClientInFallback())try{c=yield this.getFreshVerdict(e,r,s?yield s:void 0)}catch(t){(0,g.DP)(t),u(`Failed to obtain verdict for '${e}':`,t)}finally{const e=(0,a.$1)()-l;this.responseTimes.push(e).then((()=>this.checkAverageResponseTime()))}this.setVerdictFields(c);const d=c.method===t.UA.VerdictClientFallback&&O.userLoggedInFallback();if(d){const e=yield this.getSafeguardVerdict(o);this.fallbackVerdictHandler.setValues(e,c)}return!i&&c.ttl>0&&!d&&this.cache.setValue(n,c),c}))}getSafeguardVerdict(e){return F(this,void 0,void 0,(function*(){return(yield $.tabIsBrowserInternalByID(e.tabId))?M.ALLOW:this.fallbackVerdictHandler.genenerateVerdict(e)}))}setVerdictFields(e){if(e.time_retrieved=(0,a.$1)(),e.chrome_session_id=O.getChromeId(),e.redirect_uri){let t=e.redirect_uri;const n=t.toLowerCase();n.startsWith("http://")||n.startsWith("https://")||(t="http://"+t),e.rule&&e.rule.redirect||(t+=(0,a.Em)(t)?"&cid=":"?cid=",t+=e.chrome_session_id),e.redirect_uri=t}}checkAverageResponseTime(){return F(this,void 0,void 0,(function*(){if((yield this.responseTimes.getAverageResponseTime())(new Date).getTime()||O.getFallbackState()}isSearchPathExclusion(e,t){return e.includes("google")&&t.startsWith("search",0)||e.includes("bing")&&t.startsWith("search",0)||e.includes("youtube")&&(t.startsWith("results%3Fsearch_query",0)||t.startsWith("watch%3Fv%3D",0))}getYoutubeSearchQuery(e){return F(this,void 0,void 0,(function*(){let t;try{if(this.isYoutubePostSearch(e.url,e.method)){const n=`${e.requestId}_${e.url}`;if(e.requestBody){const r=decodeURIComponent(String.fromCharCode.apply(null,new Uint8Array(e.requestBody.raw[0].bytes)));t=JSON.parse(r).query,yield this.youtubeQueryCache.set(n,t)}else t=yield this.youtubeQueryCache.get(n)}}catch(t){(0,g.DP)(t),u(`[${e.requestId}] Couldn't retrieve search query from requestBodyString. YouTube Search RequestBody changed?`,t)}return t}))}isYoutubePostSearch(e,t){return(0,a.vI)(e).includes("youtube")&&e.includes("search")&&"POST"===t}getEarlyVerdict(e,t,n){var r;if(this.isBypass(t)&&this.resetVerdictCache(),this.isSearchAutoComplete(t))return d(`Request is a search auto complete, skipping verdict: ${t}`),{ttl:60,method:"bypass"};if((t.startsWith("chrome:")||t.startsWith("chrome-extension:")||e.includes("linewize.net")||e.includes("ingest.sentry.io")||e===(0,a.vI)(null!==(r=O.getVerdictServerUrl())&&void 0!==r?r:"")||e.indexOf(".")<0||k.isCompanionAvailable()&&"http://127.0.0.1:5770/"===t)&&"localhost"!==e)return{ttl:999999999,method:"bypass"};if(!n){const t=this.getVerdictCacheHit(e);if(t)return t}}isBypass(e){return(0,a.vI)(e).includes("linewize.net")&&e.includes("bypass_active")}isSearchAutoComplete(e){const t=(0,a.vI)(e),n=(0,a.wB)(e).toLowerCase();return t.includes("google")||t.includes("youtube")?null!=n.match(/^complete\/search\?.*$/):t.includes("bing")?null!=n.match(/^as\/suggestions\?.*$/):!!t.includes("duckduckgo")&&null!=n.match(/^ac\/?\?.*$/)}resetVerdictCache(){return F(this,void 0,void 0,(function*(){yield this.cache.waitTillCacheLoaded(),this.cache.setCache({}),yield this.cache.flush()}))}getVerdictCacheHit(e){const t=()=>{let t=this.cache.getValue(e);return t&&t.time_retrieved+t.ttl<(0,a.$1)()&&(this.cache.removeValue(e),t=void 0),t};return this.cache.isCacheLoaded()?t():new Promise((e=>{(()=>{F(this,void 0,void 0,(function*(){yield this.cache.waitTillCacheLoaded(),e(t())}))})()}))}static setVerdictParams(e,t,n,r){e.set("deviceid",O.getApplianceId()),e.set("cev",chrome.runtime.getManifest().version),e.set("identity",O.getCurrentUserInfo().user),e.set("chrome_id",O.getChromeId()),e.set("requested_website",t),e.set("requested_path",n),r&&e.set("search_query",encodeURIComponent(r))}getPolicyChangeVerdict(e){return F(this,void 0,void 0,(function*(){if(yield O.waitTillConfigLoaded(),!O.getApplianceId()||!O.getVerdictServerUrl())return{verdict:M.ALLOW};const t=new URL(`${O.getVerdictServerUrl()}/check/classroom/verdict`);q.setVerdictParams(t.searchParams,e,encodeURIComponent((0,a.wB)(e)));const n=yield fetch(t.toString());return n.ok?yield n.json():{verdict:M.ALLOW}}))}getFreshVerdict(e,t,n){return F(this,void 0,void 0,(function*(){if(yield O.waitTillConfigLoaded(),!O.getApplianceId()||!O.getVerdictServerUrl())throw new Error("Configuration not ready, real verdict impossible");const r=new URL(`${O.getVerdictServerUrl()}/get/verdict`);q.setVerdictParams(r.searchParams,e,t,n);const i=yield fetch(r.toString());if(!i.ok)throw new Error(`Unexpected response from verdict gateway: ${i.statusText}`);return yield i.json()}))}}q.MAX_AVG_RESPONSE_TIME=5e3;const V=new q(class extends W{constructor(){super(),D.init()}genenerateVerdict(e){return z(this,void 0,void 0,(function*(){let n=(0,a.vI)(e.url);n=(0,L.A)(n,{stripProtocol:!0,stripWWW:!0});const r=D.getVerdict(n);if(void 0===r){const e=(yield A.sendMessage({type:t.lA.CheckIfDomainIsBlocked,domain:n}))?M.BLOCK:M.ALLOW;return D.setVerdict(n,e),e}return r}))}}.generate());var X=n(245),J=n(5635);class Z{static init(){this.isInitialized=!0,this.classwizeClient=new J.T(t.Ui)}static UpdateTabs(e){this.isInitialized||this.init(),this.classwizeClient.updateTabs(e,(e=>{e&&c(`Failed to send tab updates to the Laptop Agent via gRPC. ${JSON.stringify(e)}`)}))}}Z.isInitialized=!1;const K="data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjIwIiB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTQuNSAxMGMyLjQ4NTMgMCA0LjUgMi4wMTQ3IDQuNSA0LjVzLTIuMDE0NyA0LjUtNC41IDQuNS00LjUtMi4wMTQ3LTQuNS00LjUgMi4wMTQ3LTQuNSA0LjUtNC41em0wLTdjMS4zMjU0NzIgMCAyLjQxMDAzNzggMS4wMzE1Mzc2NiAyLjQ5NDY4MjMgMi4zMzU2MjQ1MmwuMDA1MzE3Ny4xNjQzNzU0OHY0LjA5OTcxYy0uMjM3Ni0uMTIxNDU1LS40ODUyMTI1LS4yMjYxNDE4Ny0uNzQxMjM0NC0uMzEyNDk1NDdsLS4yNTg3NjU2LS4wODAxODQ1M3YtMy43MDcwM2MwLS43Nzk2OTg4Mi0uNTk0OTEyMS0xLjQyMDQ0OS0xLjM1NTU0NDItMS40OTMxMzM0NWwtLjE0NDQ1NTgtLjAwNjg2NjU1aC05Yy0uNzc5Njk4ODIgMC0xLjQyMDQ0OS41OTQ4ODU1NC0xLjQ5MzEzMzQ1IDEuMzU1NTM5NTRsLS4wMDY4NjY1NS4xNDQ0NjA0NnY5YzAgLjc3OTY3MDYuNTk0ODg1NTQgMS40MjA0NDU3IDEuMzU1NTM5NTQgMS40OTMxMzMybC4xNDQ0NjA0Ni4wMDY4NjY4aDMuNzA3MDNjLjA3Mzk1NzUuMjYxNDUuMTY2NzcuNTE1MDI1LjI3Njg3MjM0Ljc1OTEyMTlsLjExNTgwNzY2LjI0MDg3ODFoLTQuMDk5NzFjLTEuMzI1NDgxNiAwLTIuNDEwMDM4NTMtMS4wMzE1NDY5LTIuNDk0NjgyMzEtMi4zMzU2MjU2bC0uMDA1MzE3NjktLjE2NDM3NDR2LTljMC0xLjMyNTQ4MTYgMS4wMzE1Mzc2Ni0yLjQxMDAzODUzIDIuMzM1NjI0NTItMi40OTQ2ODIzMWwuMTY0Mzc1NDgtLjAwNTMxNzY5em0wIDljLS4yNDU0MjIyIDAtLjQ0OTYuMTc2OTA4Ni0uNDkxOTQyOS40MTAxMzU1bC0uMDA4MDU3MS4wODk4NjQ1djEuNWgtMS41Yy0uMjc2MSAwLS41LjIyMzktLjUuNSAwIC4yNDU0MjIyLjE3NjkwODYuNDQ5Ni40MTAxMzU1LjQ5MTk0MjlsLjA4OTg2NDUuMDA4MDU3MWgxLjV2MS41YzAgLjI3NjEuMjIzOS41LjUuNS4yNDU0MjIyIDAgLjQ0OTYtLjE3NjkwODYuNDkxOTQyOS0uNDEwMTM1NWwuMDA4MDU3MS0uMDg5ODY0NXYtMS41aDEuNWMuMjc2MSAwIC41LS4yMjM5LjUtLjUgMC0uMjQ1NDIyMi0uMTc2OTA4Ni0uNDQ5Ni0uNDEwMTM1NS0uNDkxOTQyOWwtLjA4OTg2NDUtLjAwODA1NzFoLTEuNXYtMS41YzAtLjI3NjEtLjIyMzktLjUtLjUtLjV6IiBmaWxsPSIjMjEyMTIxIi8+PC9zdmc+",G="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB6gAAANcCAIAAABt+WbyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAF+ESURBVHja7P15fBXV4T/+JywKYvmIWFSKAgYjIsvbolCsW4UqRVqtIlWxitiCC1VrtWq1Wpe6VMV9qyytaAtUXCgiLogbCCgUkDUEIrJvskOALL8/8n348Kcyc5Pcm9x78nz+5cMcZs49M/fMzOueOSe7tLQ0CwAAAAAAQlFLEwAAAAAAEBLBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAOHo1atXdqQdO3ZoJaDK+px169ZpJb5y8sknR58wmgggiQTfAAAAAAAERfANAAAAAEBQBN8AAAAAAARF8A0AAADppaio6I033rjssssOO+yw7OzsAw88sGfPns8999ymTZs0DgAkQvANIVi3bl12nIceeqh6KzlgwIDoGr7wwgsOJQAAbN269fzzz+/Ro8fQoUOXL1+elZW1cePG119/vX///u3atZs1a5YmAoBYgm+oKa6//vo5c+ZoBwAASHN/+tOfRo8e/Z1/Wr58+S9/+ct169ZpJQCIJviGGuR3v/vd7t27tQMAAKStWbNmPfHEExEFCgoKhg0bpqEAIJrgG2qQ9957b/DgwdoBAADS+aY9tsyQIUNKS0u1FQBEEHxDzfK73/1u0aJF2gEAANLT4sWLY8vk5eVt3bpVWwFABME31CwlJSVXX311UVGRpgAAgPS8Y0+kmBHfABBN8A01zvjx44cPH64dAAAgDTVv3jy2TLNmzb73ve9pKwCIIPiGmmjAgAEFBQXaAQCoSq1atcreu1atWvk4kJWVdfLJJ8eWufTSS2vV8jgPAFFcKaEm2rNnzw033FBcXKwpAAAgrXTq1Omiiy6KKNCkSZP+/ftrKACIJviGGmr06NGjRo3SDgAAkFays7MfffTRs8466zv/esghh4wdO7ZZs2YaCgCiCb6h5rr88suXL1+uHQAAIK0ceOCBI0eOfPXVVy+99NKyjLthw4bdu3d/8sknZ8+effzxx2siAIhVRxNAjbVly5abb775n//8p/kBAQAgrey7775nnXVW2bjv0tLS7OxsbQIA5SLtghrthRdeePXVV7UDAACkLak3AFSA4BtquiuuuGL16tXaAQAAAIBgCL6hplu7du3tt99eWlqqKQAAAAAIg+AbyPr73/8+btw47QAAAABAGATfQFZWVtZVV121fv167QAAAABAAATfQFZWVtbSpUvvuusu7QAAAABAAATfwP/nsccemzBhgnYAAAAAINMJvqGmaNq0aWyZyy+/fNOmTdoKAAAAgIxWRxNADfHEE0/86le/2rNnT0SZ/Pz8++6777777qsJDbJp06a5c+fOnz9/4cKFeXl5BQUFn332WdmfGjVq1Lhx4yOOOKJ169Y5OTk5OTnt27dv1qxZdnZ2DTlbVq9ePW/evLy8vAULFhQUFOTn5y9ZsqSwsLDsry1btmzWrNkRRxxxxBFHHHXUUUceeeTRRx9dv3799Kn/zp078/Ly5s6dm5+fv3DhwoKCgrlz527ZsqXsr02bNm3atGmbNm2OOOKIo48++uijj87Nzd13333T6hCUlpYuXrx4ypQps2fP/uSTTwoKCpYuXZqVlVW3bt1jjz32+OOP79GjR48ePZK705UrV86aNWvevHlz5sxZuHDh7Nmzt2/fnpWVVa9evR/84ActWrQo+0a0bt26bdu2afiNyPT6f2XPnj3z58+fOXPmokWL5syZk5eXt2rVqo0bN2ZlZTVs2LBly5ZHH310Tk5Ou3bt2rRpc/TRR9epU0enkfRDMG/evFmzZpX1JBlxCFzacD5U4Gs+Y8aMRYsWzZ49e9GiRV988UVZr5WTk9OkSZP27dvn5OS0bdu2Q4cOiQwfcTeYzh17YWFh2YU1Pz9/wYIF8+bN+/LLL9euXZuVlXXIIYd8//vfP+aYY4455pjc3NyOHTu2bNmyVq3ABwiWlJQUFBTMmTNn6dKlZYd4xYoVa9asKbvS1a5du2XLljk5OS1atCi7cTryyCOPPPLI2rVr61eBzFMKZL6y+7Zoc+bMGTp0aCLdwqRJk1JRyf79+0fvd/jw4VXQVmvWrBk+fPg555xT3t6ybdu2d99998yZM0tKSkI9kZYsWfLkk0+eeuqp5W2cunXr9uvX75VXXtm0aVM11n/r1q3//e9/BwwYUK9evXLVv3Hjxtddd92ECRN27dpV7Udh586dL7/88oknnhhd55NOOilZe1y1atXgwYNPO+20cjVamzZtBg0aNH/+/Gr/RmR6/b9SUlIyffr0m266qUmTJol/kJYtW9599915eXk6ja+ce+650Xvfvn17xCG4/vrrGzdunCmHIOMubTk5ORH1ycnJyazrZnp+HLc60T3tZ599duutt5arpz3xxBOHDBmyatWqivU5a9eudTdYLXbt2vX+++8PHDiwbt26iX+Q3NzcQYMGFRQUpKhWJ510UnVFNLt27Zo4ceKNN97YsmXL8h7fZs2a3XDDDR988MHu3bs9fQMZRPANIUgw+N6zZ0/37t0TeezZunVr0itZ7cH3nDlzBg4cWPkRHJ07d37llVd27twZ0kPglClTLrzwwsr/mFq3bt3bbrstdY8Ke7N8+fJ77723YcOGlax/bm7u4MGDk3j+Rz8Mn3vuud8oP2nSpHbt2iVS1aQE33l5eb///e8r+aU488wzP/jgg2pJSdKz/tEH/Ts7upKSknfffbcCKcPX/eY3v/n88891GqUVCr7LDkFsGJE+hyA9L23Dhw+vglE73+45UyQTP45bnWj/+9//zj777Ao3S61atW677bZly5aVt8+pWPBdxfFoRnfs3z4ou3btGj16dJs2bSrzQQYMGJCfn5/087Bagu9ly5Y98MADzZs3r/zxbdWq1fDhw/f2E3KCnnjiidgdTZ48OUVdwQsvvBC792+fVIDgG0j34LssJ0rkJbU77rgjpOC7oKAgdu/l1aZNm1deeaWoqCjTT57Fixf36dMn6U/yf/nLXzZu3FgF9d+0adMDDzyQ3DdSc3JyRo0alZSDm3jwXVhYePvttydeyUoG3+vWrbvllluS2Ghnn312Kh4OM7H+0Qf9mWee+XZ8f/755yflU9SuXfuf//xncXFxDe80yht85+Xlxf6TtDoEaXtpE3xX48dxqxNtw4YN1113XVKapW7dus8999zXB70GEHxnesc+e/bsrxeeMWNG586dk/Up7r333kqGvNUbfK9atSq5t0xfxd9vvPFGhccN5Ofnx+7itttuS1GHcN5558XeFkoYQPANZGTwXVpa+uSTTyZyN/PJJ58EEHzv3r372WefTd2EdL169Vq6dGmGnjbFxcXDhg1LXeM0b9584sSJKf0I77//fuvWrVNU//PPP7/yYz2in9NOP/30smJbt24t7wNnhYPvkpKSsWPHlusV73JlAamOSNK//tEHfdCgQV//LC+++GK53r9OxDXXXJOiSXsypdNIPPguLi4ePnx40j9R6g5Bml/aBN/V8nHc6sT65JNPWrVqldxmOfPMM7+a+SSjg+8wOvYPP/ywrNiePXsefvjhpH+KE088MYm/7ldZ8F1UVDR8+PDKvxAZ4fLLL9+8eXPFqhf7InLTpk1TcTFdt25d7OcaOXKkhAEE30CmBt+7du3q2rVrbPlOnTold3RD1Qffq1evrswLrQlq2LDhG2+8kXHnzLZt25I+NOw7PfTQQ3v27ElF7nP//fenuvKHHHJIJae8j35OKwuvCwsLKzDMqmLB9/bt2//whz+ktNH69++f3K4j4+offdDvvPPOr7riG2+8MXUPokn/3mVQp5Fg8L1r167rr78+gw5B+l/aBN9V/3Hc6sR69dVXU5Tqtm7deu7cuRkdfAfTsf/3v/8tu0no27dvij5CkyZNpk2blkHB95o1a5L1Plm0Ll26VOy3sX//+9+xG0/FbCdjxoyJ3e+6deskDCD4BjI1+C4tLf3ss88SuY954IEHMjf4njNnTtJH90R47LHHqubd9qTYsGFDz549q6xxkj74cevWrRdffHGV1f8///lPip7TOnfuXFpa+qc//akCtapA8L169epEZvmvvLPOOqvCw38CqH/0Qb/xxhtT/XBe5uGHH66xnUYiwff27dtT3Y0k9xBkxKVN8F3FH8etTqyRI0emtE2aNGkyb968DA2+Q+rYhw0btm3btrPOOiulH6FBgwZJyb6rIPieO3du6t6J/La2bdtWIPtes2ZN7JZTMdvJlVdeGb3TSy65RLwAgm8gs4Pv0tLSQYMGJXIfM2vWrEwMvqdNm5bS1/q+0x133JERD4Rbtmw588wzq7hxrr766mTNgLF58+ZUP9h8W4VfeIx+TsvJyRk/fnzFqlTe4Hvp0qVJnO8yVq9evZI77juD6h990Pv3779r167LLrusCj7FlClTamanERtCffnll/369cugQ5AplzbBd1V+HLc6sd56660qaJOWLVu2bds244LvwDr2e+6555JLLqmCj9CgQYOyYf7pHHzPnj07FTPCRevUqVMF5nO/9NJLozeb9NlOtm3bVq9eveidjhkzRrwAgm8g44PvHTt2nHDCCbH/6pRTTtm5c2dmBd8zZ85s0KBBVnW46667KrzGS9UoKiqqmsTt2x588MHK13/Hjh29e/eulvqPHz8+6c9pDRo0aNq0aRUE36tWrTruuOOquMWuu+66ZH0dMqv+0Qe9d+/eqVhj6judcMIJhYWFNbDTiA2+Bw4cmEGHIIMubYLvKvs4bnUSyf6qq4nSP/gOr2NP3Rzl39amTZv169enbfC9aNGiqk+9y/Tt27e8P4y98cYbsZtN7mwnEydOjN5d7dq1U/HaIlCN6mQBNVL9+vWffPLJY489NrrY+++/P2TIkKuuuipTPtcXX3zRo0eP7du3J1i+VatWF1xwQZcuXZo3b96kSZP99tsvKyursLBw06ZNS5cunTlz5muvvfb+++8nuLU///nPTZs2rZqBhBXzwgsvDBkyJPGn8TPOOOOYY445+OCDGzZsWL9+/Vq1ahUVFW3YsGHZsmWzZ88eNWrUhx9+mODWrr/++i5duiTyc0vEY8Btt902atSoBMs3atTo17/+9cknn9yyZctDDz10//33L3su2rx586pVq+bNm/fmm2++8MILibfGp59+mtz3RsvmW/jOPzVu3Pi3v/3tcccd16pVq7Izs2wJxB07dhQWFq5bt27btm2J7+WSSy759NNPEylcu3btAQMGnHLKKUcfffTBBx+8//77Z2VlFRUVrV+/fvny5TNmzBgxYsTUqVMT2dSgQYOOP/74ys8vmen1/4bYE7hPnz7du3dv3bp1Wf333XffrKysbdu2rV+/fvHixR9//PGwYcNWr16dyL4mT548duzY2BQ44E5jb5544okMOgQubTgfymvLli19+vRJvIkaNWp08cUXn3LKKTk5OWVf/Ozs7MLCwh07dixbtiwvL++dd95J/IYh/YXXsRcXF0f89ayzzvr5z3+em5vbvHnz/fffv2zA77Zt29auXbtkyZIPP/zwX//618qVKxPc17x582699dannnoqOzs73Y7s5s2bL7jggkRGRJU54YQTevXq1b59+8MPP/x73/tegwYNateuXVpaunnz5rVr1+bn53/00UfDhg3bsmVLIlv7xz/+cfbZZ5frvcyTTjqpYcOG0dsfP358ly5dktVEEyZMiC5wxRVXVP3LNEBqyf6hZo74LnPPPffE/sNatWrNmzcvI0Z8b9++/ZRTTkmw9zvrrLPefffdRFbamTNnTrnWoPvoo4/S8zxZsWJF7Mt9ZUf8r3/967Jly2I3WFJSMnPmzMQHDbVt27Yy01+MGDEiwR116tTptdde27ZtW+w2V65c+dBDD5VlyrEq8AJEBQKv7t27v/3228l606KkpOSaa65JZL+HHHLI4MGDY19TLSkpmT59eoKrcdarV++LL76oafWvWMrZqFGjxx9/fM2aNYm89/Cf//ynZcuWCX4XKjPLUIZ2GiEdgsy6tBnxXQUfx61OIhJfBjk3N3fEiBFbt26N3ea6desGDx5csfe00mrEd83p2Bs0aDBo0KAVK1Yk0qu/9tpr5Xq37NVXX03DEd/XXnttgvW/+eab58+fn8jbG1u3bh05cmSCIz+aNWu2ZcuWctX5pptuit5mEmc72bNnT+xX+O2335YtQGAE31Cjg+/t27fHDvouS+J2796d/sH3bbfdlmBANnbs2PImEXPnzk1wYb1mzZql51LgN998c2zlTzzxxAULFpR3y++++26zZs0SaZyhQ4dWrPIFBQWJPKfVrl17yJAh5b0/XrZsWYIzqDz22GOpe05r2LDhyJEjkzUZepnRo0cnsuuBAweW66QtKSkZN25c48aNY7c8YMCAmlb/CjycDxw4sLyxyIYNGxKM7yuzEleGdhohHYLMurTt3r17e5zoHwxatmwZu4Vk/S4YKz0/jludWO+9916CX/y77rorkcj767Zs2ZLIqJF0Dr5rSMd+ww03lPcU3blz51NPPZXg9ps1a1bhCTFSdGQTHHffo0ePhQsX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6KCDklj5o446KrpAQUFBzek0wjgELm04H8ortpdu1KhR0q8dWVlZOTk5Z599dkacSGF37Em/G8zKyurUqdNFF10UXWbIkCG7d++u3iNbv379GyPF/jpbXieeeGJ0gUReR/66H/zgB+eff350mUTmMtqb2MU/+/fvn+CU/UDGqaMJgK907dp14MCBsaN7fvvb3/74xz8+5JBD0qHOr732WnSB888/v3379inpQOvUufHGG999992IMo899thtt912wAEHVG8r1atXL7m3p9HatWsX/Ubqvvvum8h2SktLhw8fHl2mT58+qWix2CeE/Pz8H/7wh1VwaCogdlb0m266ab/99kvuTps2bdqrV6+XXnop4qt61113JZLLZHr9YyU4A3XiDj300Fq1akW8izN//vwa0mkEcwhc2nA+lFfssIxrrrkmRZVMxU8O7gbTxG9/+9vodWVXrly5cOHCdu3aVWMl27Vrd99991XlHps3bx5dIPb1gu/sx6InzR88ePAtt9xSsZ9nxo4dG13gjDPOcK2BYJntBQKQlDm+y6xbty52PsesrKx+/fqVd3bUVMzxvWvXrthXVt9+++3Utfzu3btj73Tfeeedaj9DYmdabNOmTXKnyU6K/Pz82Bv9JE5Z+A09e/aM2HWCC+DE5mvlmvk6QbFDz5YuXZqKFnv++eej97ts2bKaUP9qOejHHntscu/3MrTTCOMQhH1pM8e3W51U2Lx5c+y968yZM6urz0mTOb517BWwZ8+eNm3aRO/6hRdeqN4jW/X++9//Jv2xbuPGjbFjridPnlyB2m7cuDF6ppfOnTun7ZkPVJ6pToD/PwcddNDf//732GJDhw6NnYOiCsyaNSs69G/cuHHsu3iVUbdu3dhAP3alxCrQpEmT6Bu+efPmTZkyJd3OxhkzZkQX6NOnT+om1uzUqVPEX9esWZOeX+G1a9e++uqrEQV69ux5+OGHp2LXseMNE5kfJtPrX11if7DcsWNHTeg0wjgELm04H8przpw50QWaN2/etm3bGn4u6dgroE6dOhdffHF0mRrYaPXr10/6Ng844ICBAwdGl6nYbCdTp06NXqGqb9++mfLeBlABgm/gm3r06HHZZZfFFuvfv//69eurt6qxwWjfvn1TMZXE18W+GTdy5MjS0tLqbah69er97Gc/iy5z8803b9u2La1OxdjlBJM+ZeHXRaery5YtS8/v76xZs6ILRI9kr4zY6TUXL14cfP2r8TseXaC8ixJnaKcRxiFwacP5UF6zZ8+OLnDhhReawFfHXjE/+clPogvETtFGgmJXvhk8eHAFZlR/8803owvELq0JZDTBN/BN2dnZiax6v3LlyjvuuKN6n3M++OCD6AKxKzJVXqtWrXJzcyMK5OXlJXfOxIrp0aNHdIH333//t7/97Zdffpk+p+J7770XXaB169ap2/sll1wS8cJU9KjkahS7ANrxxx+fol3vt99+0bM9LFiwIPj6p63YNc3C6DTCOAQubTgfyit2Gv0f/ehHziUde8Ucc8wx0QXy8vKSu1BnjfWjH/0o+vWplStXxt4ofkNhYeGQIUMiCpx++ulHHHGExoeACb6B73DIIYc89dRTscWeeOKJCRMmVFcli4uLYxcqib1Vrbzs7OzY4QnpMFA09lEnKytrxIgRnTt3HjVqVLUvT5+VlbV169boW9vjjjvuwAMP9G39ho8//ji6QOy45sqIngd27ty5wdc/JBnXaYTBpQ3nQwV8+umn0QWig3sdu449QoMGDc4888zoMsuXL9dQlbfvvvteccUV0WXKO9vJjBkzon+W6NOnj5aHsAm+ge/2y1/+8qKLLootdvnll1fXqJAVK1ZE38c0bdr0sMMOq4Ka/PCHP4wukJeXV+0HtEWLFrFzdGZlZeXn5//qV7867rjjnn322RUrVlRjhWP3nrqRv5mrqKjojTfeiCjQpUuX733ve6mrwKGHHhrx13nz5oVd/8BkXKcRBpc2nA/ltWvXrsmTJ8d2aE4nHXuFdezYsZJ3rSQodka78s52EjtIq1u3bpodwib4BvbSO9Sqde+99zZs2DC62OLFi//2t79VSw1XrVoVXeDEE09M3cqHX9eyZcvoAp9//nk6HNObb765bt26iZT87LPPLr/88mbNmvXq1ev5559fvHhx1c9pE7t6ZEpH/mao1atX79mzJ6LA//3f/6W0Av/v//2/iL8uX748+lkl0+sfnszqNMLg0obzobw2bNgQXeC4445L9TToOvawtWrVKrpAxk0OU1RUlJ+f/+677w4bNuy2227r16/fz372s2OOOebQQw/NTkDqwuL27dtH/8xQrtlOiouLn3/++YgC5513Xuza1ECmq6MJgL1p1qzZs88+e8EFF0QXu//++88888yULjO4t/ue6AJt2rSpmprEDrZKk4UQW7Ro8a9//eu8885L/J+MHj169OjRWVlZbdu2Peuss44//vgOHTo0b968CpY+j50tNHpwbs0U22hPP/30008/XY013Lhx48EHHxxq/cOTWZ1GGFzacD6U16ZNm6ILRE9jVdPo2CvgBz/4QXSB9evXp/+nKC0tXbx48aRJkyZOnDhmzJiNGzemYSVr1ap12WWXRUfb48eP79KlSyJbmzdvXn5+fkSB3r176xMgeIJvIMp555330ksvld3sRrjyyisnTZoUOzw8uWJvMavm5d+srKzYmabTZyLUc88995577vnTn/5U3n84Z86cOXPmlP13bm7uL3/5yy5duqT0sWfz5s3RBQ444ADf0G9Yt25dmtcwen2/TK9/kDKo0wiDSxvOh/KKHfHdrFkz55KOvTJi7znTfLHf9evXv/7660899dS0adPSv7W7d+8eXWDw4MG33HLLPvvsE7up999/P7rAqaeeqkOA4JnqBIhSu3btBx98MPaNyDlz5jz00ENVXLfYcQqNGzeumprss88+0a8AL1q0KE0OaHZ29o033vjwww9XZiN5eXn333//2Wef3bJly+OPP/7BBx+cNm1a0qeAiB3AFT0rRc0U+2tBtSspKQm4/kHKoE4jDC5tOB/Ka9euXdEFGjVq5FzSsVdG7D3njh070rPmq1evvv322w8++OC+fftmROqdlZXVsmXL6NVEE5/t5N///nfEX/v163fQQQfpECB4gm8gRosWLZ599tnYYnfeeefUqVOrsmKxs+lV5XNO9GCi2FeVq7Tfr1Xr2muvffvtt5Mypd306dNvuOGGzp075+Tk3HfffXPmzEnW/I/Rcz2XfRBfz2+I/bWg2kWPmM70+gd7s5ghnUYYXNpwPpTX9u3b06eVdOxBduz77rtvdIHoRWirxa5du5566qnDDz/8zjvvzLif7X/9619HFxg/fnzsRgoKCqKXvT3nnHN0BVAjLnmaAEjk5iP6h/cyAwcOTKvxDrE3qcl9foguUFRUlFbHtFu3bp9++unll1+erA0uX7785ptvbteuXbdu3caOHVtYWJjqj7D//vv7bqb5aVbT6h+2ADqNMLi04Xz4htiMtSpbScceZMeecafQokWLzjjjjKuuuip2HEl66tq1a3SHM3jw4NjXCz766KOIv9atW7fqV6gCqoXgG4hXp06dhx9+uHbt2tHFPv3008ceeyx9qp3I1G/JEvuucRq++3nooYc+/fTTU6ZM6dmzZxI3++677/785z/v0KHDyJEjTWUAIdFpuLSl/6XN+VADz4dt27ZFF9hvv/2cKjr2lEqrhSLfe++94447LnZ663R20EEH9evXL6JAIrOdvPrqqxF/veKKK6p4eSqgugi+gYQceeSRTzzxRGyxm2++edasWTXwaTD9F+Xbm86dO48ZM+bTTz8dMGBAEjebl5d3/vnnd+vWbcqUKb4+EBKdhksbzof0eqA19ZmOvbqlz1wi48aN+8lPfpKGU6+UV69evaILRM92sm7dupdffjmiwNlnn+2LDzWEuwQgUf369evWrVtssYEDB6bJi41ewU5QdnZ2x44dn3nmmdWrVw8fPvz0009P1pY//PDDLl26PPDAAyYxAJ2GTsOlDedDKjRo0EAj6NhTKnaFjzQZO/zuu+8mMjtlRjjppJOiWzV6tpPo2b0bN27cuXNn33qoIQTfQKL22WefRx55JLbYRx99lMhimJUXu8B6Vd5er1mzJrpA7EQx6eDggw++6KKL3nzzzS+++OKll17q379/vXr1Kr/ZP/7xj7/61a9iV+j6htjpFHft2uVbCTqNwLi04Xwor+zsbDcMOvaUip0pu27dutVeyS+++KJ3797l/VfNmjUbMGDAY4899tprr02ZMiUvL2/FihUbN27cHmns2LGp/jj77bff1VdfHVEgeraTcePGRfzbAQMGmAEJao46mgBI3DHHHPPII49ce+210cWuvfba008//eijj05pZWKfr6rsOae4uDgvLy/6bjizVsU57LDDDjvssHPPPffRRx9duHDh7NmzP/7449GjR69du7ZiGxwzZkzv3r1HjRp14IEHJvhPYp+yMnS5npSKPc3eeuutH//4x2lbw0yvf02WDp1GGFzacD6UV+yI79jhuujYo8XOHFK/fv3qrWFxcfHvf//7DRs2JFj+jDPOuOiii0444YQWLVpUYLKgpPwWEqtnz5533313RIHx48d36dLl2/9/27ZtQ4YMid6yLzjUHIJvoHz69+8/atSo6NfHsrKyrr766tdffz2lU09+//vfjy6wfv36qmmTrVu3Rhdo3bp1hh7uevXqdejQoUOHDr/+9a8ff/zxJUuWzJw5c8qUKSNGjFi5cmW5NjVhwoRLL7105MiRCd4rxw7EiF3MqgaKDR2Ki4vTeYRLptef6u00wuDShvOhvGKD75r5+oiOPYlig+/vfe971VvDt956K3pK66/85je/ufrqq9u1a5f+zd6xY8fc3NyIn9wGDx58yy23fPt5c9q0acXFxXv7Vy1btuzYsaPvNdQcpjoByqd+/fpPPfVUbLF33nnnH//4R0prcvDBB0cXqLJVmFavXh1doGXLlgEc+tq1ax955JHnnXfeQw89tHTp0k8//fRvf/tbmzZtEt/CmDFjHn/88QQLN2nSxHNsee2///7RBTZt2qT+hNpphMGlDedDeTVu3NgNg449pWK/aLEnYUoVFxf/5S9/iS3WvHnziRMnPvfccxmRemdlZdWpU+fyyy+PKLC32U7eeeediH912WWXVeWywEC1E3wD5dahQ4d77rknttiVV165ePHi1FUjdhhUfn5+1TTI8uXLowsceeSRgZ0DderU6dix4w033DBz5swJEyacf/75Cf7DP/7xj4sWLUrK8a2yYW4ZJDYiWbp0qfoTaqcRBpc2nA/ldcABB0QXiJ6kBR17rM8//7ySNzApNW3atGnTpkWXOfbYYz/66KNTTz01s86xHj16RBcYP378N/7P7t27hw0bVpltAoERfAMVcc0118S+I1ZcXHzdddcVFRWlqA6HHnpodIFPP/20alojNt8/4ogjQj0T6tate9ppp/373//+5JNPTjnllET+yXPPPZdIsdj5H6vsaT+DxEYkaf7wn+n1p3o7jTC4tOF8KK9GjRpFLy34ySefOJd07JURe89ZvSO+X3nllegCDRs2HD16dLNmzTLu1MrNzY0O64cPH/6Nh81Zs2ZFvKHSrl279u3b+85CjSL4Bipiv/32e/LJJ2OLjRkzZsSIEal7Goy+y/zggw+qZhroKVOmRBeoCcPijjvuuPHjx990002xJR9//PHYqRKzsrJ+8IMfRC+2M3PmTN/Eb4idH2bcuHERkx6qPxndaYTBpQ3nQ3nVqVOna9euEQUKCgrMdqJjr7DS0tLoqTOysrKqMVMuLi4eNWpUdJlnnnkmQyenys7OvvTSS6O/3f/73/++/n8mTpwYUb5fv36xiwYDgRF8AxXUuXPn2267LbbYb3/72xTNTlC7du0zzjgjokBJScncuXNT3Q5FRUWvvfZadJlWrVrVhFOiXr16d99998CBA6OLFRYWfvzxx4ls7Sc/+UlEgXfffdf6lt/QsGHDTp06RRRYvXr1F198of4E2WmEwaUN50MFHHvssdEF5s+f73TSsVfMqlWrYt94qMbgu6CgIPpRq2XLlr/85S8z94z66U9/Gl3gzTff/Oq/S0tLX3jhhYjC0T0qECTBN1Bxf/jDH9q2bRt7X3vTTTelaJDm8ccfH11g8uTJqW6E2bNnb9y4MaJA06ZNmzdvXnMe0f/617/GDir57LPPEtla586dowssXLjQ1/AbTj755OgCkyZNUn9C7TTC4NKG86G8jjnmmOgCs2bNci7p2Csmtp5t27Zt2LBhdVUvdkDAxRdfXK9evcw9nQ499NALL7wwosDQoUO/mu1k4cKFEcfrhBNOaN26tW8o1DSCb6DiGjZs+NRTT8UWGzFixOjRo1NRgS5dukQXGDZsWElJSUob4b333osucN5550VP2RHeWXHzzTdHl/nOFdi/7bjjjqvGp/0tW7Z8vnexy3xVlx/+8IfRBV566aV0Pn8yvf5Ub6cRBpc2nA/l9X//93/RBVJ0I0pN6NgnTJgQXeD000+vxurFvlkbe2eV/n71q19F/PXrs5188MEHESX79u2bnZ3t6wk1TR1NAFTGSSeddOONN95///3RxS6//PLYseEV0KFDhwYNGmzfvn1vBT777LP//e9/setwVtju3bufffbZ6DKxL+il1CeffBL9sPeLX/zihBNOSO5OTzvttEreo5eJPXAjRowYOHBgim5h//Wvf11xxRV7+2vv3r1HjhyZhl/J6KlCsrKyXnvttby8vNzc3PTsUjK9/gHI6E4jDC5tOB/KKzc3t1GjRhHD0t99990vvvji8MMP17Hr2Mtl586d//znP6PLxL6hmFJbt26NLhC7Rm76O/XUU+vVq1dYWLi3Am+++WbZyzH/+c9/IrbTrVs31xSogQTfQGXddNNNL730UvTkdxs3bvzwww+Tvut69er17ds3epnNf/zjH6l7Gvzggw/y8vLS+W549erV0T9LNGvWLOmPOs2bN69bt+6ePXv2VmDZsmWJbOfwww8/7rjjPv30070VmDx58pw5c9q1a5eKpot+szVt1wg64ogjOnbsGD2K6sUXX7zjjjvUn/A6jTC4tOF8KK+6dev27t07OqAfO3bslVdeqWPXsZf3/F+7dm10mdgXDlIq4lexMvvtt1+mn8ANGza84oorHn74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QRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEBTBNwAAAAAAQRF8AwAAAAAQFME3AAAAAABBEXwDAAAAABAUwTcAAAAAAEERfAMAAAAAEJT/3wAv9Gf/ojrBkQAAAABJRU5ErkJggg==";class H{static getOpenRestrictedDomains(e){return O.getRestrictedDomains().filter((t=>e.some((e=>e&&H.match(e,t)))))}static match(e,t){if(!e)return!1;const n=(0,L.A)(e,{stripProtocol:!0,stripWWW:!0});return!(!n||0===n.length)&&(t.startsWith(H.PARTIAL_SEARCH_PREFIX)?2!==t.length&&H.partialDomainMatch(n,t):H.fullDomainMatch(n,t))}static partialDomainMatch(e,t){return 0!==t.length&&e.toLowerCase().includes(t.toLowerCase().slice(2))}static fullDomainMatch(e,t){return(e=e.toLowerCase())===t.toLowerCase()}}H.PARTIAL_SEARCH_PREFIX="*.";var B=n(4986);function Y(e,t,n){return`${B.t7}=${e},${B.eP}=${t},${B.EJ}=chrome,${B.ys}=${n}`}var Q=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class ${static init(){$.initialised||($.initialised=!0,$.loadTabDataFromCache(),$.registerEventHandlers())}static loadTabDataFromCache(){return Q(this,void 0,void 0,(function*(){yield $.tabsDataCache.waitTillCacheLoaded(),$.isFocusActive=$.tabsDataCache.getValue(te.FocusIsActive,!1),$.isLockActive=$.tabsDataCache.getValue(te.LockIsActive,!1),$.tabsToRestoreAtFocusEnd=$.tabsDataCache.getValue(te.TabsToRestoreAtFocusEnd,[]),$.userTabsToRestoreAtPauseEnd=$.tabsDataCache.getValue(te.UserTabsToRestoreAtPauseEnd,[]),$.focusTabsToRestoreAtPauseEnd=$.tabsDataCache.getValue(te.FocusTabsToRestoreAtPauseEnd,[]),$.previousFocusTabs=$.tabsDataCache.getValue(te.PreviousFocusTabs,[]),$.lastScreenshotUrl=$.tabsDataCache.getValue(te.LastScreenshotUrl),$.lastScreenshotTime=$.tabsDataCache.getValue(te.LastScreenshotTime,0),$.pageCompleteSentForURL=$.tabsDataCache.getValue(te.PageCompleteSentForURL,!1)}))}static registerEventHandlers(){chrome.windows.onFocusChanged.hasListener(this.handleOnFocusChanged)||chrome.windows.onFocusChanged.addListener(this.handleOnFocusChanged)}static handleOnFocusChanged(e){e===chrome.windows.WINDOW_ID_NONE?d("The browser has lost focus"):d("onFocusChanged is triggered for window with ID:",e),$.lastScreenshotUrl="",oe.captureTabAndSendWithDelay(250)}static saveTabDataToCache(){$.tabsDataCache.setValue(te.FocusIsActive,$.isFocusActive),$.tabsDataCache.setValue(te.LockIsActive,$.isLockActive),$.tabsDataCache.setValue(te.TabsToRestoreAtFocusEnd,$.tabsToRestoreAtFocusEnd),$.tabsDataCache.setValue(te.UserTabsToRestoreAtPauseEnd,$.userTabsToRestoreAtPauseEnd),$.tabsDataCache.setValue(te.FocusTabsToRestoreAtPauseEnd,$.focusTabsToRestoreAtPauseEnd),$.tabsDataCache.setValue(te.PreviousFocusTabs,$.previousFocusTabs),$.tabsDataCache.setValue(te.LastScreenshotUrl,$.lastScreenshotUrl),$.tabsDataCache.setValue(te.LastScreenshotTime,$.lastScreenshotTime),$.tabsDataCache.setValue(te.PageCompleteSentForURL,$.pageCompleteSentForURL),$.tabsDataCache.flush()}static updateActiveConfigurations(e){return Q(this,void 0,void 0,(function*(){if(l("checking active configurations for focus and lock..."),$.activeConfigurations=e,!O.isClassroomEnabled())return l("classroom functionality is disabled, stopping lock and focus if they are active"),yield $.stopLock(),void(yield $.stopFocus());const t=$.activeConfigurations.filter((e=>(0,a.qm)(O.getDeviceTimezone(),e)));if($.runningConfigs=t,0===t.length)return yield $.stopLock(),void(yield $.stopFocus());$.scheduleFocusAndLockCheckAtNextClassEnd();let n,r=!1,i=!1;for(const e of t)$.shouldLock(e)&&(i=!0),$.shouldFocus(e)&&(r=!0,n=e);l(`lockApplied: ${i}, focusApplied: ${r}`),i?yield $.lockTabs():yield $.stopLock(r),r?!i&&n&&(yield $.startOrUpdateFocus(n.focus_tabs)):yield $.stopFocus(i)}))}static captureActiveTab(e){return Q(this,void 0,void 0,(function*(){return new Promise((n=>{(()=>{Q(this,void 0,void 0,(function*(){var r;try{const i=yield chrome.tabs.captureVisibleTab(e,{format:"png"});chrome.runtime.lastError&&((null===(r=chrome.runtime.lastError.message)||void 0===r?void 0:r.includes("MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND"))?c("captureVisibleTab failed, exceeded MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND"):$.lastScreenshotUrl&&$.tabIsBrowserInternalByUrl($.lastScreenshotUrl)?n(G):c(`captureVisibleTab failed: ${chrome.runtime.lastError.message}`),n(void 0));const o=yield A.sendMessage({type:t.lA.UtilResizeAndCompressImage,image:i,maxWidth:O.getScreenshotMaxWidth(),compressQuality:O.getCompressedScreenshots()?O.getScreenshotJpegQuality():void 0});n(o.processedImage)}catch(e){(0,g.DP)(e),$.lastScreenshotUrl&&$.tabIsBrowserInternalByUrl($.lastScreenshotUrl)&&n(G),c(`captureVisibleTab failed: ${e}`,e),n(void 0)}}))})()}))}))}static resetScreenshotUploadInterval(){e.CacheScheduler.setInterval(t.Yk.ScreenshotUploadInterval,(()=>{$.captureTabAndSend()}),O.getScreenshotUploadInterval())}static cancelScreenshotUploadInterval(){e.CacheScheduler.clearSchedule(t.Yk.ScreenshotUploadInterval)}static captureTabAndSend(e=!1){var t,n,r;return Q(this,void 0,void 0,(function*(){if(!O.shouldCaptureScreenshots())return l("Should not Capture screenshot, canceling screenshot interval"),void $.cancelScreenshotUploadInterval();const i=k.isCompanionAvailable(),o=[],s={title:"",url:"",favicon:"",tab_id:"",chrome_id:"",action:"",screenshot:"",teacherIds:[],background_tabs:[],restricted:{domains:[],apps:[]}},A=(yield chrome.tabs.query({})).filter((e=>!!e.url&&!(0,a.yG)().includes(e.url))),p=A.map((e=>e.url)),h=H.getOpenRestrictedDomains(p),f=0!==h.length;let m;l("Capturing Tab: chrome.tabs.query({})",A);try{m=yield $.getLastFocusedWindow()}catch(e){return c("Tabs.getLastFocusedWindow failed",e),void(0,g.DP)(e)}for(let e=0;e(0,a.$1)())return void d(`Rapid s'shot upload for ${s.url}, skipping screenshot`)}else $.lastScreenshotUrl=s.url,$.pageCompleteSentForURL=e;if($.lastScreenshotTime=(0,a.$1)(),$.saveTabDataToCache(),m.id){const e=i?"":f?"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCANcB6gDAREAAhEBAxEB/8QAHwABAAIDAQEBAQEBAAAAAAAAAAkKBwgLBgUEAwIB/8QAZxAAAAYCAQMBAwYHCAwMAgITAAECAwQFBgcICRESEwoUIRUiOHe2txYjMTl2eJcXGTI3WHW11hgaJDU2QVdxsbTU1SUzQlFSVmFik5SW10NVJig0U2OV0ydFR3KCRFRkZ3OEkZjS/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAUGAwQHAgH/xABUEQACAgEBBAUFCwkGAwcEAgMAAQIDEQQFEiExE0FRYXEGIjKBkRQzNEJScnOhsbKzFSM1VGJ0kpPRU4KiwdLwFkNjRIOElKPC0yTDxOHx4iVktP/aAAwDAQACEQMRAD8Av8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxLsDfOltVzodZsfaODYZaTiQuLV3+RVsGzcZX38JR1zj/vjUIzI0+/PMtxCV803iUZEe1RotXqYuWn0110Y8HKuuUop9m8ljPcnnuMFup09DUbbqq5NcIznFSx24bzjv5d5kKgyGgyqog5BjF3U5FRWbXr11zR2MS1qpzPdSfViT4Lz8WSglJUhSmnVkS0qSfZSTIsE651TlXZCVc4PEoTi4Si+xxkk160ZYyjZFShKM4S4qUZKUWu1NZT/AN8T7A8HoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFO9M+m6s01tDY1ZDbsLPCsGyXI6yG+h5yM/ZVlXJkwETEsGT3uJS0Mqmm2ptSYiXleq0ReonZ0VC1Or02nk92N11dcmsJqMpJPGeGcZx344Mwam10ae65JOVdU5xT5OSi3FPHVnGcdRTKyjKMhzXIrnLcst51/kmQWEm0ubixeU/MsJ0pw1uvOrPslJfkQ0y0lDEZlDbEdtphtttPXK666a4VVQjCuuKjCEVhRiuSX+b5t8XlnP5znZOVk5OU5tuUm8tt/wC+tYXJcOWy/FnmLtLizkHq41K/CDBLOWh7J9eW8mR8i2JqNlqRZVS0KUqiyMozKGWreM2626TbDVrBs4sdqOiO2lsnTbTr3bF0d0Viq+CW/HniMn8erLy4NrHFxlFts3NFtC7RT8x79bfn1Sb3Xyy49UZ45SXdvKSWCzzx+5Jat5K4gnK9b3PrPRksoyHF7L0I2UYrNf8AU9OLeVrT0hLbb5svHBsYr0qssUNOnDluuMSG2eca7Z+p2db0WohhPPR2xy67UsZcJNLllb0WlKOVvJZWbjpdXTq69+mXL04PCnBvqksvg+OJLKlxw8p4z2NI2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+QUNRlNDdYzkEFmzoshqrCkua6Sk1R59VaxXYM+E8RGRm1JivusuEkyV4rPxMj7GPdc51ThZXJxnXKM4ST4xlFqUWn2ppM8yjGyMoSSlGcZRkuacZLDT8U/YVcOY3AfP+M06dllAmXmmmpEtRwsoYZ87LFUSpRMwarNIzKEpjveTrEWNfRmk1Fm8pslJrJshutLpOyduUbRjGqzdp1aXGpt7tuFmUqXza4Nutvfis+lFOZTNobLt0jc45s07fCa5wy+EbFzXYpLzZdzeFH8JwjDIGsdp59pzMK3O9b5JPxfJqtSiZmwzbcZkx3OxPwLOBJQ9BtK2SREUmvsI8iK6aULU16jba0YNTpaNXVKjUVxsrnnKfNNcpRksSjJdUotNduMnum63T2K2mbhOPJrrXDKafCSfLDTj9ZZW4ddQXAeSMeDhuWlAwLcbbCUKoHpJppMwU0htL07D5srxM5LqzW+7i0l122iMpcXDfuIcWXNY57tbYV+z3K6rev0mfTS8+rOWo2pdSSx0qSjJ81BtJ3DQbUq1aVdm7VqPkZ82zvrb6/wDptuSXJzSbUiQgCVAAAAAMJ7d5GaT0VBOZtHYdBjL6m1ORqVchdjks8ibNxPuON1bc27kNrLwT7yiCURpbjRPyGicSZ7ml2frNa8abT2WLOHPG7XF/tWSxBPu3s8HhGvfq9Pplm62MOyPOb8IRzJ+OMdrIuNqdY/GoLr8DTOq7K+NCnEIyLYFg3SQTUjulLsfHKRdjPmRnlfPbXKvKaSlsiJ2Ghxw0s2TTeSdkkpavUxr/AOnRFzl3pznuxTXdCa7JY5wt+34LK09Dn+3a91PwrjvNp98ovuNEc36n3LzL1vJgZrSYJCeJRKg4XilOx2QozMibssgZyG7ZUkjIicj2bKz8SPv8T7zdPk5sqrG9RO9rrutm/bGt1wfriRlm2dfZnFkak+quEfqlPpJLuxL/ADNc7rlRyWyFa1W2/NvPocPuqMxsHKIEIz+PxKvr7OLBSZEZkRpjl2IzIuxH2G/DZmzq/R0Ok4dbork/4pRcvrNWWt1k/S1V/grZpexNL6jyP7tW5PV9f91rZvr+p6vrfh5lPq+r5efqep8q+fqefz/Py8vL53fv8Rm9x6TGPcumxjGOgqxjsxu8jx7p1H9vd/Nn/qPXUvKjktjy0Kqd+beYQ2fdMZ/YOUT4RH8PidfYWcqCozIiIzVHPuRER9yLsMM9mbOszvaHScetUVxf8UYqX1nuOt1kPR1V/g7Ztextr6jY3COp/wAu8OWwmwzOiz2EwpPaDmuKVL/qNkaO7btljreOXb3kSVF6r1m46XqKPz+CPHQu8m9lW53aZ0PtptkseEZ9JWvVHBtV7Z19eM2RtS6rIR+tw6OT8XJs3u1b1kMXnLjwdx6ptaBRpJL+Q4DZNXsI3TJJeo5jl0dZNhRiV5Gs2b24kJQaSQw6old4TU+SVscy0mqjNdVd8dxpfSQUlJ+MIIk6dvweFqKJR4cZ1PeWfmS3ZJeEpPuJS9S8htK7yhe+as2Lj2VuJZU/IqmJDsDIoTSVIQtyfjVq1BvoTSVuIR68iubjrUpPpOrStJnWtVoNZom1qdPZVxwpNb0G+yNkXKDfcpZ7iao1en1KzRdCzrcU8TS7XCWJpd+MdjyZnGobAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAflmwodjEk19hEjT4E1h2LMhTWGpUSXFfbU0/Gkxn0LZfYebUpt1p1C23EKUhaTSZkPqbi1KLcZJpqSbi008pprimn1o+NKSaaTTWGmspp9TT5ruIIOaHS+frStNncZax6XXkT06/1EwbkibBQ206/LsMFfkyHJFgys0kr8EVk5OacUpugdltORKWJddkeUilu6baMkp5Ua9VwSeXhRvSSUX2W8I442Yw5us7Q2M1vXaNPHOVC4tPi26m3mS/6XZwhnhFQivMvRnnY8hp1iRHdcZfYfbU08y80o0OtOtLJK23W1pWhxtaUqQpJpURGRkLimmk004tZTXJp8mn2Fe5cHhNLiv8AfUf6iypUGVGmwpL8OZDfZlRJcV5yPKiyo7iHo8mNIZUh1iQw6hDrLzS0uNOpStCkrSRkaUk4ySaaaaaymnwaafBprg0+f2FlNNNpp5TXBpprDT6mvrJw+GHVCXGTV6x5N2bjrCUswMf288l199okIUhmLsIkG6/KJZpbZbyuO0p8lqQ5kLLiTmXrdN2x5N5ctTs6OHxlPSrgn2uhcl29E32qt8oFj2ftnGKdZLhnEL+Lfhbwy8/LSz1zWMyU60WVFnRo02FJYmQ5jDMqJLivNyI0qLIbS8xIjvsqW0+w80tDrLzS1NuNrStClIURnS2mm00002mmmmmnhpp8U0yyJqSTTTTWU1xTT5NPlxRjLb269ZaJxV/MdoZXX41UoS6mEy+v1ra7ltJSr5OoKhglz7eer1G/JmGytEZCykzHI0RDshvY0uj1GttVWmqlZPhlpYjBP405vEYR72+LWEm+Bhv1NOmg7LpqEVnGfSm+yEVxk+5LhzeI8SBPkf1WtpbBdn45o2I/qnDlk5HLIX/dpexLZlRqSbxS0HIrcTS42aSTHpjnWsZ1HrM5IROeg1d9n+TGmoUbNa1qreDdaytPF9mOErvGe7F8nW+brOr23fbmGmTor5b7w7pd+cuNfhHMk1lT6iKa0tLO7sZlvc2M+3tbB9yVYWdpLkT7CdKdMlOyZk6W49JkvuK+Ljzzrjiz+KlGZCzwhGEVCEYwjFYjGKUYxS6oxWEl3JeBCSlKTcpNyk3lyk222+tt5ee1tdfifhH0AAf9IjUZJSRmozIiIiMzMz+BERF8TMz+BEX5f8QA+kVLcG0cgqmzNhK/TU8UCUbRL7Efpm6TXgS+xkfiZ9+xkfb4kPPSQzjfhns3ln7T7uyxndljt3X/AEPmD0fAAAA+jT3Nxj1pBu8ftbKjuqx9Mutt6edKrLSvko7+EmDPhOsS4j6O5+LzDrbie59lF3HmcIWRlCyMZwksShOKlGSfU4tNNdzWBGThJShJxlF5Uotxkn2prDT716iWLjl1YdmYM7X45vmAvZ2JoNphWVVzUSDsKrjkaUeq8fnDpsqQw0kiJuemrtpKzW9Lv5Lhkg6xtDyY01qnZope5reL6KTcqJPsXOdTb+TvRT4KtE5pNt3V4hqV00OW+sK2K78YjPC6nuyfXN8yejVG49a7uxZjMdYZZW5VSO+CJCoi1tT6uStHqe4XNVJQzY1M9Ke5nFnxmHVpL1WvVZUhxVJ1Wk1GjsdWpqlVPms8YyXLehJZjOPfFtdvEs1Gop1MFZTNTj149KL7JRfGL7ml2rK4mTRrGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI3eZPTxwfkS1YZxgR12B7lNDjzln6Zx8YzZ7s2RNZjHhxZElmxNLfpx8lrmHJiSWtNrDuG0xPcrBsnb12gcab96/R8t3ObKV/wBJuSTj21ye7w81wzLeiNobKr1ebasVajLbfKFn0iSbz2SXH5SlwxWv2JrfONT5ZZ4PsPG7LFsnqXPGVWWbJtqWyo1JYnQn0muNY1sskKchWUF5+DMa/GR5Die6h0LT6inVVRu09kba58pRfXwymvSjJZ4xklJPmkVK2myibrthKE481JPL7JJ8nF9TWU+p9R4kZjGbxcZ+fW6eNNHaYjUKgZrhkiBOTQ4zlbspyHil3JJbjFpSyYy0TWYHvSjfscfJ9FdYGp5yOdbOfenrhto7D0e0ZxtlvU3KUd+ypLNsE+MZp8HLHCNmN6PDO9FKJIaTamo0cXXFqyvD3YTzuwk+CcWuKWeLhnD44w3k1k2pt3Yu7Msl5ts3KbHKcglEbTT81aURK2H6i3W62mrWEtQKisYW44pqBXx48cnFuvLQt9111cjptLp9HUqdNXCmtccLGZNJJynJ+dOTxxnJt8lySRp333aizpLpucn1vklzxFLhGKxySS9ZjgbBjPd681hsLbOQM4trbDr7M754krODRwHZfurCnEtFMspREmFVV6HFJS7Y2UiJBYNRetIR3IYb9TRpa3bqLYUwXxpyxl88RXpSl2RinJ9SMlVNt89yquVk+yKy0u1vlFd7aXLjxJcNNdHjKrVqLa712JExRhz0XXMRwFpq7vCZcSSnmJ2T2TSKOrnsK8mzTXVWVQXO5OonGSfBdW1flZVHMdFp3a+P52/MIZT4ONcXvyi18t1SXyUTmn2BOWJam1Q/6dXnSx2Ob8xPtxGa73gkq1509uJOuW4yompanLLGP4G5bbBkSsyeluN/wXX6u2ccxptf+M0Q6KIyo+xm2ZkRlXdRt3amob3tVOqL5RoSpSz1KUMWP+9NvvJerZWhqxiiM2vjWt2Z8Yy8z2RX9drcfwvDsTZQxiuJ4zjTDaCbbZx+hq6ZlDaSUSUIbrosZCUES1kSUpJJEtREXzj7xll1trzbbZY+2ycpv2ybN6NdcPQrhD5sYx+xI9MMZ7PMZDhGGZc0tjK8RxjJ2HCSTjOQ0FVdNLJBGSCW3ZRJKFEkjMkkojJJGZF27mMld1tTzVbZW+2ucoP2xaPE667PTrhP58Yy+1M1Q2D08uI+w25CpGp6vEZ7/kbdnr6TLw5yKpfmZqj1NW4nGVdjX3SiTRSWk+KEpbJCfE5Sjb21NPjGqnbFfFvSuz4yknZ7JpmjbsrQ25/Mqt9tTdePCK8z/Dj1kae6ej5l1O1MttEZ9GzCOy0483h+cpjUeROmjw9ONXZJDQjHrKS/5LMvlOHi0Rj0ySqUv1O6LDo/KuqbUNbQ6W2l0tOZ1rvlW/zkUv2Xa32dREajYM4py01qsX9nYlGT7lNeZJvl5ygu8iPz/W2faryF/FdjYje4bkDDZPHW30B6E6/GUtaG5kJxafd7CA6ttxLM+C9JhvKQtLT6zQrtaaNTRqa1bp7YXVv40JZSfZJc4yWfRkk11og7abaJ7ltcq5rjuyWMp9a6pLlx4rj2niRmMZlTT269l6Hy+Lm2sMnmY5cskTMxlBpk1N3A8jNyrvqmQS4VrXukpRpaktG7EeNE2veh2DEeWzravR6fW1OjU1qyD4p8pQljhKuS4xku1PElwknFtPLRqbtLYrKZuEuTxxjJP4sotYlH7HxSTSas0cO+dGA8pKtuhmpjYdt+uhLkXWFOvKOHbMRzP17nDpchZuWVeTfi9MrnlHbU5m4mQiXBaatpfOtrbFv2bLfWbtJOWIXJcYt5xXcl6MuyXoTysNSbgrhoNpVa2O68V3xTcq+p45yrb5rrafnRfPKW897BCkmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGunI3i9qvk3iSsdz6pS1cQmn1Yvmla20zk2LzHEOElyFMNPeZWLcWS59FNN2sn+KHFtMzWIc2Lv7P2lqdnW9JRJOEmulplxrtS7V1SXxZxxKPLLi3F6mr0VGshu2x85ehZHhOD7n1p9cXmL7M4arBcnOJm0uLeUJqszhFaYtaSHkYnntWyv5AyJptJueiojW85TXbTPdUyjnuFJb8HX4TthXE1YPdH2dtTTbTr3qXu2xSdtEn+crfLPVvwb5TjweUpKMm4qm6vQ3aKe7ZHMJN7lsfRnw6/ky4cY8+tZXE1fEkagAEiPAbh5gfKDILebnWx66rq8UfQuXralllH2BkcUm2FlZJXLZ9CvxRMiQiHKtK1NpO95Q5AdbpVyYFi9A7c2tfs2uCp08pStXDUWLNFb4+a8PMrcLeUZbsd3Ek54lFSmy9BVrZSdt0VGt4dMXi2a4LPHlDLw5Lelnh5uU3ZZ1xq3Xuosbi4jrbEaTD6CKhsih08NDDkt1tsmvfLSarznW9i4hJevZWkmXPkH3U9IWr4jnmo1N+qsduotnbN54zk3hN53YrlCK6oxSiupFvpoqogq6a41wXVFYy+2T5yb65Sbb62e+GAygAeZyPM8Pw9lEnLsrxrFo7iVrbkZHe1dIytDRGp1SHbOVFQpLaSNS1JUZILuajIiGSum214qqssfZXCU3l8uEU3xftPE7K61mycILtnKMV7ZNIxofJzjYTvoHyE0cT/mTfontnAid81GRJR6Z3/n5mZkRJ7d1GZERfEhsfk7aGM+4dZjt9y349u4Yfdmk/WtN/Pq/wBRk7HswxHL46pWJ5TjmURUfw5OO3lZdMI+Pj856slSW0/H5vxUXx+H5Rr2VW1PFtVlb7LISg/ZJJmaFldizXZCxdsJRkvbFs9GMZ7AAxxtDUettz40/iOzsPpsvpHicNpmzjd5dc+siSc2mtGTZsqWwJKSSU6qlxJRteTSnVMrWhWxptVqNJYrdNbOqfW4vhJdk4vMZx/Zkms8cZ4mG6inUQdd1cbI/tLim+uMlhxl3xaaK+/Lnpj5vqBq1z3S52mxdcsLemTqBMdczOcShm4RmtcWEz3yaniIWan7KBHanwYrS5NlA90jybMXrZXlHTq3GjWbun1Dwo2ZxTa/Fv8ANzfVGTcZPCjLLUSr6/Y1lG9bp3K2rjmGM2Vp9y4TiutpbyXNYTZFMLMQp9KlurjHLauvsftLCku6iYxYVVvVS34FjXT4riXY8uFMjLbkRpDLqSW2604laVfElDzZCFkZV2RjOE04yhJKUZJ5ymnlNNdXERlKDUoScZRa3ZRbTTXDKa4pr/8AnrxZg4F89KvkLVxNabLlwqndVRCMmHzJmHX7Hr4bJqetappJNsx8jjstKfvaJhKW3UJduKdooBToNLzzbexJaCT1OmTno5viuctPJ/Fk+brb4Qm+T8yfHdlO37M2nHVxVFzUdTFeCuSWd6PUppcZxXL0o8MqMmwrhMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5XNMIxLY2MW+GZzQVuT4vex/drWltWCfiSmkrQ60r4Gl1iRHfaakxJkZxmXDlNNSorzMhptxGSm63T2QupslXbB5jOHBrPB9zTTaaeU02mmnh47K67oSrsipwkmpRlyfs5NNZTXGLWU0yuJzP6cWXaLVZ7D1M3aZvqNKnJc+Elt2flmBtGch547ZiMx3tMZhMoQacjaST0Ns1JvIzDbHyrN6Bsjygq1u7p9Vu06rlF5Uar28JbjbzGxt+9PhJ+g3ndjU9obJs02/bRmyji8c51eKS86C+XzS9JcN5xeCyEOeixLL8owPIqvLMMvrTGclpJKJdXdU8t6FOiPJ7kfg80pPm06g1MyYzpORpcdbkaS06w642rxbVVfXOq6EbK5rEoTScWvB/GXNNcVlNNNH2Fk6pxnXKUZxeYyi8NPj62u1cmuDaWSxdwv6k2Mbn+Stb7oerMM2q4bECpvE9oWKZ/KcWbbLUfy7s49kj34pCqqQ8Vdayld6V9l6SzSR6Btfyes0m9qNGpXabi5w520JLLb67K1x85JyivTTScy2bP2vDUYp1GK7+CjLlC58ljqhN8PNbxJ+jjKits+SvL3T/F+mQ/nFq5aZZPjHIoMAolMycmt0KUtpuW80txEenp/VbcS5bWjjDC/Rfar27Ca0UNcXs7ZWr2lPFMd2qLxZfPKrh14T52Tw1mEcvDTluxeTe1mvo0Uc2yzNrMKo8Zy6svqjH9qWFweMtYIC969THkft2TLhYxeHp7EVOPJiU+BSpMXIHYyzUTJ2+ambV0/MbbUptblGWOQHSMlLrfUQlwXjReTuz9Kk7K/dd3DM74pwTXyKeMEn+30kv2isanbGrvbUJe56+qNUmp4zwTsWJN9WY7ifLdI/bKzsrma/ZW9hOtbGUv1JU+zlvzpshw/yrflSXHX3l/95xxSj/5xOxjGCUYRUUuUYpRS8EsJfURbbk5OTcnLm23Jvxb4+rqPxD6D6NTcW9DPj2tHaWNLaRFk5FsqmdKrp8ZwjIyXHmQ3WZDKyMiMlNuJURkRkfch5lCE4uM4xnF8HGcVKLXemmmvE+xlKLUotxkuUotprwaw0SF6I6nXInUr8KtzG0LcmHtKjtv1uZyXPwnYit+KXfkzNkNPWpynG0kXqZC1kbCVJJSI7alurXA67yc0GqUpVR9yWvOJ0r83n9qnKjjjyrdb7+SJTTbZ1dDSsfuivhlWPz0utqx+dnHy9/5pPxxy5W6i5OY+u01/cqj31ewy5kWEXXpQ8ooHHSIjW9ES441Y1qne6GLmsdlQHDNLTzkaZ6sRqj7Q2ZqtnT3b4Zrk2q7oZddiXY8ZjLthJKXWk44k7PpNdRrIb1UsSSTnXLhOHblda7JLK7cPgbKCPNwACHnnP03arYTF3t3QdZGpc+aYXPyHXldGjQ6TNTZI1yZ9Aw0llmpyx1olLeioT8n5E+hKzbh3D0mZaWvYvlBLTuGk10nOhvdrvlJudOeUZt5cql1PnWu2CSjAbS2TG3ev0sVG3GZ1JJRs4848lGb7OU32Sy3XklRZUGVJhTYz8OZDfeiy4kplyPKiyo7imn40lh1KHWH2HULaeZdQlxtxKkLSlSTIXxNSSaaaaTTTTTTWU01zTXFNfUyrPKbTTTTw0+DTTeU11NfWfoqba0obSuu6Sxm1FxUTY1jV2ldJehz6+fDeQ/EmQ5bC23o8qO82h1l5paXG3EpUlRGXxSjGyMoTipQknGUZJOMotYknF8GmuDT58j7GUoyUotxlFpxknhprimmuKafs5otI8COZ9fyawo8Xy2RGh7mwuuY/CWJ+Kjt5bUoUiKzmVRGQSEF6jqmY+RQY6CarLN9l5tDEG0gMN8123siWzrukqTekuk+jfF9FLm6Zt92XW28yimuLjJly2ZtBayvcm0tRWlvrkpx5dJBexTS4KTysKSRIQIIlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwJyU39i3G3VF/srJjblPxklW4vQ+qbMjJspmNPKq6VhaUOKbbc9F6ZYSSbUUKriTZRpWppDTm7s7Q27Q1UNPXwT86yeMquuL86b5ZfFJLPGTSXWzV1mphpKJXT444Qj1zm08RXZwTbfVFSZGBxA6pv4Q3JYHyblVVTItrJ88c2XBhorKWO9Yz33mabLorbhxqqvie8NQKvII6ERIsNhhOQk2Tcq8XZNq+TXRw6fZylJRiuk08pb02oxSc6m+MpPDlKt8XJt1rioENoNtb8ui1jjFyb3b0t2KbbajYuKillKM1wSS3+Tm5tWXmZLLUhh1p+M+028w+y4h1l5l1JLadadQam3GnEKSttxCjStJkpJmRkYpzTTaaw1wafBprqf++HfksSecNPKeGmmf6UlK0qQtKVoWlSVoUkjSpKi7KSpJ9yUlRGZGRkZGR9j+H5R9IZOaXTEq8tK32hxwr4dHlR+tPvdWsFFr8fyAyQg3H8MIksRMft1Ghxx2mdU3SWS3fKG5TyGjasbdsjyjlVu6baEnOrhGGpeZWV913N2Q5Yn6cfjb6acK9tDY0bN67SJRn6UqVhQl9HwUYv9n0XzW68ZgFtqm0oLSxpLuum1NxUzZNdaVdjGeh2FdPhPLjy4cyJIQ2/Gkxn2ltPMuoS424lSVJIyMXiMo2RjOElKE4qUZRacZRaymmuDTXFNc+0rEoyjJxknGUW1KLWGmuDTT4ppnzx6B9S5vbrI7B63yG4tL21fbjtP2dzYy7SwfZhxmocRt2bOefkuNxYjDEWOhbhpYjMtMNElptCS8whCuKhXCMIrLUYRUYpttvCikuLbb4cW22s4YlKU3vTlKUnhZk3J5SwuLy+CSSzyS6uKPlj0AAM56n41bw3nU3l5qjApmZ12OS48C6cgW2PRZEKXLjrlRmjgWlvAsHyfZbcU27GivNKU2tv1PVQpBaWq2jotFOENVeqZWJyhvQsacU8N70YSisPmm012YM9Gj1OpjKVFTtUJJSxKCak45XByT49qWOfieSz/T+1dVvtx9k66zPCFPOG1FeyXHLSqhTnEl3V8nWEqMiBYpT2MjXBkyEEpKkmrySoiy0avS6lZ0+opuSWWq7ISlFftRT3o/3kjzZRfQ8XVWV9jnCUU/BtYeO5v1GORsGI9bgmd5brPLaPOcGvJuO5Tjs1E+qtYCyS6y6kjQ4062slsy4UtlbkWfAlNvQ58N56JMZejvONqxXU1aiqym6CsqsW7KMvRa7V1pp8YyjhxaTTTSZ6qtspsjbVJwsg8xkuvufU01waeU05JxafG1Vws5f49ytwJ+S8xGodl4m3CjZ1jDLijjqVIQpMXJKD1lLedoLZxl9JMOuOzKac27XTXHmjrrKz5ntjZVmzL0k3PT27zpsa48Odc2uG/HKeVwnFqSSe9GN22fr4a6rOFG6CSth1ceU4dsJceD4xeYvK3ZS3REQSAAERXUR4GRNo1VxvHT9MTW0KqMufmGMVjBEWw6yK0ZyLCDDZR8/NILDfqpSyn1ckitLieD9wiCmXadg7bemlDRauedLJ7tVkn7xJvhGUm/eW+3hW3nhDOILa2zFdGWpoj+eis2Qil+eiubS/tEv40seljNc1aVIUpC0qQtKjQtKiNKkqSZkpKkmXdKkmRkZGRGR/A/8Asv5VD3esNlZdqDPMb2Ng9kuqybF7BE2C/wBvUYfbNKmZtfOYP5squsobj8GfGX8Hosh1BKQs0rTg1Onq1dFunujvV2RcZLrXWpRfVKLxKL44aR7pus09sLqpbs4PKeOEupprm045TXWnzLfHHLfGLcjtT43s7GTbjqsWjhZFR+uUiTjOUQkNpuKKUvxbWr3d1xEiDIWyyc+qlQLBLTaJaUJ5XtDRWbP1Vmmsy915rnjCsqfoTSWea4SWXuyUot8C+aTUw1dELocM8Jx64TWN6L8Mpp9aafWZ0GkbIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/la0tpWtakoQhJrWtZklKEpIzUpajMiSkiIzMzMiIiMzMgBU/59coneSm5ZKqKc45rDAPfMdwKOlSvd7E1PN/LmXKQf8A8fI5cZgoquyPCir6ZlbSJKZS3un7D2b+TtIt9Y1N+LL2uceD3Ks9labz+3Kb5YKRtTWe7NQ91/mam4VJcn8qzxm1HHVuqPXne0ZEyRxZT6UddvNvS0+22FfSn9WzHo8XUOO3EZblrChw35vy1awLB4m5DGLTJDjMSornFTI63ocyVXprYhJO1575Ty0XuyMaIRWpSb1dkHiLbUdyEorg7UsynJJPDSk5P0bbsRan3M5WyfQtpUQksySy96SfPcfKK4rKbW6s70qorJNgAaPcuuDWt+UlW7ckTGG7ZgxEM02ew4qnCnsxm1pj02WQGnWUXFWruhtmafe4p0ttnXyXIaZNXOmdlbZ1GzZKHG7Syk3OiT9Ft8Z1N53J9q9CfKST3ZRjdds2nWx3uFd6WI2pc0uUZpNb0ex+lHqeMxdY/cmkdlaEzKXg+zsclUVux5PQpREcimvoHcibtaC2QlMS1r3SUkjcZUT0R/zhWEeFYMSIjHRdJrNPrqVdprFOD4SXozhLrjOPOMl1Z4NedFuLTdO1Gmt0tjruhKMlyfOMl8qEuUlx5L0eTim2jFA2jEAAAE83RciTm6fkPPcJXyZIstYxIijSrxOdCi529YkSvAkGoo8+rNSUuLUklJNSEEpCnKT5Xtb+gj8ZR1Lfg3Ql9cZFm8n093VPqcqUvFKzP1NE1tzR0uSVkulyGnq76mnsrjz6m6r4lpWTWHEmhxiXAnMvxZLK0KUlbbzS0KSo0qSZGZCnwnOuSnXOUJxeYzhJxlFrk1KLTT70ywSjGcXGcYyi+DjJKSa7GnlMgy5vdMuuo6e725xxgPMQqqLJtsr1WhciapENgvWmWmCrc9WUoozJPS5mMyHX1KaQ6dC6SkRaRy57G8opTnDS7Qmm5NRq1XCPF8FG/GFxfBWJLi1vrnNVvaex1GMr9IniKlKyhceCxmVWezi3B5z8XjiJByLmV0zbx33fkXHjbeJ7Rx03n/kaX7vfU6JCo7OR4xOUhq7opKiJTfjLikTsNx5t5uHaRq+xJpbsNrtp6/R16/S26azC31mE2suuyPGE14Pg8Ybi5RylJmfSamzSXwuhx3XiUXJLfg/SjLh1r0XiSUknziXHMVyWnzTGMdzDHpRTqDKqOpyOkmEk0e9VN3AYsq+R4K+cg3oklpakK7KQajQoiURjk1tc6bLKrFuzqnOua7JQk4yXqaZfoTjZCFkHmM4xnF9sZJST9af1n3x4PYAFfLqhcNmcMspfJDWlUlnF7+wT+6jSQ2+zVHktpLNLOXxWk/Nbq8jmvojXDSUpTDyB5mWk3W7txFfevJvazuitn6iWbIR/+mm+c64p5qb+VXFZg+utNcNxb1W2zs9Vt6umOISkumivizb4TX7M28SXVJ5+NwhkFuIA356e/KRzjnuOPW5HPNnV2yX4GP5kT7ppiUc0nVN0WYkk/ggqaRJdYtVF2NdHNsHTQ/IhwUJg9u7N/KGkcq451OnUp045zWPPq6/fFFOOOO+orgmyT2VrfcmoxOX5i3ELM8otPzbP7rbUv2W+tItXEaVJJSTJSVERkZGRpUky7kZGXwMjL4kZfAyHMy6n/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARj9ULkaWo9Jr1pj05bGc7ial0vnHc8JFTgzPgjKZ5qSrzQu4bcbxqMk0dnY9jbSGnW369BKsfk3s/3VrPdFkc0aTE+KzGdz96j/c42PscYppqRDbZ1fQaboYvFmozHhzjWvTf970Vw4py4ZRWPHRSoG1vDbjdYcm900uGLQ+xhtMlGS7CtGjda90xeFKYber40pCDS1bX77rdVWF5E6360qxShxitk+MZtfaEdnaOd3B3T/N0ReHm1p4k11wrS3pdu6o5W8sbmz9I9ZqI18ejjidss8oJrKTXHek/NXi/ippW6aeoq8fqauhpIEWqpqWvh1VTWQWUR4VfW18duLChRGEESGY8WM02yy2kiJDbaSIuxDlk5ysnKycnKc5SlKUnmUpSblJt9bby2XqMYwjGMUoxilGMVwSSWEkuxI+kPJ6AAADD269Eaz5BYbJwnZuPMXFcsnXauyaJqPf43YOt+mVtjlqpl52tsG0kjy/FvQ5jbZRbKJNhrdjL2tHrdToLVdprHCXBSi+MLI/JshlKUfY1zg4yw1r6jTU6qt13R3l8VrhKDx6UHh4fqafJprgVjuWvCDZnFu3es5DbuX6snzPSoc/rorpNRfXdcTEqMtipQaaO8NKSJsyceq7MlIXXTVyPeq+D0bZe2NPtKCisVamKzZRJ8XhcZ1P48OPdKPFSWMSlTtds67RSbl+cobe7alwSbxGNi+LLq+TLqecpaUiYNAACxN0mNq6XY1M/qGruvk3bz2Q32W5LTXKI8J3IikG1DgysTkEo/leFWY9WVjc+vNw7KDMRZTjhorn25B0Lyo02seqWqlDe0irhVXOGWq8ZclaviylZKW7L0ZR3I53k0WrYd+nVHueMsahylZOMsLfzwTra9JKEVlc01J43eJMEKoTwAFW7qYceIOkN8KyPGYDcDBttxpmWVERhtTcSqyNiQ21mFRGSZeDbBTZUS8jsNeLMSPfNwI7TUeG2kdJ8ndfLWaLo7JKV2lkqpN4zKtpuqb6s4Tg2+LcN5tttlL2vpFptVvwWK74ucUsYU0/Pil4tSXUlLHUR0CfIss3dKHaMjOeNK8OsX1v2OqMrssbjm64p51eN3CUZHSLW4v5xIjyrC5qYrJmtLEGpjNNGlokNNc68p9Mqdo9NFJR1VUbHjgukh+an62owm31ubLfsO7pNH0bfGicoLt3JefH63KK7orxJOhXCZAA+HkuN0eY49d4pk1bGuMeyOrm0t1VzEepGn1tjHcizIzqfgfi6y4tJLQaXG1eLjakOJSovddk6rIW1ycLK5RnCS5xlFppr1o8zhGyEoTSlCcXGSfJprDRUH5Y8ebjjPubIteTPe5ePLUm7wa9ktGn5cxKxW4qveU4lKWnJ9a6h+ltzbS2g7SulOstIjPRzV1XZevhtHR13rCs9C6C47lsfSXalJYnDn5skm8p4oet0ktHqJ1PLjwlXKXxq3yfiuMZftJ9WDWsSBqlojpl8i3d1aLaw7I7E5meagODjFi5IcJUy1xN1lwsOuXTP57zrcOJJoJj6zdfekUqZ8x1T9kSl838otAtHrXbXHFGr3rY9kbd787BdnFqxLklPdXCJcdj6v3RpujsebdPiDzzlXj83LrzwzBvm3HL4yJIBXyXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACo/z52vcbY5TbSk2D6lVuC5DZ6yxqElflHhU+EWc2peUwfktJptrtu3vHF+R+Ttmsk+DSGm2+pbD0sNLszTKK866uOpsfxpTugprOfkw3IeEV15ZRdp3yv1t8m/Nrm6YLqUa5OPD58t6XjLl26biWNEtV9OPj41o7j1SW1rDbaznazcLOsmeUhPvMStmxSXiVAtzsSybrKR9E+RGdSTkW6ublhRqQhsy5n5Qa963XzjF5p0uaKkuTlF/nbOzMppRTXOEIMumydL7m0sZSX5y/Fs+5Nfm4+qLy11SlJG/ogyUAAADD+S731jhu0sX0/leRMY9mGa0bl5ipW5Ig0934WaqoqaFbvuIiqyB6SkziVLhofmoNCIhvyHEMK269FqbtLZq6q3ZVTPct3MynDzd/fcUs9GlznyXxsLia89VTXfDTznuWWR34b3CMvO3d1SfDfb5R5vqy+BmAahsHy7qlp8kqbChyCrr7qltorsG0qbWIxPrrCG+nxeizIclDjEhlxJ9lNuIUk/gfbuRD1Cc65RsrlKE4tSjKLcZRkuKaa4pruPMoxnFxmlKMlhxkk00+pp8Hkr7c0emRb4Cm22fx3hTsgwdlD9hfa6Jb07IsRiss+rInUEiTJenZPSJNLi3K8yev6tHgpHyxF94fr71sjyjhfu6bXuNdzxGGo4RrubfBWJJRrmsJKXoS/YaSlVto7HlVvXaRb1fOVXOdaS5xbebF3PM12TWWodTI0maVEZKIzIyMjIyMvgZGR/EjI/gZH+T/ABi2EEfuqrW0orOvu6Sxn1FxVTI9hV2lZKfg2FdPiOpfizYUyMtqRFlRnkIdYfZcQ404lK0KSoiMfJRjOMoTjGcJJxlGSUoyi1hqSeU01wa5NYyIylGW9FuMotOMk2mmuKaa4pp9a/yJ9+FnU7rcq+SNXckbGHS5KZRq7H9pPFHgUN8pKDaRHzdxTrUajuXVE0lq8Zaao7BS1/KKaeQ0l+yo+2PJyVW/qtnxc68OVumWZTr5caeGZwWXmDe/H4u+niNn2dtlT3adY1GbwoXcIxl3WccRl+0vNa54azKaBC0uJQtCkrQtJLQtBkpK0qIjSpCiMyUkyMjIyMyMjIyMxUCwkTHWFxqHYce8GyhTTfyljW1K6FHkKSRuJrchxvI02MdC+5KSl+XVU7zhERko4iDMvmkZWjyUscdfdXnzbNNJtftV2V7r9SlNY7+4gtvwT0tU+ThekvCcJ5XtjF+orgDoBVCbfowXDrWS78oPIjYn0WA3HgZn3S7UT8ohEptPbsRLRdGTpkZGo0MkoleKfGneV0E69DZ1xnfDwU41v69zhjvz1Fh8n5efqorlKNUs/Ndi/wDcT4ikFnAAACN3qdcf423OP9lnVXCJzNtMtTMurpDRET8vESQ0eb1TyjUSTjsVcZGStmaXHkyMfKNGNsrCSTtg8nNc9Lro0yf5nV4qknyVvHoZLvc30fUsWNv0URG2dKr9K7Yr85p8zXfXw6ReCit/+7hc2VeR0gpxvZ04doWeteVuv4sVwzqtjOv65yCKajJMiLfm27VOpL4pS9CyKFTyUueJrOOiVGSpCZTihC+UGmhqNmXt8JadLUVvscOEl4Src1447CR2Rc6dbUlwjdmmS5ZU+MefWpqL8MrrLXg5iXcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKn3UT01Z6i5P55LdZWePbPsZuzcbnEgyafTk86RLyCEZkRtokVeSKtI5xyUbiYC62UtDaZrSR0/YGrjqtmUJNdJporTWR45SrilW/CVe689ct5ccMo+1dPLT6y1/Eubug+fptuXbxU8rd7MPrNGBMkeWYelpyLZ2jpj9yfILJDucafaZrobT7xHMtNeuqSjHpzaVmSnUUDilYxJJlCkQ4cahVIc9axR5c78pdA9NrPdVccU6vMm0uEb0/zkX2b/vkc8257vCJbti6vp9P0Fj/ADun4LL4yqfoPse56DxwSUM8WSjitk0AAAEDvWepJLNvoDKmSd9F2Dn9G682RpKLJgycUsoRG8kiNDslE6YthPn37QnlpJPiZqu3kjNOGuqeOEqJ4fWpK2MuHYt1Z+cis+UEXvaWfVi2Oexpwa4+t48GeW4W9TuzxH5J1hyPsZ15i5KYr6HaD/vNjf4+g1uklnM1mt+Zf1CCUy2zcMtvXVc22opqLaOtLtfk2v5ORt3tTs+KhbxlPTcIws5caeSrnzbg/MlnhuNYl42ftl17tOrblDgo3cXOPVizm5xWViS89de9nhP1UW9Vf1dbeUdlCt6a3hRrGrtK6SzMgWMCY0h+JMhy2FuMyI0hlxDrLzS1IcQtKkqMjFHnCUJShOLhODcZRkmpQknhpp4aaaw0yzxkpJSi1KMknGSeU0+Kaa4NNcn9uUfRHk9EV3NDpuYvu07XZGnW6vCtsPetOtahztAxPPpS1m9Jenkwy6mkyeV3cWm4YaKDazVF8uttvSX7uNZdkeUNmj3NPq967SrEYz9K2hcMKOWt+tcPMbUor0G0lBwu0NkQ1O9dp92u/nKPKFr68892b57ySUpenzclXNzDDMr1/ktriGbY/a4vk9JIOLaUlzDdhTorvilxtRtOpL1Y8llbcmHLYU7EnRHWZcN5+M806u/1XVX1xtpsjZXNb0ZweYtf5NPKaeGnlNJpoqVlc65yrshKE4tKUZLDSz9j5pvg08rKPNDIfCUPhh1Hcu0Wus15tl20zfUaVNxIE1Tjs/LMDaM2GWfkp6S+Z2mMQmULJWOuqJ6G0aVUchlDHyVNre1/J+rW72o0qjTquclwjVe+Lbkksxsb/wCYuDfppt70ZjZ+1p6XFV6lZRyT52Vcl5uX50Evic18VrG49u+qzurB8z446ch4NklZk1XsjO15bUWtTJbkxZlFh9FZ19ilae6X40hi3yiqYkxZLLMuHLiyoUtliSy8ymK8mdHfTtDVu+udctPR0UozTTU7ZxlHuacK5NNNppqSbTTN7beort0mnVc1KN1vSQlF5Uo1Rkn4NSmk4tZTTTw4tEAIvJWScTov0T67XfuTKbJMaPX6/omXT/hOPy5OVWEltsiI/gw3BiKd8jT8ZDPgS/n+FN8rprd0NfW5Xza7kqor27zx4MsXk9F51U+rFUV4vpG/Hkn6+snkFJLMAAAEUfVY5FRdd6hZ0rRT/DM9ttoO3bjuqRIqddwpZnZyHTbUSkFk1hETjzDTiVMzaxGSoNSVxkEuz+TOz3qNU9ZZH8zpfQyuE9Q15qX0cX0j64y6PtITbeqVVC08X+cv54fGNSfnN9fntbi7Vv8AYVsx0EqRIT0y9RTdm8osXvjaV+D+qGH8+upJteTXvsVKoGMwEuGZIblyL2XHsGkqJa1xKiwU2kjaNxuC8otVHTbMshn85qmqILOHuvzrJY54UIuLzjDnHtJTY9Du1sJfEoTtk/2lwgvFyal4RfaWnxzQugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR+9R3jm9vrQ020xytVP2Fq1yVl+LtR2vUnWlWTCEZbjkYiJTjrllVx2rKHEYQuROuKOrhMJ8pKyVO+T+0Fodco2S3aNTiqxt4UZZzVY+pbsm4uT4RhOUny4Re1tJ7q0rlFZtpzZDHOUcefBPn50VvJLi5RiusqsjpZSzOHHPeeR8dduYrtHHSXJ+SZCol9TeqbLORYxYeLN3SPqMlIScmMRPwX3G3UwbWNX2JNLchoSentDRV6/S26azhvLMJ4y67IvMJrwfmySfnRcop8cmxpNTPSXwuhx3XiceW/B+lF57Ulh5eJJP4pcLwPOMY2Xh2OZ7hlmzc4vldVFuKewYMuz0aSj5zL7fc1xp0N5LsKxgvkiTAnx5MKU23Ijutp5RfRZp7rKLouFlUnCcX1NdafWmsOMlwlFqSymmXyqyF1cLa5KUJxUoy7n1PsafCSfFNNPimetGIyAARy9UbVTuxuLlxfV8dT9xqu9rM8ZJpKTecpmkSaTJGTUoy8Y0ertl3knt3UoqNsk9/ilU/5N6lafaUYSeIamEqXnkp8J1vxco7i+eRO2qOm0UpJZlRJWrw4xnnuUZOT+bwKuI6SU0kb4Aczb/QWwaPAs2yV9WjMqsXIVxCsVIfh4XbWRIbhZZXPOpORXQGZqGEZFFjvtwHKyRNtXIciyhxjOA25siGvonfTWvdtUU4OPB3RjzqklwlJxz0ba3t5KO8ot4ldl7QlpbY1WTfuabxJPiq5PlYutLON9Zw4ty3XJItEtOtPtNvsOtvMvNodZeaWlxp5pxJLbdbcQakrbWlRLQtJqSpKiUkzIyM+bYaeGsNcGnzT7H4dZc088Uf0AGqXKLiDq3lLjZwsphpo80rozqMX2FUxGDvad3wdNiJPI/S+XseOQv1ZNHMfbT8552tl1c5331Mns3aup2bbvVPfpk07aJN7k11uPPcsxwU0uzeU4rdNHW7Po1sMTSjZFeZbFLei1yT+VDOMxbXc4viVhOQ/GjaPGjMF4vsOnNMKW7JVjOWV5LfxvK4EdaSOXVzDSRtyW0LaOdUzUsWlep1v3iOlh6NIkdH0G0dNtGrpKJ+dFLpKpcLK5Pqmutc8TWYyxhPKaVO1eju0dm5bHg87k4+hNLj5r7eWYvdaXNYw3r+N41j+qnnlNNsLddUwyp1xphTijaaceJsnlttqPwbW6TLROqSRG4TTZKM/BPb5hZbwsvGX1vGcZ8MvD58WD+Q+gtIdLzUr+teL1PfWUdTFzte6nbAdQ6laXmqOQxFqMXaMlJSk48qprEX0VSCX5NXvl6hkaUN828pNV7o2lOEWnDSwjQsdc03O1+KnLo39GXLY1Dp0UZNcb5O3wg0ow9TjFSWPlkjAgCWAA8XsTP8AFtV4Pk+w81sm6rF8SqZFvbTFmg3DZZIkMw4bS3G/erOyluR62qgoWT1hZy4kJglvyG0nm09Fupur09Md622ahBd75tvqjFZlKT4Rim3wRjtthTXO2x7sK4uUn/kl1ybworm20lxZTx5AbqyTkFtjLNo5KbjD19PWmnqDkHJZx3G4q1t0ePxnfBlLrdbCNCH5CGI5Tp65dithp6W4kur6HR16HS1aavjGEfPnjDssfGyx8/Sb4Ry92OI5aSKFqtRPVX2XT4bzxGOcqEF6EV4Lm8JN8ccWYZG2YC1x08+N73HnQ8BWRQEw9i7Iej5hmba0dpVYytg0Y1i76zJKvKiq3lyJjC0mcW9t7xltx5lLTh8y29tBa/Wy6OTen06dVPZJ5/OWL58kkmsZhCDaTyi67K0nuXTLfWLbmrLO1LHmQfzY8WuqUpLib4CEJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq79SLiq5oba7ud4rWoY1ZtKfMsqlEOP6ULF8qX5S7zFlJaSTEWM+pTtxjzSSYbOudl10Vk0UT7qukeT+01rdKqLZZ1Omioyy8uypYULePFtLELHlveSk2t9JUza+i9y39LBJUXNuOI8IT4uUOHBJ+lBcOGYpeaRviwEUSw9M/mS1p/KE6Q2NaExrTOLVC8Zt5jh+74VmU5SGEoedV/8AY2O5M56MeetZnFqrZEW0V7pEl3sw6v5RbIerr92aeOdRTH85BLjdVHjwXXZXxceuUcx4tQRNbH2h0Fnua6WKbJeZJ8q7G8c3yhPgpdUZJS4RlKRZHHPy3AAfPtKyuu6yxpbeGxYVVvXzKuzr5SCdizq+fHciTYchtXwdYkxnXWXkH8FtrUlXwMh9jKUJRnFuMoyUoyXBqUXlNd6aymfJRjKMoyScZJxknyaaw0/FcCoHy345XfGXcd7gsxEiRjE1bl7gN66hXp3OKTH3fc0rd7mlVnUOJXUXDZ+KymxDloaTDmw3HerbL2hDaOkhdHCsj5l8F8S5RjnhnO7PG/DubWcxaVE12klo9RKp8YPzqpfKg+Xri/Nl3rPJo1jEiaZLNwr6lVtpmtp9V7pYsMo1pXITAx7KIZOzMpwqCRtNx655hxz/AIexiA2lRQ4iDRbVMc/doDk+CxBqo1X2x5PQ1kp6nRONWol51lb4VXS45knjzLJc2/Rm+Mt2blNzeztsS06jRqE50rhCa4zrXDEWvjQXUvSispZSUVPhrXdupNxV6LPWOw8WzJhTSHXY9RaMLtYSXG0OpRZ0T5sXVS+Ta0qXHs4ESQ2Z+LjSVEaU0jUaPVaSTjqaLamnjMovdfzZrMJLvjJrvLNTqaNQs02ws4ZxGS3l86LxKP8AeSMpDWM54PZWscE3Bh9ngex8bgZTi9slPvNdOJ1Cmn2vL3edAmxnGJ1ZZRTUpUWxr5MabHNSyafSlayVn0+pv0lsb9PZKq2PKUccV1xknmMovrjJOL60YrqKtRXKq6CnCXNPt6mmsNNdTTyu0rUcyOnxnnHCRNzPDflHPdOre8yu2oxvX+HpWTiyi5hDhtemmA0lHpM5PGbarH1m21OZqpj8WPJ6FsnbtG0Eqbt2jV4fmZxXa+2lt53ut1tuS4uLmk2qhtDZVukbsrzbp+PnYzKvusS6uS315rxhqLaTjqE+RZ/ptfpuIcJKFGhaVklxJONr8TJXipCj8VoPt2Ug+xKLuR/AAWaOEfUG19uqtx7Vebx6jXO0a+vhU9NXRS9yxDMGK+ITDKcXUpJM0tg2xHQj8Fpb6jWXgVHJno9aHA51tjYV+jlZqaXPUaaUnOcn51tTk8vpeuccv31L56jwcrfs3alWpUKLFGq9JRilwrsSWFudUXheg/7jfJSfCuEyf5WtLaVrWpKEISa1rWZJShKSM1KWozIkpIiMzMzIiIjMzIAVo+pHzMTvDLT1Hrm1U7qjB7Jz5Ss4UglRM8y2Gt1hyyaeYcU1Mxqm7rj0R91sT5ZyrpKnmF1K4/RPJ/ZHuKp6rURxqrordi1xoqfHdeeKsnwc+GYrEOD380/a+0PdNioqk+grfnNPhbYsrKcXhwj8XteZcVu7sWoshDkmPTS4rK3ftQtkZdWOu6x1ZNiT3CkMH7jk+aoNEqlx5K3Uk1KjVZE3e3zTRvekympgTG0M3jSxXfKLafuPTe56pJanUpx4Pzq6eU7e1OfoQfDjvyg96tktsfRe6b+lsi+h07T48p2c4w5vKXpz58op+kWdxzkuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJt36bxDfes8l1hmsY3Km/il7tOZSRzqK5jGb1Tf1izNPhOq5hIfSg1palse8QJZOQpcll3a0ert0Oor1NLxOD4xfozg+EoSXHzZrh2p4ksSSawanT16qmdNnoyxhrnGS4xku9Pq61lPg2VBt16czPQuyMi1lnUMo1zRST93mNJX8n3tQ+paqu/qHVkRv1tpGSTzJn2ejuk/BmNsTokqO11XR6unXaevU0PMJrin6UJr0q5rqlF8GuTWJLMWm6HqNPPTXTptWJRlwzylHhiUe2Mks+vDWU0YpGyYifvpx89o9/Do+Pe6bxTeSxSZqtaZrbSDNGRRS7NwsPvZz6j8b6Knxi47OfUSLqMlmpfWVyzEVdUfyg2G4Oev0cPzbzLUUxS/NvrthFfEfOyCy4PM15je5ZtkbTU1HSaiXnrzabJv011VybfpLlW36S83O9jemtFPLEABrTyl4xYRyk1y/huUEVZfVpyJ+EZjHYS/Y4pduobSp1DZqa99p7JLDEa9qFuttz4rbTjLsWyhVthCkNm7Ru2bqVdX50JYjdU3iNsF1Z47s45bhPGYvg1KDlGWnrdHXraXXNYmsuuzCbhLh7YywlKPWuxpNVSd1aO2NoDN7DA9lUT1VZxVrXX2LaXXaPI64lETNxjtmtppqzrnyUnuttKJEN/zg2MeHYMPxWunaPW6fXUxv081KD9KLwp1y64WRTzGSx4NedFuLTdJ1Gmu0tjqui4yXJ84zXy4S5OP1p8Gk00YjG0YT6NRcWuP2lfeUVlOp7mpmR7Crta2U9CsK+dFcS9Glw5cdbb8eRHdQlxp1pxK0KSSkmRjzOEbIyhOMZwknGUZJSjKL4NNPg01zT9jPsZShJSi3CUWnGUXhprk01hpr6u0sHcKeplVbCOo1dyGsINDnjhswKLYjiWK/H8ylPPoYiwLyPFjsQccyB31EpbmJTHoLRaFpIqmYcaJPou2PJ2VG/qdBFzoTcp6fjKdKS3nKDbcrK12PM4/tpNxtGz9sRt3adW1G3go28FCxt4SmkkoS7+EJcfReE5iRUyfPzyosWfFkwpsZiZCmMPRZcSUy3IjSo0htTMiPIjvJW0+w+0tbTzLqFtutrUhaVIUZH9TcWpRbUk0002mmnlNNcU0+Ka4p8UfGlJNNJprDT4pp801y4og45o9L4njttocZaxKHD94ssh1CwbbbazNSFvP65bS0htrsk3pDmJyHvBXZTONuJV7jQquWyPKTG5ptoyzyhXq3z7lqO3qXSpd9i9Kwre0NjcJXaNdrnRnj408+97jfLhDqiQWyosqDKkwpsZ+HMhvvRZcSUy5HlRZUdxTT8aSw6lDrD7DqFtPMuoS424lSFpSpJkLompJNNNNJppppprKaa5primvqZXHlNpppp4afBppvKa6mvrP4oUpCkrQpSFpUS0KSZpUlSTI0qSoj7pUkyIyMjIyP4l/2fQTUcMOp9Y42dPq/klPmXNAa2K6h2q76ky6pvUcS2yxnKnHTetqhlCuychZQ9cwkoT8ps2rLi5sCobX8nI2b+p2fFQs9KelWFCeFxdPJQm3/wAvhB/FcXwdg2ftlw3adY3KHBRvfGUe63HpRXy+a695PK+91CuoVAt6+40PoO/i2VXZwzg7B2RSTW5UKfAmsJOTieJWMN1bMmLKjunHyO5YcW080t+lhqUhU54/GwdgyhKGt10HGcXvUaeaacZRfC22L4pprNcHy4TfxUetq7VUlLTaWSaaxbdF5TTx+brkuDi1wnJPDXmrrZBwLkV0zHobSGachdl0OtMHiqXOtXSftbZxh56txmgYdZTZ5FcLZL8VAr0OoSlJqQubOeh1sZRzJsdC9TW6ynQaeeoufmxWIwTSlZPju1155yljwjFOT4RZm02ms1V0aa1xl6U2uEIx5zlw5Lq7XhJcS3vpzUmIaO1zjGs8IhlFo8agpY9daGkzbewd/GWV3auMobTIs7WWp2VKd8SSg1pYYS3GZZab5Xq9VbrdRZqbnmdkm8LO7CPxYRT5RiuCXrfFtl809ENNTCmtYjBYz1yfXKT65SfF+xcEjJw1jMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlHNjiBQcqMAJEP3Wn2niUaXJwTJHEpbakKcSbr+K3zqUKccobZ1CDbe7KepbH07KIS2V2cCymNjbVs2Zf5zc9Na0r6+zD4WwXLpILhjGJxzF4e7KEdtHQQ1tXDEb603VPHthL9mXti+KeN5OqZlWLZFhGR3WI5bUTaDJcdsJNVdU9g16UqBPirNt5lxJKUhxPciWy+ytyPJYW3IjOusOtuK6bVbXdXC2qanVZFShOPKUXyfP2p4afmtJplJnCdc5V2RcZwbjKLXFNeH28mlvLgfCQpSFJWhSkLSoloUkzSpKkmRpUlRH3SpJkRkZGRkfxL/s9nwne4NdS9h9qo1FySumorzDLFbim2bF1305ngbbEOozt40LJqV4GSGMveWiO+lCfwhU3I9a4lUrbXk6056rZ8E025W6WC5dbnQutcMupcV/y1jEFZNnbYzu0ayWHwUL319Sja+3l+cfB/H45k5x0LS4lC0KStC0ktC0GSkrSoiNKkKIzJSTIyMjIzIyMjIzFMLIf6AGLduaW1nvTFH8N2hilfk9O56jkRchKmbSmmLSSSsaK3jm1YVE9JJSRvwn2ikNJONMRIiOOx3NnS6zUaO1Xaa2Vc+vHGM4/JnF5jOPdJPD4rDSawX6enUwdd0FOL4rPCUX2xkuMX3p8eTyuBCBvXpCZ7Ry5NtoDKoWb0i1LW3iWZS4lDlsMjP8XHi3hNR8avEkXdS5M08WU0RpbTHlGSnjuWi8qqJpQ11Tpn/a0pzqfa3DLsh4Lpc88rkVzU7BtjJy0s1ZH5FjUbEuxS4Qfi9zwfMjazTjJyG14881mGl9kVDbHf1LAsUtrClMyPsr0b6qjTqSR4n4+Xu9g74kpBn2JaDVYKdpaC9J1azTzb+K7Yxn64ScZrPfFdxE2aTVVPFmntj37knH1SScX7TEJ0d2T3uyqe1KR8CJg6+WT3dSSUn8UbPn3NJkoi8fikyMvgY29+GM78cdu8se3Jg3ZfJlnsw8k3vT75LcnsdcotWbD1BtzYWrFKjVtDnDGGZC/P1/HU4RJRYXEmvbjXeLxm3UmmJImnb1UVCWqhU2KzDpk03buz9m2b+po1elo1PGU6XdWo3vHxYKWYWPD85R3JvLniTc3Ytl6zWQcKLaL7aOCjYq5t1LqTljEoL5Le9FejlJQJ1xSyygAR58xun/AIByUiTsvxb3HBNyMx1KYyRmO58j5ccdtxUeszCBHUhJuurUUdrKIjLlxBbNspbV1Chxa1ue2Tt2/Z7jVbvX6RvjU359WcZlTJ9nPom+jk84cHKUyK2hsurWJ2QxVqMenjzbEuUbF9W+lvLhnKSRWj2fqzPtN5jZ4HsjHJ2M5LVLL1ocskLYlRlmfu9jVzmFOQrSrlpSao1hBffjO9loJwnW3W0dD02po1dUb9PZGyuXJrmn1xlF8YyXXGSTXXzRT7qLdPY6roShOPDD5NJ8GmsKSfHDTcTH4zngAD1uCYJluzMto8FwWjm5FlWRTUQaqqgoJTr7qiNbjzzqzQxEhRGEOSp8+U4zDgQ2X5ct9mOy44jHffVp6p3XTVdVa3pSlyS7Fxy5N4UUk3JtJJt4PVVVl1kaqouc5vdjGPV2cOSSWG20kkm28FrfhrxJxjivrpmt8YFxsvImGJWwcvYaUfvcsjU6xQU7r6SkMY5S+p6EVJpYXaSkv3EuNHdlNQoXMdr7Us2nqHLzoaettUVN8lydk0nh2T5vnurEE3jeldtn6GGiqxwldNJ22LrfVGOeUI8ly3n5zSbwtxBEkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHxzi4N4/ydoF5ViiK/Ht00EH06e7dIo8DLYMdKlN41k7jaFGZF3NNNdKQ4/Vuq9B71a1xbbM7sbbVmzZ9FbvWaObzOC4yqk/+ZVnn+3DhvrisS5xW0tmw1sHOGIaiK82XJTS5Qn/7Zc4+BWEzHDMq17ktth2bUFljOT0ck4lrTW0dUaZEeJJLQpST7oeYfaU2/Flx1uxZkZxqTFeejutuK6PTdVfXC6icbK5puM4vKa+1ST4NPDTTTWU0U2yuVU5V2RcZxeJRksST9vYuDXBriuHA8yMh8JDeJfUO2dxyKvw/JEyNi6lYMmW8anSvG7xeOtwjUvELZ81kxHaI1rKgn+dS6o1JiKqnHXZKoHamwdNtDetrxp9U+LsivMseP+bFc2/lx87t3lhEpodq3aTFc820L4jeZQX/AE5Pkv2H5uOW63ksO6M5OaX5FUzdnrLMYNjPTFRJtMRsVtVuZ0PkSScRbY+68uSlpl1Xu52cBU+kkvJUUC0loIlnQ9bs7WaCbjqaZRjnEbYpypn2btiWMtcd2W7NL0ootWm1mn1cd6mxSaWZVvhZHl6UOfB8N6OYt8pPgZ+GibQAAAAAAAAAAAGA+QnG3V3JXDnMT2NTE7IjIfXjmVVyWGMnxSa+TfnLpbFxl7wafUywU+tktyK2ybZaTLiuOMRnWN7QbQ1Ozrul088J46SqWXXalnhOKay1l7sliUW3h8Wnq6rSU6yvcujxWdya4Tg31xfHnhZTyn1rsrC8peHm0uLORnHyWIu/wWylKaxjYlTEk/IVmS/Wcj11n5JWVDkhR2Vuv0st5frEzJeqpdpCjuS09G2ZtbTbTrbrfR3xWbNPJrfjyTlHlv15eFOK4ZipKLkkU7W7Pu0U8TSlU3+btinuvqSl8meOcX/dcksmpolDSMv6O3lsHj3n1fsXW9m1AuYzKoE+LMitTau+o5EiNIn0VtFdT3cr55xGPN2M5GnxXG2pVdNiTGWZDerrNFRr6ZafUQcoN70Wm1KE1FqM4NfGjl804vLUk02jNptTbpLVbS0pLhJNZjKLabjJdjwuWGuaafEtA8TuaWs+U9ETNY43i2yayIh7Jde2MtLkxki8kOWWPTFtx05DSGpBmuRHZbmVpraatoUT1oj0vm+1NkanZk8yXS6eTxXfFYT/AGbIrPRz7m92XFxbw0rlodoU62PB7l0V59TfH50Hw34964xy1JLKb3IESSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAai8q+G+seVGPE3fMoxvP6uKbGMbFrIbTtvXIS4t5FZbR/Ujpv8AH1vOOrXWSn23Yjj78iqmV0iRJcflNmbW1OzJ/m30lEnmzTybUJclvR57lmElvpNPCUoySSWhrdn062HnLctimoWpecu6XJzjz4N8MtxabeayHIHjNtrjVk6sd2TQ+lDkuLKiy2p9edieSsoIz9WotVsR1E+hKVHIq7CPBt4qSS5IgNsOMOu9G0O0dLtCrpNPPLXp1SxG2t/twy+HWpRcoPkpNppU7VaO/Rz3L4vDxu2Ry659m7LC49sWlJdawYAG8a59GnubjHrSDd4/a2VHdVj6Zdbb086VWWlfJR38JMGfCdYlxH0dz8XmHW3E9z7KLuPM4QsjKFkYzhJYlCcVKMk+pxaaa7msCMnCSlCTjKLypRbjJPtTWGn3r1Ek+neqvyM101Fq85RR7hoo6SbJWSoVTZYhlCUpbaayqoZ8JKu5KU7LvaW8nvKUfnK+Ce1e1fkzs/UNyp39JN8X0fn1ZzzdU3ldyrnXFdhL6fberqxG3d1Ef2/Nsx8+PfwzKM3y4kkGv+rjxuyVLDGbVGea2mqJPvD82obymhZM0pNRNT8belXcgkrNae68ZjmaUpWRd1mhFfv8ltoV5dMqNQupKbrm/GNiUF/MZL1bd0k2lZG2l9bcd+C8JQzJ8f2F2m0lBzj4kZI2h2u33gMZK0pUkr+wkYo4RK7diW1lMSndbV8S8kOIQtPx8iLsfaNs2NtSrhLQ3v6OKu+upzRuw2loZ+jqal89uv8AEUT2/wDZRcZv5RWiv2uYB/WAYfybtH9Q1v8A5W//AOMye7dH+t6b+fV/rPEZDzi4kYw2p2y33gMlKEpUZY9YSMucMj7diS1ikS6dWr4/FCEKWn490kZH2zV7G2pbwjob19JFU/Xa4Ixz2loYcZamp/Mbs+qtSZqxn/Vz44Y2281hNLnmx56e/u7kWpZxaid7eX/HWGQvs3LHkZJ8fDGpHzVGavFSfBUlR5LbQsw7p0aePWnN2zXhGtOD/mGjbt3SQT6OFtzXLEdyL9cvOX8DI89l9WnkdllpDcwKBiWrqODYsTirode1lltaR2H0PFV3t1fsHHegvE2TchVFS45MdbU8j3okOEhE9p/JfZ9UWr5W6mcouO85dFGLaa3oQg87y6t+dizh7vAirtuaucl0SrpinnCXSTklyjKU00181Qb48SWTh7z217ybgRMZuvcsH3FHjJ9/xGRJS3W5K40y69KscFkSZDsiwjIZYclS6aSpVxVN+p5HZQo6rZ2r7W2Jfs2Tshm7SN+bcl51eWko3JLEW28Ka8yXD0W91Tmg2nVrEoSxXqEuNbfCfBtupt5a4ZcX50V2pbxv2IQlDzuWYljGdY9aYnmVFWZLjd3FchWlNbxGpkGYw4X8FbTpH4Otq7Ox5DRokRX0NyIzrT7bbifdVtlNkbaZyrsg8xnB7sk+HWvDDXJrg00eLK4WwlCyMZwmsOMllNf74prinxTyV0+aXTZyXTXytsrSzFll+q2ifsLigMzmZRr6I222p111SnFSckx1pZvOfKUdhVlUw097ll+PGkXjt/2R5Q16vc0+scadTwjCzlVe+OEuGKrHwW63uzk/MaclBVTaOyJ6feu0+bKMNyg+M6lw4vrnBceK4xXpJpORFKLMQp9rHMkv8PvarJ8WubHH8hpJjU+ouqiW9Asa+Yyfdt+LKYUh1tZEakKIleLjaltOJW2tST8WV13QlXbCNlc4uM4TSlGSaaw0+GP/AORCbrlCcZOE4vMZQbTTfWmvtLDnCzqW4/tFFRrLfMytxPZCks19Lmjqo9bimbOoZQ2y3ZOOvNRseyqc4nsmORNUtxMX6VYdfLkQ6d2h7Y8nbNNv6nQqVun4znSsytpWeO6sZsqjlceM4R4ycknMteztsQv3adU413PhGzhGu3x6oTfZ6MpcI4bjFy5CrE6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHl8xwrEdh49YYpnON02V43aNG1Opr2BHsYL3YlEh1LMhDhMSo6j9WLMYNqXDfJD8V9l9tDiclN1tFkbabJ1WReYzhJxku7K5rqaeU1waaPFlcLYOuyEZwlwcZJNePHk+xrinhrkQmckOkZJJ6wyjjTeMLjqJT/7l+XT3G3mTJPc4+MZjMccRIJxZkmPBypUY2UktyRk75qQ0i47P8qViNW0YPK4e6aorD5cbKUljvlVnPBKpcWV3WbCeXPRyWOfQ2S4+ELHz7lPHHnMhrz/AFlsLVV2vHNj4bkWF3KDc8IWQVcmAcptpSUrkV8h1BRbSH3WjwnV78qI4S0KbfWlaTO20amjVQVmnuruh2wkpYz1SXOL/Zkk+fDmQFtNtEty6udcuyUWs96fJrvTa7zwwzGMAAAAAAAAAAyTqzXm1dh5VXV+osZy3IMqizIsiFIxOPNTJp5SVm5FsH7iMphigQw40bqbSbNgsRjbN05Lfgai19TfpaKpS1dlVdUotNWtYmuGYqDzKeU8bqjJvOMZ4rJRVfbNKiFk5pprcTzF9T3lhR8cpJ584trcYK7kLUarqq7kpZ4xb57FNDbM7H31ybA6lMdhMdjLJTMdipm5Iw6l0pk+lN2DLbU0tb0mUmRMlcu2lLQT1MpbPjZCjm1Yko7+Xl1JtyjW1jEZ4kuPJNJXnRrVRoitY4StXXB5e7hYU3hRc11yjwfDi2nJ7EjQNsACH3ml0y6XYx2uzePkOvxrPXVPTr7ASW1X4zmD61uPyJ1KtZpi45kb6ln6kc/RoLVwkLcKpmKlzp1r2R5Rz0+7pte5WULEYX+lZUuSjPrsrXbxsiuC31iMYHaOyI3b12lShbhuVXKFjzluPJRn3ejL9l5br331BeYtc2OO5NT2eP39PKcg21LcwpNbaVsxo+zkadBmNsyYzyO5GbbzaFdjJXbsZGL3CcLYRsrnGyE1mM4SUozT64yi2mu9MqsoShJwmpwlF4lGSakn2NPiu/1958kegS58LepfkGrzqdZb6l2WV66QpivpM1X7xZZXhbTjrLLTNo46+4/kGKQWvI0tJQ7e1MZBtV52URmFUsVba/k7Xqd/UaFRq1HGU6eEarnxbceGK7ZPr4Qk+Mt1tzc5s7bE6d2nVSc6UsRtw3OtdW9xzOC9corlvJKJYaxzI8fzCiqsnxe4rsgx68htWFRc1MtmdXWEN8vxb8WVHWtpxJmRoURK8kOJW04lLiFoTQ7K7KpzqthKuyDcZwmnGUWuaaeGmWqE42RjOElKElmMovKa7Uz7Y8HoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPMZbhWIZ9SysczfF6DLaGYk0yKjI6mDc17n5DS57rPYfaQ82okuMvISl5l1CHWnEOISoslV11E1ZRZZVYs4nXKUJLuzFp4fWuTWUzxZXXbFwthGyD5xnFSXsaZHZs/pQcZ83dkz8OXluqrJ1Bm2zjlqVzjhSDI+7z9LkqLGZ4Grsr3atvKqOki8WkNJPsU/pvKfaNKUbei1MU+Lsi4WY7FOtxXrlCb7ckTdsPR2ZdW/RJ/IlvQz3xnl47oyijRnM+jft6tU6vAtqYBlbCF9228ig3uGz3GzV2LxahsZdC9Ukn5LS5YNIMiV4uGrxSqZp8rdLL3/S31P/pyhdH2ydL9kWRtmwNQverqp8eU96t49Smvr/oa73PTC5lVSlFE1vUZC2g1d3qbPcIbSaUpNXmlq7vaaSsldvFKEsG8pXYia+PwkIeUeyJc9ROHdOi7P+CE19eO81ZbG2hHlTGfzba//dKLfsz3Hk/3u3mZ6/u37iFt6n/S/CjAvQ/gep/9lfhV7r/B+H/Hfw/xf/GfNGT8v7Ixn3ZH+Vfn2dFn6jx+StoZx7mlyznfqx7ekxk9XTdMLmXauIRL1tU4+2vsZSbnPcHW2lJkkyUtqlvrmWj4KMjQqMTqfFRKQR9u+OflHsiPLUTn3Qouz/jhBfXjvPcdjbQlzpjB8sytr+2Lk/qNisI6OG3LF1hzYO08BxSEs21vNYzDvMws20GZm60tqdFxOvQ/2IkktqwlspNRr7uEjwXH3eVulin0GmvtfU7HCqP+F2yx18Yp+Bt17Avfvt9UF2QUrH9ahx9bN5dX9KDjRhDkafmS8r2taMmhxbWRWnyLjnrtn5Icao8aKvlra8uxuRLW7t4r3bwdaW0pbaobU+U+0bsxp6LSxfLo479mO+dm8srPOMINZ4YZI07D0deHbv3yXy3uwz3Qhh47pSkiRTE8MxHAqaPj2E4xQ4lRRiT6NTjtTBp4CFJbbYJw40Blhpb6m2m0OPuJW86SEm44oy7nAW3W3zdl1lls3znZKU5c28Zk28Zb4cllktCuuqO7XCMIrlGEVFexYR6YYz2AAAAAaXcs+E2suUtK5Mmss4ns+vhONY9sKthse9umhsijVWVsIS25kNClSSJlh55E6q83namVHQ9MjTZfZe2NTs2eIt26aTzZp5SeO+Vb49HPtaW7PCU08RcY/XbOp1scvzLkvMtill9kbPlw+uPHday06xu8dCbM48ZpJwjZlCurnF6z9Rax1KlUGTVjTymUW+P2fg0ibCdMkmtpxEewgrcTGs4UGYS46ejaLXafX0q7TT3o4ipwfCdcsZ3LI9Ul8pZjLnGUlxKbqdLdpLHXdHday4yXGMk2/Og8cV7GstSinwMNDbMJubxI5p7I4t5FHjRZUrJtWWU9l3KcAmSDcj+ktZpk22LOvr8aPIENrW55sKagW6m2WLhl8mokmFEbU2Rp9pVttKvUxj+aviuOeqNmPTrfDg8yhxcGstPf0O0btFNJOU6G8zqfFLtlDPozfdwlhKSeE1bEx+9q8poaTJqOUifS5FUVt7TzWyMm5lXbw2bCvloJREokSIkhl5JKIjIlkR/EhzGyEqpzrmt2dc5Qmn8WUG4yT8Gmi7xlGcYzi8xnFSi+pxkk0/WmfXHg9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGLdv6Z11vbC52BbMx2Nf0Uw/WjrNSo9nT2KELRHt6Oya8ZNZZxfNXpvsqNt5pTsOczLgSJMV/Z0mr1GiujfprHXZHg+uM4vnCceUovrT7mmpJNYNRp6dTW67oKcXy6pRfyoy4OLXdz5NNNp1k+XvBPY3F+yevInvWb6lnSibqc3iRPGRVOOoJaKvMIEdTpVUxK/NmNZJV8kWyUIcYchzHXKqL0XZW2tPtKKhLFOqSzKlvCk18amT9JZ87d9OHJ5S33T9fsy7RPeTdtDfm2JPMf2bEvRfY+MZdWH5sdZ9O6bz/eudU2Aa8o5dvbWkuO1KlojyFVWP17ryW5N7kM5pp1usp4DZqekSXS83TQmLDalTn40V6R1ero0VM79RNQjFNpZSlZJLKhXFtb05ckl4tqKbWnp9PbqbI1VRcpSaTeHuxT5yk8cIrm36ll4Rcl13h8XXmv8FwCC+5KhYNh2MYfDkvf8bIi4zSQaWO+7/wDdHWYSHF/95Rjkt9rvvuvkkpXW2WtLknZNzaXcm+HgX+qtVVVVJ5VdcK0+1Qiop+tI9iMRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/m600+04w+028y82tp5l1CXGnmnEmhxpxtZKSttaVGhaFEpKkqNKiMjMjZaeU8NcU1zT7V4dQazwZ8qnx3H8cZdYx6ipqJh9aXH2KashVbTziSMkLdbhMMIcWklKJKlkai8jIj7GY9zsssebJzm1yc5Sk165NnmMIQ9GMY557sUs+OEj7I8HoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/Z":yield $.captureActiveTab(m.id);if(s.restricted.domains=[...h],null!=e){l("chrome.tabs.query about to call sendToLinewize"),s.screenshot=e;const t=O.getDeviceTimezone(),n=$.activeConfigurations.filter((e=>(0,a.qm)(t,e)));if(void 0===n||0===n.length)return void l("No currently active configurations for user, no need to upload screenshot");const r=n[0].identity,o=n[0].endpoint,A=new Set;for(const e of n)(0,a.VH)(e).forEach((e=>A.add(e))),r!==e.identity&&u(`different \`identity\` values returned within multiple active configs ${n}`),o!==e.endpoint&&u(`different \`endpoint\` values returned within multiple active configs ${n}`);const d=Array.from(A);if(n.length>1&&l(`will send screenshot to ${d.length} teachers from ${n.length} currently active configurations`),s.email=r,s.teacherIds=d,i)return $.tabUpdateClasswizeMessage(s).then((()=>l("sent update window message to agent")),(e=>l(`failed to send update window message to agent: ${e}`))),void $.resetScreenshotUploadInterval();const p=O.getApplianceId();try{const e=chrome.runtime.getManifest(),t=yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json",baggage:Y(p,r,e.version)},body:JSON.stringify(s)});s.screenshot="LOG_OMITTED",s.favicon="LOG_OMITTED",200===t.status?l("Uploaded screen shot of tab",s):c("Failed to upload screen shot of tab",s),$.resetScreenshotUploadInterval()}catch(e){(0,g.DP)(e),u("Fetch threw an exeption while uploading tabs screenshot",e)}}}}else d("DevTools is the active tab, skipping screenshot")}))}static resetState(){$.initialised=!1,$.activeConfigurations=[],$.runningConfigs=[],$.tabsToRestoreAtFocusEnd=[],$.userTabsToRestoreAtPauseEnd=[],$.focusTabsToRestoreAtPauseEnd=[],$.previousFocusTabs=[],$.lastScreenshotUrl="",$.lastScreenshotTime=0,$.pageCompleteSentForURL=!1,$.isFocusActive=!1,$.isLockActive=!1,$.focusingInProgress=!1,$.stopFocusingInProgress=!1,$.lockingInProgress=!1,$.stopLockingInProgress=!1,$.init()}static getLastFocusedWindow(){var e;return Q(this,void 0,void 0,(function*(){const t=yield chrome.windows.getLastFocused({windowTypes:["normal","popup"]});return"popup"===t.type&&(null===(e=t.tabs)||void 0===e?void 0:e.find((e=>e.url&&e.url.includes((0,a.E4)()))))?yield chrome.windows.getLastFocused({windowTypes:["normal"]}):t}))}static transformSegmentToTabsUpdateRequest(e){var t;return Q(this,void 0,void 0,(function*(){const n=new X.WindowUpdate;n.setChromeId(e.chrome_id),n.setTabId(e.tab_id),n.setTitle(e.title),n.setUrl(e.url),n.setFavicon(e.favicon),n.setAction(e.action),n.setScreenshot(e.screenshot),n.setEmail(e.email),n.setChromeWindowId(e.chrome_window_id),n.setTeacheridsList(e.teacherIds),n.setBackgroundTabsList(null===(t=e.background_tabs)||void 0===t?void 0:t.map((e=>{const t=new X.WindowUpdate.BackgroundTab;return t.setFavicon(e.favIcon),t.setTaburl(e.tabUrl),t.setTitle(e.title),t.setTabId(e.tab_id),t})));const r=(yield chrome.windows.getAll()).find((e=>e.focused));return n.setInFocus(!!r),n}))}static tabIsBrowserInternalByUrl(e){return!!((null==e?void 0:e.startsWith("chrome"))||(null==e?void 0:e.startsWith("edge"))||(null==e?void 0:e.startsWith("extension://")))}static tabIsLinewizePageByUrl(e){var t,n,r;const i=null!==(t=O.getClosedTabUrl())&&void 0!==t?t:"",o=null!==(n=O.getLockUrl())&&void 0!==n?n:"",a=null!==(r=O.getBlockPageUrl())&&void 0!==r?r:"";if(i){const t=(0,L.A)(i,{stripProtocol:!0});if(null==e?void 0:e.includes(t))return!0}if(o){const t=(0,L.A)(o,{stripProtocol:!0});if(null==e?void 0:e.includes(t))return!0}if(a){const t=(0,L.A)(a,{stripProtocol:!0});if(null==e?void 0:e.includes(t))return!0}return!1}static tabIsBrowserInternalByID(e){return Q(this,void 0,void 0,(function*(){const t=yield(0,a.K3)(e);return!!(null==t?void 0:t.url)&&$.tabIsBrowserInternalByUrl(t.url)}))}static tabRemoved(e){for(const t of $.activeConfigurations)if((0,a.qm)(O.getDeviceTimezone(),t)){const n={email:t.identity,teacherIds:(0,a.VH)(t),tab_id:e,action:"remove"};if(k.isCompanionAvailable())return void $.tabUpdateClasswizeMessage(n);fetch(t.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}).catch((e=>{(0,g.DP)(e),c(e)}))}}static tabUpdateClasswizeMessage(e){return Q(this,void 0,void 0,(function*(){const t=yield this.transformSegmentToTabsUpdateRequest(e);Z.UpdateTabs(t)}))}static shouldFocus(e){return e.apply_focus}static startOrUpdateFocus(e){return Q(this,void 0,void 0,(function*(){yield $.tabsDataCache.waitTillCacheLoaded(),l("starting/updating focus"),$.isFocusActive&&JSON.stringify($.previousFocusTabs)===JSON.stringify(e)?l("skipping focus update since focus did not change"):$.focusingInProgress?l("skipping focus update since focusing is in progress."):($.focusingInProgress=!0,$.maximizeIfWindowIsMinimized(),yield $.addFocusTabsAndCleanUp(e,$.isFocusActive),$.isFocusActive=!0,$.saveTabDataToCache(),$.focusingInProgress=!1)}))}static stopFocus(e=!1){return Q(this,void 0,void 0,(function*(){if(yield $.tabsDataCache.waitTillCacheLoaded(),!$.isFocusActive)return;if($.stopFocusingInProgress)return;if($.stopFocusingInProgress=!0,l("stopping focus"),e)return $.userTabsToRestoreAtPauseEnd=$.userTabsToRestoreAtPauseEnd.concat($.tabsToRestoreAtFocusEnd),$.tabsToRestoreAtFocusEnd=[],$.isFocusActive=!1,$.previousFocusTabs=[],$.saveTabDataToCache(),void($.stopFocusingInProgress=!1);yield $.addFocusTabsAndCleanUp($.previousFocusTabs.map((e=>({url:e.url,open_tab:!1}))),$.isFocusActive);const t=$.tabsToRestoreAtFocusEnd.filter((e=>""!==e&&!($.tabIsBrowserInternalByUrl(e)||$.tabIsLinewizePageByUrl(e)))),n=yield $.loadPreviousTabs(t);d(`Focus is stopped, restored ${n} tabs`),$.tabsToRestoreAtFocusEnd=[],$.isFocusActive=!1,$.previousFocusTabs=[],$.saveTabDataToCache(),$.stopFocusingInProgress=!1}))}static lockTabs(){return Q(this,void 0,void 0,(function*(){yield $.tabsDataCache.waitTillCacheLoaded(),$.isLockActive||$.lockingInProgress||($.lockingInProgress=!0,yield $.maximizeIfWindowIsMinimized(),l("starting lock"),yield $.addPauseTabAndCleanUp(),$.isLockActive=!0,$.saveTabDataToCache(),$.preventNewTab(),$.preventNavigation(),$.lockingInProgress=!1)}))}static stopLock(e=!1){return Q(this,void 0,void 0,(function*(){if(yield $.tabsDataCache.waitTillCacheLoaded(),!$.isLockActive)return;if($.stopLockingInProgress)return;$.stopLockingInProgress=!0,l("stopping lock"),$.allowNewTabs(),$.allowNavigation(),e&&$.userTabsToRestoreAtPauseEnd.length>0&&($.tabsToRestoreAtFocusEnd=$.tabsToRestoreAtFocusEnd.concat($.userTabsToRestoreAtPauseEnd),$.userTabsToRestoreAtPauseEnd=[]);let t=$.focusTabsToRestoreAtPauseEnd.concat($.userTabsToRestoreAtPauseEnd);t=t.filter((e=>""!==e&&!($.tabIsBrowserInternalByUrl(e)||$.tabIsLinewizePageByUrl(e)))),e||0!=t.length||t.push("chrome://newtab");const n=yield $.loadPreviousTabs(t);if(d(`Lock Internet is stopped, restored ${n} tabs`),$.focusTabsToRestoreAtPauseEnd=[],$.userTabsToRestoreAtPauseEnd=[],!e||n>0){const e=O.getLockUrl();yield $.cleanupTabs(e||"")}$.isLockActive=!1,$.saveTabDataToCache(),$.stopLockingInProgress=!1}))}static getOpenTabIdsAndUrls(){return Q(this,void 0,void 0,(function*(){const e=[],t=[],n=yield chrome.tabs.query({});for(const r of n)r&&r.url&&r.id&&r.url!==(0,a.E4)()&&(e.push(r.url),t.push(r.id));return{tabIds:t,openTabsUrls:e}}))}static cleanupTabs(e){return Q(this,void 0,void 0,(function*(){const t=(yield chrome.tabs.query({})).filter((t=>t&&t.id&&t.url&&t.url.toLowerCase()===e.toLowerCase())).map((e=>e.id));yield this.removeTabs(t)}))}static addPauseTabAndCleanUp(){return Q(this,void 0,void 0,(function*(){if(this.isLockActive)return;const e=O.getLockUrl(),{tabIds:t}=yield this.getOpenTabIdsAndUrls();for(const e of t){const t=yield(0,a.K3)(e);if(!t)continue;const n=t.pendingUrl?t.pendingUrl:t.url;n&&(this.isFocusActive?this.focusTabsToRestoreAtPauseEnd.push(n):this.userTabsToRestoreAtPauseEnd.push(n))}yield $.createTabs([{url:e}]),yield this.removeTabs(t)}))}static addFocusTabsAndCleanUp(e,t=!1,n=!0){var r;return Q(this,void 0,void 0,(function*(){l("adding and cleaning up tabs");const{tabIds:i,openTabsUrls:o}=yield this.getOpenTabIdsAndUrls(),s=[],A=new Set,c=new Set,u=null!==(r=O.getClosedTabUrl())&&void 0!==r?r:"";for(const t of e){const e=!!$.previousFocusTabs.find((e=>e.url===t.url&&e.open_tab===t.open_tab)),r=t.url,o=(0,L.A)(r,{stripWWW:!1}),l=C()(o).domain;let d=!1,p=!1;for(const e of i){const t=yield(0,a.K3)(e);if(!t)continue;const s=yield $.tabIsBrowserInternalByID(e),h=t.pendingUrl?t.pendingUrl:t.url;if(h){const t=!!O.getMultipleFocusAllowedDomains().find((e=>h.indexOf(e)>=0)),f=(0,a.U4)(h,o)||t&&h.indexOf(r)>=0,m=n&&!s&&l===C()(h).domain;(!t&&m||f||(0,a.U4)(h,u)&&1===i.length)&&(A.add(e),c.add(h),d=d||f,p=p||m)}}t.open_tab&&(!e||!p)&&!d&&s.push({url:o})}$.previousFocusTabs=e,t||($.tabsToRestoreAtFocusEnd=$.tabsToRestoreAtFocusEnd.concat(o.filter((e=>!c.has(e)))));const d=i.filter((e=>!A.has(e)));i.length+s.length-d.length<=0&&s.push({url:u}),l(`adding ${s.length} focus tabs and removing ${d.length} user tabs`),yield $.createTabs(s),yield $.removeTabs(d)}))}static createTabs(e){return Q(this,void 0,void 0,(function*(){for(const t of e)yield chrome.tabs.create(t)}))}static shouldLock(e){var t;return O.getLockUrl()&&(null===(t=e.locked_users)||void 0===t?void 0:t.includes(e.identity))}static loadPreviousTabs(e){return Q(this,void 0,void 0,(function*(){const t=e.length;if(t>0){const t=e.pop();yield chrome.tabs.create({url:t});const n=200;let r=0;e.forEach((e=>{r+=n,oe.createNewTabWithDelay(e,r)}))}return t}))}static maybeDeactivateFocusAndOrLock(e,t){return Q(this,void 0,void 0,(function*(){e||t?e&&!t?yield $.stopLock(e):t&&!e&&(yield $.stopFocus(t)):(yield $.stopLock(),yield $.stopFocus())}))}static scheduleFocusAndLockCheckAtNextClassEnd(){const n=O.getDeviceTimezone(),r=R.c9.now().setZone(n),i=r.toMillis(),o=[];if($.runningConfigs.forEach((e=>{const t=1e3*e.timeout>=i?e.timeout:0,n=e.periods.filter((e=>{if(a.EZ.get(r.weekday)!==e.day)return!1;if(t){const n=1e3*t;if(r.set({hour:e.endTime/100,minute:e.endTime%100,second:0,millisecond:0}).toMillis()=n.toMillis()&&e<=i.toMillis()){s=i.toMillis();break}}s||(s=e)}else{const e=(0,a.Jf)(O.getDeviceTimezone(),n);s=e?r.set({hour:e.endTime/100,minute:e.endTime%100,second:0,millisecond:0}):null}o.push(s)})),o.sort(((e,t)=>e-t)),0===o.length)return;const s=o[0],A=s-i+1e3;l(`scheduling focus/lock deactivation check to run at next config expiry, unixMs ${s}`);const c=()=>{let e=!1,t=!1;for(const n of $.runningConfigs)(0,a.qm)(O.getDeviceTimezone(),n)&&($.shouldFocus(n)&&(e=!0),$.shouldLock(n)&&(t=!0));$.maybeDeactivateFocusAndOrLock(e,t)};A<=0?c():e.CacheScheduler.setTimeout(t.Yk.FocusLockCheckTimeout,c,A)}static close_tab(e,t,n){if(1===e.length&&O.getClosedTabUrl())void 0!==n&&chrome.tabs.update(n,{url:O.getClosedTabUrl()});else{let r=null;for(const t of e)if(void 0===t.url||!t.url.startsWith("chrome")&&""!==t.url&&t.id!==n){r=t;break}r||chrome.tabs.create({url:O.getClosedTabUrl()}),void 0!==n&&this.removeTab(n,t)}}static removeTabs(e){return Q(this,void 0,void 0,(function*(){for(const t of e)$.removeTab(t)}))}static removeTab(e,t=()=>{}){return Q(this,void 0,void 0,(function*(){chrome.tabs.discard(e,(e=>{e.id&&chrome.tabs.remove(e.id,t)}))}))}static checkTabsForRuleViolations(){return Q(this,void 0,void 0,(function*(){const e=yield chrome.tabs.query({});e.forEach((t=>Q(this,void 0,void 0,(function*(){(yield V.getPolicyChangeVerdict(t.url)).verdict!==M.ALLOW&&(l(`Tab ${t.id} matches a blocked rule, closing...`),$.close_tab(e,(()=>oe.printBlockedMessageWithDelay(t.favIconUrl,t.id,2e3)),t.id))}))))}))}static maximizeIfWindowIsMinimized(){return Q(this,void 0,void 0,(function*(){const e=yield chrome.windows.getCurrent();e&&(chrome.windows.update(e.id,{focused:!0}),l("Companion mode: window is maximized"))}))}static preventNavigationHandler(e){return e.url.indexOf("linewize.net")>=0||e.url.indexOf("fzbox.tools")>=0||e.url.indexOf("clients3.google.com/generate_204")>=0||e.url.startsWith("chrome-extension://"+chrome.runtime.id)||e.url.startsWith(t.Ui)?{}:{redirectUrl:O.getLockUrl()}}static preventNavigation(){chrome.webRequest.onBeforeRequest.hasListener($.preventNavigationHandler)||chrome.webRequest.onBeforeRequest.addListener($.preventNavigationHandler,{urls:[""]},["blocking"])}static allowNavigation(){chrome.webRequest.onBeforeRequest.hasListener($.preventNavigationHandler)&&chrome.webRequest.onBeforeRequest.removeListener($.preventNavigationHandler)}static preventNewTab(){chrome.tabs.onCreated.hasListener(ee)||chrome.tabs.onCreated.addListener(ee)}static allowNewTabs(){chrome.tabs.onCreated.hasListener(ee)&&chrome.tabs.onCreated.removeListener(ee)}}$.initialised=!1,$.activeConfigurations=[],$.runningConfigs=[],$.tabsDataCache=new e.CachedStorage(t.Yk.TabsDataCacheId),$.tabsToRestoreAtFocusEnd=[],$.userTabsToRestoreAtPauseEnd=[],$.focusTabsToRestoreAtPauseEnd=[],$.previousFocusTabs=[],$.lastScreenshotTime=0,$.pageCompleteSentForURL=!1,$.isFocusActive=!1,$.isLockActive=!1,$.focusingInProgress=!1,$.stopFocusingInProgress=!1,$.lockingInProgress=!1,$.stopLockingInProgress=!1;const ee=e=>Q(void 0,void 0,void 0,(function*(){(yield chrome.tabs.query({})).length<=1||e.pendingUrl!==(0,a.E4)()&&e.id&&$.removeTab(e.id)}));var te,ne;(ne=te||(te={})).FocusIsActive="lw_focusIsActive",ne.LockIsActive="lw_lockIsActive",ne.TabsToRestoreAtFocusEnd="lw_tabsToRestoreAtFocusEnd",ne.UserTabsToRestoreAtPauseEnd="lw_userTabsToRestoreAtPauseEnd",ne.FocusTabsToRestoreAtPauseEnd="lw_focusTabsToRestoreAtPauseEnd",ne.PreviousFocusTabs="lw_previousFocusTabs",ne.LastScreenshotUrl="lw_lastScreenshotUrl",ne.LastScreenshotTime="lw_lastScreenshotTime",ne.PageCompleteSentForURL="lw_pageCompleteSentForURL";var re=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class ie{static init(){ie.initialised||(ie.initialised=!0,ie.registerEventHandlers())}static print_message(e,t){var n,r;return re(this,void 0,void 0,(function*(){const i=yield chrome.windows.getCurrent(),o=!!(null===(n=i.type)||void 0===n?void 0:n.startsWith("normal")),a=yield chrome.windows.getAll();let s=null;if(!o)for(const e of a)e.id&&((null===(r=e.type)||void 0===r?void 0:r.startsWith("normal"))?(s=e.id,chrome.windows.update(e.id,{focused:!0})):chrome.windows.update(e.id,{focused:!1}));const A=o?{currentWindow:!0}:{windowId:s},c=yield chrome.tabs.query(A),u=c.find((e=>e.active));if(u&&u.url&&!u.url.startsWith("chrome://"))return void ie.printMessage(e,t);const l=c.find((e=>e&&e.url&&!e.url.startsWith("chrome://")));l&&l.id?(yield chrome.tabs.update(l.id,{active:!0}),ie.printMessage(e,t)):ie.addPendingMessage(e,t)}))}static print_close_tab_message(e,t){return re(this,void 0,void 0,(function*(){const n=yield chrome.tabs.query({currentWindow:!0}),r=n.find((e=>e.active));if(r&&r.url&&!r.url.startsWith("chrome://"))return void ie.printCloseTabMessage(e,t);const i=n.find((e=>e.url&&!e.url.startsWith("chrome://")));i&&i.id&&(yield chrome.tabs.update(i.id,{active:!0}),ie.printCloseTabMessage(e,t))}))}static registerEventHandlers(){chrome.tabs.onUpdated.addListener(ie.displayPendingMessages),chrome.windows.onFocusChanged.addListener((e=>re(this,void 0,void 0,(function*(){if(e!==chrome.windows.WINDOW_ID_NONE){const t=yield chrome.tabs.query({active:!0,windowId:e});t.length&&ie.displayPendingMessages(t[0].id,{status:t[0].status},t[0])}}))))}static addMessageContainer(){return re(this,void 0,void 0,(function*(){const e=yield(0,a.e6)();if((null==e?void 0:e.id)&&!(yield $.tabIsBrowserInternalByID(e.id))){const t=e.id;yield(0,a.oq)({target:{tabId:t},func:()=>{if(null==document.getElementById("linewize-message-container")){const e=document.createElement("div");e.id="linewize-message-container",document.body.appendChild(e)}}})}}))}static addFadeFunctions(){return re(this,void 0,void 0,(function*(){const e=yield(0,a.e6)();if((null==e?void 0:e.id)&&!(yield $.tabIsBrowserInternalByID(e.id))){const t=e.id;yield(0,a.oq)({target:{tabId:t},files:["/background/assets/scripts/addFadeFunctions.js"]})}}))}static addPendingMessage(e,t){5===ie.pendingMessages.length&&ie.pendingMessages.shift(),ie.pendingMessages.push({message:e,timestamp:t})}static injectCssIfRequired(){return re(this,void 0,void 0,(function*(){const e=yield(0,a.e6)();if((null==e?void 0:e.id)&&!(yield $.tabIsBrowserInternalByID(e.id))){const t=e.id;(yield(0,a.oq)({target:{tabId:t},files:["/background/assets/scripts/shouldInjectCSS.js"]}))[0]&&((0,a.cz)()?yield chrome.tabs.insertCSS(t,{file:"/background/assets/css/messageStyles.css"}):yield chrome.scripting.insertCSS({target:{tabId:t},files:["/background/assets/css/messageStyles.css"]}))}}))}static printMessage(e,t){return re(this,void 0,void 0,(function*(){e=e.split("\n").join(" ").replace(/"/g,""").replace(/\\/g,"\"),ie.addMessageContainer(),ie.injectCssIfRequired(),yield ie.addFadeFunctions();const n=yield(0,a.e6)();if((null==n?void 0:n.id)&&!(yield $.tabIsBrowserInternalByID(n.id))){const r=n.id;yield(0,a.oq)({target:{tabId:r},func:(e,t)=>{window.lwMsgingMessage=e,window.lwMsgingTimestamp=t},args:[e,t]}),yield(0,a.oq)({target:{tabId:r},files:["/background/assets/scripts/createMessageScript.js"]})}oe.captureTabAndSendWithDelay(2e3)}))}static printCloseTabMessage(e,t){return re(this,void 0,void 0,(function*(){ie.addMessageContainer(),ie.injectCssIfRequired(),yield ie.addFadeFunctions();const n=yield(0,a.e6)();if((null==n?void 0:n.id)&&!(yield $.tabIsBrowserInternalByID(n.id))){const r=n.id;yield(0,a.oq)({target:{tabId:r},func:(e,t)=>{window.lwMsgingTabFavicon=e,window.lwMsgingTimestamp=t},args:[e,t]}),yield(0,a.oq)({target:{tabId:r},files:["/background/assets/scripts/createCloseTabMessage.js"]})}oe.captureTabAndSendWithDelay(2e3)}))}static printBlockedTabMessage(e,t){return re(this,void 0,void 0,(function*(){ie.addMessageContainer(),ie.injectCssIfRequired(),yield ie.addFadeFunctions();const n=yield(0,a.e6)();if((null==n?void 0:n.id)&&!(yield $.tabIsBrowserInternalByID(n.id))){const r=n.id;yield(0,a.oq)({target:{tabId:r},func:(e,t)=>{window.lwMsgingTabFavicon=e,window.lwMsgingBlockedTabId=t},args:[e,t]}),yield(0,a.oq)({target:{tabId:r},files:["/background/assets/scripts/createBlockedTabMessage.js"]})}oe.captureTabAndSendWithDelay(2e3)}))}}ie.initialised=!1,ie.pendingMessages=[],ie.displayPendingMessages=(e,t,n)=>{if(t&&"complete"===t.status&&n&&n.active&&n.url&&!n.url.startsWith("chrome://")){for(const e of ie.pendingMessages){const{message:t,timestamp:n}=e;ie.printMessage(t,n)}ie.pendingMessages.length=0}};class oe{static init(){oe.initialised||(oe.initialised=!0,oe.registeredCallbacks={[t.Jt.CaptureTabAndSend]:$.captureTabAndSend,[t.Jt.ConfigUpdate]:wd.configUpdate,[t.Jt.ConfigUpdateBackoffRetry]:wd.configUpdateBackoffRetry,[t.Jt.SendRuntimeMessage]:chrome.runtime.sendMessage,[t.Jt.PrintBlockedMessage]:ie.printBlockedTabMessage,[t.Jt.CreateNewChromeTab]:chrome.tabs.create})}static registerCallbacks(){Object.keys(oe.registeredCallbacks).forEach((t=>{e.CacheScheduler.registerUniqueScheduleCallback(t,oe.registeredCallbacks[t])}))}static runFunctionWithDelay(t,n=[],r){e.CacheScheduler.setUniqueTimeout(t,oe.registeredCallbacks[t],n,r)}static captureTabAndSendWithDelay(e){oe.runFunctionWithDelay(t.Jt.CaptureTabAndSend,void 0,e)}static configUpdateWithDelay(e,n){oe.runFunctionWithDelay(t.Jt.ConfigUpdate,[e],n)}static configUpdateBackoffRetry(e){oe.runFunctionWithDelay(t.Jt.ConfigUpdateBackoffRetry,void 0,e)}static sendRuntimeMessageWithDelay(e,n){oe.runFunctionWithDelay(t.Jt.SendRuntimeMessage,[e],n)}static printBlockedMessageWithDelay(e,n,r){oe.runFunctionWithDelay(t.Jt.PrintBlockedMessage,[e,n],r)}static createNewTabWithDelay(e,n){oe.runFunctionWithDelay(t.Jt.CreateNewChromeTab,[{url:e}],n)}}oe.initialised=!1,oe.registeredCallbacks={};var ae,se,Ae,ce;class ue{static init(){ue.loginInitialised||(ue.loginInitialised=!0,ue.registerEventHandlers())}static registerEventHandlers(){chrome.runtime.onMessage.addListener(((e,t,n)=>{"SignIn"===e.greeting&&(ue.login(),n({}))}))}static login(e=!1){return n=this,r=void 0,o=function*(){if(d("login(force) was called"),yield O.waitTillConfigLoaded(),O.getInsideCloudSafeNetwork())return;if(O.studentAutoEnrolmentEnabled()&&O.getInsideDeviceNetworkAuthenticated())return;if(O.isPlatformMismatch())return void d("[Enable Browser Extension for Chromebooks] is on, skip authenticating with appliance");if(!e){if(!O.getInsideDeviceNetwork()||!O.getGoogleClassroomExtensionLogin())return;if(!(ue.lastLoggedInTime+6e5<(new Date).getTime())&&O.getInsideDeviceNetworkAuthenticated())return void d("login(force) will be ignored")}l("Attempting to authenticate with appliance"),d("Requesting identity token from chrome");const n=yield pe.getLoggedInUser();d("Chrome provided a email identity via ::getProfileUserInfo"),l("Identity retrieved was: "+n),l("Sending request to chromelogin.linewize");try{const r=yield fetch("http://chromelogin.linewize.net?gto="+n+"&signedin=true");if(200===r.status){if(l(":: chromelogin.linewize returned success ::"),ue.lastLoggedInTime=(new Date).getTime(),!e){const e=(yield r.json()).data;(null==e?void 0:e.user)&&e.user!==O.getCurrentUserInfo().user&&(u(":: on-network user mismatch, re-initializing config + on-network status to resolve ::"),oe.configUpdateWithDelay(!1,t.e6.ConfigLoadTimeout_ms))}}else c("chromelogin.linewize returned a failure, "+r.statusText)}catch(e){(0,g.DP)(e),c("caught exception while executing fetch login request, "+e)}},new((i=void 0)||(i=Promise))((function(e,t){function a(e){try{A(o.next(e))}catch(e){t(e)}}function s(e){try{A(o.throw(e))}catch(e){t(e)}}function A(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(a,s)}A((o=o.apply(n,r||[])).next())}));var n,r,i,o}}ue.loginInitialised=!1,ue.lastLoggedInTime=0,(se=ae||(ae={})).US="syd-1",se.AU="syd-2",se.UK="uk-1",se.BETA="beta-1",se.SIT="sit",(ce=Ae||(Ae={})).PRD="http://fzbox.tools",ce.STG="http://stg.fzbox.tools",ce.SIT="http://sit.fzbox.tools";class le{static getAllRegions(){return Object.values(ae)}static getSafetyProbeServiceUrl(){var e;switch(null!==(e=O.getActiveRegion())&&void 0!==e?e:""){case ae.US:case ae.UK:case ae.AU:return Ae.PRD;case ae.BETA:return Ae.STG;case ae.SIT:return Ae.SIT;default:return""}}}var de=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class pe{static init(e){return de(this,void 0,void 0,(function*(){pe.configInitialised||(pe.managedConfigHandler=e,pe.configInitialised=!0,yield O.waitTillConfigLoaded(),yield k.waitTillConfigLoaded())}))}static updateOffscreenConfig(){var e,n,r,i;return de(this,void 0,void 0,(function*(){const o={user:O.getCurrentUserInfo().user,deviceId:O.getDeviceId(),applianceId:O.getApplianceId(),isTeacher:O.getIsTeacher(),eventServiceUrl:O.getEventServiceUrl(),reauthAllowedTimerSeconds:O.getReauthAllowedTimerSeconds(),extensionVersion:null===(n=null===(e=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===e?void 0:e.getManifest())||void 0===n?void 0:n.version,extensionName:null===(i=null===(r=null===chrome||void 0===chrome?void 0:chrome.runtime)||void 0===r?void 0:r.getManifest())||void 0===i?void 0:i.name};yield A.sendMessage({type:t.lA.UpdateOffscreenConfig,config:o})}))}static managedConfigPolicyRequired(){return pe.managedConfigHandler.managedConfigIsRequired()}static getManagedConfigError(){return k.isCompanionEnrolled()?"":pe.managedConfigHandler.getManagedConfigError()}static updateDeviceLocation(e=!0,t=0){return de(this,void 0,void 0,(function*(){yield O.setInsideCloudSafeNetwork(!1),yield O.setInsideDeviceNetwork(!1),yield O.setInsideDeviceNetworkAuthenticated(!1);const n=new AbortController,r=setTimeout((()=>n.abort()),5e3);try{const e=yield fetch("http://chromelogin.linewize.net/status",{method:"GET",headers:{"Cache-Control":"no-store"},signal:n.signal});if(clearTimeout(r),e.ok){yield O.setInsideDeviceNetwork(!0);const n=yield pe.getLoggedInUser(),r=(yield e.json()).data;if(n&&t<5){const e=r.user===n||n.startsWith(`${r.user}@`);return r.loggedin&&r.user&&(O.studentAutoEnrolmentEnabled()||e)?(yield O.setInsideDeviceNetworkAuthenticated(!0),yield O.setInsideDeviceNetworkUser(r.user),{network_identity_provided:!0,provider_username:r.user,provided_device_id:r.device_id,provided_region:r.region}):(yield ue.login(!0),yield new Promise((e=>setTimeout(e,1e3))),yield pe.updateDeviceLocation(!1,t+1))}}else 404!==e.status?c("detected on-network, but the on-network status check failed. status check response code is ",e.status):l("Device is off-network")}catch(t){if((0,g.DP)(t),t instanceof DOMException&&e)return c("Fetch timeout",t),yield new Promise((e=>setTimeout(e,2e3))),yield pe.updateDeviceLocation(!1);yield O.setInsideDeviceNetwork(!1),yield O.setInsideDeviceNetworkAuthenticated(!1),c("Device location probe failed due to network error, setting state to off-network",t)}finally{return{network_identity_provided:!1}}}))}static setCacheAndUpdateUserInfo(e,t,n){return de(this,void 0,void 0,(function*(){return yield O.setActiveRegion(t),yield O.setApplianceId(n),yield O.setCurrentUserInfo({user:e}),yield O.setUserFound(!0),!!O.getCurrentUserInfo().user}))}static retrieveUserIdData(){return de(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded();const e=O.getUserDataOverride();if(e&&e.username.length>0){const t=yield pe.getUserDataBasedOnOverride(e);if(void 0!==t)return yield this.setCacheAndUpdateUserInfo(t.user,t.region,t.device_id)}const t=yield pe.updateDeviceLocation();if(k.isCompanionEnrolled()){const e=k.getCompanionEnrolmentDetails();return l("Enrolment details are updated from Native Agent."),yield this.setCacheAndUpdateUserInfo(null==e?void 0:e.username,null==e?void 0:e.region,null==e?void 0:e.applianceid)}if(t.network_identity_provided)return yield this.setCacheAndUpdateUserInfo(t.provider_username,t.provided_region,t.provided_device_id);const n=O.getCurrentUserInfo().user,r=yield pe.getProfileUserInfo();if(r&&r.email){const e=yield this.getManagedPolicyConfig();e&&(yield this.setCacheAndUpdateUserInfo(O.getCurrentUserInfo().user,e.region,e.applianceId));const t=yield pe.requestUserIdData(r.email);if(0===t.length)return c("Failed to retrieve user id: no information found"),!1;for(const e of t)if(0!==Object.keys(e).length){if(n!==e.user)return l("Identity not supplied by network device and user has changed, using Google account"),r.user=e.user,O.getCurrentUserInfo().user!==r.user&&(l("Found Google Identity",r),yield O.setUserFound(!0)),O.setApplianceId(e.device_id),yield O.setCurrentUserInfo(r),O.setActiveRegion(e.region),!!O.getCurrentUserInfo().user;if(O.getApplianceId()&&O.getCurrentUserInfo()&&O.getActiveRegion())return l("Identity not supplied by network device but stored settings were found, using storage"),yield O.setUserFound(!0),!!O.getCurrentUserInfo().user}}return c("Cannot determine user, no information provided from chrome or network"),!1}))}static setInsideCloudSafeNetworkStatus(){return de(this,void 0,void 0,(function*(){d("Checking Cloud Safe Network....");const e=!O.getInsideDeviceNetwork(),t=!O.getInsideDeviceNetworkAuthenticated();if(e||t){const e=yield pe.getFzBoxProbeResponse(),t=O.getCurrentUserInfo().user;void 0!==e.data.provider&&void 0!==t?(yield O.setInsideDeviceNetworkUser(t),yield O.setInsideCloudSafeNetwork(!0),yield O.setInsideDeviceNetwork(!0),yield O.setInsideDeviceNetworkAuthenticated(!0)):d("The extension is not running inside a Cloud Safe Network.")}}))}static getFzBoxProbeResponse(){var e;return de(this,void 0,void 0,(function*(){let t,n=500;const r=le.getSafetyProbeServiceUrl();if((0,a.Im)(r))u("Unable to get the url for safe probe check");else try{const i=yield fetch(r,{headers:{Accept:"application/json"}});n=i.status;const o=yield i.json();t=null!==(e=o.provider)&&void 0!==e?e:void 0}catch(e){(0,g.DP)(e)}return{data:{provider:t},status:n}}))}static retrieveConfiguration(){var e,t;return de(this,void 0,void 0,(function*(){if(!(yield pe.retrieveUserIdData()))throw c("User ID has not been retrieved"),O.clearCachePartialOnError(),new Error("retrieve config aborted as user id is empty");const n=null!==(e=O.getCurrentUserInfo().user)&&void 0!==e?e:"",r=null!==(t=O.getActiveRegion())&&void 0!==t?t:"";yield pe.assignUniqueId(n);const i=O.getDeviceId(),o=chrome.runtime.getManifest(),a=pe.getGatewayUrl(r)+"/get/configuration/chrome-extension?user="+n+"&deviceid="+i+"&agt=chrome&ver="+o.version,s=Y(i,n,o.version);if(!(yield pe.sendGatewayRequest(r,a,s)))throw new Error("Failed to retrieve configuration");return O.getActiveConfigurations()}))}static getProfileUserInfo(){return de(this,void 0,void 0,(function*(){return new Promise((e=>chrome.identity.getProfileUserInfo({accountStatus:chrome.identity.AccountStatus.ANY},(t=>e(t)))))}))}static getLoggedInUser(){var e,t;return de(this,void 0,void 0,(function*(){return k.isCompanionEnrolled()?null===(e=k.getCompanionEnrolmentDetails())||void 0===e?void 0:e.username:null===(t=yield pe.getProfileUserInfo())||void 0===t?void 0:t.email}))}static sendGatewayRequest(e,t,n){var r,i,o,a,s,A,c,d,p,h,f;return de(this,void 0,void 0,(function*(){try{const u=new Headers,g=null!==(r=O.getCurrentUserInfo().user)&&void 0!==r?r:"";u.set("X-Actor-Id",g),n&&u.set("baggage",n);const y=yield pe.getJsonData(t,u);l("Config Retrieved",e,y),yield O.setActiveRegion(e);const v=y.configurations;yield O.setApplianceId(y.device_id),O.setEventServiceUrl(y.event_url),O.setBlockPageUrl(y.blockedpage_url),O.setVerdictServerUrl(y.verdict_server_url),O.setApiDispatcherUrl(y.api_dispatcher_url),O.setLockUrl(y.lock_url),O.setAllowConnectionsInsideNetwork(y.allow_connections_inside_network),O.setClosedTabUrl(y.closed_tab_url),O.setGoogleAllowInsecureChrome(y.google_allow_insecure_chrome),O.setGoogleClassroomExtensionLogin(y.google_classroom_extension_login),yield O.setEnableExtensionChromebooksOnly(y.enable_extension_chromebooks_only),yield this.extractFilteringAndClassroomConfig(y.mobile_agent_config),O.setUserInformation(y.user_information),O.setDeviceTimezone(y.timezone),O.setChromebookScreenshotUploadIntervalSeconds(y.chromebook_screenshot_upload_interval_seconds),O.setScreenshotMaxWidth(null!==(i=y.screenshot_max_width)&&void 0!==i?i:300),O.setCompressedScreenshots(null===(o=y.compressed_screenshots)||void 0===o||o),O.setScreenshotJpegQuality(null!==(a=y.screenshot_jpeg_quality)&&void 0!==a?a:.1),O.setIsTeacher(y.is_teacher),O.setReauthAllowedTimerSeconds(y.reauth_allowed_timer_seconds),O.setOtelClientConfig((m=null!==(s=y.agents_otel_config)&&void 0!==s?s:void 0)&&m.enabled?(e=>{var t,n,r,i,o;const a=e.batch_processor,s=e.required_resource_attributes,A=e.sampling;return{enabled:e.enabled,endpoint:{baseUrl:null===(t=e.endpoint)||void 0===t?void 0:t.base_url,trace:null===(n=e.endpoint)||void 0===n?void 0:n.trace,logs:null===(r=e.endpoint)||void 0===r?void 0:r.logs},batchProcessor:{batchSize:null==a?void 0:a.batch_size,maxQueueSize:null==a?void 0:a.max_queue_size,scheduledDelayMillis:null==a?void 0:a.scheduled_delay_millis,exportTimeoutMillis:null==a?void 0:a.export_timeout_millis},requiredResourceAttributes:{serviceVersion:null==s?void 0:s.service_version},rateLimitPerHour:e.rate_limit_per_hour,sampling:{enabled:null==A?void 0:A.enabled,rate:null==A?void 0:A.rate,featuresRate:{screenshots:null!==(o=null===(i=null==A?void 0:A.features_rate)||void 0===i?void 0:i.screenshots)&&void 0!==o?o:0}},region:e.region}})(m):{enabled:!1}),O.setDeviceManagementUrl(y.device_management_url),O.setMultipleFocusAllowedDomains(y.multiple_focus_allowed_domains),yield T.saveDelegationConfig(y.delegation_config),O.setStudentAutoEnrolment(null!==(A=y.student_auto_enrolment)&&void 0!==A&&A),O.setFzBoxPollingInterval(null!==(c=y.student_auto_enrolment)&&void 0!==c&&c);const b=null!==(p=null===(d=y.screenshotsConfig)||void 0===d?void 0:d.restrictedDomains)&&void 0!==p?p:[];O.setRestrictedDomains(b);const k=null!==(f=null===(h=y.screenshotsConfig)||void 0===h?void 0:h.restrictedApps)&&void 0!==f?f:[];O.setRestrictedAppsEmpty(0===k.length);const S=y.feature_flags;O.setClassroomChatEnabled(S&&S["classwize-teacher-student-chat"]);const w=[];for(const e of v)w.push(e);return yield O.setActiveConfigurations(w),O.getClassroomChatEnabled()&&O.setClassroomChatEnabled(!O.getIsTeacher()),yield O.setPeriodicLogsUploadConfig(y.periodic_logs_upload_config),O.setConfigSaved(!0),!0}catch(e){(0,g.DP)(e),u("Failed to retrieve configuration from the cfg-gateway",e);const t=O.getLocalIp();return O.clearCachePartialOnError(),O.setLocalIp(t),!1}var m}))}static extractFilteringAndClassroomConfig(e){var t,n,r,i;return de(this,void 0,void 0,(function*(){if(e){const{on_network:o,off_network:a}=e;yield O.setFilterOnNetworkEnabled(!!(null==o?void 0:o.filtering)),yield O.setSafeSearchOnNetworkConfig(null===(t=null==o?void 0:o.filtering)||void 0===t?void 0:t.safeSearch),yield O.setClassroomOnNetworkEnabled(!!(null===(n=null==o?void 0:o.classroom)||void 0===n?void 0:n.enabled)),yield O.setFilterOffNetworkEnabled(!!(null==a?void 0:a.filtering)),yield O.setSafeSearchOffNetworkConfig(null===(r=null==a?void 0:a.filtering)||void 0===r?void 0:r.safeSearch),yield O.setClassroomOffNetworkEnabled(!!(null===(i=null==a?void 0:a.classroom)||void 0===i?void 0:i.enabled))}}))}static requestUserIdData(e){var t;return de(this,void 0,void 0,(function*(){if(l("Requesting User Id",e),O.getActiveRegion()){const n=[],r=null!==(t=O.getActiveRegion())&&void 0!==t?t:"";l("Checking User Id in region",O.getActiveRegion(),e);const i=pe.getGatewayUrl(r)+"/get/configuration/userid?identity="+e,o=(new Date).getTime(),a=pe.sendIdIsInProgress(pe.pendingUserIdCalls[r],o);return a||(pe.pendingUserIdCalls[r]=o),n.push(a?{}:yield pe.sendUserIdRequest(r,i)),n}return pe.getUserIdFromRegions(e)}))}static getUserIdFromRegions(e){return de(this,void 0,void 0,(function*(){const t=[],n=le.getAllRegions();for(const r of n){const n=pe.getGatewayUrl(r)+"/get/configuration/userid?identity="+e,i=(new Date).getTime();if(pe.sendIdIsInProgress(pe.pendingUserIdCalls[r],i))continue;pe.pendingUserIdCalls[r]=i;const o=yield pe.sendUserIdRequest(r,n);if(!(0,a.Im)(o)){t.push(o);break}}return t}))}static sendUserIdRequest(e,t){return de(this,void 0,void 0,(function*(){return new Promise((n=>de(this,void 0,void 0,(function*(){try{const r=yield pe.getJsonData(t);pe.pendingUserIdCalls[e]=0;const i=r.userid,o=r.deviceid;l("Retrieved User Data: ",i),n({user:i,region:e,device_id:o})}catch(e){(0,g.DP)(e),u("Failed to retrieve User Id from the cfg-gateway, error: ",e)}finally{pe.pendingUserIdCalls[e]=0,n({})}}))))}))}static getUserDataBasedOnOverride(e){return de(this,void 0,void 0,(function*(){const t=le.getAllRegions(),{token:n,username:r,applianceId:i}=e;for(const e of t){const t=pe.getGatewayUrl(e)+`/get/configuration/userid/override?deviceid=${i}&identity=${r}`;try{const r=yield fetch(t,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({token:n})});if(r.ok){const t=yield r.json(),n=t.userid,i=t.deviceid;if(n&&e&&i)return{user:n,region:e,device_id:i}}}catch(e){u("[Override] Failed to retrieve User Id from the cfg-gateway, error: ",e)}}}))}static getGatewayUrl(e){return"https://configuration-gw."+e+".linewize.net"}static assignUniqueId(e){return de(this,void 0,void 0,(function*(){const t=O.getTimestamp(),n=t||Date.now(),r=btoa(e+n.toString());yield O.setChromeId(r),t||(yield O.setTimestamp(n)),l("Assigned Chrome Id",r)}))}static getJsonData(e,t){return de(this,void 0,void 0,(function*(){const n=new AbortController,r=setTimeout((()=>{n.abort(),clearTimeout(r)}),5e3);try{const r={signal:n.signal,headers:null!=t?t:void 0},i=yield fetch(e,r);if(!i.ok)throw new Error(i.statusText);return yield i.json()}catch(t){throw new Error("Failed to fetch "+e+".")}}))}static sendIdIsInProgress(e,t){return!!(e&&t-5e3(ve.initAutoAuthHandler(t),!0))),A.addMessageListener(t.lA.GetAuthCookie,((e,t)=>(ve.getAuthCookieHandler(t),!0))),A.addMessageListener(t.lA.GetAuthToken,((e,t)=>(ve.getAuthTokenHandler(t,null==e?void 0:e.refreshToken),!0))),chrome.runtime.onMessage.addListener((e=>{e.type===t.lA.GoogleAuthenticate&&ve.google()})),chrome.runtime.onMessage.addListener((e=>{e.type===t.lA.NativeTokenAuthenticate&&ve.nativeAgentTokenAuth()}))}static initAutoAuthHandler(e){return me(this,void 0,void 0,(function*(){yield ve.autoAuth(),e()}))}static getAuthCookieHandler(e){return me(this,void 0,void 0,(function*(){const t=yield chrome.cookies.get({name:"authorization",url:"https://linewize.net"});e(t)}))}static getAuthTokenHandler(e,t=!1){return me(this,void 0,void 0,(function*(){let n=this.getAuthToken();n&&!t||(yield ve.autoAuth(),n=this.getAuthToken()),e(n)}))}static setAuthToken(e){this.setCacheAuthenticationDataValue(t.bt.AuthTokenKey,e)}static getAuthToken(){return this.getAuthDataValue(t.bt.AuthTokenKey,void 0)}static getAuthDataValue(e,t){var n;return null!==(n=this.cacheAuthenticationData.getValue(e,t))&&void 0!==n?n:t}static setCacheAuthenticationDataValue(e,t){return me(this,void 0,void 0,(function*(){yield this.waitTillAuthCacheIsLoaded(),this.cacheAuthenticationData.setValue(e,t),this.cacheAuthenticationData.flush()}))}static clearCachedAuthToken(){this.cacheAuthenticationData.setCache({cache:[]}),this.cacheAuthenticationData.flush()}static waitTillAuthCacheIsLoaded(){return me(this,void 0,void 0,(function*(){yield this.cacheAuthenticationData.waitTillCacheLoaded()}))}static autoAuth(){return me(this,void 0,void 0,(function*(){try{return void(yield ve.onNetwork())}catch(e){(0,g.DP)(e),c("error from on-network auth attempt",{error:e})}try{yield ve.partial()}catch(e){(0,g.DP)(e),c("error from off-network partial auth attempt",{error:e})}}))}static onNetwork(){return me(this,void 0,void 0,(function*(){const e=yield v("http://whoami.linewize.net"),t=O.getCurrentUserInfo().user,n=yield v(`${O.getApiDispatcherUrl()}/authenticate/agent/on-network?username=${t}`,{method:"POST",body:JSON.stringify(e)});this.setAuthToken(null==n?void 0:n.token)}))}static partial(){return me(this,void 0,void 0,(function*(){yield ve.partialFailedCache.waitTillCacheLoaded();const e=O.getDeviceId(),t=O.getCurrentUserInfo().user,n=t?void 0:yield ve.findUserEmail();if(!e||!t&&!n)throw new ge("applianceId and username or email is required for partial auth");if(ve.partialFailedCacheContains(e,t,n))throw new ge("partial auth credentials used are in the known bad credentials cache");try{const r=yield v(`${O.getApiDispatcherUrl()}/authenticate/agent/partial`,{method:"POST",body:JSON.stringify({email:n,username:t,appliance_id:e})});this.setAuthToken(null==r?void 0:r.token)}catch(r){throw(0,g.DP)(r),"EasyFetchStatusError"===r.name&&400===r.response.status&&ve.setPartialFailedData(e,t,n),r}}))}static findUserEmail(){return me(this,void 0,void 0,(function*(){if(O.getCurrentUserInfo()&&O.getCurrentUserInfo().email)return O.getCurrentUserInfo().email;const e=yield pe.getProfileUserInfo();if(e)return e.email;const t=yield chrome.storage.sync.get("userInfo");return t?t.email:void 0}))}static google(){return me(this,void 0,void 0,(function*(){if(k.isCompanionAvailable())return;const e=yield(0,a.k4)({interactive:!0});if(!e)throw new ye("User did not complete Google sign-in");try{const n=yield v(`${O.getApiDispatcherUrl()}/authenticate/agent/chrome/google`,{method:"POST",body:JSON.stringify({token:e,appliance_id:O.getDeviceId()})});this.setAuthToken(null==n?void 0:n.token),chrome.runtime.sendMessage({type:t.lA.Token,token:n.token})}catch(t){throw(0,g.DP)(t),"EasyFetchStatusError"===t.name&&401===t.response.status&&(yield ve._clearIdentityToken(e),ve.google()),t}}))}static nativeAgentTokenAuth(){return me(this,void 0,void 0,(function*(){if(k.isCompanionAvailable()&&k.isCompanionEnrolled()){const e=k.getCompanionToken(),n=yield v(`${O.getApiDispatcherUrl()}/authenticate/agent/chrome/native`,{method:"POST",body:JSON.stringify({token:`Bearer-Token ${e}`,appliance_id:O.getDeviceId()})});chrome.runtime.sendMessage({type:t.lA.Token,token:n.token})}}))}static _clearIdentityToken(e){return me(this,void 0,void 0,(function*(){return new Promise((t=>{chrome.identity.removeCachedAuthToken({token:e},t)}))}))}}ve.authenticateInitialised=!1,ve.partialFailedCacheMaxSize=1,ve.partialFailedCache=new e.CachedStorage(t.bt.PartialFailedCacheId),ve.cacheAuthenticationData=new e.CachedStorage(t.bt.AuthenticationData),(fe=he||(he={})).ASYNC_VERDICT="ASYNC_VERDICT",fe.CHECK_INTERNET_CONNECTION="CHECK_INTERNET_CONNECTION";const be={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let ke;const Se=new Uint8Array(16);function Te(){if(!ke&&(ke="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!ke))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ke(Se)}const we=[];for(let e=0;e<256;++e)we.push((e+256).toString(16).slice(1));const Ee=function(e,t,n){if(be.randomUUID&&!t&&!e)return be.randomUUID();const r=(e=e||{}).random||(e.rng||Te)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return we[e[t+0]]+we[e[t+1]]+we[e[t+2]]+we[e[t+3]]+"-"+we[e[t+4]]+we[e[t+5]]+"-"+we[e[t+6]]+we[e[t+7]]+"-"+we[e[t+8]]+we[e[t+9]]+"-"+we[e[t+10]]+we[e[t+11]]+we[e[t+12]]+we[e[t+13]]+we[e[t+14]]+we[e[t+15]]}(r)};var je=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class Oe{static init(e=5){Oe.verdictResponseStoreInitialised||(Oe.verdictResponseStoreInitialised=!0,Oe.ttl=e,Oe.initVerdictResponseStore())}static initVerdictResponseStore(){return je(this,void 0,void 0,(function*(){yield Oe.store.waitTillCacheLoaded(),e.CacheScheduler.setInterval(t.kH.EvictOldResponsesInterval,Oe.evictOldResponses,1e3*Math.min(10,Oe.ttl))}))}static getVerdictResponse(e,t){const n=(0,a.vI)(t);if(n){Oe.evictResponseIfExpired(e,n);const t=Oe.store.getValue(e);if(t)return t[n]}}static setVerdictResponse(e,t,n){if(!e)return;n.response_time=(0,a.$1)();let r=Oe.store.getValue(e);r||(r={}),r[(0,a.vI)(t)]=n,Oe.store.setValue(e,r)}static removeVerdictResponse(e){Oe.store.removeValue(e)}static evictOldResponses(){return je(this,void 0,void 0,(function*(){if(Oe.cleaningInProgress)return;Oe.cleaningInProgress=!0;let e=0;try{const t=Oe.store.getCache(),n=Object.keys(t).slice(0,7e3);for(const t of n){const n=Oe.store.getValue(t);if(n&&"object"==typeof n)for(const e of Object.keys(n))Oe.evictResponseIfExpired(t,e);else e++,Oe.store.removeValue(t)}}catch(e){c("Error during eviction process:",e)}finally{Oe.cleaningInProgress=!1}e>0&&u(`Evicted ${e} invalid hostnames object from the verdict cache.`)}))}static evictResponseIfExpired(e,t){const n=Oe.store.getValue(e);if(n&&n[t]){const r=n[t].response_time;(!r||r+Oe.ttl<(0,a.$1)())&&Oe.store.removeValue(e)}else Oe.store.removeValue(e)}}Oe.verdictResponseStoreInitialised=!1,Oe.cleaningInProgress=!1,Oe.store=new e.CachedStorage(t.kH.VerdictResponseCacheId,void 0,1e3),Oe.ttl=5;var Re=n(786),Pe=n(1682);class Ce{static init(){this.reportingStream=new Pe.A(t.Ui).connectionReport(),this.isInitialized=!0}static sendReportToLaptopAgent(e){this.isInitialized||this.init(),this.reportingStream.write(e)}}Ce.isInitialized=!1;var Le=n(6561),Ne=n.n(Le),xe=n(6048),Me=n(3121),Ue=n(8273),Ie=n(7414),_e=n(8246),We=n(6146),ze=n(3122);const De=new Ue.H;var Fe=n(9255),qe=n(4569),Ve=n(2626),Xe=n(8067),Je=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};const Ze=e=>{switch(e){case xe.Verdict.Allowed:return"a";case xe.Verdict.Blocked:return"b";case xe.Verdict.BlockedByTime:return"t";default:return e}};class Ke{static init(){Ke.initialized||(Ke.initialized=!0)}static updateDelegationStatus(){return Je(this,void 0,void 0,(function*(){if(Ke.delegationUpdateInProgress)return void Ke.remainingDelegationUpdates++;Ke.delegationUpdateInProgress=!0;const e={"qoria.linewize.appliance.id":O.getApplianceId(),"qoria.linewize.user.username":O.getCurrentUserInfo().user};yield Fe.K.getTracer("DelegationManager").startActiveSpan("DelegationManager.updateDelegationStatus",{attributes:e,kind:qe.v.CONSUMER,startTime:Xe.A.now()},(e=>Je(this,void 0,void 0,(function*(){try{Ke.delegationUpdateID=Ee(),Ke.logInfo("Starting Update Delegation Status."),yield T.waitTillConfigLoaded(),yield Ke.updateQustodioAuth(),T.getLoggedIn()?(yield T.setQustodioDelegationOn(yield Ke.delegationController.isDelegationActive()),yield Ke.setAlarmForDelegationChange().catch((e=>{throw Ke.logError("DelegationManager.setAlarmForDelegationChange() failed"),e})),Ke.logInfo("Qustodio extension has parental control turned on? "+T.getQustodioDelegationOn()),Ke.logInfo("Is after school hours? "+T.getAfterSchoolHours()),T.getAfterSchoolHours()&&!T.getQustodioDelegationOn()?(Ke.logInfo("Turning on parental control on Qustodio extension..."),yield Ke.delegationController.startDelegation().catch((e=>{throw Ke.logError("DelegationManager.delegationController.startDelegation() failed"),e})),yield T.setQustodioDelegationOn(!0),Ke.logInfo("Done. Parental Control should take place.")):!T.getAfterSchoolHours()&&T.getQustodioDelegationOn()&&(Ke.logInfo("Turning off parental control on Qustodio extension..."),yield Ke.delegationController.stopDelegation().catch((e=>{throw Ke.logError("DelegationManager.delegationController.stopDelegation() failed"),e})),yield T.setQustodioDelegationOn(!1),Ke.logInfo("Done. Parental Control should NOT take place."))):Ke.logInfo("Qustodio extension is not logged in. Parental Control should NOT take place.")}catch(t){e.recordException(t),e.setStatus({code:Ve.s.ERROR}),(0,g.DP)(t),yield Ke.handleDelegationError(t)}finally{e.end()}})))),Ke.logInfo("Update Delegation Status done."),Ke.delegationUpdateInProgress=!1,Ke.remainingDelegationUpdates>0&&(Ke.remainingDelegationUpdates--,Ke.updateDelegationStatus())}))}static updateQustodioAuth(){return Je(this,void 0,void 0,(function*(){if(yield T.setQustodioIsPresent(yield Ke.checkQustodioExtensionPresent()),T.getQustodioIsPresent()){yield T.setLoggedIn(yield Ke.delegationController.isLoggedIn()),Ke.logInfo("Get Parental Control configs",{"Parental Control in School Manager is enabled":T.getDelegationEnabledInSM(),"Parent has opted in for Parental Control via Qustodio":T.getParentsOptedIn()});const e=T.getDelegationEnabled();if(e&&!T.getLoggedIn()){Ke.logInfo("Parental Control configs are enabled but Qustodio extension is logged out. Logging in Qustodio extension...");const e=yield Ke.getQustodioAuthToken().catch((e=>{throw Ke.logError("DelegationManager.getQustodioAuthToken() failed"),e}));e?(yield Ke.delegationController.login(e).catch((e=>{throw Ke.logError("Auth token found but DelegationManager.delegationController.login() failed"),e})),yield T.setLoggedIn(yield Ke.delegationController.isLoggedIn()),T.getLoggedIn()&&Ke.logInfo("Logged in Qustodio extension successfully.")):Ke.logError("Failed to get the auth api token to authenticate Qustodio extension")}else e?Ke.logInfo("Parental Control configs are enabled and Qustodio extension is logged in."):(Ke.logInfo("Parental Control configs are not enabled."),T.getLoggedIn()&&(Ke.logInfo("Logging out Qustodio extension."),yield Ke.delegationController.logout(),yield T.setLoggedIn(!1)))}else Ke.logInfo("Qustodio extension is not present."),T.getLoggedIn()&&(Ke.logInfo("Logging out Qustodio extension."),yield T.setLoggedIn(!1))}))}static updateDelegationRequestData(e,t){let n=Ke.delegationRequestDataCache[e];void 0===n&&(n={safeSearch:!1,createdTime:Date.now()}),n=(0,Me.merge)(n,t),Ke.delegationRequestDataCache[e]=n;const r=Object.keys(Ke.delegationRequestDataCache);for(let e=0;e6e4&&delete Ke.delegationRequestDataCache[t]}}static sendDelegationVerdict(e,t){return Je(this,void 0,void 0,(function*(){if(T.getDelegationActive()){let n=!1;if(void 0!==Ke.delegationRequestDataCache[e.requestId]&&(n=!!Ke.delegationRequestDataCache[e.requestId].safeSearch,n&&Ke.isSafeSearchBeforeRedirect(e.url)))return;const r={requestId:e.requestId,safeSearch:n,verdict:t===M.BLOCK?xe.Verdict.Blocked:xe.Verdict.Allowed},i={"qoria.linewize.appliance.id":O.getApplianceId(),"qoria.linewize.user.username":O.getCurrentUserInfo().user};yield Fe.K.getTracer("DelegationManager").startActiveSpan("DelegationManager.sendDelegationVerdict",{attributes:i,kind:qe.v.CONSUMER,startTime:Xe.A.now()},(i=>Je(this,void 0,void 0,(function*(){try{const i=yield Ke.delegationController.sendVerdict(e.requestId,n,t===M.BLOCK?xe.Verdict.Blocked:xe.Verdict.Allowed);Ke.logInfo("Sent verdict to Qustodio extension successfully",Object.assign(Object.assign({},r),{qustodioVerdict:i})),Ke.updateDelegationRequestData(e.requestId,{sentRequestToQustodio:!0,qustodioVerdict:Ze(i)})}catch(t){i.recordException(t),i.setStatus({code:Ve.s.ERROR}),Ke.updateDelegationRequestData(e.requestId,{sentRequestToQustodio:!1}),(0,g.DP)(t),Ke.logError("Failed to send verdict to Qustodio extension",r),Ke.handleDelegationError(t)}finally{i.end()}}))))}}))}static shouldIgnoreSafetyNet(){return Je(this,void 0,void 0,(function*(){const e={"qoria.linewize.appliance.id":O.getApplianceId(),"qoria.linewize.user.username":O.getCurrentUserInfo().user};let t=!1;return yield Fe.K.getTracer("DelegationManager").startActiveSpan("DelegationManager.shouldIgnoreSafetyNet",{attributes:e,kind:qe.v.CONSUMER,startTime:Xe.A.now()},(e=>Je(this,void 0,void 0,(function*(){if(T.getDelegationActive())try{t=yield Ke.delegationController.shouldIgnoreSafetyNet(),Ke.logInfo("Checked with Qustodio extension if the safety net should be ignored successfully: "+t)}catch(n){e.recordException(n),e.setStatus({code:Ve.s.ERROR}),(0,g.DP)(n),Ke.logError("Failed to check with Qustodio extension if the safety net should be ignored. Using default action: "+t),Ke.handleDelegationError(n)}finally{e.end()}})))),t}))}static isSafeSearchBeforeRedirect(e){const t=new URL(e);return!(t.hostname.includes("google")&&"active"===t.searchParams.get("safe")||t.hostname.includes("bing")&&"strict"===t.searchParams.get("adlt")||t.hostname.includes("youtube"))}static skipReportingOnDelegation(e){const n=T.getDelegationActive(),r=Ke.changeIsDelegationActive!=n;if(n){if(T.getReportingSetting()===t.f0.NONE)return!0;if(T.getReportingSetting()===t.f0.BLOCKED&&!e)return!0}return r&&Ke.logInfo("Reporting On Delegation is skipped",{"Parental Control is active":n,"Qustodio extension is present and logged in":T.getLoggedIn(),"Parental Control configs are enabled":T.getDelegationEnabled(),"Is after school hours":T.getAfterSchoolHours(),"Qustodio extension has Parental Control turned on":T.getQustodioDelegationOn(),"Report setting":T.getReportingSetting()}),Ke.changeIsDelegationActive=n,!1}static setAlarmForDelegationChange(){return Je(this,void 0,void 0,(function*(){const n=(0,a.fO)(O.getDeviceTimezone()),r=(0,a.fO)(O.getDeviceTimezone()),i=(0,a.fO)(O.getDeviceTimezone());r.setDate(n.getDate()+1),i.setTime(r.getTime()+1e3);const o=T.getSchoolTimeStart()?(0,a.fO)(O.getDeviceTimezone(),T.getSchoolTimeStart()):r,s=T.getSchoolTimeEnd()?(0,a.fO)(O.getDeviceTimezone(),T.getSchoolTimeEnd()):i;let A=o.valueOf()-n.valueOf(),c=s.valueOf()-n.valueOf();A<0&&c<0&&(o.setDate(o.getDate()+1),s.setDate(s.getDate()+1),A=o.valueOf()-n.valueOf(),c=s.valueOf()-n.valueOf());let u=o;if(A<0&&(u=s),u){yield T.setAfterSchoolHours(u===o&&!O.getInsideDeviceNetwork());const r=u.valueOf()-n.valueOf()+1;r>0&&e.CacheScheduler.setTimeout(t.o3.DelegationChangeScheduleId,(()=>wd.configUpdate(!0)),r)}}))}static getQustodioAuthToken(){return Je(this,void 0,void 0,(function*(){const e=O.getApplianceId(),t=O.getUserInformation().identifier,n=yield pe.getManagedPolicyConfig();if(e&&t&&n){const r=Ee(),i=pe.getAgentName(),o=`${n.preSharedKey}__${t}_${i}_${r}`,a=Ne()(o),s=yield fetch(`https://login.${O.getActiveRegion()}.linewize.net/login/agent/jwt?`+new URLSearchParams({username:t,agent:i,hash:a,salt:r,deviceid:e}));if(s.ok){const e=yield s.json();if(e.token)return e.token}}}))}static checkQustodioExtensionPresent(){return Je(this,void 0,void 0,(function*(){return!!(yield chrome.management.getAll()).find((e=>e.id===Ke.qustodioExtensionId))}))}static handleDelegationError(e){return Je(this,void 0,void 0,(function*(){Ke.logError("Delegation Error:",e);const t=new Error;t.name=`Delegation - ${e.name}`,t.message=e.type,t.stack=e.stack,(e=>{De.captureException(e)})(t),T.getQustodioIsPresent()&&!(yield Ke.checkQustodioExtensionPresent())&&(yield Ke.updateDelegationStatus())}))}static stringifyDebugRequestJourney(e){const t=Object.entries(e).reduce(((e,[t,n])=>(e[t]="boolean"==typeof n?n?1:0:n,e)),{});return JSON.stringify(t)}static updateConnectionObjectWithDelegationRequestData(e,t,n){const r=Ke.getDelegationRequestData(e);if(r&&r.enabledInSM){const e={m:null==n?void 0:n.method,oi:r.optedIn,q:r.qustodioPresent,dl:r.loggedIn,qo:r.qustodioDelegationOn,qs:r.sentRequestToQustodio,qv:r.qustodioVerdict,da:r.delegationActive};t=Object.assign(Object.assign({},t),{request_journey_log:this.stringifyDebugRequestJourney(e)})}return t}static getDelegationRequestData(e){return this.delegationRequestDataCache[e]}static logInfo(e,t={}){l(e,Object.assign(Object.assign({},t),Ke.loggingExtraInfo()))}static logError(e,t={}){c(e,Object.assign(Object.assign({},t),Ke.loggingExtraInfo()))}static loggingExtraInfo(){return{delegationUpdateID:Ke.delegationUpdateID}}}Ke.initialized=!1,Ke.qustodioExtensionId="ddoicmjgiijnfdlmceohgdlmfnboaeca",Ke.delegationController=new xe.DelegationController(Ke.qustodioExtensionId),Ke.delegationRequestDataCache={},Ke.delegationUpdateInProgress=!1,Ke.remainingDelegationUpdates=0,Ke.delegationUpdateID="",Ke.changeIsDelegationActive=null;var Ge=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class He{static getDeviceManagementUrl(){const e=O.getDeviceManagementUrl();if(e)return e;c("Device management url should be a valid object")}static getDeviceManagementId(){return He.getCachedValue(He.dmsDataCache,"device_management_id",void 0)}static setDeviceManagementId(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsDataCache,"device_management_id",e)}))}static getFirebaseAppConfig(){return He.getCachedValue(He.dmsDataCache,"firebase_app_config",void 0)}static setFirebaseAppConfig(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsDataCache,"firebase_app_config",e)}))}static setChromebookSerial(e){this.setCachedValue(He.dmsDataCache,"chromebook_serial",e)}static getChromebookSerial(){return this.getCachedValue(He.dmsDataCache,"chromebook_serial","")}static setMacAddress(e){this.setCachedValue(He.dmsDataCache,"mac_address",e)}static getMacAddress(){return this.getCachedValue(He.dmsDataCache,"mac_address","")}static getDMSHardwareId(){return Ge(this,void 0,void 0,(function*(){yield He.waitTillCachesAreLoaded();const e=He.getChromebookSerial();if(e)return e;const t=He.getMacAddress();if(t)return t;let n=He.getCachedValue(He.dmsDataCache,"dms_hardware_id",void 0);return void 0===n&&(n=Ee(),yield He.setCachedValue(He.dmsDataCache,"dms_hardware_id",n)),n}))}static setLastRegistrationData(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsDataCache,"last_registration_data",e)}))}static getLastRegistrationData(){return He.getCachedValue(He.dmsDataCache,"last_registration_data",void 0)}static setNextRegistrationTime(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsDataCache,"next_registration_time",e)}))}static getNextRegistrationTime(){return He.getCachedValue(He.dmsDataCache,"next_registration_time",0)}static resetRegistrationData(){return Ge(this,void 0,void 0,(function*(){yield He.setDeviceManagementId(""),yield He.setFirebaseAppConfig(void 0),yield He.setLastRegistrationData(void 0)}))}static getRegistrationDataInvalid(){return!(!(0,a.hk)(He.getDeviceManagementId())&&He.getFirebaseAppConfig()&&He.getLastRegistrationData())}static setLastRegistrationErrorTime(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsManagerConfigCache,"last_registration_error_time",e)}))}static getLastRegistrationErrorTime(){return He.getCachedValue(He.dmsManagerConfigCache,"last_registration_error_time",0)}static setRegistrationAttemptCount(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsManagerConfigCache,"registration_attempt_count",e)}))}static getRegistrationAttemptCount(){return He.getCachedValue(He.dmsManagerConfigCache,"registration_attempt_count",0)}static setRegistrationScheduled(e){return Ge(this,void 0,void 0,(function*(){yield He.setCachedValue(He.dmsManagerConfigCache,"registration_scheduled",e)}))}static getRegistrationScheduled(){return He.getCachedValue(He.dmsManagerConfigCache,"registration_scheduled",!1)}static waitTillCachesAreLoaded(){return Ge(this,void 0,void 0,(function*(){yield He.dmsDataCache.waitTillCacheLoaded(),yield He.dmsManagerConfigCache.waitTillCacheLoaded()}))}static getCachedValue(e,t,n){var r;return null!==(r=e.getValue(t,n))&&void 0!==r?r:n}static setCachedValue(e,t,n){return Ge(this,void 0,void 0,(function*(){e.setValue(t,n),yield e.flush()}))}}He.dmsDataCache=new e.CachedStorage(t.N3.DmsDataCacheId,!1),He.dmsManagerConfigCache=new e.CachedStorage(t.N3.DmsManagerConfigCacheId);var Be=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class Ye{static init(){return Be(this,void 0,void 0,(function*(){Ye.connectionsInitialised||(Ye.connectionsInitialised=!0,Ye.registerEventHandlers(),yield Ye.initUploadInfo(),yield Ye.removeIncompleteConnections(),e.CacheScheduler.setInterval(t.JF.ConnectionsUploadInterval,(()=>Ye.uploadData()),Ye.CONNECTION_UPLOAD_INTERVAL_MILLISECONDS))}))}static waitTillCachedTabsLoaded(){return Be(this,void 0,void 0,(function*(){yield Ye.cachedTabs.waitTillCacheLoaded()}))}static getValueFromTabsCache(e){return Ye.cachedTabs.getValue(e)}static setValueToTabsCache(e,t){Ye.cachedTabs.setValue(e,t)}static flushCachedTabs(){Ye.cachedTabs.flush()}static registerEventHandlers(){return Be(this,void 0,void 0,(function*(){chrome.webRequest.onSendHeaders.addListener(this.handleRequestUpdateFactory(t.JF.eventTypeSendHeaders).bind(this),{urls:[""]},["requestHeaders"]),chrome.webRequest.onBeforeRequest.addListener(this.handleRequestUpdateFactory(t.JF.eventTypeBeforeRequest).bind(this),{urls:[""]},["requestBody"]),chrome.webRequest.onHeadersReceived.addListener(this.handleRequestUpdateFactory(t.JF.eventTypeHeadersReceived).bind(this),{urls:[""]},["responseHeaders"]),chrome.webRequest.onCompleted.addListener(this.handleRequestUpdateFactory(t.JF.eventTypeCompleted).bind(this),{urls:[""]}),chrome.tabs.onRemoved.addListener((e=>Be(this,void 0,void 0,(function*(){yield Ye.cachedTabs.waitTillCacheLoaded(),Ye.cachedTabs.removeValue(`${e}`),Ye.cachedTabs.flush()}))))}))}static initUploadInfo(){return Be(this,void 0,void 0,(function*(){yield Ye.cachedUploadInfo.waitTillCacheLoaded();const e=Ye.cachedUploadInfo.getCache();void 0===e.lastReportDate||void 0===e.storedConnectionCount||void 0===e.requestsSessionId?(e.lastReportDate=Ye.lastReportDate,e.storedConnectionCount=Ye.storedConnectionCount,e.requestsSessionId=`${Date.now()}`,Ye.cachedUploadInfo.setCache(e),yield Ye.cachedUploadInfo.flush()):(Ye.lastReportDate=e.lastReportDate,Ye.storedConnectionCount=e.storedConnectionCount),Ye.requestsSessionId=e.requestsSessionId}))}static removeIncompleteConnections(){return Be(this,void 0,void 0,(function*(){if(yield Ye.cachedConnections.waitTillCacheLoaded(),yield e.ServiceWorkerHelper.waitTillStartUp(),!e.ServiceWorkerHelper.isSessionRestart())return;const t=Object.keys(Ye.cachedConnections.getCache());let n=t.length;for(const e of t)if(n>2*Ye.MAX_STORED_CONNECTION_ITEMS)Ye.cachedConnections.removeValue(e),n--;else{const t=Ye.cachedConnections.getValue(e);(null==t?void 0:t.meta_data.uploadReady)||Ye.cachedConnections.removeValue(e)}yield Ye.cachedConnections.flush(),Ye.storedConnectionCount=Object.keys(Ye.cachedConnections.getCache()).length,Ye.storedConnectionCount>0&&(Ye.lastReportDate=Date.now()-27e4),yield Ye.updateUploadInfo()}))}static updateUploadInfo(){return Be(this,void 0,void 0,(function*(){yield Ye.cachedUploadInfo.waitTillCacheLoaded();const e={lastReportDate:Ye.lastReportDate,storedConnectionCount:Ye.storedConnectionCount};Ye.cachedUploadInfo.setCache(e),yield Ye.cachedUploadInfo.flush()}))}static handleRequestUpdateFactory(e){return n=>{const r=Ye.shouldProcessConnectionObject(n);if(!r)return;if(e==t.JF.eventTypeBeforeRequest&&!tt.requestShouldBeFiltered(n))return;if(e==t.JF.eventTypeHeadersReceived&&!n.requestId)return;let i=!1;e==t.JF.eventTypeCompleted&&(i=!n.fromCache&&r),Ye.updateConnectionObject(n,i)}}static reportConnectionToNativeAgent(e){Ce.sendReportToLaptopAgent(Ye.convertToReportingConnection(e))}static shouldProcessConnectionObject(e){return e&&O.isConnectionReportingEnabled()&&!e.url.toLowerCase().startsWith("chrome")&&"localhost"!==(0,a.vI)(e.url)&&O.getUserFound()&&-1===e.url.toLowerCase().indexOf("linewize.net")&&!(e.initiator&&e.initiator.toLowerCase().startsWith("chrome"))&&(!("fromCache"in Object.keys(e))||e.fromCache)&&(!e.initiator||"chrome-extension"!==e.initiator)}static getBlankConnectionObject(e){return Be(this,void 0,void 0,(function*(){const t=Ee(),n=o.getBrowserDetails(),r=(null==n?void 0:n.os.version)?null==n?void 0:n.os.version:null==n?void 0:n.browser.version;return{requestId:null!=e?e:t,id:t,url:"",app_filtering_denied:!1,bypass_code:"",bypass_expiry_time:0,categoryId:"",destIp:"0.0.0.0",destPort:0,download:0,final_connection_object:!0,hwAddress:"",httpHost:"0",http_request_uris:[],htmlTitle:void 0,lifetime:0,packets:1,sourceIp:O.getLocalIp(),subCategoryId:"",tag:"",time:0,upload:1,user:O.getCurrentUserInfo().user,verdict_application_rule:"",noise:!1,reportingType:"extension",extensionConnection:!1,debug__chrome_verdict_issued:!1,debug__chrome_requestId:e,protocol:void 0,agent:void 0,agent_inside_network:void 0,resource_type:void 0,teacherId:null,filter_type:"extension",meta_data:{},useragent:`Connect/${chrome.runtime.getManifest().version} (k:${yield(0,a.Rm)()}; p:${null==n?void 0:n.os.name} ${r}; seg:edu)`,request_journey_log:null}}))}static getConnectionObject(e){return Be(this,void 0,void 0,(function*(){yield Ye.cachedConnections.waitTillCacheLoaded();const t=Ye.cachedConnections.getValue(yield Ye.getSessionRequestId(e));if(t)return t;{const t=yield Ye.getBlankConnectionObject(e);return yield Ye.setConnectionObject(e,t),t}}))}static setConnectionObject(e,t,n=!1){return Be(this,void 0,void 0,(function*(){yield Ye.cachedConnections.waitTillCacheLoaded(),Ye.cachedConnections.setValue(yield Ye.getSessionRequestId(e),t),n&&(yield Ye.cachedConnections.flush())}))}static removeConnection(e){return Be(this,void 0,void 0,(function*(){yield Ye.cachedConnections.waitTillCacheLoaded(),Ye.cachedConnections.removeValue(yield Ye.getSessionRequestId(e)),yield Ye.cachedConnections.flush()}))}static getSessionRequestId(e){return Be(this,void 0,void 0,(function*(){return yield Ye.cachedUploadInfo.waitTillCacheLoaded(),`${Ye.requestsSessionId}_${e}`}))}static mergeConnectionData(e,t){var n,r;return Be(this,void 0,void 0,(function*(){const i=(0,a.vI)(t.url);e.url=t.url,e.httpHost=i,e.user=O.getCurrentUserInfo().user,e.time=(0,a.$1)(),e.lifetime=0,e.packets=1,e.protocol=6,e.hwAddress="",e.agent=pe.getAgentName(),e.agent_inside_network=O.getInsideDeviceNetwork(),e.final_connection_object=!0,e.destPort=(0,a.Fc)(t.url),(e=yield Ye.updateConnectionObjectWithVerdict(e,t)).meta_data.request_type=t.type,e.meta_data.initiator=t.initiator,e.resource_type=t.type,e.hostname=yield He.getDMSHardwareId();const o=(0,a.Rb)(t.url);if(e.http_request_uris||(e.http_request_uris=[]),e.http_request_uris.indexOf(o)<0&&e.http_request_uris.push(o),null!==t.requestBody){const n=yield V.getYoutubeSearchQuery(t);n&&e.http_request_uris.push(`/results?search_query=${encodeURIComponent(n)}`)}if(e.sourceIp=O.getLocalIp(),t.ip&&(e.destIp=t.ip),t.requestHeaders)for(const r of t.requestHeaders)e.upload+=r.name.length,e.upload+=(null===(n=r.value)||void 0===n?void 0:n.length)||0;if(t.responseHeaders)for(const n of t.responseHeaders)e.download+=n.name.length,e.download+=(null===(r=n.value)||void 0===r?void 0:r.length)||0,"content-length"===n.name.toLowerCase()&&("get"===t.method.toLowerCase()?e.download?e.download+=Number(n.value):e.download=Number(n.value):e.upload?e.upload+=Number(n.value):e.upload=Number(n.value));if(t.requestBody&&(e.upload?e.upload+=Number((0,a.xM)(t.requestBody)):e.upload=Number((0,a.xM)(t.requestBody))),t.tabId&&-1!==t.tabId){const n=yield(0,a.K3)(t.tabId);"complete"===(null==n?void 0:n.status)&&(e.htmlTitle=n.title)}const s=O.hasActiveClass();return s&&(e.teacherId=(0,a.Oe)(s)),e}))}static saveRequestDelegationRequestData(e){if(e.url&&Ye.shouldProcessConnectionObject(e)){const t={optedIn:T.getParentsOptedIn(),enabledInSM:T.getDelegationEnabledInSM(),qustodioPresent:T.getQustodioIsPresent(),delegationActive:T.getDelegationActive()};t.qustodioPresent&&(t.loggedIn=T.getLoggedIn(),t.qustodioDelegationOn=T.getQustodioDelegationOn()),Ke.updateDelegationRequestData(e.requestId,t)}}static updateConnectionObject(e,t){return Be(this,void 0,void 0,(function*(){if(e.url&&Ye.shouldProcessConnectionObject(e)){const n=e.requestId;let r=yield Ye.getConnectionObject(n);if(r=yield Ye.mergeConnectionData(r,e),Ke.skipReportingOnDelegation(r.app_filtering_denied))return;if(t||Ye.isHighPriorityConnection(r)){if(t){try{const t=Oe.getVerdictResponse(e.requestId,e.url);r=Ke.updateConnectionObjectWithDelegationRequestData(n,r,t)}catch(e){(0,g.DP)(e),c("An error occurred while adding Delegation Request Data to the connection object",e)}Ye.storedConnectionCount++,yield Ye.updateUploadInfo(),r.meta_data.notReported||(k.isCompanionEnabled()?Ye.reportConnectionToNativeAgent(r):r.meta_data.uploadReady=!0)}yield Ye.setConnectionObject(n,r,!0),Ye.uploadData()}else Ye.setConnectionObject(n,r)}}))}static isHighPriorityConnection(e){var n;const r=null!==(n=e.meta_data.initiator)&&void 0!==n?n:"";return e.meta_data.request_type===t.JF.mainFrameRequestType||void 0!==Ye.highPriorityDomains.find((e=>r.includes(e)))}static updateConnectionObjectWithVerdict(e,t){return Be(this,void 0,void 0,(function*(){let n=Oe.getVerdictResponse(t.requestId,t.url);if(!n){const e=tt.getVerdict(t);n=e instanceof Promise?yield e:e,Oe.setVerdictResponse(t.requestId,t.url,n)}return e.meta_data.notReported=n.notReported,0===n.verdict?(e.debug__chrome_verdict_issued=!0,e.app_filtering_denied=!0):1===n.verdict&&(e.debug__chrome_verdict_issued=!0,e.app_filtering_denied=!1),e.verdict_application_rule=n.rule?n.rule.id:"",e.verdict_application_rule=n.zoom?n.zoom.group:e.verdict_application_rule,n.bypass&&(e.bypass_code=n.bypass.code,e.bypass_expiry_time=n.bypass.expiry_time),n.signatures&&(e.categoryId=n.signatures.category,e.subCategoryId=n.signatures.subCategory,e.tag=n.signatures.signature,n.signatures.noise&&(e.noise=n.signatures.noise)),e}))}static uploadData(){return Be(this,void 0,void 0,(function*(){if(yield O.waitTillConfigLoaded(),Ye.uploadingConnections)return;Ye.uploadingConnections=!0;const e=Ye.lastReportDateYe.MAX_STORED_CONNECTION_ITEMS||e){Ye.lastReportDate=Date.now(),Ye.updateUploadInfo();const e=[],t=[],n=Object.keys(Ye.cachedConnections.getCache()).slice(0,Ye.MAX_STORED_CONNECTION_ITEMS),r=(0,a.$1)();for(const i of n){const n=Ye.cachedConnections.getValue(i);n?n.meta_data.uploadReady?(e.push(n),t.push(i)):r-n.time>300&&Ye.cachedConnections.removeValue(i):Ye.cachedConnections.removeValue(i)}if(yield Ye.cachedConnections.flush(),l("Upload Data Called",e.length),O.getLocalIp()&&O.getActiveRegion()&&O.getApplianceId()&&e.length>0){l("Uploading Data",O.getLocalIp(),O.getActiveRegion(),O.getApplianceId());const n=yield fetch(`https://stats-xlb.${O.getActiveRegion()}.linewize.net/${O.getApplianceId()}/-/extension`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({items:e})}).catch((function(e){(0,g.DP)(e),u("Network failure\n",e)}));if(n&&200===n.status){l("Upload Successful",e.length,n);for(const e of t)Ye.cachedConnections.removeValue(e);yield Ye.cachedConnections.flush(),Ye.storedConnectionCount=Object.keys(Ye.cachedConnections.getCache()).length}else Ye.storedConnectionCount=0,u("Upload Failed",n);yield Ye.updateUploadInfo()}}Ye.uploadingConnections=!1}))}static createFakeYoutubeConnection(e){return Be(this,void 0,void 0,(function*(){const t=yield Ye.getBlankConnectionObject(null);Ye.updateConnectionObject({url:e,requestId:t.requestId},!0)}))}static convertToReportingConnection(e){var t,n,r,i,o,a,s,A,c,u,l,d,p;const h=new Re.Connection;return h.setAppFilteringDenied(e.app_filtering_denied),h.setDestip(e.destIp),h.setDestport(e.destPort),h.setDownload(e.download),h.setFinalConnectionObject(e.final_connection_object),h.setHwaddress(e.hwAddress),h.setHttphost(null!==(t=e.httpHost)&&void 0!==t?t:""),h.setHttpRequestUrisList(e.http_request_uris),h.setLifetime(e.lifetime),h.setNoise(e.noise),h.setPackets(e.packets),h.setProtocol(null!==(n=e.protocol)&&void 0!==n?n:0),h.setSourceip(e.sourceIp),h.setTag(e.tag),h.setCategoryid(e.categoryId),h.setSubcategoryid(e.subCategoryId),h.setTime(e.time),h.setUpload(e.upload),h.setUser(null!==(r=e.user)&&void 0!==r?r:""),h.setVerdictApplicationRule(e.verdict_application_rule),h.setExtensionconnection(e.extensionConnection),h.setHostname(null!==(i=e.htmlTitle)&&void 0!==i?i:""),h.setId(e.id),h.setAgent(""),h.setReportingtype(null!==(o=e.agent)&&void 0!==o?o:""),h.setHardware(String(e.agent_inside_network)),h.setTeacherid(e.teacherId),h.setResourceType(null!==(a=e.resource_type)&&void 0!==a?a:""),h.setBypassCode(null!==(s=e.bypass_code)&&void 0!==s?s:""),h.setBypassExpiryTime(null!==(A=e.bypass_expiry_time)&&void 0!==A?A:0),h.setHtmltitle(null!==(c=e.htmlTitle)&&void 0!==c?c:""),h.setAgentInsideNetwork(null!==(u=e.agent_inside_network)&&void 0!==u&&u),h.setFilterType(null!==(l=e.filter_type)&&void 0!==l?l:""),h.setDebugChromeVerdictIssued(null!==(d=e.debug__chrome_verdict_issued)&&void 0!==d&&d),h.setDebugChromeRequestid(null!==(p=e.debug__chrome_requestId)&&void 0!==p?p:""),h.setUseragent(e.useragent||""),h.setRequestJourneyLog(e.request_journey_log||""),h}}Ye.MAX_STORED_CONNECTION_ITEMS=1e4,Ye.CONNECTION_UPLOAD_INTERVAL_MILLISECONDS=3e5,Ye.highPriorityDomains=["www.youtube.com"],Ye.connectionsInitialised=!1,Ye.cachedConnections=new e.CachedStorage(t.JF.ConnectionsCacheId,!1),Ye.cachedTabs=new e.CachedStorage(t.JF.TabsCacheId),Ye.cachedUploadInfo=new e.CachedStorage(t.JF.UploadInfoCacheId),Ye.lastReportDate=Date.now(),Ye.storedConnectionCount=0,Ye.uploadingConnections=!1,Ye.requestsSessionId="";var Qe=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class $e{static init(){this.initialised||(this.initialised=!0,chrome.tabs.onUpdated.addListener(((e,t,n)=>Qe(this,void 0,void 0,(function*(){var r;if(t.url){if(yield Ye.waitTillCachedTabsLoaded(),(null===(r=n.url)||void 0===r?void 0:r.includes(this.YOUTUBE_WATCH_PREFIX))&&Ye.getValueFromTabsCache(`${e}`)!==n.url){const t=yield $e.createFakeYoutubeConnection(n.url);this.processVerdictResponse(e,Oe.getVerdictResponse(t,n.url))}Ye.setValueToTabsCache(`${e}`,n.url),Ye.flushCachedTabs()}})))))}static processVerdictResponse(e,t){return Qe(this,void 0,void 0,(function*(){t&&t.verdict===M.BLOCK&&t.redirect_uri&&chrome.tabs.update(e,{url:t.redirect_uri})}))}static createFakeYoutubeConnection(e){return Qe(this,void 0,void 0,(function*(){const t=yield Ye.getBlankConnectionObject(null);return yield Ye.updateConnectionObject({url:e,requestId:t.requestId},!0),t.requestId}))}}$e.YOUTUBE_WATCH_PREFIX="youtube.com/watch?v=",$e.initialised=!1;var et=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class tt{static init(){this.initialised||(this.initialised=!0,this.registerEventHandlers(),e.CacheScheduler.setInterval(t.UA.CustomHeaderCacheCleanIntervalId,tt.removeExpiredCustomHeaderVerdicts,t.UA.CustomHeaderCacheCleanInterval),$e.init())}static registerEventHandlers(){chrome.runtime.onMessage.addListener(this.contentScriptMessageHandler.bind(this)),chrome.webRequest.onBeforeRedirect.addListener(this.onBeforeRedirectReportFlush.bind(this),{urls:[""]}),chrome.webRequest.onBeforeRequest.addListener(this.onBeforeRequestFilter.bind(this),{urls:[""]},["blocking","requestBody"]),chrome.webRequest.onBeforeRequest.addListener(this.onBeforeRequestGoogleSafeSearch.bind(this),{urls:["*://*/search*"]},["blocking"]),chrome.webRequest.onBeforeRequest.addListener(this.onBeforeRequestBingSafeSearch.bind(this),{urls:["*://*.bing.com/search*","*://*.bing.com/videos*","*://*.bing.com/images*","*://*.bing.com/news*"]},["blocking"]),chrome.webRequest.onBeforeSendHeaders.addListener(this.onBeforeHeadersYoutubeSafeSearch.bind(this),{urls:["*://*.youtube.com/*","*://youtubei.googleapis.com/*","*://youtube.googleapis.com/*","*://www.youtube-nocookie.com/*"]},["blocking","requestHeaders"]),chrome.webRequest.onBeforeSendHeaders.addListener(this.onBeforeHeadersDynamicHeaders.bind(this),{urls:[""]},["blocking","requestHeaders"]),chrome.webRequest.onBeforeRequest.addListener(this.onBeforeRequestOffNetworkMyLinewize.bind(this),{urls:["*://my.linewize.net/*"]},["blocking"])}static contentScriptMessageHandler(e,t,n){let r=!1;switch(e.type){case he.ASYNC_VERDICT:{O.isDefaultChromeOsFilteringOn()||O.isFilteringEnabled()||n(null);const t=this.getVerdict({url:e.url});t instanceof Promise?(r=!0,t.then((e=>{n(e)}))):n(t);break}case he.CHECK_INTERNET_CONNECTION:r=!0,(0,a.Ab)().then(n)}return r}static onBeforeRedirectReportFlush(e){Oe.removeVerdictResponse(e.requestId),Ye.removeConnection(e.requestId)}static getVerdict(e){let t,n=!0;const r=Oe.getVerdictResponse(e.requestId,e.url);return void 0!==r?(t=r,n=!1):t=V.getVerdict(e),T.getDelegationActive()&&(t=this.getDelgationVerdict(t,e)),t instanceof Promise?t.then((t=>(n&&Oe.setVerdictResponse(e.requestId,e.url,t),t))):(n&&Oe.setVerdictResponse(e.requestId,e.url,t),t)}static getDelgationVerdict(e,t){return et(this,void 0,void 0,(function*(){let n;n=e instanceof Promise?yield e:e;const r=(0,a.vI)(t.url);return tt.customHeaderCache.setValue(r,n),(yield Ke.shouldIgnoreSafetyNet())&&(n=Object.assign({},n),n.verdict=M.ALLOW,n.redirect_uri=void 0,n.notReported=!0),n}))}static onBeforeRequestFilter(e){let t=!1,n={};if(this.isGoogleMapsVerdictBypass(e)&&(t=!0),this.requestShouldBeFiltered(e)||(t=!0),t)Ke.sendDelegationVerdict(e,M.ALLOW);else{const t=this.getVerdict(e);try{Ye.saveRequestDelegationRequestData(e)}catch(e){(0,g.DP)(e),c("An error occurred while setting the Delegation Request Data",e)}t instanceof Promise?(()=>{et(this,void 0,void 0,(function*(){const n=yield this.onBeforeRequestFilter_Async(e,t);Ke.sendDelegationVerdict(e,n.verdict)}))})():n=this.onBeforeRequestFilter_Sync(e,t)}return n}static onBeforeRequestFilter_Sync(e,t){const n=t.verdict===M.BLOCK;return Ye.updateConnectionObject(e,n),n&&t.redirect_uri?{redirectUrl:t.redirect_uri}:{}}static shouldAsyncBlock(e,t){var n,r;const i=void 0!==e.initiator&&""!==e.initiator&&"image"!==e.type&&"media"!==e.type&&"main_frame"!==e.type,o=!(null===(n=t.signatures)||void 0===n?void 0:n.noise)&&this.cipaCategories.includes((null===(r=t.signatures)||void 0===r?void 0:r.signature)||"");return i&&o}static onBeforeRequestFilter_Async(e,t){return et(this,void 0,void 0,(function*(){const n=yield t,r=n.verdict===M.BLOCK;if(yield Ye.updateConnectionObject(e,r),!r||!this.shouldAsyncBlock(e,n))return n;const i=yield chrome.tabs.get(e.tabId);return(0,a.vI)(e.initiator)!==(0,a.vI)(i.url)||n.redirect_uri&&(yield chrome.tabs.update(e.tabId,{url:n.redirect_uri})),n}))}static onBeforeRequestGoogleSafeSearch(e){const t=new URL(e.url),n=/\.google.*$/.test(t.hostname)&&/^\/search/.test(t.pathname);return O.isGoogleSafeSearchEnabled()&&n?(Ke.updateDelegationRequestData(e.requestId,{safeSearch:!0}),"active"===t.searchParams.get("safe")?{}:(t.searchParams.delete("safe"),{redirectUrl:t.href+"&safe=active"})):{}}static onBeforeRequestBingSafeSearch(e){const t=new URL(e.url);return O.isBingSafeSearchEnabled()?(Ke.updateDelegationRequestData(e.requestId,{safeSearch:!0}),"strict"===t.searchParams.get("adlt")?{}:{redirectUrl:t.href+"&adlt=strict"}):{}}static onBeforeHeadersYoutubeSafeSearch(e){const t=O.getYoutubeSafeSearchMode();if(t){Ke.updateDelegationRequestData(e.requestId,{safeSearch:!0});const n={name:"YouTube-Restrict",value:t};return e.requestHeaders.push(n),{requestHeaders:e.requestHeaders}}return{}}static onBeforeHeadersDynamicHeaders(e){if(!this.requestShouldBeFiltered(e))return{};let t=this.getVerdict(e);if(t instanceof Promise){const n=Object.keys(tt.customHeaderCache.getCache()),r=(0,a.vI)(e.url);let i=r,o=tt.customHeaderCache.getValue(i);if(!o){const e=n.find((e=>r.endsWith(`.${e}`)));e&&(i=e,o=tt.customHeaderCache.getValue(e))}if(t.then((t=>tt.handleCustomHeaderAsyncVerdicts(t,o,e,r,i))),!o)return{};t=o}if(!t.custom_headers||0==t.custom_headers.upsert.length)return{};for(const n of t.custom_headers.upsert){const t=n.name.toLowerCase(),r=e.requestHeaders.findIndex((e=>e.name.toLowerCase()===t));-1===r?e.requestHeaders.push({name:n.name,value:n.value}):e.requestHeaders[r].value=n.value}return{requestHeaders:e.requestHeaders}}static handleCustomHeaderAsyncVerdicts(e,t,n,r,i){var o,a,s;return et(this,void 0,void 0,(function*(){if(e.custom_headers&&e.custom_headers.upsert.length>0){tt.customHeaderCache.setValue(r,e);const i=null===(o=e.rule)||void 0===o?void 0:o.criteria;if(i)for(let t=0;tt.url===e.url)))return;const t=yield(0,a.k4)({interactive:!0});yield O.waitTillConfigLoaded(),yield O.setCurrentUserInfo(Object.assign(Object.assign({},O.getCurrentUserInfo()),{token:t})),yield chrome.tabs.update({url:this.getMyLinewizeUrl()})}))}static requestShouldBeFiltered(e){var t;const n=(0,a.vI)(e.url),r=n===(0,a.vI)(null!==(t=O.getVerdictServerUrl())&&void 0!==t?t:"")||n.indexOf(".")<0||"localhost"===n||e.url.toLowerCase().startsWith("chrome"),i=!!O.isDefaultChromeOsFilteringOn()||O.isFilteringEnabled();return e&&i&&!r&&!(e.initiator&&e.initiator.toLowerCase().startsWith("chrome"))}static getMyLinewizeUrl(){var e;const t=new URL(`https://mylinewize.${O.getActiveRegion()}.linewize.net/login`);return t.searchParams.set("cid",O.getChromeId()),t.searchParams.set("ce","true"),t.searchParams.set("u",O.getCurrentUserInfo().user),t.searchParams.set("ge",O.getCurrentUserInfo().email),t.searchParams.set("d",O.getApplianceId()),t.searchParams.set("gt",(null===(e=O.getCurrentUserInfo())||void 0===e?void 0:e.token)||""),t.toString()}static isGoogleMapsVerdictBypass(e){try{const t=new URL(e.url);return(t.hostname+t.pathname).includes("google.com/maps/vt")}catch(e){(0,g.DP)(e),console.error("caught error, skipping google maps verdict bypass check.",e)}return!1}}tt.cipaCategories=["sphirewall.application.porn"],tt.initialised=!1,tt.customHeaderCache=new e.CachedStorage(t.UA.CustomHeaderCacheId);var nt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class rt{static init(){rt.initialised||(rt.initialised=!0,rt.registerEventHandlers())}static updateChatInfo(e,t,n){rt.baseUrl=e,rt.userName=t,rt.applianceId=n}static showChatUi(e){var t,n;return nt(this,void 0,void 0,(function*(){if(!rt.fakePendoIsShowing){if(rt.windowsId)try{return void(yield chrome.windows.update(rt.windowsId,{focused:!0}))}catch(e){(0,g.DP)(e),c("Failed to focus the existing chat window, creating a new window!")}if(!rt.chatRequestInitated){const r=yield chrome.windows.getLastFocused();rt.chatRequestInitated=!0,chrome.windows.create({url:chrome.runtime.getURL("/chat/index.html"),type:"popup",height:522,width:344,left:(null!==(t=r.width)&&void 0!==t?t:0)-344,top:(null!==(n=r.height)&&void 0!==n?n:0)-522},(t=>{rt.windowsId=null==t?void 0:t.id,rt.chatRequestInitated=!1,oe.sendRuntimeMessageWithDelay({type:"OPEN_CHAT_CLASSROOM",classroomId:e},500)}))}}}))}static registerEventHandlers(){chrome.runtime.onMessage.addListener(rt.handleMessage),chrome.windows.onRemoved.addListener(rt.chatWindowClosed),chrome.tabs.onActivated.addListener(rt.handleTabChange),chrome.tabs.onUpdated.addListener(((e,t)=>{"complete"===t.status&&rt.showBubble(e)}))}static handleMessage(e){return nt(this,void 0,void 0,(function*(){"SHOW_CHAT_UI"===e.type?rt.showChatUi():"UPDATE_CHAT_BUBBLE_POSITION"===e.type?(rt.bubbleTop=e.imageTop,rt.bubbleLeft=e.imageLeft):"UPDATE_TOTAL_UNREAD_COUNT"===e.type?(rt.totalUnreadMessages=e.unreadMessageCount,(yield chrome.tabs.query({})).forEach((e=>{e.id&&rt.showBubble(e.id)}))):"CLOSE_CHAT_UI"===e.type?rt.windowsId&&(chrome.windows.remove(rt.windowsId),rt.windowsId=void 0):"SHOW_FAKE_PENDO_1"===e.type?rt.fakePendoIsShowing=!0:"CLOSE_FAKE_PENDO"===e.type&&((yield chrome.tabs.query({})).forEach((e=>{e.id&&rt.showBubble(e.id)})),rt.fakePendoIsShowing=!1,rt.showChatUi())}))}static chatWindowClosed(e){e&&rt.windowsId===e&&(rt.windowsId=void 0)}static showBubble(e){var t;return nt(this,void 0,void 0,(function*(){if(e||(e=null===(t=yield(0,a.e6)())||void 0===t?void 0:t.id),void 0!==e&&!(yield $.tabIsBrowserInternalByID(e))){const t=e;yield(0,a.oq)({target:{tabId:t},func:(e,t,n,r)=>{window.lwChatShowChatPendo=e,window.lwChatMsgCount=t,window.lwChatImageTop=n,window.lwChatImageLeft=r},args:[!1,rt.totalUnreadMessages,rt.bubbleTop,rt.bubbleLeft]}),yield(0,a.oq)({target:{tabId:t},files:["/chat/assets/scripts/bubble.bundle.js"]})}}))}static closeChatWindowUi(){rt.windowsId&&chrome.windows.remove(rt.windowsId,(()=>rt.windowsId=void 0))}}rt.initialised=!1,rt.applianceId="",rt.baseUrl="",rt.bubbleLeft=0,rt.bubbleTop=0,rt.chatRequestInitated=!1,rt.fakePendoIsShowing=!1,rt.totalUnreadMessages=0,rt.userName="",rt.windowsId=void 0,rt.handleTabChange=e=>{rt.showBubble(e.tabId)};var it=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class ot{static init(){ot.initialised||(ot.initialised=!0,l("ScreenshotPersister has been initialized."),chrome.tabs.onActivated.addListener(ot.handleTabActivated),chrome.tabs.onUpdated.addListener(ot.handleTabUpdated),chrome.tabs.onRemoved.addListener(ot.handleTabClosed),ot.openDb(),ot.getLastScreenshotTime())}static add(e,t){var n;if(!e||!t)return void console.error(`failed to cache screenshot: tabId ${e}, image ${t}`);const r=null===(n=ot.db)||void 0===n?void 0:n.transaction(["screenshotStore"],"readwrite");r&&r.objectStore("screenshotStore").put(t,e.toString())}static get(e){return it(this,void 0,void 0,(function*(){return new Promise((t=>{var n;const r=null===(n=ot.db)||void 0===n?void 0:n.transaction(["screenshotStore"],"readwrite");if(r){const n=r.objectStore("screenshotStore").get(e.toString());n.onsuccess=function(){const e=n.result;l("Retrieved a screenshot from IndexDB: ",e),t(e)}}}))}))}static getLastScreenshotTime(){var e;return it(this,void 0,void 0,(function*(){yield ot.lastScreenshotCache.waitTillCacheLoaded(),ot.lastScreenshotTime=null!==(e=ot.lastScreenshotCache.getValue("last_screenshot_time"))&&void 0!==e?e:0}))}static remove(e){var t;if(!e)return;const n=null===(t=ot.db)||void 0===t?void 0:t.transaction(["screenshotStore"],"readwrite");n&&n.objectStore("screenshotStore").delete(e.toString())}static update(e,t){return it(this,void 0,void 0,(function*(){if(ot.lastScreenshotTime+5e3>Date.now())l("Live View Cached screenshot update attempt was rate limited");else try{const n=yield(0,a.Hv)(t,30);l("Live view screenshot is taken for tab id: ",n.tabId),n.tabId&&n.tabId===e?(ot.lastScreenshotTime=Date.now(),ot.add(e,n.image),ot.lastScreenshotCache.setCache({last_screenshot_time:ot.lastScreenshotTime}),ot.lastScreenshotCache.flush()):c("Error saving screenshot: tab changed before screenshot could be cached")}catch(e){return(0,g.DP)(e),e instanceof a.e2?void l("Screenshots have been rate limited"):void c("Error while taking screenshot for Live view:",e)}}))}}ot.db=null,ot.initialised=!1,ot.lastScreenshotCache=new e.CachedStorage(t.f9.LastScreenshotCacheId),ot.lastScreenshotTime=0,ot.openDb=()=>{const e=indexedDB.open("screenshotCache",1);e.onsuccess=t=>{l("Screenshot cache DB successfully opened",t),ot.db=e.result,ot.db.onerror=function(e){c("Something went wrong creating or accessing the screenshotCacheDb",e)}},e.onupgradeneeded=e=>{const t=e.target;t&&(t.result.createObjectStore("screenshotStore"),l("Screenshot cache object store successfully created"))}},ot.handleTabActivated=e=>{ot.update(e.tabId,e.windowId)},ot.handleTabUpdated=(e,t,n)=>{n.active&&t.url&&ot.update(e,n.windowId)},ot.handleTabClosed=e=>{ot.remove(e)};var at=n(2007),st=n(6982),At=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class ct{static init(){ct.liveViewManagerInitialised||(ct.liveViewManagerInitialised=!0,ct.registerEventHandlers())}static initSignaler(e,n,r,i){const o=`${O.getCurrentUserInfo().user}_peerAgentId_${O.getChromeId()}`,a={};at.$.inject(st._.active(),a),A.sendMessage({type:t.lA.P2PInitSignaler,signalToken:e,channelName:n,remotePeerId:r,peerId:o,iceServers:i,traceContext:a})}static setCloseTimeouts(){var e;const n=null===(e=O.getApplianceId())||void 0===e?void 0:e.replace(/[^a-z0-9]/gi,"-"),r=O.getActiveConfigurations();n&&A.sendMessage({type:t.lA.P2PSetCloseTimeouts,timezone:O.getDeviceTimezone(),deviceChannelId:n,activeConfigurations:r})}static registerEventHandlers(){chrome.runtime.onMessage.addListener((()=>!0)),A.addMessageListener(t.lA.P2PGetScreenshot,((e,t)=>((()=>{At(this,void 0,void 0,(function*(){const n=yield ct.getScreenshot(e.streamingTab);t(n)}))})(),!0))),A.addMessageListener(t.lA.P2PGetTabs,((e,t)=>((()=>{At(this,void 0,void 0,(function*(){const e=yield ct.getTabUpdate();t(e)}))})(),!0)))}static getTabUpdate(){return At(this,void 0,void 0,(function*(){const e=(0,a.yG)(),t=yield chrome.windows.getLastFocused(),n=(yield chrome.tabs.query({})).filter((t=>t.url&&!e.includes(t.url))).map((e=>({favIcon:e.url&&!$.tabIsBrowserInternalByUrl(e.url)?e.favIconUrl:K,tabUrl:e.url,title:e.title,tab_id:`${e.windowId}_${e.id}`,active:e.active&&e.windowId===t.id}))),r=n.map((e=>e.tabUrl));return{type:"tab_update",tabs:n,restrictedDomainFound:0!==H.getOpenRestrictedDomains(r).length}}))}static getScreenshot(e){return At(this,void 0,void 0,(function*(){const t=(e,t,n)=>({type:"screenshot",tab_id:`${n}_${t}`,screenshot:e}),n=yield(0,a.K3)(e);if(null==n?void 0:n.active)try{const{image:e,tabId:r}=yield(0,a.Hv)(n.windowId,30);if(void 0!==e&&r===n.id)return ot.add(n.id,e),t(e,n.id,n.windowId)}catch(e){return(0,g.DP)(e),e instanceof a.e2?void 0:{type:"screenshot_unavailable"}}else if(null==n?void 0:n.id){const e=yield ot.get(n.id);return e?(l("Using cached screenshot"),t(e,n.id,n.windowId)):(l("Could not upload screenshot, tab is inactive and there is no cached screenshot"),{type:"screenshot_unavailable"})}}))}}ct.liveViewManagerInitialised=!1;var ut=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class lt{static init(){return ut(this,void 0,void 0,(function*(){lt.initialised||(lt.initialised=!0,lt.registerEventHandlers())}))}static registerEventHandlers(){A.addMessageListener(t.lA.EventMessage,(e=>{l("New Event: ",e);const n=e.eventType,r=e.data,i=!O.getIsTeacher()&&O.isClassroomEnabled();switch(n){case t.wf.CONFIG_UPDATE:lt.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield wd.configUpdate()}))));break;case t.wf.OPEN_TAB:i&<.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield lt.handleEventOpenTab(r)}))));break;case t.wf.CLOSE_TAB:i&<.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield lt.handleEventCloseTab(r)}))));break;case t.wf.MESSAGE:i&<.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield lt.handleNewMessage(r)}))));break;case t.wf.CLASS_STARTED:case t.wf.POLICY_UPDATE:i&<.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield lt.handleEventPolicyUpdate()}))));break;case t.wf.INIT_P2P:i&<.addInstrumentedEventHandler(n,r,(()=>ut(this,void 0,void 0,(function*(){yield lt.handleInitP2P(r)}))));break;default:c(`Uknown message key: ${n}`)}})),l("Subscribed for Events")}static addInstrumentedEventHandler(e,t,n){var r;return ut(this,void 0,void 0,(function*(){const i=`${e} process`;let o=!1;try{const a={"messaging.operation":"process","messaging.system":"event_service","messaging.destination.template":"/events/v2/appliance/{deviceId}/recipient/{username}","qoria.linewize.event.type":e,"qoria.linewize.appliance.id":O.getApplianceId(),"qoria.linewize.user.username":O.getCurrentUserInfo().user};if(t._virtualTimestamp&&t._actualTimestamp){const e=Date.now()-t._actualTimestamp,n=t._virtualTimestamp+e;Xe.A.setServerTimeStamp(n)}const s=at.$.extract(st._.active(),(null===(r=null==t?void 0:t.header)||void 0===r?void 0:r.trace)||{});Fe.K.getTracer("events").startActiveSpan(i,{attributes:a,kind:qe.v.CONSUMER,startTime:Xe.A.now()},s,(t=>ut(this,void 0,void 0,(function*(){try{o=!0,yield n()}catch(e){t.setStatus({code:Ve.s.ERROR}),t.recordException(e)}finally{d(`Ending span for event ${e}`),t.end()}}))))}catch(t){c(`Error instrumenting event handler ${e}`,t),o||n()}}))}static clearLastChatMessage(){lt.setLastChatMessage(void 0)}static handleNewMessage(e){return ut(this,void 0,void 0,(function*(){const t=e;!t||t.threadKey&&O.isClassroomEnabled()?(lt.handleEventNewChatArrive(t),lt.setLastChatMessage(t)):O.isClassroomEnabled()&<.handleEventMessage(e)}))}static handleInitP2P(e){return ut(this,void 0,void 0,(function*(){O.isClassroomEnabled()&&e.peerAgentId===O.getChromeId()&<.handleEventP2pInit(e)}))}static handleEventPolicyUpdate(){return ut(this,void 0,void 0,(function*(){yield V.resetVerdictCache(),yield wd.configUpdate(!0),yield $.checkTabsForRuleViolations()}))}static handleEventMessage(e){var t,n;if(k.isCompanionAvailable())return;const r=e,i=parseInt(null!==(n=null===(t=r.header)||void 0===t?void 0:t.timestampEpochMs)&&void 0!==n?n:0,10);ie.print_message(r.msg,i)}static handleEventOpenTab(e){return ut(this,void 0,void 0,(function*(){$.maximizeIfWindowIsMinimized();const{url:t}=e;t.toLowerCase().startsWith("http://")||t.toLowerCase().startsWith("https://")?yield chrome.tabs.create({url:t}):yield chrome.tabs.create({url:"http://"+t})}))}static postCloseTabCallback(e){e.favIconUrl&&ie.print_close_tab_message(e.favIconUrl,Date.now())}static handleEventCloseTab(e){return ut(this,void 0,void 0,(function*(){const{tabId:t,windowId:n}=e;if(t&&n){const e=parseInt(t),r=parseInt(n),i=yield chrome.tabs.query({}),o=yield chrome.tabs.get(e);if(o.windowId!==r)return void l("Window id doesn't match, ignoring the close tab event");chrome.runtime.lastError?c("Error closing tab:",chrome.runtime.lastError.message):$.close_tab(i,(()=>lt.postCloseTabCallback(o)),e)}else c("Error parsing tabId and windowId",t,n)}))}static handleEventP2pInit(e){return ut(this,void 0,void 0,(function*(){const t=(0,a.yG)(),n=(yield chrome.tabs.query({})).filter((e=>!!e.url&&!t.includes(e.url))).map((e=>e.url));if(0!==H.getOpenRestrictedDomains(n).length)return void u("P2P Init request is discarded as State Testing is in progress");const{channel:r,signalToken:i,remotePeerId:o,ice:s}=e;ct.initSignaler(i,r,o,s)}))}static handleEventNewChatArrive(e){chrome.runtime.sendMessage({type:t.lA.UpdaterNewMessage,data:e}),O.getClassroomChatEnabled()&&e.sender.username!==O.getCurrentUserInfo().user&&rt.showChatUi(e.classroomId)}static getLastChatMessage(){return lt.getCachedValue(lt.updaterDataCache,"last_chat_message",void 0)}static setLastChatMessage(e){lt.setCachedValue(lt.updaterDataCache,"last_chat_message",e)}static getCachedValue(e,t,n){var r;return null!==(r=e.getValue(t,n))&&void 0!==r?r:n}static setCachedValue(e,t,n){return ut(this,void 0,void 0,(function*(){e.setValue(t,n),e.flush()}))}}lt.initialised=!1,lt.updaterDataCache=new e.CachedStorage(t.DA.GeneralCacheId),lt.updateChatConfigInfo=()=>{if(!O.getClassroomChatEnabled())return;const e=O.getCurrentUserInfo(),t=O.getChatBaseUrl(),n=O.getDeviceId();rt.updateChatInfo(t,e.user,n)};class dt{static init(){this.initialised||(this.initialised=!0)}static process(n){const r=n.flatMap((e=>e.periods));if(0!==r.length){const n=(0,a.yj)(O.getDeviceTimezone(),r);if(n){const{msUntilStart:r}=n;r&&e.CacheScheduler.setTimeout(t.VJ.ClassConfigRefreshTimeout,(()=>{lt.handleEventPolicyUpdate()}),r+5e3)}}}}dt.initialised=!1;var pt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class ht{static init(){return pt(this,void 0,void 0,(function*(){ht.initialised||this.registerEventHandlers(),ht.initialised=!0}))}static registerEventHandlers(){A.addMessageListener(t.lA.GetManifestInfo,((e,t)=>{t(chrome.runtime.getManifest())})),A.addMessageListener(t.lA.CompanionMessage,(e=>{(()=>{pt(this,void 0,void 0,(function*(){var n;d("Extension has just received a new environment details");const r=k.getCompanionEnrolmentDetails(),i=e.enrolmentDetails;if(yield k.setNativeAgentVersion(e.nativeAgentVersion),yield k.setCompanionAvailable(e.companionStatus.companionAvailable),yield k.setCompanionEnrolmentDetails(i),yield k.setCompanionEnrolled(e.companionStatus.companionEnrolled),yield k.setCompanionEnabled(e.companionStatus.companionEnabled),i&&!(0,Me.isEqual)(r,i)){const e=i.enabledfeaturesList,r=i.featureflagsList,o=e.includes(t.y5.dns_filter),a=e.includes(t.y5.proxyFilter),s=e.includes(t.y5.classroom),A=!!r&&r.includes(t.y5.liteModeEnabled),c=A||o||a,u=null===(n=i.macaddressesList)||void 0===n?void 0:n[0];u&&He.setMacAddress(u),yield k.setCompanionToken(i.devicetoken),yield k.setCompanionFilteringEnabled(c),yield k.setCompanionClassroomEnabled(s),yield k.setCompanionModeLite(A),d("environment details",i),wd.configUpdate(!0)}}))})()})),A.addMessageListener(t.lA.RegisterClasswizeEventFail,(e=>{console.log(e)})),A.addMessageListener(t.lA.RegisterClasswizeEventMessage,(e=>{console.log(e)})),A.addMessageListener(t.lA.CompanionErrorMessage,(e=>{(()=>{pt(this,void 0,void 0,(function*(){d(" !!!! Companion Stream is terminated !!! "),e.status&&d(`Status code: ${e.status.code}`),d(`Checking if extension has been registered: ${e.extensionIsRegistered}`),e.extensionIsRegistered&&(yield k.disableCompanionMode(),wd.configUpdate(!0))}))})()}))}}ht.initialised=!1;var ft=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class mt{static init(){mt.initialized||(mt.initialized=!0,mt.registerAllEventHandlers())}static registerAllEventHandlers(){chrome.windows.onCreated.addListener(this.onBrowserWindowCreated),chrome.windows.onRemoved.addListener(this.onBrowserWindowClosed)}static onBrowserWindowCreated(e){return ft(this,void 0,void 0,(function*(){d(`A new browser window is open, windowId: ${e.id}`),"normal"===e.type&&1==(yield(0,a.ae)())&&(wd.setNewBrowserSession(!0),wd.configUpdate(!0),o.getPlatformIsChromeOs()||A.sendMessage({type:t.lA.RegisterExtension}))}))}static onBrowserWindowClosed(){return ft(this,void 0,void 0,(function*(){(yield(0,a.V3)())||$.resetState()}))}}mt.initialized=!1;const gt=function(e){const t=[];let n=0;for(let r=0;r>6|192,t[n++]=63&i|128):55296==(64512&i)&&r+1>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128)}return t},yt={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t>2,u=(3&i)<<4|a>>4;let l=(15&a)<<2|A>>6,d=63&A;s||(d=64,o||(l=64)),r.push(n[c],n[u],n[l],n[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(gt(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n191&&i<224){const o=e[n++];t[r++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){const o=((7&i)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(o>>10)),t[r++]=String.fromCharCode(56320+(1023&o))}else{const o=e[n++],a=e[n++];t[r++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t>4;if(r.push(A),64!==a){const e=o<<4&240|a>>2;if(r.push(e),64!==s){const e=a<<6&192|s;r.push(e)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class vt extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const bt=function(e){return function(e){const t=gt(e);return yt.encodeByteArray(t,!0)}(e).replace(/\./g,"")},kt=function(e){try{return yt.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},St=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&kt(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},Tt=e=>{var t,n;return null===(n=null===(t=St())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]},wt=()=>{var e;return null===(e=St())||void 0===e?void 0:e.config};class Et{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function jt(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}class Ot extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,Ot.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Rt.prototype.create)}}class Rt{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e){const t=(arguments.length<=1?void 0:arguments[1])||{},n=`${this.service}/${e}`,r=this.errors[e],i=r?function(e,t){return e.replace(Pt,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(r,t):"Error",o=`${this.serviceName}: ${i} (${n}).`;return new Ot(n,o,t)}}const Pt=/\{\$([^}]+)}/g;function Ct(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const i of n){if(!r.includes(i))return!1;const n=e[i],o=t[i];if(Lt(n)&&Lt(o)){if(!Ct(n,o))return!1}else if(n!==o)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function Lt(e){return null!==e&&"object"==typeof e}function Nt(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function xt(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,r]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(r)}})),t}function Mt(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class Ut{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e){if("object"!=typeof e||null===e)return!1;for(const t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}(e)?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=It),void 0===r.error&&(r.error=It),void 0===r.complete&&(r.complete=It);const i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}})),this.observers.push(r),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function It(){}function _t(e){return e&&e._delegate?e._delegate:e}class Wt{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const zt="[DEFAULT]";class Dt{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new Et;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:zt})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:zt;this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:zt;return this.instances.has(e)}getOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:zt;return this.instancesOptions.get(e)||{}}initialize(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const r=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(e)&&t.resolve(r);return r}onInit(e,t){var n;const r=this.normalizeInstanceIdentifier(t),i=null!==(n=this.onInitCallbacks.get(r))&&void 0!==n?n:new Set;i.add(e),this.onInitCallbacks.set(r,i);const o=this.instances.get(r);return o&&e(o,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const r of n)try{r(e,t)}catch(e){}}getOrInitializeService(e){let{instanceIdentifier:t,options:n={}}=e,r=this.instances.get(t);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(i=t,i===zt?void 0:i),options:n}),this.instances.set(t,r),this.instancesOptions.set(t,n),this.invokeOnInitCallbacks(r,t),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,t,r)}catch(e){}var i;return r||null}normalizeInstanceIdentifier(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:zt;return this.component?this.component.multipleInstances?e:zt:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Ft{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new Dt(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const qt=[];var Vt,Xt;(Xt=Vt||(Vt={}))[Xt.DEBUG=0]="DEBUG",Xt[Xt.VERBOSE=1]="VERBOSE",Xt[Xt.INFO=2]="INFO",Xt[Xt.WARN=3]="WARN",Xt[Xt.ERROR=4]="ERROR",Xt[Xt.SILENT=5]="SILENT";const Jt={debug:Vt.DEBUG,verbose:Vt.VERBOSE,info:Vt.INFO,warn:Vt.WARN,error:Vt.ERROR,silent:Vt.SILENT},Zt=Vt.INFO,Kt={[Vt.DEBUG]:"log",[Vt.VERBOSE]:"log",[Vt.INFO]:"info",[Vt.WARN]:"warn",[Vt.ERROR]:"error"},Gt=function(e,t){if(t2?i-2:0),a=2;a(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function on(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Yt||(Yt=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(){for(var e=arguments.length,n=new Array(e),r=0;r1?n-1:0),i=1;i{const r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",o),e.removeEventListener("abort",o)},i=()=>{t(),r()},o=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",o),e.addEventListener("abort",o)}));$t.set(e,t)}(e),n=e,(Bt||(Bt=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>n instanceof e))?new Proxy(e,rn):e);var t,n}function an(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",o)},i=()=>{t(an(e.result)),r()},o=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",o)}));return t.then((t=>{t instanceof IDBCursor&&Qt.set(t,e)})).catch((()=>{})),nn.set(t,e),t}(e);if(tn.has(e))return tn.get(e);const t=on(e);return t!==e&&(tn.set(e,t),nn.set(t,e)),t}const sn=e=>nn.get(e),An=["get","getKey","getAll","getAllKeys","count"],cn=["put","add","delete","clear"],un=new Map;function ln(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(un.get(t))return un.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=cn.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!An.includes(n))return;const o=async function(e){const t=this.transaction(e,i?"readwrite":"readonly");let o=t.store;for(var a=arguments.length,s=new Array(a>1?a-1:0),A=1;Aln(e,t)||dn.get(e,t,n),has:(e,t)=>!!ln(e,t)||dn.has(e,t)};class pn{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const hn="@firebase/app",fn="0.10.13",mn=new Ht("@firebase/app"),gn="@firebase/app-compat",yn="@firebase/analytics-compat",vn="@firebase/analytics",bn="@firebase/app-check-compat",kn="@firebase/app-check",Sn="@firebase/auth",Tn="@firebase/auth-compat",wn="@firebase/database",En="@firebase/data-connect",jn="@firebase/database-compat",On="@firebase/functions",Rn="@firebase/functions-compat",Pn="@firebase/installations",Cn="@firebase/installations-compat",Ln="@firebase/messaging",Nn="@firebase/messaging-compat",xn="@firebase/performance",Mn="@firebase/performance-compat",Un="@firebase/remote-config",In="@firebase/remote-config-compat",_n="@firebase/storage",Wn="@firebase/storage-compat",zn="@firebase/firestore",Dn="@firebase/vertexai-preview",Fn="@firebase/firestore-compat",qn="firebase",Vn="[DEFAULT]",Xn={[hn]:"fire-core",[gn]:"fire-core-compat",[vn]:"fire-analytics",[yn]:"fire-analytics-compat",[kn]:"fire-app-check",[bn]:"fire-app-check-compat",[Sn]:"fire-auth",[Tn]:"fire-auth-compat",[wn]:"fire-rtdb",[En]:"fire-data-connect",[jn]:"fire-rtdb-compat",[On]:"fire-fn",[Rn]:"fire-fn-compat",[Pn]:"fire-iid",[Cn]:"fire-iid-compat",[Ln]:"fire-fcm",[Nn]:"fire-fcm-compat",[xn]:"fire-perf",[Mn]:"fire-perf-compat",[Un]:"fire-rc",[In]:"fire-rc-compat",[_n]:"fire-gcs",[Wn]:"fire-gcs-compat",[zn]:"fire-fst",[Fn]:"fire-fst-compat",[Dn]:"fire-vertex","fire-js":"fire-js",[qn]:"fire-js-all"},Jn=new Map,Zn=new Map,Kn=new Map;function Gn(e,t){try{e.container.addComponent(t)}catch(n){mn.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function Hn(e){const t=e.name;if(Kn.has(t))return mn.debug(`There were multiple attempts to register component ${t}.`),!1;Kn.set(t,e);for(const t of Jn.values())Gn(t,e);for(const t of Zn.values())Gn(t,e);return!0}function Bn(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}function Yn(e){return void 0!==e.settings}const Qn=new Rt("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class $n{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new Wt("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Qn.create("app-deleted",{appName:this._name})}}const er="10.14.1";function tr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e;"object"!=typeof t&&(t={name:t});const r=Object.assign({name:Vn,automaticDataCollectionEnabled:!1},t),i=r.name;if("string"!=typeof i||!i)throw Qn.create("bad-app-name",{appName:String(i)});if(n||(n=wt()),!n)throw Qn.create("no-options");const o=Jn.get(i);if(o){if(Ct(n,o.options)&&Ct(r,o.config))return o;throw Qn.create("duplicate-app",{appName:i})}const a=new Ft(i);for(const e of Kn.values())a.addComponent(e);const s=new $n(n,r,a);return Jn.set(i,s),s}function nr(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Vn;const t=Jn.get(e);if(!t&&e===Vn&&wt())return tr();if(!t)throw Qn.create("no-app",{appName:e});return t}function rr(e,t,n){var r;let i=null!==(r=Xn[e])&&void 0!==r?r:e;n&&(i+=`-${n}`);const o=i.match(/\s|\//),a=t.match(/\s|\//);if(o||a){const e=[`Unable to register library "${i}" with version "${t}":`];return o&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),o&&a&&e.push("and"),a&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void mn.warn(e.join(" "))}Hn(new Wt(`${i}-version`,(()=>({library:i,version:t})),"VERSION"))}const ir="firebase-heartbeat-store";let or=null;function ar(){return or||(or=function(e,t){let{blocked:n,upgrade:r,blocking:i,terminated:o}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=indexedDB.open(e,t),s=an(a);return r&&a.addEventListener("upgradeneeded",(e=>{r(an(a.result),e.oldVersion,e.newVersion,an(a.transaction),e)})),n&&a.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{o&&e.addEventListener("close",(()=>o())),i&&e.addEventListener("versionchange",(e=>i(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(ir)}catch(e){console.warn(e)}}}).catch((e=>{throw Qn.create("idb-open",{originalErrorMessage:e.message})}))),or}async function sr(e,t){try{const n=(await ar()).transaction(ir,"readwrite"),r=n.objectStore(ir);await r.put(t,Ar(e)),await n.done}catch(e){if(e instanceof Ot)mn.warn(e.message);else{const t=Qn.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});mn.warn(t.message)}}}function Ar(e){return`${e.name}!${e.options.appId}`}class cr{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new lr(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;try{const n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=ur();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some((e=>e.date===r)))return;return this._heartbeatsCache.heartbeats.push({date:r,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}catch(e){mn.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=ur(),{heartbeatsToSend:n,unsentEntries:r}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1024;const n=[];let r=e.slice();for(const i of e){const e=n.find((e=>e.agent===i.agent));if(e){if(e.dates.push(i.date),dr(n)>t){e.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),dr(n)>t){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),i=bt(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=t,r.length>0?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return mn.warn(e),""}}}function ur(){return(new Date).toISOString().substring(0,10)}class lr{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await ar()).transaction(ir),n=await t.objectStore(ir).get(Ar(e));return await t.done,n}catch(e){if(e instanceof Ot)mn.warn(e.message);else{const t=Qn.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});mn.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return sr(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return sr(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function dr(e){return bt(JSON.stringify({version:2,heartbeats:e})).length}Hn(new Wt("platform-logger",(e=>new pn(e)),"PRIVATE")),Hn(new Wt("heartbeat",(e=>new cr(e)),"PRIVATE")),rr(hn,fn,""),rr(hn,fn,"esm2017"),rr("fire-js",""),rr("firebase","10.14.1","app");var pr,hr,fr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},mr={};(function(){var e;function t(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(e,t,n){n||(n=0);var r=Array(16);if("string"==typeof t)for(var i=0;16>i;++i)r[i]=t.charCodeAt(n++)|t.charCodeAt(n++)<<8|t.charCodeAt(n++)<<16|t.charCodeAt(n++)<<24;else for(i=0;16>i;++i)r[i]=t[n++]|t[n++]<<8|t[n++]<<16|t[n++]<<24;t=e.g[0],n=e.g[1],i=e.g[2];var o=e.g[3],a=t+(o^n&(i^o))+r[0]+3614090360&4294967295;a=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=(n=(i=(o=(t=n+(a<<7&4294967295|a>>>25))+((a=o+(i^t&(n^i))+r[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^o&(t^n))+r[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(o^t))+r[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(o^n&(i^o))+r[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=o+(i^t&(n^i))+r[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^o&(t^n))+r[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(o^t))+r[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(o^n&(i^o))+r[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=o+(i^t&(n^i))+r[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^o&(t^n))+r[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(o^t))+r[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(o^n&(i^o))+r[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=o+(i^t&(n^i))+r[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^o&(t^n))+r[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(o^t))+r[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^o&(n^i))+r[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=o+(n^i&(t^n))+r[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(o^t))+r[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=n+(o^t&(i^o))+r[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^o&(n^i))+r[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=o+(n^i&(t^n))+r[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(o^t))+r[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=n+(o^t&(i^o))+r[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^o&(n^i))+r[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=o+(n^i&(t^n))+r[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(o^t))+r[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=n+(o^t&(i^o))+r[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^o&(n^i))+r[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=o+(n^i&(t^n))+r[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(o^t))+r[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=n+(o^t&(i^o))+r[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(n^i^o)+r[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=o+(t^n^i)+r[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(o^t^n)+r[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^o^t)+r[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^o)+r[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=o+(t^n^i)+r[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(o^t^n)+r[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^o^t)+r[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^o)+r[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=o+(t^n^i)+r[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(o^t^n)+r[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^o^t)+r[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^o)+r[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=o+(t^n^i)+r[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(o^t^n)+r[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^o^t)+r[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(n|~o))+r[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=o+(n^(t|~i))+r[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(o|~n))+r[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=n+(o^(i|~t))+r[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(n|~o))+r[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=o+(n^(t|~i))+r[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(o|~n))+r[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=n+(o^(i|~t))+r[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(n|~o))+r[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=o+(n^(t|~i))+r[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(o|~n))+r[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=n+(o^(i|~t))+r[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((o=(t=n+((a=t+(i^(n|~o))+r[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=o+(n^(t|~i))+r[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=o+((a=i+(t^(o|~n))+r[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+r[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+o&4294967295}function r(e,t){this.h=t;for(var n=[],r=!0,i=e.length-1;0<=i;i--){var o=0|e[i];r&&o==t||(n[i]=o,r=!1)}this.g=n}!function(e,t){function n(){}n.prototype=t.prototype,e.D=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.C=function(e,n,r){for(var i=Array(arguments.length-2),o=2;othis.h?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;tt;++t)for(var r=0;32>r;r+=8)e[n++]=this.g[t]>>>r&255;return e};var i={};function o(e){return-128<=e&&128>e?function(e){var t=i;return Object.prototype.hasOwnProperty.call(t,e)?t[e]:t[e]=function(e){return new r([0|e],0>e?-1:0)}(e)}(e):new r([0|e],0>e?-1:0)}function a(e){if(isNaN(e)||!isFinite(e))return s;if(0>e)return d(a(-e));for(var t=[],n=1,i=0;e>=n;i++)t[i]=e/n|0,n*=4294967296;return new r(t,0)}var s=o(0),A=o(1),c=o(16777216);function u(e){if(0!=e.h)return!1;for(var t=0;t>>16,e[t]&=65535,t++}function f(e,t){this.g=e,this.h=t}function m(e,t){if(u(t))throw Error("division by zero");if(u(e))return new f(s,s);if(l(e))return t=m(d(e),t),new f(d(t.g),d(t.h));if(l(t))return t=m(e,d(t)),new f(d(t.g),t.h);if(30=r.l(e);)n=g(n),r=g(r);var i=y(n,1),o=y(r,1);for(r=y(r,2),n=y(n,2);!u(r);){var c=o.add(r);0>=c.l(e)&&(i=i.add(n),o=c),r=y(r,1),n=y(n,1)}return t=p(e,i.j(t)),new f(i,t)}for(i=s;0<=e.l(t);){for(n=Math.max(1,Math.floor(e.m()/t.m())),r=48>=(r=Math.ceil(Math.log(n)/Math.LN2))?1:Math.pow(2,r-48),c=(o=a(n)).j(t);l(c)||0>>31;return new r(n,e.h)}function y(e,t){var n=t>>5;t%=32;for(var i=e.g.length-n,o=[],a=0;a>>t|e.i(a+n+1)<<32-t:e.i(a+n);return new r(o,e.h)}(e=r.prototype).m=function(){if(l(this))return-d(this).m();for(var e=0,t=1,n=0;n(e=e||10)||36>>0).toString(e);if(u(n=i))return o+r;for(;6>o.length;)o="0"+o;r=o+r}},e.i=function(e){return 0>e?0:e>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);i=s>>>16,a&=65535,s&=65535,n[o]=s<<16|a}return new r(n,-2147483648&n[n.length-1]?-1:0)},e.j=function(e){if(u(this)||u(e))return s;if(l(this))return l(e)?d(this).j(d(e)):d(d(this).j(e));if(l(e))return d(this.j(d(e)));if(0>this.l(c)&&0>e.l(c))return a(this.m()*e.m());for(var t=this.g.length+e.g.length,n=[],i=0;i<2*t;i++)n[i]=0;for(i=0;i>>16,p=65535&this.i(i),f=e.i(o)>>>16,m=65535&e.i(o);n[2*i+2*o]+=p*m,h(n,2*i+2*o),n[2*i+2*o+1]+=A*m,h(n,2*i+2*o+1),n[2*i+2*o+1]+=p*f,h(n,2*i+2*o+1),n[2*i+2*o+2]+=A*f,h(n,2*i+2*o+2)}for(i=0;i(n=n||10)||36A?(A=a(Math.pow(n,A)),i=i.j(A).add(a(c))):i=(i=i.j(r)).add(a(c))}return i},pr=mr.Integer=r}).apply(void 0!==fr?fr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var gr,yr,vr,br,kr,Sr,Tr,wr,Er="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},jr={};(function(){var e,t="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,n){return e==Array.prototype||e==Object.prototype||(e[t]=n.value),e},n=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Er&&Er];for(var t=0;t{throw e}),0)}function w(){var e=P;let t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t}var E=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0new j),(e=>e.reset()));class j{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let O,R=!1,P=new class{constructor(){this.h=this.g=null}add(e,t){const n=E.get();n.set(e,t),this.h?this.h.next=n:this.g=n,this.h=n}},C=()=>{const e=i.Promise.resolve(void 0);O=()=>{e.then(L)}};var L=()=>{for(var e;e=w();){try{e.h.call(e.g)}catch(e){T(e)}var t=E;t.j(e),100>t.h&&(t.h++,e.next=t.g,t.g=e)}R=!1};function N(){this.s=this.s,this.C=this.C}function x(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}N.prototype.s=!1,N.prototype.ma=function(){this.s||(this.s=!0,this.N())},N.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},x.prototype.h=function(){this.defaultPrevented=!0};var M=function(){if(!i.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{const e=()=>{};i.addEventListener("test",e,t),i.removeEventListener("test",e,t)}catch(e){}return e}();function U(e,t){if(x.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var n=this.type=e.type,r=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(g){e:{try{m(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==n?t=e.fromElement:"mouseout"==n&&(t=e.toElement);this.relatedTarget=t,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:I[e.pointerType]||"",this.state=e.state,this.i=e,e.defaultPrevented&&U.aa.h.call(this)}}l(U,x);var I={2:"touch",3:"pen",4:"mouse"};U.prototype.h=function(){U.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var _="closure_listenable_"+(1e6*Math.random()|0),W=0;function z(e,t,n,r,i){this.listener=e,this.proxy=null,this.src=t,this.type=n,this.capture=!!r,this.ha=i,this.key=++W,this.da=this.fa=!1}function D(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function F(e){this.src=e,this.g={},this.h=0}function q(e,t){var n=t.type;if(n in e.g){var r,i=e.g[n],o=Array.prototype.indexOf.call(i,t,void 0);(r=0<=o)&&Array.prototype.splice.call(i,o,1),r&&(D(t),0==e.g[n].length&&(delete e.g[n],e.h--))}}function V(e,t,n,r){for(var i=0;i>>0);function te(e){return"function"==typeof e?e:(e[ee]||(e[ee]=function(t){return e.handleEvent(t)}),e[ee])}function ne(){N.call(this),this.i=new F(this),this.M=this,this.F=null}function re(e,t){var n,r=e.F;if(r)for(n=[];r;r=r.F)n.push(r);if(e=e.M,r=t.type||t,"string"==typeof t)t=new x(t,e);else if(t instanceof x)t.target=t.target||e;else{var i=t;k(t=new x(r,e),i)}if(i=!0,n)for(var o=n.length-1;0<=o;o--){var a=t.g=n[o];i=ie(a,r,!0,t)&&i}if(i=ie(a=t.g=e,r,!0,t)&&i,i=ie(a,r,!1,t)&&i,n)for(o=0;o{e.g=null,e.i&&(e.i=!1,ae(e))}),e.l);const t=e.h;e.h=null,e.m.apply(null,t)}l(ne,N),ne.prototype[_]=!0,ne.prototype.removeEventListener=function(e,t,n,r){H(this,e,t,n,r)},ne.prototype.N=function(){if(ne.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var n=t.g[e],r=0;rr.length)){var i=r[1];if(Array.isArray(i)&&!(1>i.length)){var o=i[0];if("noop"!=o&&"stop"!=o&&"close"!=o)for(var a=1;at.length?We:(t=t.slice(r,r+n),e.C=r+n,t))}function Ve(e){e.S=Date.now()+e.I,Xe(e,e.I)}function Xe(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=Re(c(e.ba,e),t)}function Je(e){e.B&&(i.clearTimeout(e.B),e.B=null)}function Ze(e){0==e.j.G||e.J||An(e.j,e)}function Ke(e){Je(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,ue(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function Ge(e,t){try{var n=e.j;if(0!=n.G&&(n.g==e||$e(n.h,e)))if(!e.K&&$e(n.h,e)&&3==n.G){try{var r=n.Da.g.parse(t)}catch(e){r=null}if(Array.isArray(r)&&3==r.length){var i=r;if(0==i[0]){e:if(!n.u){if(n.g){if(!(n.g.F+3e3i[2]&&n.F&&0==n.v&&!n.C&&(n.C=Re(c(n.Za,n),6e3));if(1>=Qe(n.h)&&n.ca){try{n.ca()}catch(e){}n.ca=void 0}}else un(n,11)}else if((e.K||n.g==e)&&sn(n),!h(t))for(i=n.Da.g.parse(t),t=0;td)&&(3!=d||this.g&&(this.h.h||this.g.oa()||Zt(this.g)))){this.J||4!=d||7==t||we(),Je(this);var n=this.g.Z();this.X=n;t:if(Fe(this)){var r=Zt(this.g);e="";var o=r.length,a=4==Jt(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Ke(this),Ze(this);var s="";break t}this.h.i=new i.TextDecoder}for(t=0;t=e.j}function Qe(e){return e.h?1:e.g?e.g.size:0}function $e(e,t){return e.h?e.h==t:!!e.g&&e.g.has(t)}function et(e,t){e.g?e.g.add(t):e.h=t}function tt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(e){if(null!=e.h)return e.i.concat(e.h.D);if(null!=e.g&&0!==e.g.size){let t=e.i;for(const n of e.g.values())t=t.concat(n.D);return t}return d(e.i)}function rt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(o(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var n=function(e){if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(o(e)||"string"==typeof e){var t=[];e=e.length;for(var n=0;nt)throw Error("Bad port number "+t);e.s=t}else e.s=null}function ct(e,t,n){t instanceof kt?(e.i=t,function(e,t){t&&!e.j&&(St(e),e.i=null,e.g.forEach((function(e,t){var n=t.toLowerCase();t!=n&&(Tt(this,t),Et(this,n,e))}),e)),e.j=t}(e.i,e.h)):(n||(t=pt(t,vt)),e.i=new kt(t,e.h))}function ut(e,t,n){e.i.set(t,n)}function lt(e){return ut(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function dt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function pt(e,t,n){return"string"==typeof e?(e=encodeURI(e).replace(t,ht),n&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function ht(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}ot.prototype.toString=function(){var e=[],t=this.j;t&&e.push(pt(t,mt,!0),":");var n=this.g;return(n||"file"==t)&&(e.push("//"),(t=this.o)&&e.push(pt(t,mt,!0),"@"),e.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.s)&&e.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&e.push("/"),e.push(pt(n,"/"==n.charAt(0)?yt:gt,!0))),(n=this.i.toString())&&e.push("?",n),(n=this.m)&&e.push("#",pt(n,bt)),e.join("")};var ft,mt=/[#\/\?@]/g,gt=/[#\?:]/g,yt=/[#\?]/g,vt=/[#\?@]/g,bt=/#/g;function kt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function St(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,t){if(e){e=e.split("&");for(var n=0;n{})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,xt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Mt(this)),this.g&&(this.readyState=3,Mt(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==i.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Nt(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var t=e.value?e.value:new Uint8Array(0);(t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t)}e.done?xt(this):Mt(this),3==this.readyState&&Nt(this)}},e.Ra=function(e){this.g&&(this.response=this.responseText=e,xt(this))},e.Qa=function(e){this.g&&(this.response=e,xt(this))},e.ga=function(){this.g&&xt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";const e=[],t=this.h.entries();for(var n=t.next();!n.done;)n=n.value,e.push(n[0]+": "+n[1]),n=t.next();return e.join("\r\n")},Object.defineProperty(Lt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),l(_t,ne);var Wt=/^https?$/i,zt=["POST","PUT"];function Dt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,Ft(e),Vt(e)}function Ft(e){e.A||(e.A=!0,re(e,"complete"),re(e,"error"))}function qt(e){if(e.h&&void 0!==r&&(!e.v[1]||4!=Jt(e)||2!=e.Z()))if(e.u&&4==Jt(e))oe(e.Ea,0,e);else if(re(e,"readystatechange"),4==Jt(e)){e.h=!1;try{const r=e.Z();e:switch(r){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var t=!0;break e;default:t=!1}var n;if(!(n=t)){var o;if(o=0===r){var a=String(e.D).match(it)[1]||null;!a&&i.self&&i.self.location&&(a=i.self.location.protocol.slice(0,-1)),o=!Wt.test(a?a.toLowerCase():"")}n=o}if(n)re(e,"complete"),re(e,"success");else{e.m=6;try{var s=2{}:null;e.g=null,e.v=null,t||re(e,"ready");try{n.onreadystatechange=r}catch(e){}}}function Xt(e){e.I&&(i.clearTimeout(e.I),e.I=null)}function Jt(e){return e.g?e.g.readyState:0}function Zt(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(e){return null}}function Kt(e,t,n){return n&&n.internalChannelParams&&n.internalChannelParams[e]||t}function Gt(e){this.Aa=0,this.i=[],this.j=new Pe,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Kt("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Kt("baseRetryDelayMs",5e3,e),this.cb=Kt("retryDelaySeedMs",1e4,e),this.Wa=Kt("forwardChannelMaxRetries",2,e),this.wa=Kt("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new Be(e&&e.concurrentRequestLimit),this.Da=new Rt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0n)t=Math.max(0,i[a].g-100),o=!1;else try{Pt(s,e,"req"+n+"_")}catch(e){r&&r(s)}}if(o){r=e.join("&");break e}}}return e=e.i.splice(0,n),t.D=e,r}function nn(e){if(!e.g&&!e.u){e.Y=1;var t=e.Fa;O||C(),R||(O(),R=!0),P.add(t,e),e.v=0}}function rn(e){return!(e.g||e.u||3<=e.v||(e.Y++,e.u=Re(c(e.Fa,e),cn(e,e.v)),e.v++,0))}function on(e){null!=e.A&&(i.clearTimeout(e.A),e.A=null)}function an(e){e.g=new Ue(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=at(e.qa);ut(t,"RID","rpc"),ut(t,"SID",e.K),ut(t,"AID",e.T),ut(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&ut(t,"TO",e.ja),ut(t,"TYPE","xmlhttp"),en(e,t),e.m&&e.o&&It(t,e.m,e.o),e.L&&(e.g.I=e.L);var n=e.g;e=e.ia,n.L=1,n.v=lt(at(t)),n.m=null,n.P=!0,De(n,e)}function sn(e){null!=e.C&&(i.clearTimeout(e.C),e.C=null)}function An(e,t){var n=null;if(e.g==t){sn(e),on(e),e.g=null;var r=2}else{if(!$e(e.h,t))return;n=t.D,tt(e.h,t),r=1}if(0!=e.G)if(t.o)if(1==r){n=t.m?t.m.length:0,t=Date.now()-t.F;var i=e.B;re(r=Se(),new Oe(r,n)),Qt(e)}else nn(e);else if(3==(i=t.s)||0==i&&0=e.h.j-(e.s?1:0)||(e.s?(e.i=t.D.concat(e.i),0):1==e.G||2==e.G||e.B>=(e.Va?0:e.Wa)||(e.s=Re(c(e.Ga,e,t),cn(e,e.B)),e.B++,0)))}(e,t)||2==r&&rn(e)))switch(n&&0{n.abort(),Ot(0,0,!1,t)}),1e4);fetch(e,{signal:n.signal}).then((e=>{clearTimeout(r),e.ok?Ot(0,0,!0,t):Ot(0,0,!1,t)})).catch((()=>{clearTimeout(r),Ot(0,0,!1,t)}))}(r.toString(),n)}else je(2);e.G=0,e.l&&e.l.sa(t),ln(e),Yt(e)}function ln(e){if(e.G=0,e.ka=[],e.l){const t=nt(e.h);0==t.length&&0==e.i.length||(p(e.ka,t),p(e.ka,e.i),e.h.i.length=0,d(e.i),e.i.length=0),e.l.ra()}}function dn(e,t,n){var r=n instanceof ot?at(n):new ot(n);if(""!=r.g)t&&(r.g=t+"."+r.g),At(r,r.s);else{var o=i.location;r=o.protocol,t=t?t+"."+o.hostname:o.hostname,o=+o.port;var a=new ot(null);r&&st(a,r),t&&(a.g=t),o&&At(a,o),n&&(a.l=n),r=a}return n=e.D,t=e.ya,n&&t&&ut(r,n,t),ut(r,"VER",e.la),en(e,r),r}function pn(e,t,n){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new _t(new Ct({eb:n})):new _t(e.pa)).Ha(e.J),t}function hn(){}function fn(){}function mn(e,t){ne.call(this),this.g=new Gt(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!h(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!h(t)&&(this.g.D=t,null!==(e=this.h)&&t in e&&t in(e=this.h)&&delete e[t]),this.j=new vn(this)}function gn(e){ye.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(const n in t){e=n;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function yn(){ve.call(this),this.status=1}function vn(e){this.g=e}(e=_t.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,n,r){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=this.o?this.o.g():Le.g(),this.v=this.o?fe(this.o):fe(Le),this.g.onreadystatechange=c(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Dt(this,e)}if(e=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var o in r)n.set(o,r[o]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const e of r.keys())n.set(e,r.get(e))}r=Array.from(n.keys()).find((e=>"content-type"==e.toLowerCase())),o=i.FormData&&e instanceof i.FormData,!(0<=Array.prototype.indexOf.call(zt,t,void 0))||r||o||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[e,t]of n)this.g.setRequestHeader(e,t);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Xt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){Dt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,re(this,"complete"),re(this,"abort"),Vt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Vt(this,!0)),_t.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?qt(this):this.bb())},e.bb=function(){qt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2=this.R)){var e=2*this.R;this.j.info("BP detection timer enabled: "+e),this.A=Re(c(this.ab,this),e)}},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,je(10),Bt(this),an(this))},e.Za=function(){null!=this.C&&(this.C=null,Bt(this),rn(this),je(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),je(2)):(this.j.info("Failed to ping google.com"),je(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=hn.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},fn.prototype.g=function(e,t){return new mn(e,t)},l(mn,ne),mn.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},mn.prototype.close=function(){Ht(this.g)},mn.prototype.o=function(e){var t=this.g;if("string"==typeof e){var n={};n.__data__=e,e=n}else this.u&&((n={}).__data__=le(e),e=n);t.i.push(new He(t.Ya++,e)),3==t.G&&Qt(t)},mn.prototype.N=function(){this.g.l=null,delete this.j,Ht(this.g),delete this.g,mn.aa.N.call(this)},l(gn,ye),l(yn,ve),l(vn,hn),vn.prototype.ua=function(){re(this.g,"a")},vn.prototype.ta=function(e){re(this.g,new gn(e))},vn.prototype.sa=function(e){re(this.g,new yn)},vn.prototype.ra=function(){re(this.g,"b")},fn.prototype.createWebChannel=fn.prototype.g,mn.prototype.send=mn.prototype.o,mn.prototype.open=mn.prototype.m,mn.prototype.close=mn.prototype.close,wr=jr.createWebChannelTransport=function(){return new fn},Tr=jr.getStatEventTarget=function(){return Se()},Sr=jr.Event=be,kr=jr.Stat={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},Ne.NO_ERROR=0,Ne.TIMEOUT=8,Ne.HTTP_ERROR=6,br=jr.ErrorCode=Ne,xe.COMPLETE="complete",vr=jr.EventType=xe,me.EventType=ge,ge.OPEN="a",ge.CLOSE="b",ge.ERROR="c",ge.MESSAGE="d",ne.prototype.listen=ne.prototype.K,yr=jr.WebChannel=me,jr.FetchXmlHttpFactory=Ct,_t.prototype.listenOnce=_t.prototype.L,_t.prototype.getLastError=_t.prototype.Ka,_t.prototype.getLastErrorCode=_t.prototype.Ba,_t.prototype.getStatus=_t.prototype.Z,_t.prototype.getResponseJson=_t.prototype.Oa,_t.prototype.getResponseText=_t.prototype.oa,_t.prototype.send=_t.prototype.ea,_t.prototype.setWithCredentials=_t.prototype.Ha,gr=jr.XhrIo=_t}).apply(void 0!==Er?Er:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});const Or="@firebase/firestore";class Rr{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Rr.UNAUTHENTICATED=new Rr(null),Rr.GOOGLE_CREDENTIALS=new Rr("google-credentials-uid"),Rr.FIRST_PARTY=new Rr("first-party-uid"),Rr.MOCK_USER=new Rr("mock-user");let Pr="10.14.0";const Cr=new Ht("@firebase/firestore");function Lr(){return Cr.logLevel}function Nr(e){if(Cr.logLevel<=Vt.DEBUG){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:"Unexpected state");throw xr(e),new Error(e)}function _r(e,t){e||Ir()}function Wr(e,t){return e}const zr={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Dr extends Ot{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class Fr{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}class qr{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class Vr{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable((()=>t(Rr.UNAUTHENTICATED)))}shutdown(){}}class Xr{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable((()=>t(this.token.user)))}shutdown(){this.changeListener=null}}class Jr{constructor(e){this.t=e,this.currentUser=Rr.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,t){_r(void 0===this.o);let n=this.i;const r=e=>this.i!==n?(n=this.i,t(e)):Promise.resolve();let i=new Fr;this.o=()=>{this.i++,this.currentUser=this.u(),i.resolve(),i=new Fr,e.enqueueRetryable((()=>r(this.currentUser)))};const o=()=>{const t=i;e.enqueueRetryable((async()=>{await t.promise,await r(this.currentUser)}))},a=e=>{Nr("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),o())};this.t.onInit((e=>a(e))),setTimeout((()=>{if(!this.auth){const e=this.t.getImmediate({optional:!0});e?a(e):(Nr("FirebaseAuthCredentialsProvider","Auth not yet detected"),i.resolve(),i=new Fr)}}),0),o()}getToken(){const e=this.i,t=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(t).then((t=>this.i!==e?(Nr("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):t?(_r("string"==typeof t.accessToken),new qr(t.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){const e=this.auth&&this.auth.getUid();return _r(null===e||"string"==typeof e),new Rr(e)}}class Zr{constructor(e,t,n){this.l=e,this.h=t,this.P=n,this.type="FirstParty",this.user=Rr.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const e=this.T();return e&&this.I.set("Authorization",e),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class Kr{constructor(e,t,n){this.l=e,this.h=t,this.P=n}getToken(){return Promise.resolve(new Zr(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable((()=>t(Rr.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class Gr{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class Hr{constructor(e){this.A=e,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(e,t){_r(void 0===this.o);const n=e=>{null!=e.error&&Nr("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);const n=e.token!==this.R;return this.R=e.token,Nr("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?t(e.token):Promise.resolve()};this.o=t=>{e.enqueueRetryable((()=>n(t)))};const r=e=>{Nr("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.A.onInit((e=>r(e))),setTimeout((()=>{if(!this.appCheck){const e=this.A.getImmediate({optional:!0});e?r(e):Nr("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then((e=>e?(_r("string"==typeof e.token),this.R=e.token,new Gr(e.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Br(e){const t="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(e);if(t&&"function"==typeof t.getRandomValues)t.getRandomValues(n);else for(let t=0;tt?1:0}function $r(e,t,n){return e.length===t.length&&e.every(((e,r)=>n(e,t[r])))}class ei{constructor(e,t){if(this.seconds=e,this.nanoseconds=t,t<0)throw new Dr(zr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(t>=1e9)throw new Dr(zr.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-62135596800)throw new Dr(zr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new Dr(zr.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}static now(){return ei.fromMillis(Date.now())}static fromDate(e){return ei.fromMillis(e.getTime())}static fromMillis(e){const t=Math.floor(e/1e3),n=Math.floor(1e6*(e-1e3*t));return new ei(t,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?Qr(this.nanoseconds,e.nanoseconds):Qr(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const e=this.seconds- -62135596800;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class ti{constructor(e){this.timestamp=e}static fromTimestamp(e){return new ti(e)}static min(){return new ti(new ei(0,0))}static max(){return new ti(new ei(253402300799,999999999))}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class ni{constructor(e,t,n){void 0===t?t=0:t>e.length&&Ir(),void 0===n?n=e.length-t:n>e.length-t&&Ir(),this.segments=e,this.offset=t,this.len=n}get length(){return this.len}isEqual(e){return 0===ni.comparator(this,e)}child(e){const t=this.segments.slice(this.offset,this.limit());return e instanceof ni?e.forEach((e=>{t.push(e)})):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+e,this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.lengthi)return 1}return e.lengtht.length?1:0}}class ri extends ni{construct(e,t,n){return new ri(e,t,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(){const e=[];for(var t=arguments.length,n=new Array(t),r=0;r=0)throw new Dr(zr.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);e.push(...t.split("/").filter((e=>e.length>0)))}return new ri(e)}static emptyPath(){return new ri([])}}const ii=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class oi extends ni{construct(e,t,n){return new oi(e,t,n)}static isValidIdentifier(e){return ii.test(e)}canonicalString(){return this.toArray().map((e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),oi.isValidIdentifier(e)||(e="`"+e+"`"),e))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new oi(["__name__"])}static fromServerFormat(e){const t=[];let n="",r=0;const i=()=>{if(0===n.length)throw new Dr(zr.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(n),n=""};let o=!1;for(;r=2&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===ri.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return ri.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new ai(new ri(e.slice()))}}function si(e){return new Ai(e.readTime,e.key,-1)}class Ai{constructor(e,t,n){this.readTime=e,this.documentKey=t,this.largestBatchId=n}static min(){return new Ai(ti.min(),ai.empty(),-1)}static max(){return new Ai(ti.max(),ai.empty(),-1)}}function ci(e,t){let n=e.readTime.compareTo(t.readTime);return 0!==n?n:(n=ai.comparator(e.documentKey,t.documentKey),0!==n?n:Qr(e.largestBatchId,t.largestBatchId))}class ui{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((e=>e()))}}async function li(e){if(e.code!==zr.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==e.message)throw e;Nr("LocalStore","Unexpectedly lost primary lease")}class di{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e((e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)}),(e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)}))}catch(e){return this.next(void 0,e)}next(e,t){return this.callbackAttached&&Ir(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(t,this.error):this.wrapSuccess(e,this.result):new di(((n,r)=>{this.nextCallback=t=>{this.wrapSuccess(e,t).next(n,r)},this.catchCallback=e=>{this.wrapFailure(t,e).next(n,r)}}))}toPromise(){return new Promise(((e,t)=>{this.next(e,t)}))}wrapUserFunction(e){try{const t=e();return t instanceof di?t:di.resolve(t)}catch(e){return di.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction((()=>e(t))):di.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction((()=>e(t))):di.reject(t)}static resolve(e){return new di(((t,n)=>{t(e)}))}static reject(e){return new di(((t,n)=>{n(e)}))}static waitFor(e){return new di(((t,n)=>{let r=0,i=0,o=!1;e.forEach((e=>{++r,e.next((()=>{++i,o&&i===r&&t()}),(e=>n(e)))})),o=!0,i===r&&t()}))}static or(e){let t=di.resolve(!1);for(const n of e)t=t.next((e=>e?di.resolve(e):n()));return t}static forEach(e,t){const n=[];return e.forEach(((e,r)=>{n.push(t.call(this,e,r))})),this.waitFor(n)}static mapArray(e,t){return new di(((n,r)=>{const i=e.length,o=new Array(i);let a=0;for(let s=0;s{o[A]=e,++a,a===i&&n(o)}),(e=>r(e)))}}))}static doWhile(e,t){return new di(((n,r)=>{const i=()=>{!0===e()?t().next((()=>{i()}),r):n()};i()}))}}function pi(e){return"IndexedDbTransactionError"===e.name}class hi{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ie(e),this.se=e=>t.writeSequenceNumber(e))}ie(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){const e=++this.previousValue;return this.se&&this.se(e),e}}function fi(e){return null==e}function mi(e){return 0===e&&1/e==-1/0}hi.oe=-1;function gi(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function yi(e,t){for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(n,e[n])}function vi(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class bi{constructor(e,t){this.comparator=e,this.root=t||Si.EMPTY}insert(e,t){return new bi(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Si.BLACK,null,null))}remove(e){return new bi(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Si.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){const n=this.comparator(e,t.key);if(0===n)return t.value;n<0?t=t.left:n>0&&(t=t.right)}return null}indexOf(e){let t=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(e,n.key);if(0===r)return t+n.left.size;r<0?n=n.left:(t+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(e){this.inorderTraversal(((t,n)=>(e(t,n),!1)))}toString(){const e=[];return this.inorderTraversal(((t,n)=>(e.push(`${t}:${n}`),!1))),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new ki(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new ki(this.root,e,this.comparator,!1)}getReverseIterator(){return new ki(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new ki(this.root,e,this.comparator,!0)}}class ki{constructor(e,t,n,r){this.isReverse=r,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?n(e.key,t):1,t&&r&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();const t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class Si{constructor(e,t,n,r,i){this.key=e,this.value=t,this.color=null!=n?n:Si.RED,this.left=null!=r?r:Si.EMPTY,this.right=null!=i?i:Si.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,n,r,i){return new Si(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let r=this;const i=n(e,r.key);return r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return Si.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,t){let n,r=this;if(t(e,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(e,t),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===t(e,r.key)){if(r.right.isEmpty())return Si.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){const e=this.copy(null,null,Si.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){const e=this.copy(null,null,Si.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){const e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){const e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Ir();if(this.right.isRed())throw Ir();const e=this.left.check();if(e!==this.right.check())throw Ir();return e+(this.isRed()?0:1)}}Si.EMPTY=null,Si.RED=!0,Si.BLACK=!1,Si.EMPTY=new class{constructor(){this.size=0}get key(){throw Ir()}get value(){throw Ir()}get color(){throw Ir()}get left(){throw Ir()}get right(){throw Ir()}copy(e,t,n,r,i){return this}insert(e,t,n){return new Si(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class Ti{constructor(e){this.comparator=e,this.data=new bi(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(e){this.data.inorderTraversal(((t,n)=>(e(t),!1)))}forEachInRange(e,t){const n=this.data.getIteratorFrom(e[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,e[1])>=0)return;t(r.key)}}forEachWhile(e,t){let n;for(n=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();n.hasNext();)if(!e(n.getNext().key))return}firstAfterOrEqual(e){const t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new wi(this.data.getIterator())}getIteratorFrom(e){return new wi(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size{t=t.add(e)})),t}isEqual(e){if(!(e instanceof Ti))return!1;if(this.size!==e.size)return!1;const t=this.data.getIterator(),n=e.data.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(0!==this.comparator(e,r))return!1}return!0}toArray(){const e=[];return this.forEach((t=>{e.push(t)})),e}toString(){const e=[];return this.forEach((t=>e.push(t))),"SortedSet("+e.toString()+")"}copy(e){const t=new Ti(this.comparator);return t.data=e,t}}class wi{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}class Ei{constructor(e){this.fields=e,e.sort(oi.comparator)}static empty(){return new Ei([])}unionWith(e){let t=new Ti(oi.comparator);for(const e of this.fields)t=t.add(e);for(const n of e)t=t.add(n);return new Ei(t.toArray())}covers(e){for(const t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return $r(this.fields,e.fields,((e,t)=>e.isEqual(t)))}}class ji extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class Oi{constructor(e){this.binaryString=e}static fromBase64String(e){const t=function(e){try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new ji("Invalid base64 string: "+e):e}}(e);return new Oi(t)}static fromUint8Array(e){const t=function(e){let t="";for(let n=0;nezi(e,t)))}function Fi(e,t){if(e===t)return 0;const n=Wi(e),r=Wi(t);if(n!==r)return Qr(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return Qr(e.booleanValue,t.booleanValue);case 2:return function(e,t){const n=Ci(e.integerValue||e.doubleValue),r=Ci(t.integerValue||t.doubleValue);return nr?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(e,t);case 3:return qi(e.timestampValue,t.timestampValue);case 4:return qi(Mi(e),Mi(t));case 5:return Qr(e.stringValue,t.stringValue);case 6:return function(e,t){const n=Li(e),r=Li(t);return n.compareTo(r)}(e.bytesValue,t.bytesValue);case 7:return function(e,t){const n=e.split("/"),r=t.split("/");for(let e=0;et.mapValue.fields[e]=$i(n))),t}if(e.arrayValue){const t={arrayValue:{values:[]}};for(let n=0;n<(e.arrayValue.values||[]).length;++n)t.arrayValue.values[n]=$i(e.arrayValue.values[n]);return t}return Object.assign({},e)}function eo(e){return"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}class to{constructor(e){this.value=e}static empty(){return new to({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let t=this.value;for(let n=0;n{if(!t.isImmediateParentOf(i)){const e=this.getFieldsMap(t);this.applyChanges(e,n,r),n={},r=[],t=i.popLast()}e?n[i.lastSegment()]=$i(e):r.push(i.lastSegment())}));const i=this.getFieldsMap(t);this.applyChanges(i,n,r)}delete(e){const t=this.field(e.popLast());Yi(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return zi(this.value,e.value)}getFieldsMap(e){let t=this.value;t.mapValue.fields||(t.mapValue={fields:{}});for(let n=0;ne[t]=n));for(const t of n)delete e[t]}clone(){return new to($i(this.value))}}class no{constructor(e,t,n,r,i,o,a){this.key=e,this.documentType=t,this.version=n,this.readTime=r,this.createTime=i,this.data=o,this.documentState=a}static newInvalidDocument(e){return new no(e,0,ti.min(),ti.min(),ti.min(),to.empty(),0)}static newFoundDocument(e,t,n,r){return new no(e,1,t,ti.min(),n,r,0)}static newNoDocument(e,t){return new no(e,2,t,ti.min(),ti.min(),to.empty(),0)}static newUnknownDocument(e,t){return new no(e,3,t,ti.min(),ti.min(),to.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(ti.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=to.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=to.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ti.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof no&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new no(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class ro{constructor(e,t){this.position=e,this.inclusive=t}}function io(e,t,n){let r=0;for(let i=0;i1&&void 0!==arguments[1]?arguments[1]:"asc";this.field=e,this.dir=t}}function so(e,t){return e.dir===t.dir&&e.field.isEqual(t.field)}class Ao{}class co extends Ao{constructor(e,t,n){super(),this.field=e,this.op=t,this.value=n}static create(e,t,n){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,n):new go(e,t,n):"array-contains"===t?new ko(e,n):"in"===t?new So(e,n):"not-in"===t?new To(e,n):"array-contains-any"===t?new wo(e,n):new co(e,t,n)}static createKeyFieldInFilter(e,t,n){return"in"===t?new yo(e,n):new vo(e,n)}matches(e){const t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(Fi(t,this.value)):null!==t&&Wi(this.value)===Wi(t)&&this.matchesComparison(Fi(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return e>0;case">=":return e>=0;default:return Ir()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class uo extends Ao{constructor(e,t){super(),this.filters=e,this.op=t,this.ae=null}static create(e,t){return new uo(e,t)}matches(e){return lo(this)?void 0===this.filters.find((t=>!t.matches(e))):void 0!==this.filters.find((t=>t.matches(e)))}getFlattenedFilters(){return null!==this.ae||(this.ae=this.filters.reduce(((e,t)=>e.concat(t.getFlattenedFilters())),[])),this.ae}getFilters(){return Object.assign([],this.filters)}}function lo(e){return"and"===e.op}function po(e){return function(e){for(const t of e.filters)if(t instanceof uo)return!1;return!0}(e)&&lo(e)}function ho(e){if(e instanceof co)return e.field.canonicalString()+e.op.toString()+Xi(e.value);if(po(e))return e.filters.map((e=>ho(e))).join(",");{const t=e.filters.map((e=>ho(e))).join(",");return`${e.op}(${t})`}}function fo(e,t){return e instanceof co?function(e,t){return t instanceof co&&e.op===t.op&&e.field.isEqual(t.field)&&zi(e.value,t.value)}(e,t):e instanceof uo?function(e,t){return t instanceof uo&&e.op===t.op&&e.filters.length===t.filters.length&&e.filters.reduce(((e,n,r)=>e&&fo(n,t.filters[r])),!0)}(e,t):void Ir()}function mo(e){return e instanceof co?function(e){return`${e.field.canonicalString()} ${e.op} ${Xi(e.value)}`}(e):e instanceof uo?function(e){return e.op.toString()+" {"+e.getFilters().map(mo).join(" ,")+"}"}(e):"Filter"}class go extends co{constructor(e,t,n){super(e,t,n),this.key=ai.fromName(n.referenceValue)}matches(e){const t=ai.comparator(e.key,this.key);return this.matchesComparison(t)}}class yo extends co{constructor(e,t){super(e,"in",t),this.keys=bo(0,t)}matches(e){return this.keys.some((t=>t.isEqual(e.key)))}}class vo extends co{constructor(e,t){super(e,"not-in",t),this.keys=bo(0,t)}matches(e){return!this.keys.some((t=>t.isEqual(e.key)))}}function bo(e,t){var n;return((null===(n=t.arrayValue)||void 0===n?void 0:n.values)||[]).map((e=>ai.fromName(e.referenceValue)))}class ko extends co{constructor(e,t){super(e,"array-contains",t)}matches(e){const t=e.data.field(this.field);return Gi(t)&&Di(t.arrayValue,this.value)}}class So extends co{constructor(e,t){super(e,"in",t)}matches(e){const t=e.data.field(this.field);return null!==t&&Di(this.value.arrayValue,t)}}class To extends co{constructor(e,t){super(e,"not-in",t)}matches(e){if(Di(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const t=e.data.field(this.field);return null!==t&&!Di(this.value.arrayValue,t)}}class wo extends co{constructor(e,t){super(e,"array-contains-any",t)}matches(e){const t=e.data.field(this.field);return!(!Gi(t)||!t.arrayValue.values)&&t.arrayValue.values.some((e=>Di(this.value.arrayValue,e)))}}class Eo{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;this.path=e,this.collectionGroup=t,this.orderBy=n,this.filters=r,this.limit=i,this.startAt=o,this.endAt=a,this.ue=null}}function jo(e){return new Eo(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,arguments.length>6&&void 0!==arguments[6]?arguments[6]:null)}function Oo(e){const t=Wr(e);if(null===t.ue){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e+="|f:",e+=t.filters.map((e=>ho(e))).join(","),e+="|ob:",e+=t.orderBy.map((e=>function(e){return e.field.canonicalString()+e.dir}(e))).join(","),fi(t.limit)||(e+="|l:",e+=t.limit),t.startAt&&(e+="|lb:",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((e=>Xi(e))).join(",")),t.endAt&&(e+="|ub:",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((e=>Xi(e))).join(",")),t.ue=e}return t.ue}function Ro(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"F",a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;this.path=e,this.collectionGroup=t,this.explicitOrderBy=n,this.filters=r,this.limit=i,this.limitType=o,this.startAt=a,this.endAt=s,this.ce=null,this.le=null,this.he=null,this.startAt,this.endAt}}function Lo(e){return new Co(e)}function No(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function xo(e){return null!==e.collectionGroup}function Mo(e){const t=Wr(e);if(null===t.ce){t.ce=[];const e=new Set;for(const n of t.explicitOrderBy)t.ce.push(n),e.add(n.field.canonicalString());const n=t.explicitOrderBy.length>0?t.explicitOrderBy[t.explicitOrderBy.length-1].dir:"asc",r=function(e){let t=new Ti(oi.comparator);return e.filters.forEach((e=>{e.getFlattenedFilters().forEach((e=>{e.isInequality()&&(t=t.add(e.field))}))})),t}(t);r.forEach((r=>{e.has(r.canonicalString())||r.isKeyField()||t.ce.push(new ao(r,n))})),e.has(oi.keyField().canonicalString())||t.ce.push(new ao(oi.keyField(),n))}return t.ce}function Uo(e){const t=Wr(e);return t.le||(t.le=function(e,t){if("F"===e.limitType)return jo(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);{t=t.map((e=>{const t="desc"===e.dir?"asc":"desc";return new ao(e.field,t)}));const n=e.endAt?new ro(e.endAt.position,e.endAt.inclusive):null,r=e.startAt?new ro(e.startAt.position,e.startAt.inclusive):null;return jo(e.path,e.collectionGroup,t,e.filters,e.limit,n,r)}}(t,Mo(e))),t.le}function Io(e,t){const n=e.filters.concat([t]);return new Co(e.path,e.collectionGroup,e.explicitOrderBy.slice(),n,e.limit,e.limitType,e.startAt,e.endAt)}function _o(e,t,n){return new Co(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,n,e.startAt,e.endAt)}function Wo(e,t){return Ro(Uo(e),Uo(t))&&e.limitType===t.limitType}function zo(e){return`${Oo(Uo(e))}|lt:${e.limitType}`}function Do(e){return`Query(target=${function(e){let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),e.filters.length>0&&(t+=`, filters: [${e.filters.map((e=>mo(e))).join(", ")}]`),fi(e.limit)||(t+=", limit: "+e.limit),e.orderBy.length>0&&(t+=`, orderBy: [${e.orderBy.map((e=>function(e){return`${e.field.canonicalString()} (${e.dir})`}(e))).join(", ")}]`),e.startAt&&(t+=", startAt: ",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((e=>Xi(e))).join(",")),e.endAt&&(t+=", endAt: ",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((e=>Xi(e))).join(",")),`Target(${t})`}(Uo(e))}; limitType=${e.limitType})`}function Fo(e,t){return t.isFoundDocument()&&function(e,t){const n=t.key.path;return null!==e.collectionGroup?t.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(n):ai.isDocumentKey(e.path)?e.path.isEqual(n):e.path.isImmediateParentOf(n)}(e,t)&&function(e,t){for(const n of Mo(e))if(!n.field.isKeyField()&&null===t.data.field(n.field))return!1;return!0}(e,t)&&function(e,t){for(const n of e.filters)if(!n.matches(t))return!1;return!0}(e,t)&&function(e,t){return!(e.startAt&&!function(e,t,n){const r=io(e,t,n);return e.inclusive?r<=0:r<0}(e.startAt,Mo(e),t)||e.endAt&&!function(e,t,n){const r=io(e,t,n);return e.inclusive?r>=0:r>0}(e.endAt,Mo(e),t))}(e,t)}function qo(e){return(t,n)=>{let r=!1;for(const i of Mo(e)){const e=Vo(i,t,n);if(0!==e)return e;r=r||i.field.isKeyField()}return 0}}function Vo(e,t,n){const r=e.field.isKeyField()?ai.comparator(t.key,n.key):function(e,t,n){const r=t.data.field(e),i=n.data.field(e);return null!==r&&null!==i?Fi(r,i):Ir()}(e.field,t,n);switch(e.dir){case"asc":return r;case"desc":return-1*r;default:return Ir()}}class Xo{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){const t=this.mapKeyFn(e),n=this.inner[t];if(void 0!==n)for(const[t,r]of n)if(this.equalsFn(t,e))return r}has(e){return void 0!==this.get(e)}set(e,t){const n=this.mapKeyFn(e),r=this.inner[n];if(void 0===r)return this.inner[n]=[[e,t]],void this.innerSize++;for(let n=0;n{for(const[t,r]of n)e(t,r)}))}isEmpty(){return vi(this.inner)}size(){return this.innerSize}}const Jo=new bi(ai.comparator);function Zo(){return Jo}const Ko=new bi(ai.comparator);function Go(){let e=Ko;for(var t=arguments.length,n=new Array(t),r=0;rt=t.insert(e,n.overlayedDocument))),t}function Bo(){return Qo()}function Yo(){return Qo()}function Qo(){return new Xo((e=>e.toString()),((e,t)=>e.isEqual(t)))}new bi(ai.comparator);const $o=new Ti(ai.comparator);function ea(){let e=$o;for(var t=arguments.length,n=new Array(t),r=0;r=Number.MIN_SAFE_INTEGER}(t)?ra(t):na(e,t)}class oa{constructor(){this._=void 0}}function aa(e,t,n){return e instanceof Aa?function(e,t){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:e.seconds,nanos:e.nanoseconds}}}};return t&&Ni(t)&&(t=xi(t)),t&&(n.fields.__previous_value__=t),{mapValue:n}}(n,t):e instanceof ca?ua(e,t):e instanceof la?da(e,t):function(e,t){const n=function(e,t){return e instanceof pa?function(e){return Ki(e)||function(e){return!!e&&"doubleValue"in e}(e)}(t)?t:{integerValue:0}:null}(e,t),r=ha(n)+ha(e.Pe);return Ki(n)&&Ki(e.Pe)?ra(r):na(e.serializer,r)}(e,t)}function sa(e,t,n){return e instanceof ca?ua(e,t):e instanceof la?da(e,t):n}class Aa extends oa{}class ca extends oa{constructor(e){super(),this.elements=e}}function ua(e,t){const n=fa(t);for(const t of e.elements)n.some((e=>zi(e,t)))||n.push(t);return{arrayValue:{values:n}}}class la extends oa{constructor(e){super(),this.elements=e}}function da(e,t){let n=fa(t);for(const t of e.elements)n=n.filter((e=>!zi(e,t)));return{arrayValue:{values:n}}}class pa extends oa{constructor(e,t){super(),this.serializer=e,this.Pe=t}}function ha(e){return Ci(e.integerValue||e.doubleValue)}function fa(e){return Gi(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class ma{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new ma}static exists(e){return new ma(void 0,e)}static updateTime(e){return new ma(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function ga(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class ya{}function va(e,t){if(!e.hasLocalMutations||t&&0===t.fields.length)return null;if(null===t)return e.isNoDocument()?new Ra(e.key,ma.none()):new Ta(e.key,e.data,ma.none());{const n=e.data,r=to.empty();let i=new Ti(oi.comparator);for(let e of t.fields)if(!i.has(e)){let t=n.field(e);null===t&&e.length>1&&(e=e.popLast(),t=n.field(e)),null===t?r.delete(e):r.set(e,t),i=i.add(e)}return new wa(e.key,r,new Ei(i.toArray()),ma.none())}}function ba(e,t,n){e instanceof Ta?function(e,t,n){const r=e.value.clone(),i=ja(e.fieldTransforms,t,n.transformResults);r.setAll(i),t.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(e,t,n):e instanceof wa?function(e,t,n){if(!ga(e.precondition,t))return void t.convertToUnknownDocument(n.version);const r=ja(e.fieldTransforms,t,n.transformResults),i=t.data;i.setAll(Ea(e)),i.setAll(r),t.convertToFoundDocument(n.version,i).setHasCommittedMutations()}(e,t,n):function(e,t,n){t.convertToNoDocument(n.version).setHasCommittedMutations()}(0,t,n)}function ka(e,t,n,r){return e instanceof Ta?function(e,t,n,r){if(!ga(e.precondition,t))return n;const i=e.value.clone(),o=Oa(e.fieldTransforms,r,t);return i.setAll(o),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,n,r):e instanceof wa?function(e,t,n,r){if(!ga(e.precondition,t))return n;const i=Oa(e.fieldTransforms,r,t),o=t.data;return o.setAll(Ea(e)),o.setAll(i),t.convertToFoundDocument(t.version,o).setHasLocalMutations(),null===n?null:n.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map((e=>e.field)))}(e,t,n,r):function(e,t,n){return ga(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):n}(e,t,n)}function Sa(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&!!function(e,t){return void 0===e&&void 0===t||!(!e||!t)&&$r(e,t,((e,t)=>function(e,t){return e.field.isEqual(t.field)&&function(e,t){return e instanceof ca&&t instanceof ca||e instanceof la&&t instanceof la?$r(e.elements,t.elements,zi):e instanceof pa&&t instanceof pa?zi(e.Pe,t.Pe):e instanceof Aa&&t instanceof Aa}(e.transform,t.transform)}(e,t)))}(e.fieldTransforms,t.fieldTransforms)&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask))}class Ta extends ya{constructor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];super(),this.key=e,this.value=t,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class wa extends ya{constructor(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];super(),this.key=e,this.data=t,this.fieldMask=n,this.precondition=r,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Ea(e){const t=new Map;return e.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=e.data.field(n);t.set(n,r)}})),t}function ja(e,t,n){const r=new Map;_r(e.length===n.length);for(let i=0;i{const i=e.get(r.key),o=i.overlayedDocument;let a=this.applyToLocalView(o,i.mutatedFields);a=t.has(r.key)?null:a;const s=va(o,a);null!==s&&n.set(r.key,s),o.isValidDocument()||o.convertToNoDocument(ti.min())})),n}keys(){return this.mutations.reduce(((e,t)=>e.add(t.key)),ea())}isEqual(e){return this.batchId===e.batchId&&$r(this.mutations,e.mutations,((e,t)=>Sa(e,t)))&&$r(this.baseMutations,e.baseMutations,((e,t)=>Sa(e,t)))}}class Ca{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}class La{constructor(e,t){this.count=e,this.unchangedNames=t}}var Na,xa;function Ma(e){if(void 0===e)return xr("GRPC error has no .code"),zr.UNKNOWN;switch(e){case Na.OK:return zr.OK;case Na.CANCELLED:return zr.CANCELLED;case Na.UNKNOWN:return zr.UNKNOWN;case Na.DEADLINE_EXCEEDED:return zr.DEADLINE_EXCEEDED;case Na.RESOURCE_EXHAUSTED:return zr.RESOURCE_EXHAUSTED;case Na.INTERNAL:return zr.INTERNAL;case Na.UNAVAILABLE:return zr.UNAVAILABLE;case Na.UNAUTHENTICATED:return zr.UNAUTHENTICATED;case Na.INVALID_ARGUMENT:return zr.INVALID_ARGUMENT;case Na.NOT_FOUND:return zr.NOT_FOUND;case Na.ALREADY_EXISTS:return zr.ALREADY_EXISTS;case Na.PERMISSION_DENIED:return zr.PERMISSION_DENIED;case Na.FAILED_PRECONDITION:return zr.FAILED_PRECONDITION;case Na.ABORTED:return zr.ABORTED;case Na.OUT_OF_RANGE:return zr.OUT_OF_RANGE;case Na.UNIMPLEMENTED:return zr.UNIMPLEMENTED;case Na.DATA_LOSS:return zr.DATA_LOSS;default:return Ir()}}(xa=Na||(Na={}))[xa.OK=0]="OK",xa[xa.CANCELLED=1]="CANCELLED",xa[xa.UNKNOWN=2]="UNKNOWN",xa[xa.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",xa[xa.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",xa[xa.NOT_FOUND=5]="NOT_FOUND",xa[xa.ALREADY_EXISTS=6]="ALREADY_EXISTS",xa[xa.PERMISSION_DENIED=7]="PERMISSION_DENIED",xa[xa.UNAUTHENTICATED=16]="UNAUTHENTICATED",xa[xa.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",xa[xa.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",xa[xa.ABORTED=10]="ABORTED",xa[xa.OUT_OF_RANGE=11]="OUT_OF_RANGE",xa[xa.UNIMPLEMENTED=12]="UNIMPLEMENTED",xa[xa.INTERNAL=13]="INTERNAL",xa[xa.UNAVAILABLE=14]="UNAVAILABLE",xa[xa.DATA_LOSS=15]="DATA_LOSS";const Ua=new pr([4294967295,4294967295],0);function Ia(e){const t=(new TextEncoder).encode(e),n=new hr;return n.update(t),new Uint8Array(n.digest())}function _a(e){const t=new DataView(e.buffer),n=t.getUint32(0,!0),r=t.getUint32(4,!0),i=t.getUint32(8,!0),o=t.getUint32(12,!0);return[new pr([n,r],0),new pr([i,o],0)]}class Wa{constructor(e,t,n){if(this.bitmap=e,this.padding=t,this.hashCount=n,t<0||t>=8)throw new za(`Invalid padding: ${t}`);if(n<0)throw new za(`Invalid hash count: ${n}`);if(e.length>0&&0===this.hashCount)throw new za(`Invalid hash count: ${n}`);if(0===e.length&&0!==t)throw new za(`Invalid padding when bitmap length is 0: ${t}`);this.Ie=8*e.length-t,this.Te=pr.fromNumber(this.Ie)}Ee(e,t,n){let r=e.add(t.multiply(pr.fromNumber(n)));return 1===r.compare(Ua)&&(r=new pr([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Te).toNumber()}de(e){return!!(this.bitmap[Math.floor(e/8)]&1<o.insert(e))),o}insert(e){if(0===this.Ie)return;const t=Ia(e),[n,r]=_a(t);for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:Oi.EMPTY_BYTE_STRING,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.state=e,this.targetIds=t,this.resumeToken=n,this.cause=r}}class Ja{constructor(){this.fe=0,this.ge=Ga(),this.pe=Oi.EMPTY_BYTE_STRING,this.ye=!1,this.we=!0}get current(){return this.ye}get resumeToken(){return this.pe}get Se(){return 0!==this.fe}get be(){return this.we}De(e){e.approximateByteSize()>0&&(this.we=!0,this.pe=e)}ve(){let e=ea(),t=ea(),n=ea();return this.ge.forEach(((r,i)=>{switch(i){case 0:e=e.add(r);break;case 2:t=t.add(r);break;case 1:n=n.add(r);break;default:Ir()}})),new Fa(this.pe,this.ye,e,t,n)}Ce(){this.we=!1,this.ge=Ga()}Fe(e,t){this.we=!0,this.ge=this.ge.insert(e,t)}Me(e){this.we=!0,this.ge=this.ge.remove(e)}xe(){this.fe+=1}Oe(){this.fe-=1,_r(this.fe>=0)}Ne(){this.we=!0,this.ye=!0}}class Za{constructor(e){this.Le=e,this.Be=new Map,this.ke=Zo(),this.qe=Ka(),this.Qe=new bi(Qr)}Ke(e){for(const t of e.Re)e.Ve&&e.Ve.isFoundDocument()?this.$e(t,e.Ve):this.Ue(t,e.key,e.Ve);for(const t of e.removedTargetIds)this.Ue(t,e.key,e.Ve)}We(e){this.forEachTarget(e,(t=>{const n=this.Ge(t);switch(e.state){case 0:this.ze(t)&&n.De(e.resumeToken);break;case 1:n.Oe(),n.Se||n.Ce(),n.De(e.resumeToken);break;case 2:n.Oe(),n.Se||this.removeTarget(t);break;case 3:this.ze(t)&&(n.Ne(),n.De(e.resumeToken));break;case 4:this.ze(t)&&(this.je(t),n.De(e.resumeToken));break;default:Ir()}}))}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.Be.forEach(((e,n)=>{this.ze(n)&&t(n)}))}He(e){const t=e.targetId,n=e.me.count,r=this.Je(t);if(r){const i=r.target;if(Po(i))if(0===n){const e=new ai(i.path);this.Ue(t,e,no.newNoDocument(e,ti.min()))}else _r(1===n);else{const r=this.Ye(t);if(r!==n){const n=this.Ze(e),i=n?this.Xe(n,e,r):1;if(0!==i){this.je(t);const e=2===i?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Qe=this.Qe.insert(t,e)}}}}}Ze(e){const t=e.me.unchangedNames;if(!t||!t.bits)return null;const{bits:{bitmap:n="",padding:r=0},hashCount:i=0}=t;let o,a;try{o=Li(n).toUint8Array()}catch(e){if(e instanceof ji)return Mr("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{a=new Wa(o,r,i)}catch(e){return Mr(e instanceof za?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===a.Ie?null:a}Xe(e,t,n){return t.me.count===n-this.nt(e,t.targetId)?0:2}nt(e,t){const n=this.Le.getRemoteKeysForTarget(t);let r=0;return n.forEach((n=>{const i=this.Le.tt(),o=`projects/${i.projectId}/databases/${i.database}/documents/${n.path.canonicalString()}`;e.mightContain(o)||(this.Ue(t,n,null),r++)})),r}rt(e){const t=new Map;this.Be.forEach(((n,r)=>{const i=this.Je(r);if(i){if(n.current&&Po(i.target)){const t=new ai(i.target.path);null!==this.ke.get(t)||this.it(r,t)||this.Ue(r,t,no.newNoDocument(t,e))}n.be&&(t.set(r,n.ve()),n.Ce())}}));let n=ea();this.qe.forEach(((e,t)=>{let r=!0;t.forEachWhile((e=>{const t=this.Je(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1,!1)})),r&&(n=n.add(e))})),this.ke.forEach(((t,n)=>n.setReadTime(e)));const r=new Da(e,t,this.Qe,this.ke,n);return this.ke=Zo(),this.qe=Ka(),this.Qe=new bi(Qr),r}$e(e,t){if(!this.ze(e))return;const n=this.it(e,t.key)?2:0;this.Ge(e).Fe(t.key,n),this.ke=this.ke.insert(t.key,t),this.qe=this.qe.insert(t.key,this.st(t.key).add(e))}Ue(e,t,n){if(!this.ze(e))return;const r=this.Ge(e);this.it(e,t)?r.Fe(t,1):r.Me(t),this.qe=this.qe.insert(t,this.st(t).delete(e)),n&&(this.ke=this.ke.insert(t,n))}removeTarget(e){this.Be.delete(e)}Ye(e){const t=this.Ge(e).ve();return this.Le.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}xe(e){this.Ge(e).xe()}Ge(e){let t=this.Be.get(e);return t||(t=new Ja,this.Be.set(e,t)),t}st(e){let t=this.qe.get(e);return t||(t=new Ti(Qr),this.qe=this.qe.insert(e,t)),t}ze(e){const t=null!==this.Je(e);return t||Nr("WatchChangeAggregator","Detected inactive target",e),t}Je(e){const t=this.Be.get(e);return t&&t.Se?null:this.Le.ot(e)}je(e){this.Be.set(e,new Ja),this.Le.getRemoteKeysForTarget(e).forEach((t=>{this.Ue(e,t,null)}))}it(e,t){return this.Le.getRemoteKeysForTarget(e).has(t)}}function Ka(){return new bi(ai.comparator)}function Ga(){return new bi(ai.comparator)}const Ha={asc:"ASCENDING",desc:"DESCENDING"},Ba={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Ya={and:"AND",or:"OR"};class Qa{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function $a(e,t){return e.useProto3Json||fi(t)?t:{value:t}}function es(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function ts(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function ns(e){return _r(!!e),ti.fromTimestamp(function(e){const t=Pi(e);return new ei(t.seconds,t.nanos)}(e))}function rs(e,t){return is(e,t).canonicalString()}function is(e,t){const n=function(e){return new ri(["projects",e.projectId,"databases",e.database])}(e).child("documents");return void 0===t?n:n.child(t)}function os(e){const t=ri.fromString(e);return _r(bs(t)),t}function as(e,t){const n=os(t);if(n.get(1)!==e.databaseId.projectId)throw new Dr(zr.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+e.databaseId.projectId);if(n.get(3)!==e.databaseId.database)throw new Dr(zr.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+e.databaseId.database);return new ai(cs(n))}function ss(e,t){return rs(e.databaseId,t)}function As(e){return new ri(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function cs(e){return _r(e.length>4&&"documents"===e.get(4)),e.popFirst(5)}function us(e,t){return{documents:[ss(e,t.path)]}}function ls(e,t){const n={structuredQuery:{}},r=t.path;let i;null!==t.collectionGroup?(i=r,n.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=ss(e,i);const o=function(e){if(0!==e.length)return vs(uo.create(e,"and"))}(t.filters);o&&(n.structuredQuery.where=o);const a=function(e){if(0!==e.length)return e.map((e=>function(e){return{field:gs(e.field),direction:hs(e.dir)}}(e)))}(t.orderBy);a&&(n.structuredQuery.orderBy=a);const s=$a(e,t.limit);return null!==s&&(n.structuredQuery.limit=s),t.startAt&&(n.structuredQuery.startAt=function(e){return{before:e.inclusive,values:e.position}}(t.startAt)),t.endAt&&(n.structuredQuery.endAt=function(e){return{before:!e.inclusive,values:e.position}}(t.endAt)),{_t:n,parent:i}}function ds(e){let t=function(e){const t=os(e);return 4===t.length?ri.emptyPath():cs(t)}(e.parent);const n=e.structuredQuery,r=n.from?n.from.length:0;let i=null;if(r>0){_r(1===r);const e=n.from[0];e.allDescendants?i=e.collectionId:t=t.child(e.collectionId)}let o=[];n.where&&(o=function(e){const t=ps(e);return t instanceof uo&&po(t)?t.getFilters():[t]}(n.where));let a=[];n.orderBy&&(a=function(e){return e.map((e=>function(e){return new ao(ys(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))}(e)))}(n.orderBy));let s=null;n.limit&&(s=function(e){let t;return t="object"==typeof e?e.value:e,fi(t)?null:t}(n.limit));let A=null;n.startAt&&(A=function(e){const t=!!e.before,n=e.values||[];return new ro(n,t)}(n.startAt));let c=null;return n.endAt&&(c=function(e){const t=!e.before,n=e.values||[];return new ro(n,t)}(n.endAt)),function(e,t,n,r,i,o,a,s){return new Co(e,t,n,r,i,o,a,s)}(t,i,a,o,s,"F",A,c)}function ps(e){return void 0!==e.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":const t=ys(e.unaryFilter.field);return co.create(t,"==",{doubleValue:NaN});case"IS_NULL":const n=ys(e.unaryFilter.field);return co.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=ys(e.unaryFilter.field);return co.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const i=ys(e.unaryFilter.field);return co.create(i,"!=",{nullValue:"NULL_VALUE"});default:return Ir()}}(e):void 0!==e.fieldFilter?function(e){return co.create(ys(e.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return Ir()}}(e.fieldFilter.op),e.fieldFilter.value)}(e):void 0!==e.compositeFilter?function(e){return uo.create(e.compositeFilter.filters.map((e=>ps(e))),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return Ir()}}(e.compositeFilter.op))}(e):Ir()}function hs(e){return Ha[e]}function fs(e){return Ba[e]}function ms(e){return Ya[e]}function gs(e){return{fieldPath:e.canonicalString()}}function ys(e){return oi.fromServerFormat(e.fieldPath)}function vs(e){return e instanceof co?function(e){if("=="===e.op){if(Bi(e.value))return{unaryFilter:{field:gs(e.field),op:"IS_NAN"}};if(Hi(e.value))return{unaryFilter:{field:gs(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Bi(e.value))return{unaryFilter:{field:gs(e.field),op:"IS_NOT_NAN"}};if(Hi(e.value))return{unaryFilter:{field:gs(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:gs(e.field),op:fs(e.op),value:e.value}}}(e):e instanceof uo?function(e){const t=e.getFilters().map((e=>vs(e)));return 1===t.length?t[0]:{compositeFilter:{op:ms(e.op),filters:t}}}(e):Ir()}function bs(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}class ks{constructor(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:ti.min(),o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:ti.min(),a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Oi.EMPTY_BYTE_STRING,s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;this.target=e,this.targetId=t,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=o,this.resumeToken=a,this.expectedCount=s}withSequenceNumber(e){return new ks(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new ks(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new ks(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new ks(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class Ss{constructor(e){this.ct=e}}function Ts(e){const t=ds({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?_o(t,t.limit,"L"):t}class ws{constructor(){}It(e,t){this.Tt(e,t),t.Et()}Tt(e,t){if("nullValue"in e)this.dt(t,5);else if("booleanValue"in e)this.dt(t,10),t.At(e.booleanValue?1:0);else if("integerValue"in e)this.dt(t,15),t.At(Ci(e.integerValue));else if("doubleValue"in e){const n=Ci(e.doubleValue);isNaN(n)?this.dt(t,13):(this.dt(t,15),mi(n)?t.At(0):t.At(n))}else if("timestampValue"in e){let n=e.timestampValue;this.dt(t,20),"string"==typeof n&&(n=Pi(n)),t.Rt(`${n.seconds||""}`),t.At(n.nanos||0)}else if("stringValue"in e)this.Vt(e.stringValue,t),this.ft(t);else if("bytesValue"in e)this.dt(t,30),t.gt(Li(e.bytesValue)),this.ft(t);else if("referenceValue"in e)this.yt(e.referenceValue,t);else if("geoPointValue"in e){const n=e.geoPointValue;this.dt(t,45),t.At(n.latitude||0),t.At(n.longitude||0)}else"mapValue"in e?eo(e)?this.dt(t,Number.MAX_SAFE_INTEGER):Qi(e)?this.wt(e.mapValue,t):(this.St(e.mapValue,t),this.ft(t)):"arrayValue"in e?(this.bt(e.arrayValue,t),this.ft(t)):Ir()}Vt(e,t){this.dt(t,25),this.Dt(e,t)}Dt(e,t){t.Rt(e)}St(e,t){const n=e.fields||{};this.dt(t,55);for(const e of Object.keys(n))this.Vt(e,t),this.Tt(n[e],t)}wt(e,t){var n,r;const i=e.fields||{};this.dt(t,53);const o="value",a=(null===(r=null===(n=i[o].arrayValue)||void 0===n?void 0:n.values)||void 0===r?void 0:r.length)||0;this.dt(t,15),t.At(Ci(a)),this.Vt(o,t),this.Tt(i[o],t)}bt(e,t){const n=e.values||[];this.dt(t,50);for(const e of n)this.Tt(e,t)}yt(e,t){this.dt(t,37),ai.fromName(e).path.forEach((e=>{this.dt(t,60),this.Dt(e,t)}))}dt(e,t){e.At(t)}ft(e){e.At(2)}}ws.vt=new ws;class Es{constructor(){this.un=new js}addToCollectionParentIndex(e,t){return this.un.add(t),di.resolve()}getCollectionParents(e,t){return di.resolve(this.un.getEntries(t))}addFieldIndex(e,t){return di.resolve()}deleteFieldIndex(e,t){return di.resolve()}deleteAllFieldIndexes(e){return di.resolve()}createTargetIndexes(e,t){return di.resolve()}getDocumentsMatchingTarget(e,t){return di.resolve(null)}getIndexType(e,t){return di.resolve(0)}getFieldIndexes(e,t){return di.resolve([])}getNextCollectionGroupToUpdate(e){return di.resolve(null)}getMinOffset(e,t){return di.resolve(Ai.min())}getMinOffsetFromCollectionGroup(e,t){return di.resolve(Ai.min())}updateCollectionGroup(e,t,n){return di.resolve()}updateIndexEntries(e,t){return di.resolve()}}class js{constructor(){this.index={}}add(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t]||new Ti(ri.comparator),i=!r.has(n);return this.index[t]=r.add(n),i}has(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t];return r&&r.has(n)}getEntries(e){return(this.index[e]||new Ti(ri.comparator)).toArray()}}new Uint8Array(0);class Os{constructor(e,t,n){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=n}static withCacheSize(e){return new Os(e,Os.DEFAULT_COLLECTION_PERCENTILE,Os.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}}Os.DEFAULT_COLLECTION_PERCENTILE=10,Os.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,Os.DEFAULT=new Os(41943040,Os.DEFAULT_COLLECTION_PERCENTILE,Os.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),Os.DISABLED=new Os(-1,0,0);class Rs{constructor(e){this.Ln=e}next(){return this.Ln+=2,this.Ln}static Bn(){return new Rs(0)}static kn(){return new Rs(-1)}}class Ps{constructor(){this.changes=new Xo((e=>e.toString()),((e,t)=>e.isEqual(t))),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,no.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();const n=this.changes.get(t);return void 0!==n?di.resolve(n):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class Cs{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class Ls{constructor(e,t,n,r){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=n,this.indexManager=r}getDocument(e,t){let n=null;return this.documentOverlayCache.getOverlay(e,t).next((r=>(n=r,this.remoteDocumentCache.getEntry(e,t)))).next((e=>(null!==n&&ka(n.mutation,e,Ei.empty(),ei.now()),e)))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next((t=>this.getLocalViewOfDocuments(e,t,ea()).next((()=>t))))}getLocalViewOfDocuments(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ea();const r=Bo();return this.populateOverlays(e,r,t).next((()=>this.computeViews(e,t,r,n).next((e=>{let t=Go();return e.forEach(((e,n)=>{t=t.insert(e,n.overlayedDocument)})),t}))))}getOverlayedDocuments(e,t){const n=Bo();return this.populateOverlays(e,n,t).next((()=>this.computeViews(e,t,n,ea())))}populateOverlays(e,t,n){const r=[];return n.forEach((e=>{t.has(e)||r.push(e)})),this.documentOverlayCache.getOverlays(e,r).next((e=>{e.forEach(((e,n)=>{t.set(e,n)}))}))}computeViews(e,t,n,r){let i=Zo();const o=Qo(),a=Qo();return t.forEach(((e,t)=>{const a=n.get(t.key);r.has(t.key)&&(void 0===a||a.mutation instanceof wa)?i=i.insert(t.key,t):void 0!==a?(o.set(t.key,a.mutation.getFieldMask()),ka(a.mutation,t,a.mutation.getFieldMask(),ei.now())):o.set(t.key,Ei.empty())})),this.recalculateAndSaveOverlays(e,i).next((e=>(e.forEach(((e,t)=>o.set(e,t))),t.forEach(((e,t)=>{var n;return a.set(e,new Cs(t,null!==(n=o.get(e))&&void 0!==n?n:null))})),a)))}recalculateAndSaveOverlays(e,t){const n=Qo();let r=new bi(((e,t)=>e-t)),i=ea();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next((e=>{for(const i of e)i.keys().forEach((e=>{const o=t.get(e);if(null===o)return;let a=n.get(e)||Ei.empty();a=i.applyToLocalView(o,a),n.set(e,a);const s=(r.get(i.batchId)||ea()).add(e);r=r.insert(i.batchId,s)}))})).next((()=>{const o=[],a=r.getReverseIterator();for(;a.hasNext();){const r=a.getNext(),s=r.key,A=r.value,c=Yo();A.forEach((e=>{if(!i.has(e)){const r=va(t.get(e),n.get(e));null!==r&&c.set(e,r),i=i.add(e)}})),o.push(this.documentOverlayCache.saveOverlays(e,s,c))}return di.waitFor(o)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next((t=>this.recalculateAndSaveOverlays(e,t)))}getDocumentsMatchingQuery(e,t,n,r){return function(e){return ai.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}(t)?this.getDocumentsMatchingDocumentQuery(e,t.path):xo(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,n,r):this.getDocumentsMatchingCollectionQuery(e,t,n,r)}getNextDocuments(e,t,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(e,t,n,r).next((i=>{const o=r-i.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,n.largestBatchId,r-i.size):di.resolve(Bo());let a=-1,s=i;return o.next((t=>di.forEach(t,((t,n)=>(a{s=s.insert(t,e)}))))).next((()=>this.populateOverlays(e,t,i))).next((()=>this.computeViews(e,s,t,ea()))).next((e=>({batchId:a,changes:Ho(e)})))))}))}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new ai(t)).next((e=>{let t=Go();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t}))}getDocumentsMatchingCollectionGroupQuery(e,t,n,r){const i=t.collectionGroup;let o=Go();return this.indexManager.getCollectionParents(e,i).next((a=>di.forEach(a,(a=>{const s=function(e,t){return new Co(t,null,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)}(t,a.child(i));return this.getDocumentsMatchingCollectionQuery(e,s,n,r).next((e=>{e.forEach(((e,t)=>{o=o.insert(e,t)}))}))})).next((()=>o))))}getDocumentsMatchingCollectionQuery(e,t,n,r){let i;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,n.largestBatchId).next((o=>(i=o,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,n,i,r)))).next((e=>{i.forEach(((t,n)=>{const r=n.getKey();null===e.get(r)&&(e=e.insert(r,no.newInvalidDocument(r)))}));let n=Go();return e.forEach(((e,r)=>{const o=i.get(e);void 0!==o&&ka(o.mutation,r,Ei.empty(),ei.now()),Fo(t,r)&&(n=n.insert(e,r))})),n}))}}class Ns{constructor(e){this.serializer=e,this.hr=new Map,this.Pr=new Map}getBundleMetadata(e,t){return di.resolve(this.hr.get(t))}saveBundleMetadata(e,t){return this.hr.set(t.id,function(e){return{id:e.id,version:e.version,createTime:ns(e.createTime)}}(t)),di.resolve()}getNamedQuery(e,t){return di.resolve(this.Pr.get(t))}saveNamedQuery(e,t){return this.Pr.set(t.name,function(e){return{name:e.name,query:Ts(e.bundledQuery),readTime:ns(e.readTime)}}(t)),di.resolve()}}class xs{constructor(){this.overlays=new bi(ai.comparator),this.Ir=new Map}getOverlay(e,t){return di.resolve(this.overlays.get(t))}getOverlays(e,t){const n=Bo();return di.forEach(t,(t=>this.getOverlay(e,t).next((e=>{null!==e&&n.set(t,e)})))).next((()=>n))}saveOverlays(e,t,n){return n.forEach(((n,r)=>{this.ht(e,t,r)})),di.resolve()}removeOverlaysForBatchId(e,t,n){const r=this.Ir.get(n);return void 0!==r&&(r.forEach((e=>this.overlays=this.overlays.remove(e))),this.Ir.delete(n)),di.resolve()}getOverlaysForCollection(e,t,n){const r=Bo(),i=t.length+1,o=new ai(t.child("")),a=this.overlays.getIteratorFrom(o);for(;a.hasNext();){const e=a.getNext().value,o=e.getKey();if(!t.isPrefixOf(o.path))break;o.path.length===i&&e.largestBatchId>n&&r.set(e.getKey(),e)}return di.resolve(r)}getOverlaysForCollectionGroup(e,t,n,r){let i=new bi(((e,t)=>e-t));const o=this.overlays.getIterator();for(;o.hasNext();){const e=o.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>n){let t=i.get(e.largestBatchId);null===t&&(t=Bo(),i=i.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}const a=Bo(),s=i.getIterator();for(;s.hasNext()&&(s.getNext().value.forEach(((e,t)=>a.set(e,t))),!(a.size()>=r)););return di.resolve(a)}ht(e,t,n){const r=this.overlays.get(n.key);if(null!==r){const e=this.Ir.get(r.largestBatchId).delete(n.key);this.Ir.set(r.largestBatchId,e)}this.overlays=this.overlays.insert(n.key,new Ca(t,n));let i=this.Ir.get(t);void 0===i&&(i=ea(),this.Ir.set(t,i)),this.Ir.set(t,i.add(n.key))}}class Ms{constructor(){this.sessionToken=Oi.EMPTY_BYTE_STRING}getSessionToken(e){return di.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,di.resolve()}}class Us{constructor(){this.Tr=new Ti(Is.Er),this.dr=new Ti(Is.Ar)}isEmpty(){return this.Tr.isEmpty()}addReference(e,t){const n=new Is(e,t);this.Tr=this.Tr.add(n),this.dr=this.dr.add(n)}Rr(e,t){e.forEach((e=>this.addReference(e,t)))}removeReference(e,t){this.Vr(new Is(e,t))}mr(e,t){e.forEach((e=>this.removeReference(e,t)))}gr(e){const t=new ai(new ri([])),n=new Is(t,e),r=new Is(t,e+1),i=[];return this.dr.forEachInRange([n,r],(e=>{this.Vr(e),i.push(e.key)})),i}pr(){this.Tr.forEach((e=>this.Vr(e)))}Vr(e){this.Tr=this.Tr.delete(e),this.dr=this.dr.delete(e)}yr(e){const t=new ai(new ri([])),n=new Is(t,e),r=new Is(t,e+1);let i=ea();return this.dr.forEachInRange([n,r],(e=>{i=i.add(e.key)})),i}containsKey(e){const t=new Is(e,0),n=this.Tr.firstAfterOrEqual(t);return null!==n&&e.isEqual(n.key)}}class Is{constructor(e,t){this.key=e,this.wr=t}static Er(e,t){return ai.comparator(e.key,t.key)||Qr(e.wr,t.wr)}static Ar(e,t){return Qr(e.wr,t.wr)||ai.comparator(e.key,t.key)}}class _s{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Sr=1,this.br=new Ti(Is.Er)}checkEmpty(e){return di.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,n,r){const i=this.Sr;this.Sr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const o=new Pa(i,t,n,r);this.mutationQueue.push(o);for(const t of r)this.br=this.br.add(new Is(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return di.resolve(o)}lookupMutationBatch(e,t){return di.resolve(this.Dr(t))}getNextMutationBatchAfterBatchId(e,t){const n=t+1,r=this.vr(n),i=r<0?0:r;return di.resolve(this.mutationQueue.length>i?this.mutationQueue[i]:null)}getHighestUnacknowledgedBatchId(){return di.resolve(0===this.mutationQueue.length?-1:this.Sr-1)}getAllMutationBatches(e){return di.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){const n=new Is(t,0),r=new Is(t,Number.POSITIVE_INFINITY),i=[];return this.br.forEachInRange([n,r],(e=>{const t=this.Dr(e.wr);i.push(t)})),di.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new Ti(Qr);return t.forEach((e=>{const t=new Is(e,0),r=new Is(e,Number.POSITIVE_INFINITY);this.br.forEachInRange([t,r],(e=>{n=n.add(e.wr)}))})),di.resolve(this.Cr(n))}getAllMutationBatchesAffectingQuery(e,t){const n=t.path,r=n.length+1;let i=n;ai.isDocumentKey(i)||(i=i.child(""));const o=new Is(new ai(i),0);let a=new Ti(Qr);return this.br.forEachWhile((e=>{const t=e.key.path;return!!n.isPrefixOf(t)&&(t.length===r&&(a=a.add(e.wr)),!0)}),o),di.resolve(this.Cr(a))}Cr(e){const t=[];return e.forEach((e=>{const n=this.Dr(e);null!==n&&t.push(n)})),t}removeMutationBatch(e,t){_r(0===this.Fr(t.batchId,"removed")),this.mutationQueue.shift();let n=this.br;return di.forEach(t.mutations,(r=>{const i=new Is(r.key,t.batchId);return n=n.delete(i),this.referenceDelegate.markPotentiallyOrphaned(e,r.key)})).next((()=>{this.br=n}))}On(e){}containsKey(e,t){const n=new Is(t,0),r=this.br.firstAfterOrEqual(n);return di.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,di.resolve()}Fr(e,t){return this.vr(e)}vr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Dr(e){const t=this.vr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class Ws{constructor(e){this.Mr=e,this.docs=new bi(ai.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){const n=t.key,r=this.docs.get(n),i=r?r.size:0,o=this.Mr(t);return this.docs=this.docs.insert(n,{document:t.mutableCopy(),size:o}),this.size+=o-i,this.indexManager.addToCollectionParentIndex(e,n.path.popLast())}removeEntry(e){const t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){const n=this.docs.get(t);return di.resolve(n?n.document.mutableCopy():no.newInvalidDocument(t))}getEntries(e,t){let n=Zo();return t.forEach((e=>{const t=this.docs.get(e);n=n.insert(e,t?t.document.mutableCopy():no.newInvalidDocument(e))})),di.resolve(n)}getDocumentsMatchingQuery(e,t,n,r){let i=Zo();const o=t.path,a=new ai(o.child("")),s=this.docs.getIteratorFrom(a);for(;s.hasNext();){const{key:e,value:{document:a}}=s.getNext();if(!o.isPrefixOf(e.path))break;e.path.length>o.length+1||ci(si(a),n)<=0||(r.has(a.key)||Fo(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return di.resolve(i)}getAllFromCollectionGroup(e,t,n,r){Ir()}Or(e,t){return di.forEach(this.docs,(e=>t(e)))}newChangeBuffer(e){return new zs(this)}getSize(e){return di.resolve(this.size)}}class zs extends Ps{constructor(e){super(),this.cr=e}applyChanges(e){const t=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?t.push(this.cr.addEntry(e,r)):this.cr.removeEntry(n)})),di.waitFor(t)}getFromCache(e,t){return this.cr.getEntry(e,t)}getAllFromCache(e,t){return this.cr.getEntries(e,t)}}class Ds{constructor(e){this.persistence=e,this.Nr=new Xo((e=>Oo(e)),Ro),this.lastRemoteSnapshotVersion=ti.min(),this.highestTargetId=0,this.Lr=0,this.Br=new Us,this.targetCount=0,this.kr=Rs.Bn()}forEachTarget(e,t){return this.Nr.forEach(((e,n)=>t(n))),di.resolve()}getLastRemoteSnapshotVersion(e){return di.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return di.resolve(this.Lr)}allocateTargetId(e){return this.highestTargetId=this.kr.next(),di.resolve(this.highestTargetId)}setTargetsMetadata(e,t,n){return n&&(this.lastRemoteSnapshotVersion=n),t>this.Lr&&(this.Lr=t),di.resolve()}Kn(e){this.Nr.set(e.target,e);const t=e.targetId;t>this.highestTargetId&&(this.kr=new Rs(t),this.highestTargetId=t),e.sequenceNumber>this.Lr&&(this.Lr=e.sequenceNumber)}addTargetData(e,t){return this.Kn(t),this.targetCount+=1,di.resolve()}updateTargetData(e,t){return this.Kn(t),di.resolve()}removeTargetData(e,t){return this.Nr.delete(t.target),this.Br.gr(t.targetId),this.targetCount-=1,di.resolve()}removeTargets(e,t,n){let r=0;const i=[];return this.Nr.forEach(((o,a)=>{a.sequenceNumber<=t&&null===n.get(a.targetId)&&(this.Nr.delete(o),i.push(this.removeMatchingKeysForTargetId(e,a.targetId)),r++)})),di.waitFor(i).next((()=>r))}getTargetCount(e){return di.resolve(this.targetCount)}getTargetData(e,t){const n=this.Nr.get(t)||null;return di.resolve(n)}addMatchingKeys(e,t,n){return this.Br.Rr(t,n),di.resolve()}removeMatchingKeys(e,t,n){this.Br.mr(t,n);const r=this.persistence.referenceDelegate,i=[];return r&&t.forEach((t=>{i.push(r.markPotentiallyOrphaned(e,t))})),di.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Br.gr(t),di.resolve()}getMatchingKeysForTargetId(e,t){const n=this.Br.yr(t);return di.resolve(n)}containsKey(e,t){return di.resolve(this.Br.containsKey(t))}}class Fs{constructor(e,t){this.qr={},this.overlays={},this.Qr=new hi(0),this.Kr=!1,this.Kr=!0,this.$r=new Ms,this.referenceDelegate=e(this),this.Ur=new Ds(this),this.indexManager=new Es,this.remoteDocumentCache=function(e){return new Ws(e)}((e=>this.referenceDelegate.Wr(e))),this.serializer=new Ss(t),this.Gr=new Ns(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.Kr=!1,Promise.resolve()}get started(){return this.Kr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new xs,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let n=this.qr[e.toKey()];return n||(n=new _s(t,this.referenceDelegate),this.qr[e.toKey()]=n),n}getGlobalsCache(){return this.$r}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Gr}runTransaction(e,t,n){Nr("MemoryPersistence","Starting transaction:",e);const r=new qs(this.Qr.next());return this.referenceDelegate.zr(),n(r).next((e=>this.referenceDelegate.jr(r).next((()=>e)))).toPromise().then((e=>(r.raiseOnCommittedEvent(),e)))}Hr(e,t){return di.or(Object.values(this.qr).map((n=>()=>n.containsKey(e,t))))}}class qs extends ui{constructor(e){super(),this.currentSequenceNumber=e}}class Vs{constructor(e){this.persistence=e,this.Jr=new Us,this.Yr=null}static Zr(e){return new Vs(e)}get Xr(){if(this.Yr)return this.Yr;throw Ir()}addReference(e,t,n){return this.Jr.addReference(n,t),this.Xr.delete(n.toString()),di.resolve()}removeReference(e,t,n){return this.Jr.removeReference(n,t),this.Xr.add(n.toString()),di.resolve()}markPotentiallyOrphaned(e,t){return this.Xr.add(t.toString()),di.resolve()}removeTarget(e,t){this.Jr.gr(t.targetId).forEach((e=>this.Xr.add(e.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(e,t.targetId).next((e=>{e.forEach((e=>this.Xr.add(e.toString())))})).next((()=>n.removeTargetData(e,t)))}zr(){this.Yr=new Set}jr(e){const t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return di.forEach(this.Xr,(n=>{const r=ai.fromPath(n);return this.ei(e,r).next((e=>{e||t.removeEntry(r,ti.min())}))})).next((()=>(this.Yr=null,t.apply(e))))}updateLimboDocument(e,t){return this.ei(e,t).next((e=>{e?this.Xr.delete(t.toString()):this.Xr.add(t.toString())}))}Wr(e){return 0}ei(e,t){return di.or([()=>di.resolve(this.Jr.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Hr(e,t)])}}class Xs{constructor(e,t,n,r){this.targetId=e,this.fromCache=t,this.$i=n,this.Ui=r}static Wi(e,t){let n=ea(),r=ea();for(const e of t.docChanges)switch(e.type){case 0:n=n.add(e.doc.key);break;case 1:r=r.add(e.doc.key)}return new Xs(e,t.fromCache,n,r)}}class Js{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Zs{constructor(){this.Gi=!1,this.zi=!1,this.ji=100,this.Hi=!function(){var e;const t=null===(e=St())||void 0===e?void 0:e.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(n.g.process)}catch(e){return!1}}()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")?8:function(e){const t=e.match(/Android ([\d.]+)/i),n=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(n)}(jt())>0?6:4}initialize(e,t){this.Ji=e,this.indexManager=t,this.Gi=!0}getDocumentsMatchingQuery(e,t,n,r){const i={result:null};return this.Yi(e,t).next((e=>{i.result=e})).next((()=>{if(!i.result)return this.Zi(e,t,r,n).next((e=>{i.result=e}))})).next((()=>{if(i.result)return;const n=new Js;return this.Xi(e,t,n).next((r=>{if(i.result=r,this.zi)return this.es(e,t,n,r.size)}))})).next((()=>i.result))}es(e,t,n,r){return n.documentReadCountthis.Hi*r?(Lr()<=Vt.DEBUG&&Nr("QueryEngine","The SDK decides to create cache indexes for query:",Do(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Uo(t))):di.resolve())}Yi(e,t){if(No(t))return di.resolve(null);let n=Uo(t);return this.indexManager.getIndexType(e,n).next((r=>0===r?null:(null!==t.limit&&1===r&&(t=_o(t,null,"F"),n=Uo(t)),this.indexManager.getDocumentsMatchingTarget(e,n).next((r=>{const i=ea(...r);return this.Ji.getDocuments(e,i).next((r=>this.indexManager.getMinOffset(e,n).next((n=>{const o=this.ts(t,r);return this.ns(t,o,i,n.readTime)?this.Yi(e,_o(t,null,"F")):this.rs(e,o,t,n)}))))})))))}Zi(e,t,n,r){return No(t)||r.isEqual(ti.min())?di.resolve(null):this.Ji.getDocuments(e,n).next((i=>{const o=this.ts(t,i);return this.ns(t,o,n,r)?di.resolve(null):(Lr()<=Vt.DEBUG&&Nr("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),Do(t)),this.rs(e,o,t,function(e,t){const n=e.toTimestamp().seconds,r=e.toTimestamp().nanoseconds+1,i=ti.fromTimestamp(1e9===r?new ei(n+1,0):new ei(n,r));return new Ai(i,ai.empty(),t)}(r,-1)).next((e=>e)))}))}ts(e,t){let n=new Ti(qo(e));return t.forEach(((t,r)=>{Fo(e,r)&&(n=n.add(r))})),n}ns(e,t,n,r){if(null===e.limit)return!1;if(n.size!==t.size)return!0;const i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||i.version.compareTo(r)>0)}Xi(e,t,n){return Lr()<=Vt.DEBUG&&Nr("QueryEngine","Using full collection scan to execute query:",Do(t)),this.Ji.getDocumentsMatchingQuery(e,t,Ai.min(),n)}rs(e,t,n,r){return this.Ji.getDocumentsMatchingQuery(e,n,r).next((e=>(t.forEach((t=>{e=e.insert(t.key,t)})),e)))}}class Ks{constructor(e,t,n,r){this.persistence=e,this.ss=t,this.serializer=r,this.os=new bi(Qr),this._s=new Xo((e=>Oo(e)),Ro),this.us=new Map,this.cs=e.getRemoteDocumentCache(),this.Ur=e.getTargetCache(),this.Gr=e.getBundleCache(),this.ls(n)}ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new Ls(this.cs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.cs.setIndexManager(this.indexManager),this.ss.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(t=>e.collect(t,this.os)))}}async function Gs(e,t){const n=Wr(e);return await n.persistence.runTransaction("Handle user change","readonly",(e=>{let r;return n.mutationQueue.getAllMutationBatches(e).next((i=>(r=i,n.ls(t),n.mutationQueue.getAllMutationBatches(e)))).next((t=>{const i=[],o=[];let a=ea();for(const e of r){i.push(e.batchId);for(const t of e.mutations)a=a.add(t.key)}for(const e of t){o.push(e.batchId);for(const t of e.mutations)a=a.add(t.key)}return n.localDocuments.getDocuments(e,a).next((e=>({hs:e,removedBatchIds:i,addedBatchIds:o})))}))}))}function Hs(e){const t=Wr(e);return t.persistence.runTransaction("Get last remote snapshot version","readonly",(e=>t.Ur.getLastRemoteSnapshotVersion(e)))}async function Bs(e,t,n){const r=Wr(e),i=r.os.get(t),o=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",o,(e=>r.persistence.referenceDelegate.removeTarget(e,i)))}catch(e){if(!pi(e))throw e;Nr("LocalStore",`Failed to update sequence numbers for target ${t}: ${e}`)}r.os=r.os.remove(t),r._s.delete(i.target)}function Ys(e,t,n){const r=Wr(e);let i=ti.min(),o=ea();return r.persistence.runTransaction("Execute query","readwrite",(e=>function(e,t,n){const r=Wr(e),i=r._s.get(n);return void 0!==i?di.resolve(r.os.get(i)):r.Ur.getTargetData(t,n)}(r,e,Uo(t)).next((t=>{if(t)return i=t.lastLimboFreeSnapshotVersion,r.Ur.getMatchingKeysForTargetId(e,t.targetId).next((e=>{o=e}))})).next((()=>r.ss.getDocumentsMatchingQuery(e,t,n?i:ti.min(),n?o:ea()))).next((e=>(function(e,t,n){let r=e.us.get(t)||ti.min();n.forEach(((e,t)=>{t.readTime.compareTo(r)>0&&(r=t.readTime)})),e.us.set(t,r)}(r,function(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}(t),e),{documents:e,Ts:o})))))}class Qs{constructor(){this.activeTargetIds=ta}fs(e){this.activeTargetIds=this.activeTargetIds.add(e)}gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Vs(){const e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class $s{constructor(){this.so=new Qs,this.oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,n){}addLocalQueryTarget(e){return(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&this.so.fs(e),this.oo[e]||"not-current"}updateQueryState(e,t,n){this.oo[e]=t}removeLocalQueryTarget(e){this.so.gs(e)}isLocalQueryTarget(e){return this.so.activeTargetIds.has(e)}clearQueryState(e){delete this.oo[e]}getAllActiveQueryTargets(){return this.so.activeTargetIds}isActiveQueryTarget(e){return this.so.activeTargetIds.has(e)}start(){return this.so=new Qs,Promise.resolve()}handleUserChange(e,t,n){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class eA{_o(e){}shutdown(){}}class tA{constructor(){this.ao=()=>this.uo(),this.co=()=>this.lo(),this.ho=[],this.Po()}_o(e){this.ho.push(e)}shutdown(){window.removeEventListener("online",this.ao),window.removeEventListener("offline",this.co)}Po(){window.addEventListener("online",this.ao),window.addEventListener("offline",this.co)}uo(){Nr("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const e of this.ho)e(0)}lo(){Nr("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const e of this.ho)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let nA=null;function rA(){return null===nA?nA=268435456+Math.round(2147483648*Math.random()):nA++,"0x"+nA.toString(16)}const iA={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class oA{constructor(e){this.Io=e.Io,this.To=e.To}Eo(e){this.Ao=e}Ro(e){this.Vo=e}mo(e){this.fo=e}onMessage(e){this.po=e}close(){this.To()}send(e){this.Io(e)}yo(){this.Ao()}wo(){this.Vo()}So(e){this.fo(e)}bo(e){this.po(e)}}const aA="WebChannelConnection";class sA extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const t=e.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.Do=t+"://"+e.host,this.vo=`projects/${n}/databases/${r}`,this.Co="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get Fo(){return!1}Mo(e,t,n,r,i){const o=rA(),a=this.xo(e,t.toUriEncodedString());Nr("RestConnection",`Sending RPC '${e}' ${o}:`,a,n);const s={"google-cloud-resource-prefix":this.vo,"x-goog-request-params":this.Co};return this.Oo(s,r,i),this.No(e,a,s,n).then((t=>(Nr("RestConnection",`Received RPC '${e}' ${o}: `,t),t)),(t=>{throw Mr("RestConnection",`RPC '${e}' ${o} failed with error: `,t,"url: ",a,"request:",n),t}))}Lo(e,t,n,r,i,o){return this.Mo(e,t,n,r,i)}Oo(e,t,n){e["X-Goog-Api-Client"]="gl-js/ fire/"+Pr,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach(((t,n)=>e[n]=t)),n&&n.headers.forEach(((t,n)=>e[n]=t))}xo(e,t){const n=iA[e];return`${this.Do}/v1/${t}:${n}`}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}No(e,t,n,r){const i=rA();return new Promise(((o,a)=>{const s=new gr;s.setWithCredentials(!0),s.listenOnce(vr.COMPLETE,(()=>{try{switch(s.getLastErrorCode()){case br.NO_ERROR:const t=s.getResponseJson();Nr(aA,`XHR for RPC '${e}' ${i} received:`,JSON.stringify(t)),o(t);break;case br.TIMEOUT:Nr(aA,`RPC '${e}' ${i} timed out`),a(new Dr(zr.DEADLINE_EXCEEDED,"Request time out"));break;case br.HTTP_ERROR:const n=s.getStatus();if(Nr(aA,`RPC '${e}' ${i} failed with status:`,n,"response text:",s.getResponseText()),n>0){let e=s.getResponseJson();Array.isArray(e)&&(e=e[0]);const t=null==e?void 0:e.error;if(t&&t.status&&t.message){const e=function(e){const t=e.toLowerCase().replace(/_/g,"-");return Object.values(zr).indexOf(t)>=0?t:zr.UNKNOWN}(t.status);a(new Dr(e,t.message))}else a(new Dr(zr.UNKNOWN,"Server responded with status "+s.getStatus()))}else a(new Dr(zr.UNAVAILABLE,"Connection failed."));break;default:Ir()}}finally{Nr(aA,`RPC '${e}' ${i} completed.`)}}));const A=JSON.stringify(r);Nr(aA,`RPC '${e}' ${i} sending request:`,r),s.send(t,"POST",A,n,15)}))}Bo(e,t,n){const r=rA(),i=[this.Do,"/","google.firestore.v1.Firestore","/",e,"/channel"],o=wr(),a=Tr(),s={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},A=this.longPollingOptions.timeoutSeconds;void 0!==A&&(s.longPollingTimeout=Math.round(1e3*A)),this.useFetchStreams&&(s.useFetchStreams=!0),this.Oo(s.initMessageHeaders,t,n),s.encodeInitMessageHeaders=!0;const c=i.join("");Nr(aA,`Creating RPC '${e}' stream ${r}: ${c}`,s);const u=o.createWebChannel(c,s);let l=!1,d=!1;const p=new oA({Io:t=>{d?Nr(aA,`Not sending because RPC '${e}' stream ${r} is closed:`,t):(l||(Nr(aA,`Opening RPC '${e}' stream ${r} transport.`),u.open(),l=!0),Nr(aA,`RPC '${e}' stream ${r} sending:`,t),u.send(t))},To:()=>u.close()}),h=(e,t,n)=>{e.listen(t,(e=>{try{n(e)}catch(e){setTimeout((()=>{throw e}),0)}}))};return h(u,yr.EventType.OPEN,(()=>{d||(Nr(aA,`RPC '${e}' stream ${r} transport opened.`),p.yo())})),h(u,yr.EventType.CLOSE,(()=>{d||(d=!0,Nr(aA,`RPC '${e}' stream ${r} transport closed`),p.So())})),h(u,yr.EventType.ERROR,(t=>{d||(d=!0,Mr(aA,`RPC '${e}' stream ${r} transport errored:`,t),p.So(new Dr(zr.UNAVAILABLE,"The operation could not be completed")))})),h(u,yr.EventType.MESSAGE,(t=>{var n;if(!d){const i=t.data[0];_r(!!i);const o=i,a=o.error||(null===(n=o[0])||void 0===n?void 0:n.error);if(a){Nr(aA,`RPC '${e}' stream ${r} received error:`,a);const t=a.status;let n=function(e){const t=Na[e];if(void 0!==t)return Ma(t)}(t),i=a.message;void 0===n&&(n=zr.INTERNAL,i="Unknown error status: "+t+" with message "+a.message),d=!0,p.So(new Dr(n,i)),u.close()}else Nr(aA,`RPC '${e}' stream ${r} received:`,i),p.bo(i)}})),h(a,Sr.STAT_EVENT,(t=>{t.stat===kr.PROXY?Nr(aA,`RPC '${e}' stream ${r} detected buffering proxy`):t.stat===kr.NOPROXY&&Nr(aA,`RPC '${e}' stream ${r} detected no buffering proxy`)})),setTimeout((()=>{p.wo()}),0),p}}function AA(){return"undefined"!=typeof document?document:null}function cA(e){return new Qa(e,!0)}class uA{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1.5,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:6e4;this.ui=e,this.timerId=t,this.ko=n,this.qo=r,this.Qo=i,this.Ko=0,this.$o=null,this.Uo=Date.now(),this.reset()}reset(){this.Ko=0}Wo(){this.Ko=this.Qo}Go(e){this.cancel();const t=Math.floor(this.Ko+this.zo()),n=Math.max(0,Date.now()-this.Uo),r=Math.max(0,t-n);r>0&&Nr("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Ko} ms, delay with jitter: ${t} ms, last attempt: ${n} ms ago)`),this.$o=this.ui.enqueueAfterDelay(this.timerId,r,(()=>(this.Uo=Date.now(),e()))),this.Ko*=this.qo,this.Kothis.Qo&&(this.Ko=this.Qo)}jo(){null!==this.$o&&(this.$o.skipDelay(),this.$o=null)}cancel(){null!==this.$o&&(this.$o.cancel(),this.$o=null)}zo(){return(Math.random()-.5)*this.Ko}}class lA{constructor(e,t,n,r,i,o,a,s){this.ui=e,this.Ho=n,this.Jo=r,this.connection=i,this.authCredentialsProvider=o,this.appCheckCredentialsProvider=a,this.listener=s,this.state=0,this.Yo=0,this.Zo=null,this.Xo=null,this.stream=null,this.e_=0,this.t_=new uA(e,t)}n_(){return 1===this.state||5===this.state||this.r_()}r_(){return 2===this.state||3===this.state}start(){this.e_=0,4!==this.state?this.auth():this.i_()}async stop(){this.n_()&&await this.close(0)}s_(){this.state=0,this.t_.reset()}o_(){this.r_()&&null===this.Zo&&(this.Zo=this.ui.enqueueAfterDelay(this.Ho,6e4,(()=>this.__())))}a_(e){this.u_(),this.stream.send(e)}async __(){if(this.r_())return this.close(0)}u_(){this.Zo&&(this.Zo.cancel(),this.Zo=null)}c_(){this.Xo&&(this.Xo.cancel(),this.Xo=null)}async close(e,t){this.u_(),this.c_(),this.t_.cancel(),this.Yo++,4!==e?this.t_.reset():t&&t.code===zr.RESOURCE_EXHAUSTED?(xr(t.toString()),xr("Using maximum backoff delay to prevent overloading the backend."),this.t_.Wo()):t&&t.code===zr.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.l_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.mo(t)}l_(){}auth(){this.state=1;const e=this.h_(this.Yo),t=this.Yo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((e=>{let[n,r]=e;this.Yo===t&&this.P_(n,r)}),(t=>{e((()=>{const e=new Dr(zr.UNKNOWN,"Fetching auth token failed: "+t.message);return this.I_(e)}))}))}P_(e,t){const n=this.h_(this.Yo);this.stream=this.T_(e,t),this.stream.Eo((()=>{n((()=>this.listener.Eo()))})),this.stream.Ro((()=>{n((()=>(this.state=2,this.Xo=this.ui.enqueueAfterDelay(this.Jo,1e4,(()=>(this.r_()&&(this.state=3),Promise.resolve()))),this.listener.Ro())))})),this.stream.mo((e=>{n((()=>this.I_(e)))})),this.stream.onMessage((e=>{n((()=>1==++this.e_?this.E_(e):this.onNext(e)))}))}i_(){this.state=5,this.t_.Go((async()=>{this.state=0,this.start()}))}I_(e){return Nr("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}h_(e){return t=>{this.ui.enqueueAndForget((()=>this.Yo===e?t():(Nr("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class dA extends lA{constructor(e,t,n,r,i,o){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,n,r,o),this.serializer=i}T_(e,t){return this.connection.Bo("Listen",e,t)}E_(e){return this.onNext(e)}onNext(e){this.t_.reset();const t=function(e,t){let n;if("targetChange"in t){t.targetChange;const r=function(e){return"NO_CHANGE"===e?0:"ADD"===e?1:"REMOVE"===e?2:"CURRENT"===e?3:"RESET"===e?4:Ir()}(t.targetChange.targetChangeType||"NO_CHANGE"),i=t.targetChange.targetIds||[],o=function(e,t){return e.useProto3Json?(_r(void 0===t||"string"==typeof t),Oi.fromBase64String(t||"")):(_r(void 0===t||t instanceof Buffer||t instanceof Uint8Array),Oi.fromUint8Array(t||new Uint8Array))}(e,t.targetChange.resumeToken),a=t.targetChange.cause,s=a&&function(e){const t=void 0===e.code?zr.UNKNOWN:Ma(e.code);return new Dr(t,e.message||"")}(a);n=new Xa(r,i,o,s||null)}else if("documentChange"in t){t.documentChange;const r=t.documentChange;r.document,r.document.name,r.document.updateTime;const i=as(e,r.document.name),o=ns(r.document.updateTime),a=r.document.createTime?ns(r.document.createTime):ti.min(),s=new to({mapValue:{fields:r.document.fields}}),A=no.newFoundDocument(i,o,a,s),c=r.targetIds||[],u=r.removedTargetIds||[];n=new qa(c,u,A.key,A)}else if("documentDelete"in t){t.documentDelete;const r=t.documentDelete;r.document;const i=as(e,r.document),o=r.readTime?ns(r.readTime):ti.min(),a=no.newNoDocument(i,o),s=r.removedTargetIds||[];n=new qa([],s,a.key,a)}else if("documentRemove"in t){t.documentRemove;const r=t.documentRemove;r.document;const i=as(e,r.document),o=r.removedTargetIds||[];n=new qa([],o,i,null)}else{if(!("filter"in t))return Ir();{t.filter;const e=t.filter;e.targetId;const{count:r=0,unchangedNames:i}=e,o=new La(r,i),a=e.targetId;n=new Va(a,o)}}return n}(this.serializer,e),n=function(e){if(!("targetChange"in e))return ti.min();const t=e.targetChange;return t.targetIds&&t.targetIds.length?ti.min():t.readTime?ns(t.readTime):ti.min()}(e);return this.listener.d_(t,n)}A_(e){const t={};t.database=As(this.serializer),t.addTarget=function(e,t){let n;const r=t.target;if(n=Po(r)?{documents:us(e,r)}:{query:ls(e,r)._t},n.targetId=t.targetId,t.resumeToken.approximateByteSize()>0){n.resumeToken=ts(e,t.resumeToken);const r=$a(e,t.expectedCount);null!==r&&(n.expectedCount=r)}else if(t.snapshotVersion.compareTo(ti.min())>0){n.readTime=es(e,t.snapshotVersion.toTimestamp());const r=$a(e,t.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,e);const n=function(e,t){const n=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return Ir()}}(t.purpose);return null==n?null:{"goog-listen-tags":n}}(this.serializer,e);n&&(t.labels=n),this.a_(t)}R_(e){const t={};t.database=As(this.serializer),t.removeTarget=e,this.a_(t)}}class pA extends class{}{constructor(e,t,n,r){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=n,this.serializer=r,this.y_=!1}w_(){if(this.y_)throw new Dr(zr.FAILED_PRECONDITION,"The client has already been terminated.")}Mo(e,t,n,r){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((i=>{let[o,a]=i;return this.connection.Mo(e,is(t,n),r,o,a)})).catch((e=>{throw"FirebaseError"===e.name?(e.code===zr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Dr(zr.UNKNOWN,e.toString())}))}Lo(e,t,n,r,i){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((o=>{let[a,s]=o;return this.connection.Lo(e,is(t,n),r,a,s,i)})).catch((e=>{throw"FirebaseError"===e.name?(e.code===zr.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Dr(zr.UNKNOWN,e.toString())}))}terminate(){this.y_=!0,this.connection.terminate()}}class hA{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.S_=0,this.b_=null,this.D_=!0}v_(){0===this.S_&&(this.C_("Unknown"),this.b_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.b_=null,this.F_("Backend didn't respond within 10 seconds."),this.C_("Offline"),Promise.resolve()))))}M_(e){"Online"===this.state?this.C_("Unknown"):(this.S_++,this.S_>=1&&(this.x_(),this.F_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.C_("Offline")))}set(e){this.x_(),this.S_=0,"Online"===e&&(this.D_=!1),this.C_(e)}C_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}F_(e){const t=`Could not reach Cloud Firestore backend. ${e}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.D_?(xr(t),this.D_=!1):Nr("OnlineStateTracker",t)}x_(){null!==this.b_&&(this.b_.cancel(),this.b_=null)}}class fA{constructor(e,t,n,r,i){this.localStore=e,this.datastore=t,this.asyncQueue=n,this.remoteSyncer={},this.O_=[],this.N_=new Map,this.L_=new Set,this.B_=[],this.k_=i,this.k_._o((e=>{n.enqueueAndForget((async()=>{wA(this)&&(Nr("RemoteStore","Restarting streams for network reachability change."),await async function(e){const t=Wr(e);t.L_.add(4),await gA(t),t.q_.set("Unknown"),t.L_.delete(4),await mA(t)}(this))}))})),this.q_=new hA(n,r)}}async function mA(e){if(wA(e))for(const t of e.B_)await t(!0)}async function gA(e){for(const t of e.B_)await t(!1)}function yA(e,t){const n=Wr(e);n.N_.has(t.targetId)||(n.N_.set(t.targetId,t),TA(n)?SA(n):NA(n).r_()&&bA(n,t))}function vA(e,t){const n=Wr(e),r=NA(n);n.N_.delete(t),r.r_()&&kA(n,t),0===n.N_.size&&(r.r_()?r.o_():wA(n)&&n.q_.set("Unknown"))}function bA(e,t){if(e.Q_.xe(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(ti.min())>0){const n=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(n)}NA(e).A_(t)}function kA(e,t){e.Q_.xe(t),NA(e).R_(t)}function SA(e){e.Q_=new Za({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),ot:t=>e.N_.get(t)||null,tt:()=>e.datastore.serializer.databaseId}),NA(e).start(),e.q_.v_()}function TA(e){return wA(e)&&!NA(e).n_()&&e.N_.size>0}function wA(e){return 0===Wr(e).L_.size}function EA(e){e.Q_=void 0}async function jA(e){e.q_.set("Online")}async function OA(e){e.N_.forEach(((t,n)=>{bA(e,t)}))}async function RA(e,t){EA(e),TA(e)?(e.q_.M_(t),SA(e)):e.q_.set("Unknown")}async function PA(e,t,n){if(e.q_.set("Online"),t instanceof Xa&&2===t.state&&t.cause)try{await async function(e,t){const n=t.cause;for(const r of t.targetIds)e.N_.has(r)&&(await e.remoteSyncer.rejectListen(r,n),e.N_.delete(r),e.Q_.removeTarget(r))}(e,t)}catch(n){Nr("RemoteStore","Failed to remove targets %s: %s ",t.targetIds.join(","),n),await CA(e,n)}else if(t instanceof qa?e.Q_.Ke(t):t instanceof Va?e.Q_.He(t):e.Q_.We(t),!n.isEqual(ti.min()))try{const t=await Hs(e.localStore);n.compareTo(t)>=0&&await function(e,t){const n=e.Q_.rt(t);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const i=e.N_.get(r);i&&e.N_.set(r,i.withResumeToken(n.resumeToken,t))}})),n.targetMismatches.forEach(((t,n)=>{const r=e.N_.get(t);if(!r)return;e.N_.set(t,r.withResumeToken(Oi.EMPTY_BYTE_STRING,r.snapshotVersion)),kA(e,t);const i=new ks(r.target,t,n,r.sequenceNumber);bA(e,i)})),e.remoteSyncer.applyRemoteEvent(n)}(e,n)}catch(t){Nr("RemoteStore","Failed to raise snapshot:",t),await CA(e,t)}}async function CA(e,t,n){if(!pi(t))throw t;e.L_.add(1),await gA(e),e.q_.set("Offline"),n||(n=()=>Hs(e.localStore)),e.asyncQueue.enqueueRetryable((async()=>{Nr("RemoteStore","Retrying IndexedDB access"),await n(),e.L_.delete(1),await mA(e)}))}async function LA(e,t){const n=Wr(e);n.asyncQueue.verifyOperationInProgress(),Nr("RemoteStore","RemoteStore received new credentials");const r=wA(n);n.L_.add(3),await gA(n),r&&n.q_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(t),n.L_.delete(3),await mA(n)}function NA(e){return e.K_||(e.K_=function(e,t,n){const r=Wr(e);return r.w_(),new dA(t,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(e.datastore,e.asyncQueue,{Eo:jA.bind(null,e),Ro:OA.bind(null,e),mo:RA.bind(null,e),d_:PA.bind(null,e)}),e.B_.push((async t=>{t?(e.K_.s_(),TA(e)?SA(e):e.q_.set("Unknown")):(await e.K_.stop(),EA(e))}))),e.K_}class xA{constructor(e,t,n,r,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=n,this.op=r,this.removalCallback=i,this.deferred=new Fr,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((e=>{}))}get promise(){return this.deferred.promise}static createAndSchedule(e,t,n,r,i){const o=Date.now()+n,a=new xA(e,t,o,r,i);return a.start(n),a}start(e){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Dr(zr.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((e=>this.deferred.resolve(e)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function MA(e,t){if(xr("AsyncQueue",`${t}: ${e}`),pi(e))return new Dr(zr.UNAVAILABLE,`${t}: ${e}`);throw e}class UA{constructor(e){this.comparator=e?(t,n)=>e(t,n)||ai.comparator(t.key,n.key):(e,t)=>ai.comparator(e.key,t.key),this.keyedMap=Go(),this.sortedSet=new bi(this.comparator)}static emptySet(e){return new UA(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){const t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal(((t,n)=>(e(t),!1)))}add(e){const t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){const t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof UA))return!1;if(this.size!==e.size)return!1;const t=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(!e.isEqual(r))return!1}return!0}toString(){const e=[];return this.forEach((t=>{e.push(t.toString())})),0===e.length?"DocumentSet ()":"DocumentSet (\n "+e.join(" \n")+"\n)"}copy(e,t){const n=new UA;return n.comparator=this.comparator,n.keyedMap=e,n.sortedSet=t,n}}class IA{constructor(){this.W_=new bi(ai.comparator)}track(e){const t=e.doc.key,n=this.W_.get(t);n?0!==e.type&&3===n.type?this.W_=this.W_.insert(t,e):3===e.type&&1!==n.type?this.W_=this.W_.insert(t,{type:n.type,doc:e.doc}):2===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===n.type?this.W_=this.W_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===n.type?this.W_=this.W_.remove(t):1===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:1,doc:n.doc}):0===e.type&&1===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):Ir():this.W_=this.W_.insert(t,e)}G_(){const e=[];return this.W_.inorderTraversal(((t,n)=>{e.push(n)})),e}}class _A{constructor(e,t,n,r,i,o,a,s,A){this.query=e,this.docs=t,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=i,this.fromCache=o,this.syncStateChanged=a,this.excludesMetadataChanges=s,this.hasCachedResults=A}static fromInitialDocuments(e,t,n,r,i){const o=[];return t.forEach((e=>{o.push({type:0,doc:e})})),new _A(e,t,UA.emptySet(t),o,n,r,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&Wo(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;const t=this.docChanges,n=e.docChanges;if(t.length!==n.length)return!1;for(let e=0;ee.J_()))}}class zA{constructor(){this.queries=DA(),this.onlineState="Unknown",this.Y_=new Set}terminate(){!function(e,t){const n=Wr(e),r=n.queries;n.queries=DA(),r.forEach(((e,n)=>{for(const e of n.j_)e.onError(t)}))}(this,new Dr(zr.ABORTED,"Firestore shutting down"))}}function DA(){return new Xo((e=>zo(e)),Wo)}function FA(e,t){const n=Wr(e);let r=!1;for(const e of t){const t=e.query,i=n.queries.get(t);if(i){for(const t of i.j_)t.X_(e)&&(r=!0);i.z_=e}}r&&VA(n)}function qA(e,t,n){const r=Wr(e),i=r.queries.get(t);if(i)for(const e of i.j_)e.onError(n);r.queries.delete(t)}function VA(e){e.Y_.forEach((e=>{e.next()}))}var XA,JA;(JA=XA||(XA={})).ea="default",JA.Cache="cache";class ZA{constructor(e,t,n){this.query=e,this.ta=t,this.na=!1,this.ra=null,this.onlineState="Unknown",this.options=n||{}}X_(e){if(!this.options.includeMetadataChanges){const t=[];for(const n of e.docChanges)3!==n.type&&t.push(n);e=new _A(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.na?this.ia(e)&&(this.ta.next(e),t=!0):this.sa(e,this.onlineState)&&(this.oa(e),t=!0),this.ra=e,t}onError(e){this.ta.error(e)}Z_(e){this.onlineState=e;let t=!1;return this.ra&&!this.na&&this.sa(this.ra,e)&&(this.oa(this.ra),t=!0),t}sa(e,t){if(!e.fromCache)return!0;if(!this.J_())return!0;const n="Offline"!==t;return(!this.options._a||!n)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}ia(e){if(e.docChanges.length>0)return!0;const t=this.ra&&this.ra.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}oa(e){e=_A.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.na=!0,this.ta.next(e)}J_(){return this.options.source!==XA.Cache}}class KA{constructor(e){this.key=e}}class GA{constructor(e){this.key=e}}class HA{constructor(e,t){this.query=e,this.Ta=t,this.Ea=null,this.hasCachedResults=!1,this.current=!1,this.da=ea(),this.mutatedKeys=ea(),this.Aa=qo(e),this.Ra=new UA(this.Aa)}get Va(){return this.Ta}ma(e,t){const n=t?t.fa:new IA,r=t?t.Ra:this.Ra;let i=t?t.mutatedKeys:this.mutatedKeys,o=r,a=!1;const s="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,A="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(e.inorderTraversal(((e,t)=>{const c=r.get(e),u=Fo(this.query,t)?t:null,l=!!c&&this.mutatedKeys.has(c.key),d=!!u&&(u.hasLocalMutations||this.mutatedKeys.has(u.key)&&u.hasCommittedMutations);let p=!1;c&&u?c.data.isEqual(u.data)?l!==d&&(n.track({type:3,doc:u}),p=!0):this.ga(c,u)||(n.track({type:2,doc:u}),p=!0,(s&&this.Aa(u,s)>0||A&&this.Aa(u,A)<0)&&(a=!0)):!c&&u?(n.track({type:0,doc:u}),p=!0):c&&!u&&(n.track({type:1,doc:c}),p=!0,(s||A)&&(a=!0)),p&&(u?(o=o.add(u),i=d?i.add(e):i.delete(e)):(o=o.delete(e),i=i.delete(e)))})),null!==this.query.limit)for(;o.size>this.query.limit;){const e="F"===this.query.limitType?o.last():o.first();o=o.delete(e.key),i=i.delete(e.key),n.track({type:1,doc:e})}return{Ra:o,fa:n,ns:a,mutatedKeys:i}}ga(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,n,r){const i=this.Ra;this.Ra=e.Ra,this.mutatedKeys=e.mutatedKeys;const o=e.fa.G_();o.sort(((e,t)=>function(e,t){const n=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Ir()}};return n(e)-n(t)}(e.type,t.type)||this.Aa(e.doc,t.doc))),this.pa(n),r=null!=r&&r;const a=t&&!r?this.ya():[],s=0===this.da.size&&this.current&&!r?1:0,A=s!==this.Ea;return this.Ea=s,0!==o.length||A?{snapshot:new _A(this.query,e.Ra,i,o,e.mutatedKeys,0===s,A,!1,!!n&&n.resumeToken.approximateByteSize()>0),wa:a}:{wa:a}}Z_(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ra:this.Ra,fa:new IA,mutatedKeys:this.mutatedKeys,ns:!1},!1)):{wa:[]}}Sa(e){return!this.Ta.has(e)&&!!this.Ra.has(e)&&!this.Ra.get(e).hasLocalMutations}pa(e){e&&(e.addedDocuments.forEach((e=>this.Ta=this.Ta.add(e))),e.modifiedDocuments.forEach((e=>{})),e.removedDocuments.forEach((e=>this.Ta=this.Ta.delete(e))),this.current=e.current)}ya(){if(!this.current)return[];const e=this.da;this.da=ea(),this.Ra.forEach((e=>{this.Sa(e.key)&&(this.da=this.da.add(e.key))}));const t=[];return e.forEach((e=>{this.da.has(e)||t.push(new GA(e))})),this.da.forEach((n=>{e.has(n)||t.push(new KA(n))})),t}ba(e){this.Ta=e.Ts,this.da=ea();const t=this.ma(e.documents);return this.applyChanges(t,!0)}Da(){return _A.fromInitialDocuments(this.query,this.Ra,this.mutatedKeys,0===this.Ea,this.hasCachedResults)}}class BA{constructor(e,t,n){this.query=e,this.targetId=t,this.view=n}}class YA{constructor(e){this.key=e,this.va=!1}}class QA{constructor(e,t,n,r,i,o){this.localStore=e,this.remoteStore=t,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=o,this.Ca={},this.Fa=new Xo((e=>zo(e)),Wo),this.Ma=new Map,this.xa=new Set,this.Oa=new bi(ai.comparator),this.Na=new Map,this.La=new Us,this.Ba={},this.ka=new Map,this.qa=Rs.kn(),this.onlineState="Unknown",this.Qa=void 0}get isPrimaryClient(){return!0===this.Qa}}async function $A(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const r=fc(e);let i;const o=r.Fa.get(t);return o?(r.sharedClientState.addLocalQueryTarget(o.targetId),i=o.view.Da()):i=await tc(r,t,n,!0),i}async function ec(e,t){const n=fc(e);await tc(n,t,!0,!1)}async function tc(e,t,n,r){const i=await function(e,t){const n=Wr(e);return n.persistence.runTransaction("Allocate target","readwrite",(e=>{let r;return n.Ur.getTargetData(e,t).next((i=>i?(r=i,di.resolve(r)):n.Ur.allocateTargetId(e).next((i=>(r=new ks(t,i,"TargetPurposeListen",e.currentSequenceNumber),n.Ur.addTargetData(e,r).next((()=>r)))))))})).then((e=>{const r=n.os.get(e.targetId);return(null===r||e.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.os=n.os.insert(e.targetId,e),n._s.set(t,e.targetId)),e}))}(e.localStore,Uo(t)),o=i.targetId,a=e.sharedClientState.addLocalQueryTarget(o,n);let s;return r&&(s=await async function(e,t,n,r,i){e.Ka=(t,n,r)=>async function(e,t,n,r){let i=t.view.ma(n);i.ns&&(i=await Ys(e.localStore,t.query,!1).then((e=>{let{documents:n}=e;return t.view.ma(n,i)})));const o=r&&r.targetChanges.get(t.targetId),a=r&&null!=r.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,o,a);return cc(e,t.targetId,s.wa),s.snapshot}(e,t,n,r);const o=await Ys(e.localStore,t,!0),a=new HA(t,o.Ts),s=a.ma(o.documents),A=Fa.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==e.onlineState,i),c=a.applyChanges(s,e.isPrimaryClient,A);cc(e,n,c.wa);const u=new BA(t,n,a);return e.Fa.set(t,u),e.Ma.has(n)?e.Ma.get(n).push(t):e.Ma.set(n,[t]),c.snapshot}(e,t,o,"current"===a,i.resumeToken)),e.isPrimaryClient&&n&&yA(e.remoteStore,i),s}async function nc(e,t,n){const r=Wr(e),i=r.Fa.get(t),o=r.Ma.get(i.targetId);if(o.length>1)return r.Ma.set(i.targetId,o.filter((e=>!Wo(e,t)))),void r.Fa.delete(t);r.isPrimaryClient?(r.sharedClientState.removeLocalQueryTarget(i.targetId),r.sharedClientState.isActiveQueryTarget(i.targetId)||await Bs(r.localStore,i.targetId,!1).then((()=>{r.sharedClientState.clearQueryState(i.targetId),n&&vA(r.remoteStore,i.targetId),sc(r,i.targetId)})).catch(li)):(sc(r,i.targetId),await Bs(r.localStore,i.targetId,!0))}async function rc(e,t){const n=Wr(e),r=n.Fa.get(t),i=n.Ma.get(r.targetId);n.isPrimaryClient&&1===i.length&&(n.sharedClientState.removeLocalQueryTarget(r.targetId),vA(n.remoteStore,r.targetId))}async function ic(e,t){const n=Wr(e);try{const e=await function(e,t){const n=Wr(e),r=t.snapshotVersion;let i=n.os;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(e=>{const o=n.cs.newChangeBuffer({trackRemovals:!0});i=n.os;const a=[];t.targetChanges.forEach(((o,s)=>{const A=i.get(s);if(!A)return;a.push(n.Ur.removeMatchingKeys(e,o.removedDocuments,s).next((()=>n.Ur.addMatchingKeys(e,o.addedDocuments,s))));let c=A.withSequenceNumber(e.currentSequenceNumber);null!==t.targetMismatches.get(s)?c=c.withResumeToken(Oi.EMPTY_BYTE_STRING,ti.min()).withLastLimboFreeSnapshotVersion(ti.min()):o.resumeToken.approximateByteSize()>0&&(c=c.withResumeToken(o.resumeToken,r)),i=i.insert(s,c),function(e,t,n){return 0===e.resumeToken.approximateByteSize()||t.snapshotVersion.toMicroseconds()-e.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0}(A,c,o)&&a.push(n.Ur.updateTargetData(e,c))}));let s=Zo(),A=ea();if(t.documentUpdates.forEach((r=>{t.resolvedLimboDocuments.has(r)&&a.push(n.persistence.referenceDelegate.updateLimboDocument(e,r))})),a.push(function(e,t,n){let r=ea(),i=ea();return n.forEach((e=>r=r.add(e))),t.getEntries(e,r).next((e=>{let r=Zo();return n.forEach(((n,o)=>{const a=e.get(n);o.isFoundDocument()!==a.isFoundDocument()&&(i=i.add(n)),o.isNoDocument()&&o.version.isEqual(ti.min())?(t.removeEntry(n,o.readTime),r=r.insert(n,o)):!a.isValidDocument()||o.version.compareTo(a.version)>0||0===o.version.compareTo(a.version)&&a.hasPendingWrites?(t.addEntry(o),r=r.insert(n,o)):Nr("LocalStore","Ignoring outdated watch update for ",n,". Current version:",a.version," Watch version:",o.version)})),{Ps:r,Is:i}}))}(e,o,t.documentUpdates).next((e=>{s=e.Ps,A=e.Is}))),!r.isEqual(ti.min())){const t=n.Ur.getLastRemoteSnapshotVersion(e).next((t=>n.Ur.setTargetsMetadata(e,e.currentSequenceNumber,r)));a.push(t)}return di.waitFor(a).next((()=>o.apply(e))).next((()=>n.localDocuments.getLocalViewOfDocuments(e,s,A))).next((()=>s))})).then((e=>(n.os=i,e)))}(n.localStore,t);t.targetChanges.forEach(((e,t)=>{const r=n.Na.get(t);r&&(_r(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),e.addedDocuments.size>0?r.va=!0:e.modifiedDocuments.size>0?_r(r.va):e.removedDocuments.size>0&&(_r(r.va),r.va=!1))})),await dc(n,e,t)}catch(e){await li(e)}}function oc(e,t,n){const r=Wr(e);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const e=[];r.Fa.forEach(((n,r)=>{const i=r.view.Z_(t);i.snapshot&&e.push(i.snapshot)})),function(e,t){const n=Wr(e);n.onlineState=t;let r=!1;n.queries.forEach(((e,n)=>{for(const e of n.j_)e.Z_(t)&&(r=!0)})),r&&VA(n)}(r.eventManager,t),e.length&&r.Ca.d_(e),r.onlineState=t,r.isPrimaryClient&&r.sharedClientState.setOnlineState(t)}}async function ac(e,t,n){const r=Wr(e);r.sharedClientState.updateQueryState(t,"rejected",n);const i=r.Na.get(t),o=i&&i.key;if(o){let e=new bi(ai.comparator);e=e.insert(o,no.newNoDocument(o,ti.min()));const n=ea().add(o),i=new Da(ti.min(),new Map,new bi(Qr),e,n);await ic(r,i),r.Oa=r.Oa.remove(o),r.Na.delete(t),lc(r)}else await Bs(r.localStore,t,!1).then((()=>sc(r,t,n))).catch(li)}function sc(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;e.sharedClientState.removeLocalQueryTarget(t);for(const r of e.Ma.get(t))e.Fa.delete(r),n&&e.Ca.$a(r,n);e.Ma.delete(t),e.isPrimaryClient&&e.La.gr(t).forEach((t=>{e.La.containsKey(t)||Ac(e,t)}))}function Ac(e,t){e.xa.delete(t.path.canonicalString());const n=e.Oa.get(t);null!==n&&(vA(e.remoteStore,n),e.Oa=e.Oa.remove(t),e.Na.delete(n),lc(e))}function cc(e,t,n){for(const r of n)r instanceof KA?(e.La.addReference(r.key,t),uc(e,r)):r instanceof GA?(Nr("SyncEngine","Document no longer in limbo: "+r.key),e.La.removeReference(r.key,t),e.La.containsKey(r.key)||Ac(e,r.key)):Ir()}function uc(e,t){const n=t.key,r=n.path.canonicalString();e.Oa.get(n)||e.xa.has(r)||(Nr("SyncEngine","New document in limbo: "+n),e.xa.add(r),lc(e))}function lc(e){for(;e.xa.size>0&&e.Oa.size{a.push(r.Ka(s,t,n).then((e=>{var t;if((e||n)&&r.isPrimaryClient){const i=e?!e.fromCache:null===(t=null==n?void 0:n.targetChanges.get(s.targetId))||void 0===t?void 0:t.current;r.sharedClientState.updateQueryState(s.targetId,i?"current":"not-current")}if(e){i.push(e);const t=Xs.Wi(s.targetId,e);o.push(t)}})))})),await Promise.all(a),r.Ca.d_(i),await async function(e,t){const n=Wr(e);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(e=>di.forEach(t,(t=>di.forEach(t.$i,(r=>n.persistence.referenceDelegate.addReference(e,t.targetId,r))).next((()=>di.forEach(t.Ui,(r=>n.persistence.referenceDelegate.removeReference(e,t.targetId,r)))))))))}catch(e){if(!pi(e))throw e;Nr("LocalStore","Failed to update sequence numbers: "+e)}for(const e of t){const t=e.targetId;if(!e.fromCache){const e=n.os.get(t),r=e.snapshotVersion,i=e.withLastLimboFreeSnapshotVersion(r);n.os=n.os.insert(t,i)}}}(r.localStore,o))}async function pc(e,t){const n=Wr(e);if(!n.currentUser.isEqual(t)){Nr("SyncEngine","User change. New user:",t.toKey());const e=await Gs(n.localStore,t);n.currentUser=t,function(e){e.ka.forEach((e=>{e.forEach((e=>{e.reject(new Dr(zr.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))}))})),e.ka.clear()}(n),n.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await dc(n,e.hs)}}function hc(e,t){const n=Wr(e),r=n.Na.get(t);if(r&&r.va)return ea().add(r.key);{let e=ea();const r=n.Ma.get(t);if(!r)return e;for(const t of r){const r=n.Fa.get(t);e=e.unionWith(r.view.Va)}return e}}function fc(e){const t=Wr(e);return t.remoteStore.remoteSyncer.applyRemoteEvent=ic.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=hc.bind(null,t),t.remoteStore.remoteSyncer.rejectListen=ac.bind(null,t),t.Ca.d_=FA.bind(null,t.eventManager),t.Ca.$a=qA.bind(null,t.eventManager),t}class mc{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=cA(e.databaseInfo.databaseId),this.sharedClientState=this.Wa(e),this.persistence=this.Ga(e),await this.persistence.start(),this.localStore=this.za(e),this.gcScheduler=this.ja(e,this.localStore),this.indexBackfillerScheduler=this.Ha(e,this.localStore)}ja(e,t){return null}Ha(e,t){return null}za(e){return function(e,t,n,r){return new Ks(e,t,n,r)}(this.persistence,new Zs,e.initialUser,this.serializer)}Ga(e){return new Fs(Vs.Zr,this.serializer)}Wa(e){return new $s}async terminate(){var e,t;null===(e=this.gcScheduler)||void 0===e||e.stop(),null===(t=this.indexBackfillerScheduler)||void 0===t||t.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}mc.provider={build:()=>new mc};class gc{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>oc(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=pc.bind(null,this.syncEngine),await async function(e,t){const n=Wr(e);t?(n.L_.delete(2),await mA(n)):t||(n.L_.add(2),await gA(n),n.q_.set("Unknown"))}(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new zA}createDatastore(e){const t=cA(e.databaseInfo.databaseId),n=function(e){return new sA(e)}(e.databaseInfo);return function(e,t,n,r){return new pA(e,t,n,r)}(e.authCredentials,e.appCheckCredentials,n,t)}createRemoteStore(e){return function(e,t,n,r,i){return new fA(e,t,n,r,i)}(this.localStore,this.datastore,e.asyncQueue,(e=>oc(this.syncEngine,e,0)),tA.D()?new tA:new eA)}createSyncEngine(e,t){return function(e,t,n,r,i,o,a){const s=new QA(e,t,n,r,i,o);return a&&(s.Qa=!0),s}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,t)}async terminate(){var e,t;await async function(e){const t=Wr(e);Nr("RemoteStore","RemoteStore shutting down."),t.L_.add(5),await gA(t),t.k_.shutdown(),t.q_.set("Unknown")}(this.remoteStore),null===(e=this.datastore)||void 0===e||e.terminate(),null===(t=this.eventManager)||void 0===t||t.terminate()}}gc.provider={build:()=>new gc};class yc{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ya(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ya(this.observer.error,e):xr("Uncaught Error in snapshot listener:",e.toString()))}Za(){this.muted=!0}Ya(e,t){setTimeout((()=>{this.muted||e(t)}),0)}}class vc{constructor(e,t,n,r,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=n,this.databaseInfo=r,this.user=Rr.UNAUTHENTICATED,this.clientId=Yr.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(n,(async e=>{Nr("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e})),this.appCheckCredentials.start(n,(e=>(Nr("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user))))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();const e=new Fr;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(t){const n=MA(t,"Failed to shutdown persistence");e.reject(n)}})),e.promise}}async function bc(e,t){e.asyncQueue.verifyOperationInProgress(),Nr("FirestoreClient","Initializing OfflineComponentProvider");const n=e.configuration;await t.initialize(n);let r=n.initialUser;e.setCredentialChangeListener((async e=>{r.isEqual(e)||(await Gs(t.localStore,e),r=e)})),t.persistence.setDatabaseDeletedListener((()=>e.terminate())),e._offlineComponents=t}async function kc(e,t){e.asyncQueue.verifyOperationInProgress();const n=await async function(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){Nr("FirestoreClient","Using user provided OfflineComponentProvider");try{await bc(e,e._uninitializedComponentsProvider._offline)}catch(t){const n=t;if(!function(e){return"FirebaseError"===e.name?e.code===zr.FAILED_PRECONDITION||e.code===zr.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&e instanceof DOMException)||22===e.code||20===e.code||11===e.code}(n))throw n;Mr("Error using user provided cache. Falling back to memory cache: "+n),await bc(e,new mc)}}else Nr("FirestoreClient","Using default OfflineComponentProvider"),await bc(e,new mc);return e._offlineComponents}(e);Nr("FirestoreClient","Initializing OnlineComponentProvider"),await t.initialize(n,e.configuration),e.setCredentialChangeListener((e=>LA(t.remoteStore,e))),e.setAppCheckTokenChangeListener(((e,n)=>LA(t.remoteStore,n))),e._onlineComponents=t}async function Sc(e){const t=await async function(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(Nr("FirestoreClient","Using user provided OnlineComponentProvider"),await kc(e,e._uninitializedComponentsProvider._online)):(Nr("FirestoreClient","Using default OnlineComponentProvider"),await kc(e,new gc))),e._onlineComponents}(e),n=t.eventManager;return n.onListen=$A.bind(null,t.syncEngine),n.onUnlisten=nc.bind(null,t.syncEngine),n.onFirstRemoteStoreListen=ec.bind(null,t.syncEngine),n.onLastRemoteStoreUnlisten=rc.bind(null,t.syncEngine),n}function Tc(e){const t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}const wc=new Map;function Ec(e){if(ai.isDocumentKey(e))throw new Dr(zr.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function jc(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{const t=function(e){return e.constructor?e.constructor.name:null}(e);return t?`a custom ${t} object`:"an object"}}return"function"==typeof e?"a function":Ir()}function Oc(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new Dr(zr.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=jc(e);throw new Dr(zr.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${n}`)}}return e}class Rc{constructor(e){var t,n;if(void 0===e.host){if(void 0!==e.ssl)throw new Dr(zr.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(t=e.ssl)||void 0===t||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Dr(zr.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,n,r){if(!0===t&&!0===r)throw new Dr(zr.INVALID_ARGUMENT,"experimentalForceLongPolling and experimentalAutoDetectLongPolling cannot be used together.")})(0,e.experimentalForceLongPolling,0,e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Tc(null!==(n=e.experimentalLongPollingOptions)&&void 0!==n?n:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new Dr(zr.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new Dr(zr.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new Dr(zr.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&function(e,t){return e.timeoutSeconds===t.timeoutSeconds}(this.experimentalLongPollingOptions,e.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}}class Pc{constructor(e,t,n,r){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Rc({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new Dr(zr.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new Dr(zr.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Rc(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new Vr;switch(e.type){case"firstParty":return new Kr(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new Dr(zr.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){const t=wc.get(e);t&&(Nr("ComponentProvider","Removing Datastore"),wc.delete(e),t.terminate())}(this),Promise.resolve()}}class Cc{constructor(e,t,n){this.converter=t,this._query=n,this.type="query",this.firestore=e}withConverter(e){return new Cc(this.firestore,e,this._query)}}class Lc{constructor(e,t,n){this.converter=t,this._key=n,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Nc(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new Lc(this.firestore,e,this._key)}}class Nc extends Cc{constructor(e,t,n){super(e,t,Lo(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new Lc(this.firestore,null,new ai(e))}withConverter(e){return new Nc(this.firestore,e,this._path)}}class xc{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Promise.resolve();this.Pu=[],this.Iu=!1,this.Tu=[],this.Eu=null,this.du=!1,this.Au=!1,this.Ru=[],this.t_=new uA(this,"async_queue_retry"),this.Vu=()=>{const e=AA();e&&Nr("AsyncQueue","Visibility state changed to "+e.visibilityState),this.t_.jo()},this.mu=e;const t=AA();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Vu)}get isShuttingDown(){return this.Iu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.fu(),this.gu(e)}enterRestrictedMode(e){if(!this.Iu){this.Iu=!0,this.Au=e||!1;const t=AA();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Vu)}}enqueue(e){if(this.fu(),this.Iu)return new Promise((()=>{}));const t=new Fr;return this.gu((()=>this.Iu&&this.Au?Promise.resolve():(e().then(t.resolve,t.reject),t.promise))).then((()=>t.promise))}enqueueRetryable(e){this.enqueueAndForget((()=>(this.Pu.push(e),this.pu())))}async pu(){if(0!==this.Pu.length){try{await this.Pu[0](),this.Pu.shift(),this.t_.reset()}catch(e){if(!pi(e))throw e;Nr("AsyncQueue","Operation failed with retryable error: "+e)}this.Pu.length>0&&this.t_.Go((()=>this.pu()))}}gu(e){const t=this.mu.then((()=>(this.du=!0,e().catch((e=>{this.Eu=e,this.du=!1;const t=function(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}(e);throw xr("INTERNAL UNHANDLED ERROR: ",t),e})).then((e=>(this.du=!1,e))))));return this.mu=t,t}enqueueAfterDelay(e,t,n){this.fu(),this.Ru.indexOf(e)>-1&&(t=0);const r=xA.createAndSchedule(this,e,t,n,(e=>this.yu(e)));return this.Tu.push(r),r}fu(){this.Eu&&Ir()}verifyOperationInProgress(){}async wu(){let e;do{e=this.mu,await e}while(e!==this.mu)}Su(e){for(const t of this.Tu)if(t.timerId===e)return!0;return!1}bu(e){return this.wu().then((()=>{this.Tu.sort(((e,t)=>e.targetTimeMs-t.targetTimeMs));for(const t of this.Tu)if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.wu()}))}Du(e){this.Ru.push(e)}yu(e){const t=this.Tu.indexOf(e);this.Tu.splice(t,1)}}function Mc(e){return function(e){if("object"!=typeof e||null===e)return!1;const t=e;for(const e of["next","error","complete"])if(e in t&&"function"==typeof t[e])return!0;return!1}(e)}class Uc extends Pc{constructor(e,t,n,r){super(e,t,n,r),this.type="firestore",this._queue=new xc,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){const e=this._firestoreClient.terminate();this._queue=new xc(e),this._firestoreClient=void 0,await e}}}function Ic(e,t){const n="string"==typeof e?e:t||"(default)",r=Bn("object"==typeof e?e:nr(),"firestore").getImmediate({identifier:n});if(!r._initialized){const e=(()=>{const e=Tt("firestore");if(!e)return;const t=e.lastIndexOf(":");if(t<=0||t+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const n=parseInt(e.substring(t+1),10);return"["===e[0]?[e.substring(1,t-1),n]:[e.substring(0,t),n]})();e&&function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};var i;const o=(e=Oc(e,Pc))._getSettings(),a=`${t}:${n}`;if("firestore.googleapis.com"!==o.host&&o.host!==a&&Mr("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},o),{host:a,ssl:!1})),r.mockUserToken){let t,n;if("string"==typeof r.mockUserToken)t=r.mockUserToken,n=Rr.MOCK_USER;else{t=function(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",r=e.iat||0,i=e.sub||e.user_id;if(!i)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const o=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e);return[bt(JSON.stringify({alg:"none",type:"JWT"})),bt(JSON.stringify(o)),""].join(".")}(r.mockUserToken,null===(i=e._app)||void 0===i?void 0:i.options.projectId);const o=r.mockUserToken.sub||r.mockUserToken.user_id;if(!o)throw new Dr(zr.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new Rr(o)}e._authCredentials=new Xr(new qr(t,n))}}(r,...e)}return r}function _c(e){if(e._terminated)throw new Dr(zr.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,n,r;const i=e._freezeSettings(),o=function(e,t,n,r){return new Ui(e,t,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,Tc(r.experimentalLongPollingOptions),r.useFetchStreams)}(e._databaseId,(null===(t=e._app)||void 0===t?void 0:t.options.appId)||"",e._persistenceKey,i);e._componentsProvider||(null===(n=i.localCache)||void 0===n?void 0:n._offlineComponentProvider)&&(null===(r=i.localCache)||void 0===r?void 0:r._onlineComponentProvider)&&(e._componentsProvider={_offline:i.localCache._offlineComponentProvider,_online:i.localCache._onlineComponentProvider}),e._firestoreClient=new vc(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&function(e){const t=null==e?void 0:e._online.build();return{_offline:null==e?void 0:e._offline.build(t),_online:t}}(e._componentsProvider))}(e),e._firestoreClient}class Wc{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Wc(Oi.fromBase64String(e))}catch(e){throw new Dr(zr.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new Wc(Oi.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class zc{constructor(){for(var e=arguments.length,t=new Array(e),n=0;n90)throw new Dr(zr.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new Dr(zr.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return Qr(this._lat,e._lat)||Qr(this._long,e._long)}}class qc{constructor(e){this._values=(e||[]).map((e=>e))}toArray(){return this._values.map((e=>e))}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let n=0;ne.isPrefixOf(t)))||void 0!==this.fieldTransforms.find((t=>e.isPrefixOf(t.field)))}vu(){if(this.path)for(let e=0;e3&&void 0!==arguments[3]&&arguments[3];return new Jc({Cu:e,methodName:t,qu:n,path:oi.emptyPath(),xu:!1,ku:r},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function Kc(e,t){if(Gc(e=_t(e)))return function(e,t,n){if(!Gc(n)||!function(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}(n)){const r=jc(n);throw"an object"===r?t.Bu(e+" a custom object"):t.Bu(e+" "+r)}}("Unsupported field value:",t,e),function(e,t){const n={};return vi(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):yi(e,((e,r)=>{const i=Kc(r,t.Mu(e));null!=i&&(n[e]=i)})),{mapValue:{fields:n}}}(e,t);if(e instanceof Dc)return function(e,t){if(!Xc(t.Cu))throw t.Bu(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.Bu(`${e._methodName}() is not currently supported inside arrays`);const n=e._toFieldTransform(t);n&&t.fieldTransforms.push(n)}(e,t),null;if(void 0===e&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.xu&&4!==t.Cu)throw t.Bu("Nested arrays are not supported");return function(e,t){const n=[];let r=0;for(const i of e){let e=Kc(i,t.Lu(r));null==e&&(e={nullValue:"NULL_VALUE"}),n.push(e),r++}return{arrayValue:{values:n}}}(e,t)}return function(e,t){if(null===(e=_t(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return ia(t.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){const n=ei.fromDate(e);return{timestampValue:es(t.serializer,n)}}if(e instanceof ei){const n=new ei(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:es(t.serializer,n)}}if(e instanceof Fc)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof Wc)return{bytesValue:ts(t.serializer,e._byteString)};if(e instanceof Lc){const n=t.databaseId,r=e.firestore._databaseId;if(!r.isEqual(n))throw t.Bu(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:rs(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof qc)return function(e,t){return{mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{values:e.toArray().map((e=>{if("number"!=typeof e)throw t.Bu("VectorValues must only contain numeric values.");return na(t.serializer,e)}))}}}}}}(e,t);throw t.Bu(`Unsupported field value: ${jc(e)}`)}(e,t)}function Gc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ei||e instanceof Fc||e instanceof Wc||e instanceof Lc||e instanceof Dc||e instanceof qc)}const Hc=new RegExp("[~\\*/\\[\\]]");function Bc(e,t,n,r,i){const o=r&&!r.isEmpty(),a=void 0!==i;let s=`Function ${t}() called with invalid data`;n&&(s+=" (via `toFirestore()`)"),s+=". ";let A="";return(o||a)&&(A+=" (found",o&&(A+=` in field ${r}`),a&&(A+=` in document ${i}`),A+=")"),new Dr(zr.INVALID_ARGUMENT,s+e+A)}class Yc{constructor(e,t,n,r,i){this._firestore=e,this._userDataWriter=t,this._key=n,this._document=r,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new Lc(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const e=new Qc(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){const t=this._document.data.field($c("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Qc extends Yc{data(){return super.data()}}function $c(e,t){return"string"==typeof t?function(e,t,n){if(t.search(Hc)>=0)throw Bc(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,n);try{return new zc(...t.split("."))._internalPath}catch(r){throw Bc(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,n)}}(e,t):t instanceof zc?t._internalPath:t._delegate._internalPath}class eu{}class tu extends eu{}class nu extends tu{constructor(e,t,n){super(),this._field=e,this._op=t,this._value=n,this.type="where"}static _create(e,t,n){return new nu(e,t,n)}_apply(e){const t=this._parse(e);return au(e._query,t),new Cc(e.firestore,e.converter,Io(e._query,t))}_parse(e){const t=function(e){const t=e._freezeSettings(),n=cA(e._databaseId);return new Zc(e._databaseId,!!t.ignoreUndefinedProperties,n)}(e.firestore),n=function(e,t,n,r,i,o,a){let s;if(i.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new Dr(zr.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){ou(a,o);const t=[];for(const n of a)t.push(iu(r,e,n));s={arrayValue:{values:t}}}else s=iu(r,e,a)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||ou(a,o),s=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return Kc(n,e.Qu(r?4:3,t))}(n,"where",a,"in"===o||"not-in"===o);return co.create(i,o,s)}(e._query,0,t,e.firestore._databaseId,this._field,this._op,this._value);return n}}class ru extends eu{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new ru(e,t)}_parse(e){const t=this._queryConstraints.map((t=>t._parse(e))).filter((e=>e.getFilters().length>0));return 1===t.length?t[0]:uo.create(t,this._getOperator())}_apply(e){const t=this._parse(e);return 0===t.getFilters().length?e:(function(e,t){let n=e;const r=t.getFlattenedFilters();for(const e of r)au(n,e),n=Io(n,e)}(e._query,t),new Cc(e.firestore,e.converter,Io(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function iu(e,t,n){if("string"==typeof(n=_t(n))){if(""===n)throw new Dr(zr.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!xo(t)&&-1!==n.indexOf("/"))throw new Dr(zr.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);const r=t.path.child(ri.fromString(n));if(!ai.isDocumentKey(r))throw new Dr(zr.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Zi(e,new ai(r))}if(n instanceof Lc)return Zi(e,n._key);throw new Dr(zr.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${jc(n)}.`)}function ou(e,t){if(!Array.isArray(e)||0===e.length)throw new Dr(zr.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function au(e,t){const n=function(e,t){for(const n of e)for(const e of n.getFlattenedFilters())if(t.indexOf(e.op)>=0)return e.op;return null}(e.filters,function(e){switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(t.op));if(null!==n)throw n===t.op?new Dr(zr.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new Dr(zr.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${n.toString()}' filters.`)}class su{convertValue(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none";switch(Wi(e)){case 0:return null;case 1:return e.booleanValue;case 2:return Ci(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(Li(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw Ir()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"none";const n={};return yi(e,((e,r)=>{n[e]=this.convertValue(r,t)})),n}convertVectorValue(e){var t,n,r;const i=null===(r=null===(n=null===(t=e.fields)||void 0===t?void 0:t.value.arrayValue)||void 0===n?void 0:n.values)||void 0===r?void 0:r.map((e=>Ci(e.doubleValue)));return new qc(i)}convertGeoPoint(e){return new Fc(Ci(e.latitude),Ci(e.longitude))}convertArray(e,t){return(e.values||[]).map((e=>this.convertValue(e,t)))}convertServerTimestamp(e,t){switch(t){case"previous":const n=xi(e);return null==n?null:this.convertValue(n,t);case"estimate":return this.convertTimestamp(Mi(e));default:return null}}convertTimestamp(e){const t=Pi(e);return new ei(t.seconds,t.nanos)}convertDocumentKey(e,t){const n=ri.fromString(e);_r(bs(n));const r=new Ii(n.get(1),n.get(3)),i=new ai(n.popFirst(5));return r.isEqual(t)||xr(`Document ${i} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),i}}class Au{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class cu extends Yc{constructor(e,t,n,r,i,o){super(e,t,n,r,o),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._document){if(this._converter){const t=new uu(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this._document){const n=this._document.data.field($c("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n,t.serverTimestamps)}}}class uu extends cu{data(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return super.data(e)}}class lu{constructor(e,t,n,r){this._firestore=e,this._userDataWriter=t,this._snapshot=r,this.metadata=new Au(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const e=[];return this.forEach((t=>e.push(t))),e}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(e,t){this._snapshot.docs.forEach((n=>{e.call(t,new uu(this._firestore,this._userDataWriter,n.key,n,new Au(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(){const e=!!(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new Dr(zr.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(e,t){if(e._snapshot.oldDocs.isEmpty()){let t=0;return e._snapshot.docChanges.map((n=>{const r=new uu(e._firestore,e._userDataWriter,n.doc.key,n.doc,new Au(e._snapshot.mutatedKeys.has(n.doc.key),e._snapshot.fromCache),e.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:t++}}))}{let n=e._snapshot.oldDocs;return e._snapshot.docChanges.filter((e=>t||3!==e.type)).map((t=>{const r=new uu(e._firestore,e._userDataWriter,t.doc.key,t.doc,new Au(e._snapshot.mutatedKeys.has(t.doc.key),e._snapshot.fromCache),e.query.converter);let i=-1,o=-1;return 0!==t.type&&(i=n.indexOf(t.doc.key),n=n.delete(t.doc.key)),1!==t.type&&(n=n.add(t.doc),o=n.indexOf(t.doc.key)),{type:du(t.type),doc:r,oldIndex:i,newIndex:o}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function du(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Ir()}}class pu extends su{constructor(e){super(),this.firestore=e}convertBytes(e){return new Wc(e)}convertReference(e){const t=this.convertDocumentKey(e,this.firestore._databaseId);return new Lc(this.firestore,null,t)}}function hu(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i1&&void 0!==arguments[1])||arguments[1];!function(e){Pr=e}(er),Hn(new Wt("firestore",((e,n)=>{let{instanceIdentifier:r,options:i}=n;const o=e.getProvider("app").getImmediate(),a=new Uc(new Jr(e.getProvider("auth-internal")),new Hr(e.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new Dr(zr.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new Ii(e.options.projectId,t)}(o,r),o);return i=Object.assign({useFetchStreams:t},i),a._setSettings(i),a}),"PUBLIC").setMultipleInstances(!0)),rr(Or,"4.7.3",e),rr(Or,"4.7.3","esm2017")}(),Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const fu=function(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}},mu=new Rt("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),gu=new Ht("@firebase/auth");function yu(e){if(gu.logLevel<=Vt.ERROR){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r2?n-2:0),i=2;ie,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(jt())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Ru()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}(3e4,6e4);function Nu(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function xu(e,t,n,r){return Mu(e,arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},(async()=>{let i={},o={};r&&("GET"===t?o=r:i={body:JSON.stringify(r)});const a=Nt(Object.assign({key:e.config.apiKey},o)).slice(1),s=await e._getAdditionalHeaders();s["Content-Type"]="application/json",e.languageCode&&(s["X-Firebase-Locale"]=e.languageCode);const A=Object.assign({method:t,headers:s},i);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(A.referrerPolicy="no-referrer"),Pu.fetch()(Iu(e,e.config.apiHost,n,a),A)}))}async function Mu(e,t,n){e._canInitEmulator=!1;const r=Object.assign(Object.assign({},Cu),t);try{const t=new Wu(e),i=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const o=await i.json();if("needConfirmation"in o)throw zu(e,"account-exists-with-different-credential",o);if(i.ok&&!("errorMessage"in o))return o;{const t=i.ok?o.errorMessage:o.error.message,[n,a]=t.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw zu(e,"credential-already-in-use",o);if("EMAIL_EXISTS"===n)throw zu(e,"email-already-in-use",o);if("USER_DISABLED"===n)throw zu(e,"user-disabled",o);const s=r[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(a)throw ku(e,s,a);vu(e,s)}}catch(t){if(t instanceof Ot)throw t;vu(e,"network-request-failed",{message:String(t)})}}async function Uu(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const o=await xu(e,t,n,r,i);return"mfaPendingCredential"in o&&vu(e,"multi-factor-auth-required",{_serverResponse:o}),o}function Iu(e,t,n,r){const i=`${t}${n}?${r}`;return e.config.emulator?function(e,t){ju(e.emulator,"Emulator should always be set here");const{url:n}=e.emulator;return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}(e.config,i):`${e.config.apiScheme}://${i}`}function _u(e){switch(e){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}class Wu{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(bu(this.auth,"network-request-failed"))),Lu.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function zu(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=bu(e,t,r);return i.customData._tokenResponse=n,i}function Du(e){return void 0!==e&&void 0!==e.enterprise}class Fu{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(const t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return _u(t.enforcementState);return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}}async function qu(e,t){return xu(e,"POST","/v1/accounts:lookup",t)}function Vu(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Xu(e){return 1e3*Number(e)}function Ju(e){const[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return yu("JWT malformed, contained fewer than 3 sections"),null;try{const e=kt(n);return e?JSON.parse(e):(yu("Failed to decode base64 JWT payload"),null)}catch(e){return yu("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}function Zu(e){const t=Ju(e);return wu(t,"internal-error"),wu(void 0!==t.exp,"internal-error"),wu(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ku(e,t){if(arguments.length>2&&void 0!==arguments[2]&&arguments[2])return t;try{return await t}catch(t){throw t instanceof Ot&&function(e){let{code:t}=e;return"auth/user-disabled"===t||"auth/user-token-expired"===t}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class Gu{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var t;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.isRunning)return;const t=this.getInterval(e);this.timerId=setTimeout((async()=>{await this.iteration()}),t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class Hu{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Vu(this.lastLoginAt),this.creationTime=Vu(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Bu(e){var t;const n=e.auth,r=await e.getIdToken(),i=await Ku(e,qu(n,{idToken:r}));wu(null==i?void 0:i.users.length,n,"internal-error");const o=i.users[0];e._notifyReloadListener(o);const a=(null===(t=o.providerUserInfo)||void 0===t?void 0:t.length)?Yu(o.providerUserInfo):[],s=(A=e.providerData,c=a,[...A.filter((e=>!c.some((t=>t.providerId===e.providerId)))),...c]);var A,c;const u=e.isAnonymous,l=!(e.email&&o.passwordHash||(null==s?void 0:s.length)),d=!!u&&l,p={uid:o.localId,displayName:o.displayName||null,photoURL:o.photoUrl||null,email:o.email||null,emailVerified:o.emailVerified||!1,phoneNumber:o.phoneNumber||null,tenantId:o.tenantId||null,providerData:s,metadata:new Hu(o.createdAt,o.lastLoginAt),isAnonymous:d};Object.assign(e,p)}function Yu(e){return e.map((e=>{var{providerId:t}=e,n=hu(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}}))}class Qu{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){wu(e.idToken,"internal-error"),wu(void 0!==e.idToken,"internal-error"),wu(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Zu(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){wu(0!==e.length,"internal-error");const t=Zu(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]||!this.accessToken||this.isExpired?(wu(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){const{accessToken:n,refreshToken:r,expiresIn:i}=await async function(e,t){const n=await Mu(e,{},(async()=>{const n=Nt({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:r,apiKey:i}=e.config,o=Iu(e,r,"/v1/token",`key=${i}`),a=await e._getAdditionalHeaders();return a["Content-Type"]="application/x-www-form-urlencoded",Pu.fetch()(o,{method:"POST",headers:a,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(e,t);this.updateTokensAndExpiration(n,r,Number(i))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){const{refreshToken:n,accessToken:r,expirationTime:i}=t,o=new Qu;return n&&(wu("string"==typeof n,"internal-error",{appName:e}),o.refreshToken=n),r&&(wu("string"==typeof r,"internal-error",{appName:e}),o.accessToken=r),i&&(wu("number"==typeof i,"internal-error",{appName:e}),o.expirationTime=i),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Qu,this.toJSON())}_performRefresh(){return Eu("not implemented")}}function $u(e,t){wu("string"==typeof e||void 0===e,"internal-error",{appName:t})}class el{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=hu(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Gu(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Hu(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await Ku(this,this.stsTokenManager.getToken(this.auth,e));return wu(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=_t(e),r=await n.getIdToken(t),i=Ju(r);wu(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");const o="object"==typeof i.firebase?i.firebase:void 0,a=null==o?void 0:o.sign_in_provider;return{claims:i,token:r,authTime:Vu(Xu(i.auth_time)),issuedAtTime:Vu(Xu(i.iat)),expirationTime:Vu(Xu(i.exp)),signInProvider:a||null,signInSecondFactor:(null==o?void 0:o.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=_t(e);await Bu(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(wu(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map((e=>Object.assign({},e))),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new el(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){wu(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await Bu(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(Yn(this.auth.app))return Promise.reject(Su(this.auth));const e=await this.getIdToken();return await Ku(this,async function(e,t){return xu(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map((e=>Object.assign({},e))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n,r,i,o,a,s,A,c;const u=null!==(n=t.displayName)&&void 0!==n?n:void 0,l=null!==(r=t.email)&&void 0!==r?r:void 0,d=null!==(i=t.phoneNumber)&&void 0!==i?i:void 0,p=null!==(o=t.photoURL)&&void 0!==o?o:void 0,h=null!==(a=t.tenantId)&&void 0!==a?a:void 0,f=null!==(s=t._redirectEventId)&&void 0!==s?s:void 0,m=null!==(A=t.createdAt)&&void 0!==A?A:void 0,g=null!==(c=t.lastLoginAt)&&void 0!==c?c:void 0,{uid:y,emailVerified:v,isAnonymous:b,providerData:k,stsTokenManager:S}=t;wu(y&&S,e,"internal-error");const T=Qu.fromJSON(this.name,S);wu("string"==typeof y,e,"internal-error"),$u(u,e.name),$u(l,e.name),wu("boolean"==typeof v,e,"internal-error"),wu("boolean"==typeof b,e,"internal-error"),$u(d,e.name),$u(p,e.name),$u(h,e.name),$u(f,e.name),$u(m,e.name),$u(g,e.name);const w=new el({uid:y,auth:e,email:l,emailVerified:v,displayName:u,isAnonymous:b,photoURL:p,phoneNumber:d,tenantId:h,stsTokenManager:T,createdAt:m,lastLoginAt:g});return k&&Array.isArray(k)&&(w.providerData=k.map((e=>Object.assign({},e)))),f&&(w._redirectEventId=f),w}static async _fromIdTokenResponse(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=new Qu;r.updateFromServerResponse(t);const i=new el({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await Bu(i),i}static async _fromGetAccountInfoResponse(e,t,n){const r=t.users[0];wu(void 0!==r.localId,"internal-error");const i=void 0!==r.providerUserInfo?Yu(r.providerUserInfo):[],o=!(r.email&&r.passwordHash||(null==i?void 0:i.length)),a=new Qu;a.updateFromIdToken(n);const s=new el({uid:r.localId,auth:e,stsTokenManager:a,isAnonymous:o}),A={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:i,metadata:new Hu(r.createdAt,r.lastLoginAt),isAnonymous:!(r.email&&r.passwordHash||(null==i?void 0:i.length))};return Object.assign(s,A),s}}const tl=new Map;function nl(e){ju(e instanceof Function,"Expected a class definition");let t=tl.get(e);return t?(ju(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,tl.set(e,t),t)}class rl{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){const t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}rl.type="NONE";const il=rl;function ol(e,t,n){return`firebase:${e}:${t}:${n}`}class al{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;const{config:r,name:i}=this.auth;this.fullUserKey=ol(this.userKey,r.apiKey,i),this.fullPersistenceKey=ol("persistence",r.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?el._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"authUser";if(!t.length)return new al(nl(il),e,n);const r=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let i=r[0]||nl(il);const o=ol(n,e.config.apiKey,e.name);let a=null;for(const n of t)try{const t=await n._get(o);if(t){const r=el._fromJSON(e,t);n!==i&&(a=r),i=n;break}}catch(e){}const s=r.filter((e=>e._shouldAllowMigration));return i._shouldAllowMigration&&s.length?(i=s[0],a&&await i._set(o,a.toJSON()),await Promise.all(t.map((async e=>{if(e!==i)try{await e._remove(o)}catch(e){}}))),new al(i,e,n)):new al(i,e,n)}}function sl(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/iemobile/i.test(e)}(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/firefox\//i.test(e)}(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/blackberry/i.test(e)}(t))return"Blackberry";if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/webos/i.test(e)}(t))return"Webos";if(function(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt()).toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}(t))return"Safari";if((t.includes("chrome/")||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/crios\//i.test(e)}(t))&&!t.includes("edge/"))return"Chrome";if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jt();return/android/i.test(e)}(t))return"Android";{const t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=e.match(t);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function Al(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];switch(e){case"Browser":t=sl(jt());break;case"Worker":t=`${sl(jt())}-${e}`;break;default:t=e}const r=n.length?n.join(","):"FirebaseCore-web";return`${t}/JsCore/${er}/${r}`}class cl{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){const n=t=>new Promise(((n,r)=>{try{n(e(t))}catch(e){r(e)}}));n.onAbort=t,this.queue.push(n);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const e of t)try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}class ul{constructor(e){var t,n,r,i;const o=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(t=o.minPasswordLength)&&void 0!==t?t:6,o.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=o.maxPasswordLength),void 0!==o.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=o.containsLowercaseCharacter),void 0!==o.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=o.containsUppercaseCharacter),void 0!==o.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=o.containsNumericCharacter),void 0!==o.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=o.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(r=null===(n=e.allowedNonAlphanumericCharacters)||void 0===n?void 0:n.join(""))&&void 0!==r?r:"",this.forceUpgradeOnSignin=null!==(i=e.forceUpgradeOnSignin)&&void 0!==i&&i,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,n,r,i,o,a;const s={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,s),this.validatePasswordCharacterOptions(e,s),s.isValid&&(s.isValid=null===(t=s.meetsMinPasswordLength)||void 0===t||t),s.isValid&&(s.isValid=null===(n=s.meetsMaxPasswordLength)||void 0===n||n),s.isValid&&(s.isValid=null===(r=s.containsLowercaseLetter)||void 0===r||r),s.isValid&&(s.isValid=null===(i=s.containsUppercaseLetter)||void 0===i||i),s.isValid&&(s.isValid=null===(o=s.containsNumericCharacter)||void 0===o||o),s.isValid&&(s.isValid=null===(a=s.containsNonAlphanumericCharacter)||void 0===a||a),s}validatePasswordLengthOptions(e,t){const n=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;n&&(t.meetsMinPasswordLength=e.length>=n),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(e,t){let n;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let r=0;r="a"&&n<="z",n>="A"&&n<="Z",n>="0"&&n<="9",this.allowedNonAlphanumericCharacters.includes(n))}updatePasswordCharacterOptionsStatuses(e,t,n,r,i){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=n)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=r)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=i))}}class ll{constructor(e,t,n,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=n,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new pl(this),this.idTokenSubscription=new pl(this),this.beforeStateQueue=new cl(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=mu,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=r.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=nl(t)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await al.create(this,e),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=(null===(r=this.currentUser)||void 0===r?void 0:r.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0):void 0}async initializeCurrentUserFromIdToken(e){try{const t=await qu(this,{idToken:e}),n=await el._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(n)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){var t;if(Yn(this.app)){const e=this.app.settings.authIdToken;return e?new Promise((t=>{setTimeout((()=>this.initializeCurrentUserFromIdToken(e).then(t,t)))})):this.directlySetCurrentUser(null)}const n=await this.assertedPersistence.getCurrentUser();let r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId,o=null==r?void 0:r._redirectEventId,a=await this.tryRedirectSignIn(e);n&&n!==o||!(null==a?void 0:a.user)||(r=a.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(e){r=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(e)))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return wu(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Bu(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(Yn(this.app))return Promise.reject(Su(this));const t=e?_t(e):null;return t&&wu(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this._deleted)return e&&wu(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue((async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()}))}async signOut(){return Yn(this.app)?Promise.reject(Su(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return Yn(this.app)?Promise.reject(Su(this)):this.queue((async()=>{await this.assertedPersistence.setPersistence(nl(e))}))}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await async function(e){return xu(e,"GET","/v2/passwordPolicy",Nu(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))}(this),t=new ul(e);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new Rt("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}authStateReady(){return new Promise(((e,t)=>{if(this.currentUser)e();else{const n=this.onAuthStateChanged((()=>{n(),e()}),t)}}))}async revokeAccessToken(e){if(this.currentUser){const t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await async function(e,t){return xu(e,"POST","/v2/accounts:revokeToken",Nu(e,t))}(this,t)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const t=e&&nl(e)||this._popupRedirectResolver;wu(t,this,"argument-error"),this.redirectPersistenceManager=await al.create(this,[nl(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var t,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(e)))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,t;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(t=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==t?t:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t);let o=!1;const a=this._isInitialized?Promise.resolve():this._initializationPromise;if(wu(a,this,"internal-error"),a.then((()=>{o||i(this.currentUser)})),"function"==typeof t){const i=e.addObserver(t,n,r);return()=>{o=!0,i()}}{const n=e.addObserver(t);return()=>{o=!0,n()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return wu(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Al(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const t={"X-Client-Version":this.clientVersion};this.app.options.appId&&(t["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());n&&(t["X-Firebase-Client"]=n);const r=await this._getAppCheckToken();return r&&(t["X-Firebase-AppCheck"]=r),t}async _getAppCheckToken(){var e;const t=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==t?void 0:t.error)&&function(e){if(gu.logLevel<=Vt.WARN){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rthis.observer=e))}get next(){return wu(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let hl={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};class fl{constructor(e){this.type="recaptcha-enterprise",this.auth=dl(e)}async verify(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"verify",t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];function n(t,n,r){const i=window.grecaptcha;Du(i)?i.enterprise.ready((()=>{i.enterprise.execute(t,{action:e}).then((e=>{n(e)})).catch((()=>{n("NO_RECAPTCHA")}))})):r(Error("No reCAPTCHA enterprise script loaded."))}return new Promise(((e,r)=>{(async function(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise((async(t,n)=>{(async function(e,t){return xu(e,"GET","/v2/recaptchaConfig",Nu(e,t))})(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then((r=>{if(void 0!==r.recaptchaKey){const n=new Fu(r);return null==e.tenantId?e._agentRecaptchaConfig=n:e._tenantRecaptchaConfigs[e.tenantId]=n,t(n.siteKey)}n(new Error("recaptcha Enterprise site key undefined"))})).catch((e=>{n(e)}))}))})(this.auth).then((i=>{if(!t&&Du(window.grecaptcha))n(i,e,r);else{if("undefined"==typeof window)return void r(new Error("RecaptchaVerifier is only supported in browser"));let t=hl.recaptchaEnterpriseScript;0!==t.length&&(t+=i),function(e){return hl.loadJS(e)}(t).then((()=>{n(i,e,r)})).catch((e=>{r(e)}))}})).catch((e=>{r(e)}))}))}}async function ml(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i=new fl(e);let o;try{o=await i.verify(n)}catch(e){o=await i.verify(n,!0)}const a=Object.assign({},t);return r?Object.assign(a,{captchaResp:o}):Object.assign(a,{captchaResponse:o}),Object.assign(a,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(a,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),a}async function gl(e,t,n,r){var i;if(null===(i=e._getRecaptchaConfig())||void 0===i?void 0:i.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){const i=await ml(e,t,n,"getOobCode"===n);return r(e,i)}return r(e,t).catch((async i=>{if("auth/missing-recaptcha-token"===i.code){console.log(`${n} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);const i=await ml(e,t,n,"getOobCode"===n);return r(e,i)}return Promise.reject(i)}))}function yl(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function vl(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class bl{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return Eu("not implemented")}_getIdTokenResponse(e){return Eu("not implemented")}_linkToIdToken(e,t){return Eu("not implemented")}_getReauthenticationResolver(e){return Eu("not implemented")}}async function kl(e,t){return xu(e,"POST","/v1/accounts:signUp",t)}async function Sl(e,t){return Uu(e,"POST","/v1/accounts:signInWithPassword",Nu(e,t))}class Tl extends bl{constructor(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new Tl(e,t,"password")}static _fromEmailAndCode(e,t){return new Tl(e,t,"emailLink",arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e;if((null==t?void 0:t.email)&&(null==t?void 0:t.password)){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return gl(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Sl);case"emailLink":return async function(e,t){return Uu(e,"POST","/v1/accounts:signInWithEmailLink",Nu(e,t))}(e,{email:this._email,oobCode:this._password});default:vu(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return gl(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",kl);case"emailLink":return async function(e,t){return Uu(e,"POST","/v1/accounts:signInWithEmailLink",Nu(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:vu(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function wl(e,t){return Uu(e,"POST","/v1/accounts:signInWithIdp",Nu(e,t))}class El extends bl{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new El(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):vu("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:r}=t,i=hu(t,["providerId","signInMethod"]);if(!n||!r)return null;const o=new El(n,r);return o.idToken=i.idToken||void 0,o.accessToken=i.accessToken||void 0,o.secret=i.secret,o.nonce=i.nonce,o.pendingToken=i.pendingToken||null,o}_getIdTokenResponse(e){return wl(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,wl(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,wl(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=Nt(t)}return e}}class jl{constructor(e){var t,n,r,i,o,a;const s=xt(Mt(e)),A=null!==(t=s.apiKey)&&void 0!==t?t:null,c=null!==(n=s.oobCode)&&void 0!==n?n:null,u=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(r=s.mode)&&void 0!==r?r:null);wu(A&&c&&u,"argument-error"),this.apiKey=A,this.operation=u,this.code=c,this.continueUrl=null!==(i=s.continueUrl)&&void 0!==i?i:null,this.languageCode=null!==(o=s.languageCode)&&void 0!==o?o:null,this.tenantId=null!==(a=s.tenantId)&&void 0!==a?a:null}static parseLink(e){const t=function(e){const t=xt(Mt(e)).link,n=t?xt(Mt(t)).deep_link_id:null,r=xt(Mt(e)).deep_link_id;return(r?xt(Mt(r)).link:null)||r||n||t||e}(e);try{return new jl(t)}catch(e){return null}}}class Ol{constructor(){this.providerId=Ol.PROVIDER_ID}static credential(e,t){return Tl._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=jl.parseLink(t);return wu(n,"argument-error"),Tl._fromEmailAndCode(e,n.code,n.tenantId)}}Ol.PROVIDER_ID="password",Ol.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ol.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Rl{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Pl extends Rl{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Cl extends Pl{constructor(){super("facebook.com")}static credential(e){return El._fromParams({providerId:Cl.PROVIDER_ID,signInMethod:Cl.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Cl.credentialFromTaggedObject(e)}static credentialFromError(e){return Cl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject(e){let{_tokenResponse:t}=e;if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return Cl.credential(t.oauthAccessToken)}catch(e){return null}}}Cl.FACEBOOK_SIGN_IN_METHOD="facebook.com",Cl.PROVIDER_ID="facebook.com";class Ll extends Pl{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return El._fromParams({providerId:Ll.PROVIDER_ID,signInMethod:Ll.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Ll.credentialFromTaggedObject(e)}static credentialFromError(e){return Ll.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject(e){let{_tokenResponse:t}=e;if(!t)return null;const{oauthIdToken:n,oauthAccessToken:r}=t;if(!n&&!r)return null;try{return Ll.credential(n,r)}catch(e){return null}}}Ll.GOOGLE_SIGN_IN_METHOD="google.com",Ll.PROVIDER_ID="google.com";class Nl extends Pl{constructor(){super("github.com")}static credential(e){return El._fromParams({providerId:Nl.PROVIDER_ID,signInMethod:Nl.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Nl.credentialFromTaggedObject(e)}static credentialFromError(e){return Nl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject(e){let{_tokenResponse:t}=e;if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return Nl.credential(t.oauthAccessToken)}catch(e){return null}}}Nl.GITHUB_SIGN_IN_METHOD="github.com",Nl.PROVIDER_ID="github.com";class xl extends Pl{constructor(){super("twitter.com")}static credential(e,t){return El._fromParams({providerId:xl.PROVIDER_ID,signInMethod:xl.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return xl.credentialFromTaggedObject(e)}static credentialFromError(e){return xl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject(e){let{_tokenResponse:t}=e;if(!t)return null;const{oauthAccessToken:n,oauthTokenSecret:r}=t;if(!n||!r)return null;try{return xl.credential(n,r)}catch(e){return null}}}xl.TWITTER_SIGN_IN_METHOD="twitter.com",xl.PROVIDER_ID="twitter.com";class Ml{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i=await el._fromIdTokenResponse(e,n,r),o=Ul(n);return new Ml({user:i,providerId:o,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const r=Ul(n);return new Ml({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Ul(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}new WeakMap;const Il="__sak";class _l{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const t=this.receivers.find((t=>t.isListeningto(e)));if(t)return t;const n=new _l(e);return this.receivers.push(n),n}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data,o=this.handlersMap[r];if(!(null==o?void 0:o.size))return;t.ports[0].postMessage({status:"ack",eventId:n,eventType:r});const a=Array.from(o).map((async e=>e(t.origin,i))),s=await function(e){return Promise.all(e.map((async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})))}(a);t.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:s})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}_l.receivers=[];class Wl{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50;const r="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let i,o;return new Promise(((a,s)=>{const A=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n="";for(let e=0;e{s(new Error("unsupported_event"))}),n);o={messageChannel:r,onMessage(e){const t=e;if(t.data.eventId===A)switch(t.data.status){case"ack":clearTimeout(c),i=setTimeout((()=>{s(new Error("timeout"))}),3e3);break;case"done":clearTimeout(i),a(t.data.response);break;default:clearTimeout(c),clearTimeout(i),s(new Error("invalid_response"))}}},this.handlers.add(o),r.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:A,data:t},[r.port2])})).finally((()=>{o&&this.removeMessageHandler(o)}))}}function zl(){return window}function Dl(){return void 0!==zl().WorkerGlobalScope&&"function"==typeof zl().importScripts}const Fl="firebaseLocalStorageDb",ql="firebaseLocalStorage",Vl="fbase_key";class Xl{constructor(e){this.request=e}toPromise(){return new Promise(((e,t)=>{this.request.addEventListener("success",(()=>{e(this.request.result)})),this.request.addEventListener("error",(()=>{t(this.request.error)}))}))}}function Jl(e,t){return e.transaction([ql],t?"readwrite":"readonly").objectStore(ql)}function Zl(){const e=indexedDB.open(Fl,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(ql,{keyPath:Vl})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(ql)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(Fl);return new Xl(e).toPromise()}(),t(await Zl()))}))}))}async function Kl(e,t,n){const r=Jl(e,!0).put({[Vl]:t,value:n});return new Xl(r).toPromise()}function Gl(e,t){const n=Jl(e,!0).delete(t);return new Xl(n).toPromise()}class Hl{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await Zl()),this.db}async _withRetries(e){let t=0;for(;;)try{const t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Dl()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=_l._getInstance(Dl()?self:null),this.receiver._subscribe("keyChanged",(async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)}))),this.receiver._subscribe("ping",(async(e,t)=>["keyChanged"]))}async initializeSender(){var e,t;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new Wl(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(e=n[0])||void 0===e?void 0:e.fulfilled)&&(null===(t=n[0])||void 0===t?void 0:t.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await Zl();return await Kl(e,Il,"1"),await Gl(e,Il),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite((async()=>(await this._withRetries((n=>Kl(n,e,t))),this.localCache[e]=t,this.notifyServiceWorker(e))))}async _get(e){const t=await this._withRetries((t=>async function(e,t){const n=Jl(e,!1).get(t),r=await new Xl(n).toPromise();return void 0===r?null:r.value}(t,e)));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite((async()=>(await this._withRetries((t=>Gl(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=Jl(e,!1).getAll();return new Xl(t).toPromise()}));if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;if(0!==e.length)for(const{fbase_key:r,value:i}of e)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(i)&&(this.notifyListeners(r,i),t.push(r));for(const e of Object.keys(this.localCache))this.localCache[e]&&!n.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Hl.type="LOCAL";const Bl=Hl;var Yl,Ql="@firebase/auth",$l="1.7.9";class ed{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const t=this.auth.onIdTokenChanged((t=>{e((null==t?void 0:t.stsTokenManager.accessToken)||null)}));this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){wu(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}function td(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:nr();const t=Bn(e,"auth");if(t.isInitialized())return t.getImmediate();const n=function(e,t){const n=Bn(e,"auth");if(n.isInitialized()){const e=n.getImmediate();if(Ct(n.getOptions(),null!=t?t:{}))return e;vu(e,"already-initialized")}return n.initialize({options:t})}(e,{persistence:[Bl]}),r=Tt("auth");return r&&function(e,t,n){const r=dl(e);wu(r._canInitEmulator,r,"emulator-config-failed"),wu(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");const i=!!(null==n?void 0:n.disableWarnings),o=yl(t),{host:a,port:s}=function(e){const t=yl(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){const e=i[1];return{host:e,port:vl(r.substr(e.length+1))}}{const[e,t]=r.split(":");return{host:e,port:vl(t)}}}(t),A=null===s?"":`:${s}`;r.config.emulator={url:`${o}//${a}${A}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:a,port:s,protocol:o.replace(":",""),options:Object.freeze({disableWarnings:i})}),i||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(n,`http://${r}`),n}Yl="WebExtension",Hn(new Wt("auth",((e,t)=>{let{options:n}=t;const r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:a,authDomain:s}=r.options;wu(a&&!a.includes(":"),"invalid-api-key",{appName:r.name});const A={apiKey:a,authDomain:s,clientPlatform:Yl,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Al(Yl)},c=new ll(r,i,o,A);return function(e,t){const n=(null==t?void 0:t.persistence)||[],r=(Array.isArray(n)?n:[n]).map(nl);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(c,n),c}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),Hn(new Wt("auth-internal",(e=>{return t=dl(e.getProvider("auth").getImmediate()),new ed(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),rr(Ql,$l,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(Yl)),rr(Ql,$l,"esm2017");var nd=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class rd{static init(){return nd(this,void 0,void 0,(function*(){rd.initialized||(rd.initialized=!0)}))}static addFireStoreListener(e,t){return nd(this,void 0,void 0,(function*(){void 0===rd.firestoreListeners[e]&&(rd.firestoreListeners[e]=[]),rd.firestoreListeners[e].push(t)}))}static setUpFireStoreListener(e,t,n){return nd(this,void 0,void 0,(function*(){if(t&&e){if(n||!rd.firebaseApp||!rd.firestoreUnsubscribe){try{rd.firestoreUnsubscribe&&rd.firestoreUnsubscribe(),rd.firebaseApp=tr(t),rd.firebaseAuth=td(rd.firebaseApp),yield rd.firebaseAuth.setPersistence(Bl),n&&(yield async function(e,t){if(Yn(e.app))return Promise.reject(Su(e));const n=dl(e),r=await async function(e,t){return Uu(e,"POST","/v1/accounts:signInWithCustomToken",Nu(e,t))}(n,{token:t,returnSecureToken:!0}),i=await Ml._fromIdTokenResponse(n,"signIn",r);return await n._updateCurrentUser(i.user),i}(rd.firebaseAuth,n))}catch(e){(0,g.DP)(e),c("Failed to authenticate the Firebase app.",e),rd.firebaseApp=void 0,rd.firebaseAuth=void 0,rd.firestore=void 0,rd.firestoreUnsubscribe=void 0,yield od.setTheNextRegistrationSchedule()}if(rd.firebaseApp){rd.firestore=Ic(rd.firebaseApp);const t=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i2?r-2:0),o=2;oe instanceof ru)).length,n=e.filter((e=>e instanceof nu)).length;if(t>1||t>0&&n>0)throw new Dr(zr.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(n);for(const t of n)e=t._apply(e);return e}(t,function(e,t,n){const r=$c("where",e);return nu._create(r,"in",n)}(new zc("__name__"),0,rd.firestoreListenDocs));rd.firestoreUnsubscribe=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{n[A]&&n[A](function(e,t,n){const r=n.docs.get(t._key),i=new pu(e);return new cu(e,i,t._key,r,new Au(n.hasPendingWrites,n.fromCache),t.converter)}(l,e,t))},error:n[A+1],complete:n[A+2]};else{const t=Oc(e,Cc);l=Oc(t.firestore,Uc),d=t._query;const r=new pu(l);u={next:e=>{n[A]&&n[A](new lu(l,r,t,e))},error:n[A+1],complete:n[A+2]},function(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new Dr(zr.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}(e._query)}return function(e,t,n,r){const i=new yc(r),o=new ZA(t,i,n);return e.asyncQueue.enqueueAndForget((async()=>async function(e,t){const n=Wr(e);let r=3;const i=t.query;let o=n.queries.get(i);o?!o.H_()&&t.J_()&&(r=2):(o=new WA,r=t.J_()?0:1);try{switch(r){case 0:o.z_=await n.onListen(i,!0);break;case 1:o.z_=await n.onListen(i,!1);break;case 2:await n.onFirstRemoteStoreListen(i)}}catch(e){const n=MA(e,`Initialization of query '${Do(t.query)}' failed`);return void t.onError(n)}n.queries.set(i,o),o.j_.push(t),t.Z_(n.onlineState),o.z_&&t.X_(o.z_)&&VA(n)}(await Sc(e),o))),()=>{i.Za(),e.asyncQueue.enqueueAndForget((async()=>async function(e,t){const n=Wr(e),r=t.query;let i=3;const o=n.queries.get(r);if(o){const e=o.j_.indexOf(t);e>=0&&(o.j_.splice(e,1),0===o.j_.length?i=t.J_()?0:1:!o.H_()&&t.J_()&&(i=2))}switch(i){case 0:return n.queries.delete(r),n.onUnlisten(r,!0);case 1:return n.queries.delete(r),n.onUnlisten(r,!1);case 2:return n.onLastRemoteStoreUnlisten(r);default:return}}(await Sc(e),o)))}}(_c(l),d,c,u)}(n,(e=>{clearTimeout(rd.firestoreConfigTimeout),rd.firestoreConfigTimeout=setTimeout((()=>{d(`Got firestore snapshot from the ${e.metadata.fromCache?"cache":"server"}.`),this.parseFirestoreConfig(e)}),1500)}),(e=>{setTimeout((()=>{rd.setUpFireStoreListener}),Math.max(rd.scheduledResubscribeDelay-Date.now(),0)),rd.firestoreUnsubscribe=void 0,u("Firestore listener has failed",e)})),rd.scheduledResubscribeDelay=Date.now()+60*(30+5*Math.random())*1e3}}}else c("Failed to set up firestore listener, missing config")}))}static parseFirestoreConfig(e){return nd(this,void 0,void 0,(function*(){e.forEach((e=>nd(this,void 0,void 0,(function*(){switch(e.id){case t.W7.ContentAware:{const n=e.data();n?rd.notifyListeners(t.W7.ContentAware,n):c("Missing Content Aware config in firestore payload");break}}}))))}))}static notifyListeners(e,t){return nd(this,void 0,void 0,(function*(){const n=rd.firestoreListeners[e];n&&n.forEach((e=>e(t)))}))}}rd.initialized=!1,rd.firebaseApp=void 0,rd.firestore=void 0,rd.firebaseAuth=void 0,rd.firestoreUnsubscribe=void 0,rd.scheduledResubscribeDelay=0,rd.firestoreConfigTimeout=void 0,rd.firestoreListenDocs=[t.W7.ContentAware],rd.firestoreListeners={};var id=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class od{static init(){return id(this,void 0,void 0,(function*(){od.initialized||(od.initialized=!0,e.CacheScheduler.setInterval(t.N3.CheckInDeviceInterval,(()=>{(()=>{id(this,void 0,void 0,(function*(){(yield od.registerWithDeviceManagement())&&(yield od.checkInDevice())}))})()}),t.N3.CheckInDeviceElapsed_ms))}))}static updateDeviceManagement(){return id(this,void 0,void 0,(function*(){(yield od.registerWithDeviceManagement())&&od.setUpFireStoreListener()}))}static getDMSRegistrationData(){var e,t;return id(this,void 0,void 0,(function*(){return{customerId:null!==(e=O.getApplianceId())&&void 0!==e?e:"",userId:null!==(t=O.getCurrentUserInfo().user)&&void 0!==t?t:"",platform:(yield chrome.runtime.getPlatformInfo()).os,deviceName:yield He.getDMSHardwareId(),hardwareId:yield He.getDMSHardwareId(),checkInTime:Math.floor(Date.now()/1e3).toString(),platformVersion:"v2.0",tenantId:""}}))}static registerWithDeviceManagement(){var e,t;return id(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded(),yield He.waitTillCachesAreLoaded();const n=yield od.getDMSRegistrationData();if(!od.newRegistrationRequired(n))return!He.getRegistrationDataInvalid();const r=O.getApplianceId();if(!r)return d("ApplianceId should be a valid object"),!1;const i=He.getDeviceManagementUrl();if(!i)return!1;try{const o=`${i}/devices`,a=yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Id":`${r}`},body:JSON.stringify(n)});if(a.ok){const r=yield a.json(),i=null===(e=null==r?void 0:r.data)||void 0===e?void 0:e.jwt,o=null===(t=null==r?void 0:r.data)||void 0===t?void 0:t.deviceId,s=yield od.getFirebaseAppConfigFromDMS();if(i&&o&&s)return yield od.setTheNextRegistrationSchedule(!0),yield He.setDeviceManagementId(o),yield He.setLastRegistrationData(n),yield od.setUpFireStoreListener(i),l("Registration with device management success..."),!0;c("Correct fields are not present in the DMS response: ",r)}else c("Error occurred during the registration: ",a)}catch(e){(0,g.DP)(e),c(`Exception while registering with Device Manager: ${e}`)}return yield He.resetRegistrationData(),yield od.setTheNextRegistrationSchedule(),!1}))}static newRegistrationRequired(e){const t=He.getLastRegistrationData(),n=He.getNextRegistrationTime();return!(!t||t.customerId===e.customerId&&t.userId===e.userId&&t.deviceName===e.deviceName)||n0&&(i-=Math.floor(t/2),i=Math.max(i,0)),yield He.setRegistrationAttemptCount(Math.min(i+1,r)),yield He.setLastRegistrationErrorTime(Date.now())}const o=7500,a=6048e5,s=a+Math.floor(Math.random()*a),A=n?s:o*Math.pow(2,i),c=Date.now()+A;yield He.setNextRegistrationTime(c),e.CacheScheduler.setTimeout(t.N3.RetryDMSRegTimeout,(()=>{(()=>{id(this,void 0,void 0,(function*(){yield He.setRegistrationScheduled(!1),od.registerWithDeviceManagement()}))})()}),A+1e3)}}))}static checkInDevice(){return id(this,void 0,void 0,(function*(){const e=He.getDeviceManagementId(),t=He.getLastRegistrationData();if(e&&t){const n=He.getDeviceManagementUrl();if(!n)return;const{customerId:r,userId:i}=t,o=`${n}/devices/check-in/${r}/untenanted/${btoa(i)}/${e}`;let s=!1;try{if(!(yield fetch(o,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Id":`${r}`},body:JSON.stringify({logUploadCount:0,checkInTime:Math.floor(Date.now()/1e3).toString()})})).ok)throw new Error("Failed to check in device.");l("Device checked in successfully.")}catch(e){if(!1===(yield(0,a.Ab)()))return void l("Skipping checking in request as device is not connected to internet.");(0,g.DP)(e),console.error("Error during device checking in:",e),s=!0}s&&(yield od.setTheNextRegistrationSchedule())}else l("Skipping checking in request as device is not registered.")}))}static getFirebaseAppConfigFromDMS(){return id(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded(),yield He.waitTillCachesAreLoaded();try{const e=`${He.getDeviceManagementUrl()}/config/firebase`,t=yield fetch(e);if(t.ok){const e=yield t.json();if(null==e?void 0:e.data)return yield He.setFirebaseAppConfig(e.data),!0}}catch(e){(0,g.DP)(e),c(`Exception while getting Firebase app config: ${e}`)}return!1}))}static setUpFireStoreListener(e){return id(this,void 0,void 0,(function*(){const t=O.getApplianceId(),n=He.getFirebaseAppConfig();t&&n?yield rd.setUpFireStoreListener(t,n,e):u("Appliance ID or firebaseAppConfig is undefined, can't initiate firestore",t,n)}))}}od.initialized=!1;var ad=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class sd{static waitTillConfigLoaded(){return ad(this,void 0,void 0,(function*(){yield this.cachedConfigurations.waitTillCacheLoaded()}))}static saveContentAwareConfig(e){return ad(this,void 0,void 0,(function*(){let t;if(e){if(e.OrganisationID&&e.IsActive&&e.DomainConfiguration){if(!Array.isArray(e.DomainConfiguration.NeverRunOn)){const t=[];if(e.DomainConfiguration.NeverRunOn){const n=e.DomainConfiguration.NeverRunOn,r=Object.keys(n);for(let e=0;e{e.push(o[t])})),cd.convertSensitivityToIaRange({OrganisationID:i.key,IsActive:i.status===t.v5.active,DomainConfiguration:{DefaultRules:{swimwear:a.defaultRules.swimwear,porn:a.defaultRules.porn,gore:a.defaultRules.gore},GuiltByAssociationEnabled:a.guiltByAssociationEnabled,GuiltByAssociationBlockThreshold:a.guiltByAssociationBlockThreshold,GuiltByAssociationIgnoreAfterCleanImagesThreshold:a.guiltByAssociationIgnoreAfterCleanImagesThreshold,NeverRunOn:e}})}}))}static convertSensitivityToIaRange(e){const t=(e,t)=>-1===e?e:t[Math.floor(2*e)];return e.DomainConfiguration.DefaultRules.porn=t(e.DomainConfiguration.DefaultRules.porn,[.99,.6,.4]),e.DomainConfiguration.DefaultRules.swimwear=t(e.DomainConfiguration.DefaultRules.swimwear,[.99,.8,.4]),e.DomainConfiguration.DefaultRules.gore=t(e.DomainConfiguration.DefaultRules.gore,[.99,.8,.6]),e}static fetchContentAwareConfig(e){return Ad(this,void 0,void 0,(function*(){try{const t=yield fetch(e);if(t.ok)return yield t.json()}catch(e){(0,g.DP)(e),c(`Exception while getting Firebase app config: ${e}`)}}))}static updateContentAwareStatus(){return Ad(this,void 0,void 0,(function*(){if(yield sd.waitTillConfigLoaded(),cd.statusUpdateInProgress)return void cd.remainingStatusUpdates++;cd.statusUpdateInProgress=!0,yield cd.updateContentAwareLoginStatus();const e=sd.getContentAwareConfig();sd.getLoggedIn()&&e&&(yield cd.iecUpdateDomainConfig(e)),cd.statusUpdateInProgress=!1,cd.remainingStatusUpdates>0&&(cd.remainingStatusUpdates--,cd.updateContentAwareStatus())}))}static updateContentAwareLoginStatus(){return Ad(this,void 0,void 0,(function*(){if(yield sd.setContentAwareIsPresent(yield cd.checkContentAwareExtensionPresent()),sd.getContentAwareIsPresent()){yield sd.setLoggedIn(yield cd.iecIsLoggedIn());const e=sd.getContentAwareConfig();(null==e?void 0:e.IsActive)&&!sd.getLoggedIn()&&this.isLicenseValid()?(l("Logging in the Content Aware extension"),(yield cd.iecLogin(e.OrganisationID))&&(yield sd.setLoggedIn(!0))):(null==e?void 0:e.IsActive)&&this.isLicenseValid()||!sd.getLoggedIn()||(l("Logging out the Content Aware extension"),yield cd.iecLogout(),yield sd.setLoggedIn(!0))}else sd.getLoggedIn()&&(l("Content Aware extension is not present, logging out."),yield sd.setLoggedIn(!1))}))}static isLicenseValid(){return!!sd.getContentAwareLicenseConfig()&&!this.isLicenseInTheFuture()&&!this.isLicenseExpired()}static isLicenseInTheFuture(){var e;const t=null===(e=sd.getContentAwareLicenseConfig())||void 0===e?void 0:e.startDate;return!!(t&&Number(t)>Math.floor(Date.now()/1e3))}static isLicenseExpired(){var e;const t=null===(e=sd.getContentAwareLicenseConfig())||void 0===e?void 0:e.endDate;return!!(t&&Number(t)e.id===cd.contentAwareExtensionId))}))}static handleContentAwareError(e){return Ad(this,void 0,void 0,(function*(){c("Content Aware Error:",e),sd.getContentAwareIsPresent()&&!(yield cd.checkContentAwareExtensionPresent())&&(yield cd.updateContentAwareStatus())}))}static iecIsLoggedIn(){return Ad(this,void 0,void 0,(function*(){const e=yield cd.sendInterExtensionMessage({MessageType:t.ND.isLoggedIn});return!!(null==e?void 0:e.IsLoggedIn)}))}static iecLogin(e){return Ad(this,void 0,void 0,(function*(){return!!(yield cd.sendInterExtensionMessage({MessageType:t.ND.login,Data:{VendorLicenseKey:cd.vendorLicenseKey,OrganisationID:e}}))}))}static iecLogout(){return Ad(this,void 0,void 0,(function*(){return!!(yield cd.sendInterExtensionMessage({MessageType:t.ND.logout}))}))}static iecUpdateDomainConfig(e){return Ad(this,void 0,void 0,(function*(){return!!(yield cd.sendInterExtensionMessage({MessageType:t.ND.UpdateDynamicConfig,Data:e}))}))}static sendInterExtensionMessage(e){return Ad(this,void 0,void 0,(function*(){try{const t=yield chrome.runtime.sendMessage(cd.contentAwareExtensionId,e);if(null==t?void 0:t.Success)return l(`Content Aware IEC message ${e.MessageType} success`),t;{const n=new Error;throw n.name=`${e} error`,n.message=JSON.stringify(t),n}}catch(e){(0,g.DP)(e),yield cd.handleContentAwareError(e)}}))}}cd.initialized=!1,cd.contentAwareExtensionId="epkahbohdeajpadlmelfkenmoeblkpem",cd.vendorLicenseKey="BC0859-B79F19-6342DC-D4BF65-69CC0C-V3",cd.statusUpdateInProgress=!1,cd.remainingStatusUpdates=0;class ud{static init(){return e=this,t=void 0,r=function*(){ud.initialized||(ud.initialized=!0,ud.startKeepAliveInterval())},new((n=void 0)||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}));var e,t,n,r}static startKeepAliveInterval(){ud.stopKeepAliveInterval(),ud.updateInterval=setInterval((()=>{ud.keepAliveCache.setValue("timestamp",Date.now()),ud.keepAliveCache.flush()}),ud.storageWriteInterval)}static stopKeepAliveInterval(){ud.updateInterval&&(clearInterval(ud.updateInterval),ud.updateInterval=void 0)}}ud.initialized=!1,ud.keepAliveCache=new e.CachedStorage(t._f.KeepAliveCacheId),ud.storageWriteInterval=25e3,ud.updateInterval=void 0;class ld{static generate(){return new this}getManagedConfig(){return new Promise((e=>{e(void 0)}))}managedConfigIsRequired(){return!1}getManagedConfigError(){return""}}class dd extends ld{constructor(){super(),d(":: Dev build detected ::")}getManagedConfig(){return e=this,t=void 0,i=function*(){return n(8951)},new((r=void 0)||(r=Promise))((function(n,o){function a(e){try{A(i.next(e))}catch(e){o(e)}}function s(e){try{A(i.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}A((i=i.apply(e,t||[])).next())}));var e,t,r,i}}class pd extends ld{constructor(){super(),l(" :: Webstore build detected, not using managed config ::")}}var hd=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class fd extends ld{constructor(){super(),this.managedConfig=void 0,this.managedConfigIsValid=!1,this.managedConfigError="",d(":: Self-hosted build detected ::")}managedConfigIsRequired(){return!0}getManagedConfigError(){return this.managedConfigError}getManagedConfig(){return hd(this,void 0,void 0,(function*(){return this.setDefaultConfigState(),chrome.storage.managed&&(yield this.readManagedConfigPolicy(),this.validateManagedConfigPolicy()),this.managedConfigIsValid?this.managedConfig:void 0}))}readManagedConfigPolicy(){var e,t,n;return hd(this,void 0,void 0,(function*(){const{configuration:r}=yield chrome.storage.managed.get("configuration"),i=null!==(e=null==r?void 0:r.region)&&void 0!==e?e:"",o=null!==(t=null==r?void 0:r.applianceId)&&void 0!==t?t:"",a=null!==(n=null==r?void 0:r.preSharedKey)&&void 0!==n?n:"";this.managedConfig={region:i.trim(),applianceId:o.trim(),preSharedKey:a.trim()}}))}validateManagedConfigPolicy(){var e,t;if(this.managedConfig){const n=le.getAllRegions(),r=0!==this.managedConfig.region.length&&n.includes(this.managedConfig.region),i=0!==(null===(e=this.managedConfig)||void 0===e?void 0:e.applianceId.length),o=0!==(null===(t=this.managedConfig)||void 0===t?void 0:t.preSharedKey.length);if(r&&i&&o)this.managedConfigIsValid=!0,this.managedConfigError="";else{this.managedConfigError="Please check you have deployed this correctly, there seems to be an empty field in your managed config:";let e=r?"":" region";i||(e+=0!==e.length?o?" and applianceId":", applianceId":" applianceId"),o||(e+=0!==e.length?e.includes(",")?", and preSharedKey":" and preSharedKey":" preSharedKey"),this.managedConfigError+=e,this.managedConfigError+=". Please contact your IT Admin."}}}setDefaultConfigState(){this.managedConfig=void 0,this.managedConfigIsValid=!1,this.managedConfigError="Managed configuration has not been retrieved"}}var md=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class gd{static processConfig(){return md(this,void 0,void 0,(function*(){let n;try{if(n=O.getPeriodicLogsUploadConfig(),!n)return void(yield e.AlarmScheduler.clearAlarm(t.rb.PeriodicLogsUploadInterval));if(!n.end_timestamp_seconds||!n.interval_seconds){yield e.AlarmScheduler.clearAlarm(t.rb.PeriodicLogsUploadInterval);const r=new Error("Periodic logs upload config from backend is invalid. Missing required fields");return c(r.message,n),void(0,g.DP)(r)}Date.now()<1e3*n.end_timestamp_seconds?yield e.AlarmScheduler.setInterval(t.rb.PeriodicLogsUploadInterval,this.uploadIntervalFn(n),1e3*n.interval_seconds,!0,!1):yield e.AlarmScheduler.clearAlarm(t.rb.PeriodicLogsUploadInterval)}catch(e){c("Error processing periodic logs upload config",{error:e,logsCfg:n}),(0,g.DP)(e)}}))}static uploadIntervalFn(n){return()=>md(this,void 0,void 0,(function*(){Date.now()<1e3*n.end_timestamp_seconds?(yield wd.sendUploadLogsMessage()).success?d("periodic logs upload successful"):u("periodic logs upload failed"):e.AlarmScheduler.clearAlarm(t.rb.PeriodicLogsUploadInterval)}))}}var yd,vd,bd,kd,Sd=n(8442),Td=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{A(r.next(e))}catch(e){o(e)}}function s(e){try{A(r.throw(e))}catch(e){o(e)}}function A(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}A((r=r.apply(e,t||[])).next())}))};class wd{static isDevBuild(){return wd.devBuild}static isWebStoreBuild(){return!1}static setNewBrowserSession(e){wd.isNewBrowserSession=e}static init(){var n;return Td(this,void 0,void 0,(function*(){if(wd.mainInitialized)return;wd.mainInitialized=!0,(()=>{const e=Ie.nI({}).filter((e=>!["BrowserApiErrors","Breadcrumbs","GlobalHandlers"].includes(e.name))),t=new _e.y({dsn:"https://cd7f94e6f1c8fc08a4ca3cd26f3a5ff2@o18924.ingest.sentry.io/4506376003125248",ignoreErrors:["Could not establish connection. Receiving end does not exist."],transport:We._,stackParser:ze.lG,integrations:e});De.setClient(t),t.init(),Ie.Ts()})(),wd.initModules(),wd.registerEventHandlers(),wd.setupUpdateIntervals();const r=yield A.init();wd.isDevBuild()&&r&&!(0,a.cz)()&&(yield wd.devDataCache.waitTillCacheLoaded(),wd.devDataCache.getValue(t.rb.DevBuildReloadedKey,!1)?(wd.devDataCache.setValue(t.rb.DevBuildReloadedKey,!1),yield wd.devDataCache.flush()):(wd.devDataCache.setValue(t.rb.DevBuildReloadedKey,!0),yield wd.devDataCache.flush(),chrome.runtime.reload()));const i="cros"===(yield chrome.runtime.getPlatformInfo()).os;o.setPlatformIsChromeOs(i),i&&(null===(n=chrome.enterprise)||void 0===n||n.deviceAttributes.getDeviceSerialNumber((e=>{He.setChromebookSerial(e)})));const s=yield A.sendMessage({type:t.lA.GetBrowserDetails});o.setBrowserDetails(s),o.setBrowserType((0,a.fx)(s.browser.name)),o.setBuildVersion(chrome.runtime.getManifest().version),yield wd.mainDataCache.waitTillCacheLoaded(),r&&(yield this.setupOffscreenDocument()),wd.runIpAddressChangeRoutine(),wd.mainDataCache.getValue(t.rb.LoadingConfiKey)&&wd.configUpdate(),yield e.ServiceWorkerHelper.waitTillStartUp(),e.ServiceWorkerHelper.isSessionRestart()&&wd.setNewBrowserSession(!0)}))}static isNotDevBuild(){return!this.isDevBuild}static setupOffscreenDocument(){return Td(this,void 0,void 0,(function*(){if(!o.getPlatformIsChromeOs())if(yield(0,a.V3)()){const e=yield A.sendMessage({type:t.lA.RegisterExtension});d(`Extension has registered successfully: ${e}`)}else A.sendMessage({type:t.lA.UnregisterExtension}),d("No browser windows are open. Unregistering the extension")}))}static setupUpdateIntervals(){e.AlarmScheduler.setInterval(t.rb.PeriodicLoginInterval,(()=>{ue.login()}),6e5),e.AlarmScheduler.setInterval(t.rb.WhoamiLoginInterval,(()=>Td(this,void 0,void 0,(function*(){if(!O.getInsideCloudSafeNetwork()){const e=yield pe.updateDeviceLocation();e.network_identity_provided&&O.getCurrentUserInfo().user!==e.provider_username&&(u("User changed via network"),wd.configUpdate())}}))),18e4),this.setupFzBoxPolling()}static setupFzBoxPolling(){return Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded();const e=O.getFzBoxPollingIntervalData();wd.setAlarmSchedulerForFzboxPolling(e.currentValue)}))}static setAlarmSchedulerForFzboxPolling(n){e.AlarmScheduler.setInterval(t.rb.FzboxPollInterval,wd.sendFzboxProbe,n,!0)}static runIpAddressChangeRoutine(){A.sendMessage({type:t.lA.IpAddressChangeRoutine})}static sendFzboxProbe(){return Td(this,void 0,void 0,(function*(){if(k.isCompanionAvailable())return;if(O.isExtensionDisabled())return;const e=O.getLastFzProbeCode(),t=O.getLastFzProbeProvider(),n=yield pe.getFzBoxProbeResponse();O.setLastFzProbeCode(n.status),O.setLastFzProbeProvider(n.data.provider),n.status===e&&n.data.provider===t||(u(`Network safety changed! Current network is ${200===n.status?"safe":"unsafe"} and current provider is '${n.data.provider}'`),wd.configUpdate(!0))}))}static getClassRoomsConfigurations(){const e={};for(const t of O.getActiveConfigurations())if(!t.is_monitoring_class){const n=t.teachers.map((e=>e.id));e[t.group]={name:t.group_label,teachers:n,teacherInformation:t.teacher_information,isActive:(0,a.qm)(O.getDeviceTimezone(),t),chatBlocked:t.chat_blocked||!1,threadKey:t.thread_key}}return e}static initModules(){ud.init(),oe.init(),pe.init(wd.getManagedConfigHandler()),od.init(),$.init(),mt.init(),ie.init(),rt.init(),lt.init(),ht.init(),Oe.init(30),Ye.init(),tt.init(),ue.init(),ve.init(),ct.init(),ot.init(),dt.init(),Ke.init(),cd.init()}static registerEventHandlers(){globalThis.onunhandledrejection=(e,n,r,i,o)=>{((e,n,r,i,o)=>{if(e instanceof PromiseRejectionEvent){let a="";a+="Uncaught (in promise) "+e.reason.stack+" ",n&&(a+="Source: "+n+" "),r&&(a+="Line number: "+r+" "),i&&(a+="Coloum number: "+i+" "),o&&(a+=o.message),m(a,t.$b.ERROR)}})(e,n,r,i,o)},A.addMessageListener(t.lA.UtilLocalIpUpdated,(e=>{this.handleLocalIPChanged(e.localIpAddress)})),A.addMessageListener(t.lA.OffScreenLogMessage,wd.offScreenLogMessageHandler),chrome.runtime.onMessage.addListener(((e,n,r)=>Td(this,void 0,void 0,(function*(){let n=!1;return e.type===t.lA.ChatBubbleStatus?((()=>{Td(this,void 0,void 0,(function*(){const e=yield this.getShowBubbleOptionValue();r(e)}))})(),n=!0):e.type===t.lA.ChatInfo?((()=>{Td(this,void 0,void 0,(function*(){const e=yield this.getChatInfoBundle();r(e)}))})(),n=!0):e.type===t.lA.SentryGetUserDetails?((()=>{Td(this,void 0,void 0,(function*(){const e=yield this.getSentryUserInfoBundle();r(e)}))})(),n=!0):e.type===t.lA.ChatGetLastMessage?r(lt.getLastChatMessage()):e.type===t.lA.ChatClearLastMessage?lt.clearLastChatMessage():e.type===t.lA.UIGetStatus?((()=>{Td(this,void 0,void 0,(function*(){const e=yield this.getCurrentStatusBundle();r(e)}))})(),n=!0):e.type===t.lA.UIReloadConfig?((()=>{Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded(),wd.configUpdate()}))})(),n=!0):e.type===t.lA.UISendLogs?((()=>{Td(this,void 0,void 0,(function*(){const e=yield wd.sendUploadLogsMessage();r(e)}))})(),n=!0):e.type===t.lA.UserOverride&&(()=>{Td(this,void 0,void 0,(function*(){l("[Override], New user override data received");const t={token:e.data.token,username:e.data.username,applianceId:e.data.applianceId};yield O.setUserDataOverride(t),wd.configUpdate()}))})(),n})))),chrome.tabs.onUpdated.addListener(((e,n)=>Td(this,void 0,void 0,(function*(){"complete"===n.status?($.captureTabAndSend(!0),rt.showBubble(e)):"loading"===n.status&&oe.captureTabAndSendWithDelay(250),n.url&&!(yield $.tabIsBrowserInternalByID(e))&&chrome.tabs.sendMessage(e,{type:t.lA.UrlUpdatedInTab}).catch((t=>Td(this,void 0,void 0,(function*(){(0,g.DP)(t),d(`Browser might have changed to blocked page. Error: ${null==t?void 0:t.message}. ( Url: ${(yield chrome.tabs.get(e)).url})`)}))))})))),chrome.tabs.onActivated.addListener((e=>Td(this,void 0,void 0,(function*(){(yield $.tabIsBrowserInternalByID(e.tabId))||chrome.tabs.sendMessage(e.tabId,{type:t.lA.TabsActivated}).catch((t=>Td(this,void 0,void 0,(function*(){(0,g.DP)(t),d(`Browser might have changed to blocked page. Error: ${null==t?void 0:t.message}. ( Url: ${(yield chrome.tabs.get(e.tabId)).url})`)})))),oe.captureTabAndSendWithDelay(200)})))),chrome.tabs.onRemoved.addListener(((e,t)=>Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded(),O.isFilteringEnabled()&&$.tabRemoved(`${t.windowId}_${e}`)})))),chrome.identity.onSignInChanged.addListener((()=>{u("Google Identity Changed"),oe.configUpdateWithDelay(!0,3e3)})),chrome.idle.onStateChanged.addListener((e=>{"active"===e&&wd.configUpdate()})),chrome.storage.managed.onChanged.addListener((()=>{wd.configUpdate()}))}static offScreenLogMessageHandler(e){switch(e.logLevel){case t.Cj.Error:c(e.message,e.optionalParams);break;case t.Cj.Warning:u(e.message,e.optionalParams);break;case t.Cj.Message:l(e.message,e.optionalParams);break;case t.Cj.Debug:d(e.message,e.optionalParams)}}static startOpenTelemetry(){try{const e=chrome.runtime.getManifest().version,t=ve.getAuthToken()||"",n=()=>Td(this,void 0,void 0,(function*(){return yield ve.autoAuth(),ve.getAuthToken()||""})),r=O.getOtelClientConfig();if(!r)return void d("OpenTelemetry initialization aborted as otel config is missing (expected if in companion mode)");Fe.K.setup({isDev:wd.isDevBuild(),extensionVersion:e,authToken:t,authTokenRefreshFn:n,env:"background",config:r})}catch(e){c("Failed to initialize OpenTelemetry",e),(0,g.DP)(e)}}static handleLocalIPChanged(e){return Td(this,void 0,void 0,(function*(){if(yield O.waitTillConfigLoaded(),/\d+\.\d+\.\d+\.\d+/.test(e)){const t=O.getLocalIp();d("Changed networks",e,t),O.setFallbackState(!0),e!==t?(l("IP address changed...updating configuration"),O.setLocalIp(e)):l("IP address matches with the one saved in the local storage"),wd.networkConfigUpdateScheduled||(oe.configUpdateWithDelay(!0,500),wd.networkConfigUpdateScheduled=!0,wd.sendFzboxProbe(),setTimeout((()=>{wd.networkConfigUpdateScheduled=!1}),450))}}))}static getShowBubbleOptionValue(){return Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded();let e=O.getClassroomChatEnabled();if(e){const t=O.hasActiveClass();e=!(!t||!t.hasOwnProperty("chat_blocked")||t.chat_blocked)}return e}))}static getChatInfoBundle(){return Td(this,void 0,void 0,(function*(){return yield O.waitTillConfigLoaded(),{userDetails:O.getCurrentUserInfo(),baseUrl:O.getChatBaseUrl(),classRooms:wd.getClassRoomsConfigurations(),applianceId:O.getApplianceId()}}))}static getSentryUserInfoBundle(){return Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded();const e=O.getUserInformation();return{applianceId:O.getApplianceId(),userIdentifier:e.identifier}}))}static getCurrentStatusBundle(){return Td(this,void 0,void 0,(function*(){yield O.waitTillConfigLoaded();const e={system_error_msg:pe.getManagedConfigError(),disabled:O.isExtensionDisabled(),chrome_user:O.getCurrentUserInfo().user,user_information:O.getUserInformation(),delegation_active:T.getDelegationActive(),extension_login:O.getGoogleClassroomExtensionLogin(),loading:wd.loadingConfig,appliance:{device_id:O.getApplianceId(),parent_device:O.getParentDevice(),inside_network:O.getInsideDeviceNetwork(),authenticated:O.getInsideDeviceNetworkAuthenticated(),network_user:O.getInsideDeviceNetworkUser()},features:{Filtering:O.isFilteringEnabled(),Connections:O.isConnectionReportingEnabled(),Classroom:O.isClassroomEnabled(),ChromebookOnly:O.getEnableExtensionChromebooksOnly()},classes:[]};return O.getActiveConfigurations().forEach((t=>{var n;(0,a.qm)(O.getDeviceTimezone(),t)&&e.classes.push({classroom_name:t.group_label||t.group,teacher_information:(0,a.SR)(t,"teacher_information",null),focused:O.isClassroomEnabled()&&t.apply_focus,locked:O.isClassroomEnabled()&&(null===(n=t.locked_users)||void 0===n?void 0:n.indexOf(t.identity))>=0,is_monitoring_class:(0,a.SR)(t,"is_monitoring_class",!1)})})),e}))}static setConfigUpdateBackoffRetryState(e){return Td(this,void 0,void 0,(function*(){wd.mainDataCache.setValue(t.rb.ConfigUpdateBackoffRetryStateKey,e),wd.mainDataCache.flush()}))}static getConfigUpdateBackoffRetryState(){return wd.mainDataCache.getValue(t.rb.ConfigUpdateBackoffRetryStateKey)||{inProgress:!1,currentInterval:Number(t.e6.ConfigFetchInitialInterval),elapsedTime:0,startTime:0,lastConfigUpdateTime:void 0}}static setLoadingConfig(e){wd.loadingConfig=e,wd.mainDataCache.setValue(t.rb.LoadingConfiKey,e),wd.mainDataCache.flush()}static configUpdate(e=!1){return Td(this,void 0,void 0,(function*(){Fe.K.getTracer("Main").startActiveSpan("Main.configUpdate",{startTime:Xe.A.now()},(n=>Td(this,void 0,void 0,(function*(){try{const n=wd.getConfigUpdateBackoffRetryState();if(n.inProgress&&!e)return void d("configUpdate called, a backoff is already in progress for configUpdate, aborting this new call");if(!(yield wd.preConfigUpdateChecks(e)))return;n.lastConfigUpdateTime=R.c9.now(),n.startTime||(n.startTime=performance.now()),yield wd.setConfigUpdateBackoffRetryState(n),d("Starting Config Update."),wd.setLoadingConfig(!0),chrome.runtime.sendMessage({greeting:t.lA.PopupIsReloading}),yield wd.doConfigUpdate()}catch(e){n.recordException(e),n.setStatus({code:Ve.s.ERROR}),(0,g.DP)(e)}finally{n.end()}}))))}))}static configUpdateBackoffRetry(){return Td(this,void 0,void 0,(function*(){d("configUpdateBackoffRetry, backoff state:",wd.getConfigUpdateBackoffRetryState()),wd.getConfigUpdateBackoffRetryState().inProgress?(d("Retrying Config Update."),yield wd.doConfigUpdate()):c("Invariant failure: configUpdateBackoffContinuation called, but there is no backoff in progress")}))}static doConfigUpdate(){return Td(this,void 0,void 0,(function*(){wd.hadActiveClassBeforeUpdate=!!O.hasActiveClass(),(yield wd.handleConfigRetrieval())&&(wd.setLoadingConfig(!1),chrome.runtime.sendMessage({greeting:t.lA.PopupIsNotReloading}),wd.queuedConfigUpdatesExist&&!wd.getConfigUpdateBackoffRetryState().inProgress&&(wd.queuedConfigUpdatesExist=!1,wd.configUpdate()))}))}static preConfigUpdateChecks(e){return Td(this,void 0,void 0,(function*(){const t=Sd.u.getActiveSpan();return(yield wd.checkInternetConnectivityAndScheduleUpdate())?(wd.handleIpChangeDetectionCheck(),(yield(0,a.V3)())?(yield wd.isManagedConfigPolicyPresent())?!wd.isOverlappingConfigUpdate(e)||(null==t||t.addEvent("aborted, isOverlappingConfigUpdate() returned false"),l("config update aborted, isOverlappingConfigUpdate() returned true"),!1):(null==t||t.addEvent("aborted, isManagedConfigPolicyPresent() returned false"),l("config update aborted, isManagedConfigPolicyPresent() returned false"),!1):(null==t||t.addEvent("aborted, isBrowserWindowOpen() returned false"),l("config update aborted, no browser window is open"),!1)):(null==t||t.addEvent("aborted, checkInternetConnectivityAndScheduleUpdate() returned false"),!1)}))}static handleConfigRetrieval(){return Td(this,void 0,void 0,(function*(){try{const e=yield pe.retrieveConfiguration();return l("Config retrieved successfully"),yield wd.executePostConfigUpdateActions(e),l("Config processed successfully"),!0}catch(e){const n=wd.getConfigUpdateBackoffRetryState();if(n.inProgress=!0,n.elapsedTime+=performance.now()-n.startTime,n.elapsedTime&&n.elapsedTime>=t.e6.ConfigFetchMaxElapsedTime)return c(`Max elapsed time (${t.e6.ConfigFetchMaxElapsedTime/1e3}s) for fetching config update reached. Giving up.`,e),yield wd.cleanConfigUpdateBackOffRetry(),!0;{c(`Config update failed, retrying in ${n.currentInterval/1e3}s`,e);const r=(0,a.yJ)(n.currentInterval,t.e6.ConfigFetchMultiplier,t.e6.ConfigFetchMaxInterval,t.e6.ConfigFetchRandomizationFactor);return yield wd.setConfigUpdateBackoffRetryState(Object.assign(Object.assign({},n),{currentInterval:r})),oe.configUpdateBackoffRetry(n.currentInterval),!1}}}))}static executePostConfigUpdateActions(e){return Td(this,void 0,void 0,(function*(){yield wd.cleanConfigUpdateBackOffRetry();for(const t of wd.postConfigUpdateActions){const n=t(e);n instanceof Promise&&(yield n)}}))}static cleanConfigUpdateBackOffRetry(){return Td(this,void 0,void 0,(function*(){yield wd.setConfigUpdateBackoffRetryState({currentInterval:Number(t.e6.ConfigFetchInitialInterval),elapsedTime:0,startTime:0,inProgress:!1,lastConfigUpdateTime:void 0})}))}static checkInternetConnectivityAndScheduleUpdate(){return Td(this,void 0,void 0,(function*(){return!!(yield(0,a.Ab)())||(l("Config was updating, skipping due to internet connectivity issues"),wd.detectedOffline||(wd.shouldRestartIPChangeDetection=!0,oe.configUpdateWithDelay(!1,1e3),wd.detectedOffline=!0,setTimeout((()=>{wd.detectedOffline=!1}),980)),!1)}))}static handleIpChangeDetectionCheck(){wd.shouldRestartIPChangeDetection&&(wd.runIpAddressChangeRoutine(),wd.shouldRestartIPChangeDetection=!1)}static isManagedConfigPolicyPresent(){return Td(this,void 0,void 0,(function*(){return!(pe.managedConfigPolicyRequired()&&!k.isCompanionAvailable()&&void 0===(yield pe.getManagedPolicyConfig()))||(O.clearCachePartialOnError(),c(`Getting managed config failed: ${pe.getManagedConfigError()}`),chrome.runtime.sendMessage({greeting:t.lA.ReloadPopUp}),!1)}))}static isOverlappingConfigUpdate(e){const n=wd.getConfigUpdateBackoffRetryState(),r=n.lastConfigUpdateTime?R.c9.now().diff(n.lastConfigUpdateTime,"seconds").toObject().seconds:void 0;return!!(wd.loadingConfig&&r&&r<=t.e6.ConfigFetchMaxInterval/1e3)&&(e&&(wd.queuedConfigUpdatesExist=!0),l("Config was updating, skipping overlapping update"),!0)}static createRemoteFilename(){return Td(this,void 0,void 0,(function*(){return`${yield pe.getLoggedInUser()}_${O.getApplianceId()}_${O.getActiveRegion()}_${chrome.runtime.getManifest().version}_${yield He.getDMSHardwareId()}.log`}))}static getManagedConfigHandler(){return wd.isDevBuild()?dd.generate():wd.isWebStoreBuild()?pd.generate():fd.generate()}static sendUploadLogsMessage(){var e,n;return Td(this,void 0,void 0,(function*(){const r=null!==(e=O.getCurrentUserInfo().user)&&void 0!==e?e:"",i=null!==(n=O.getDeviceId())&&void 0!==n?n:"",o=yield wd.createRemoteFilename(),a=`${O.getApiDispatcherUrl()}/upload-extension-logs`;return yield A.sendMessage({type:t.lA.UploadLogData,data:{username:r,applianceId:i,filename:o,uploadUrl:a}})}))}}wd.mainInitialized=!1,wd.hadActiveClassBeforeUpdate=!1,wd.loadingConfig=!1,wd.queuedConfigUpdatesExist=!1,wd.detectedOffline=!1,wd.networkConfigUpdateScheduled=!1,wd.isNewBrowserSession=!1,wd.mainDataCache=new e.CachedStorage(t.rb.MainDataCacheId),wd.devDataCache=new e.CachedStorage(t.rb.DevDataCacheId,!1),wd.devBuild=!1,wd.shouldRestartIPChangeDetection=!1,wd.postConfigUpdateActions=[()=>gd.processConfig(),()=>wd.startOpenTelemetry(),()=>A.sendMessage({type:t.lA.InitOffscreenOpenTelemetry,data:{isDev:wd.isDevBuild(),authToken:ve.getAuthToken()||"",version:chrome.runtime.getManifest().version,config:O.getOtelClientConfig()}}),()=>Td(void 0,void 0,void 0,(function*(){O.isPlatformMismatch()?d("Skipping Cloud Safe Network check due to platform mismatch"):yield pe.setInsideCloudSafeNetworkStatus()})),()=>{O.setFallbackState(!1)},()=>{wd.isNewBrowserSession&&(0,a.dd)()},()=>ve.clearPartialFailedCache(),()=>pe.updateOffscreenConfig(),()=>od.updateDeviceManagement(),()=>cd.updateContentAwareStatus(),()=>lt.updateChatConfigInfo(),e=>$.updateActiveConfigurations(e),e=>Td(void 0,void 0,void 0,(function*(){const n=!!O.hasActiveClass();oe.registerCallbacks(),n?($.resetScreenshotUploadInterval(),l("A classroom is active, resetting screenshot upload interval")):!n&&wd.hadActiveClassBeforeUpdate&&l("No classrooms are active."),!wd.hadActiveClassBeforeUpdate&&n&&(!k.isCompanionAvailable()||O.restrictedAppsEmpty())&&(l("Class has transitioned to active state. Capturing the initial screenshot.",e),$.captureTabAndSend()),yield Ke.updateDelegationStatus(),chrome.runtime.sendMessage({greeting:t.lA.ReloadPopUp}),wd.hadActiveClassBeforeUpdate!==n&&(yield chrome.tabs.query({})).forEach((e=>{void 0!==e.id&&rt.showBubble(e.id)})),O.getClassroomChatEnabled()&&(chrome.runtime.sendMessage({type:"CHAT_CONFIG_UPDATE",classRooms:wd.getClassRoomsConfigurations()}),(yield chrome.tabs.query({})).forEach((e=>{void 0!==e.id&&rt.showBubble(e.id)})))})),()=>ct.setCloseTimeouts(),e=>dt.process(e),()=>Ke.updateDelegationStatus(),()=>{wd.isNewBrowserSession=!1,wd.setLoadingConfig(!1)},()=>{const e=O.getFzBoxPollingIntervalData();e.updated&&wd.setAlarmSchedulerForFzboxPolling(e.currentValue)},()=>chrome.runtime.sendMessage({greeting:t.lA.PopupIsNotReloading})],wd.init(),yd=void 0,vd=void 0,kd=function*(){yield O.waitTillConfigLoaded(),(0,g.Rt)({applianceId:O.getApplianceId(),userIdentifier:O.getUserInformation().identifier})},new((bd=void 0)||(bd=Promise))((function(e,t){function n(e){try{i(kd.next(e))}catch(e){t(e)}}function r(e){try{i(kd.throw(e))}catch(e){t(e)}}function i(t){var i;t.done?e(t.value):(i=t.value,i instanceof bd?i:new bd((function(e){e(i)}))).then(n,r)}i((kd=kd.apply(yd,vd||[])).next())}))})()})();