{"version":3,"file":"593-58d3e1685be085ae07a6.js","mappings":"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","sources":["webpack://voresby.web/./Scripts/api/index.ts","webpack://voresby.web/./Scripts/components/forms/email-subscribe-form.tsx","webpack://voresby.web/./Scripts/components/subscribe-modal.tsx","webpack://voresby.web/./Scripts/cookieconsent.ts","webpack://voresby.web/./node_modules/jose/dist/browser/lib/buffer_utils.js","webpack://voresby.web/./node_modules/jose/dist/browser/util/errors.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/webcrypto.js","webpack://voresby.web/./node_modules/jose/dist/browser/jwks/remote.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/random.js","webpack://voresby.web/./node_modules/jose/dist/browser/jwe/flattened/encrypt.js","webpack://voresby.web/./node_modules/jose/dist/browser/util/decode_jwt.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/base64url.js","webpack://voresby.web/./node_modules/jose/dist/browser/lib/is_object.js","webpack://voresby.web/./Scripts/components/forms/confirm-subscription-form.tsx","webpack://voresby.web/./Scripts/components/email-subscription/confirm-subscription-modal.tsx","webpack://voresby.web/./Scripts/util/is-first-page-view.ts","webpack://voresby.web/./Scripts/features/newsletter-popups/index.ts","webpack://voresby.web/./Scripts/features/newsletter-popups/one-tap/google-one-tap.tsx","webpack://voresby.web/./Scripts/util/fb.ts","webpack://voresby.web/./Scripts/util/gtm.ts","webpack://voresby.web/./node_modules/core-js/internals/create-property.js","webpack://voresby.web/./node_modules/core-js/modules/es.object.from-entries.js"],"sourcesContent":["import Cookies from \"js-cookie\";\r\nimport { SubscribeForm, SubscriptionApi } from \"../lib-api\";\r\nimport { CookieKeys } from \"../util/cookie\";\r\nimport { trackGaEvent } from \"../util/gtm\";\r\nimport { trackEventFbLead } from \"../util/fb\";\r\nimport { apiConfiguration } from \"../api-configuration\";\r\nimport clientConfiguration from \"../client-configuration\";\r\n\r\nconst subscriptionApi = new SubscriptionApi(apiConfiguration);\r\n\r\nexport const api = {\r\n subscribeToNewsletter: async (values: SubscribeForm, location: string) => {\r\n await subscriptionApi.apiSubscriptionsPut({\r\n subscribeForm: values,\r\n });\r\n Cookies.set(CookieKeys.EmailSubscribed, \"true\", { expires: 365 });\r\n\r\n trackGaEvent(\r\n \"on_newsletter_subscribe\",\r\n {\r\n in_section: location,\r\n },\r\n {\r\n email: values.email,\r\n city: clientConfiguration.site.name,\r\n country: \"Danmark\",\r\n }\r\n );\r\n trackEventFbLead(\"Newsletter\");\r\n },\r\n};\r\n","import { SubscribeForm } from \"../../lib-api\";\r\nimport React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { object, string } from \"yup\";\r\nimport { Form, Button } from \"react-bootstrap\";\r\nimport { api } from \"../../api\";\r\n\r\nenum SubmitState {\r\n None,\r\n Submitted,\r\n Error,\r\n}\r\n\r\nexport const EmailSubscribeForm = (props: {\r\n location: string;\r\n onSubscribed?: () => void;\r\n hasAutofocus: boolean;\r\n}) => {\r\n const [submitState, setSubmitState] = useState(SubmitState.None);\r\n\r\n const {\r\n values,\r\n errors,\r\n isSubmitting,\r\n handleChange,\r\n handleSubmit,\r\n submitForm,\r\n } = useFormik({\r\n initialValues: {\r\n name: \"\",\r\n email: \"\",\r\n },\r\n validationSchema: object({\r\n email: string().required().email(),\r\n name: string().max(100),\r\n }),\r\n onSubmit: async (values) => {\r\n try {\r\n await api.subscribeToNewsletter(values, props.location);\r\n setSubmitState(SubmitState.Submitted);\r\n if (props.onSubscribed != null) {\r\n props.onSubscribed();\r\n }\r\n } catch (e) {\r\n setSubmitState(SubmitState.Error);\r\n }\r\n },\r\n });\r\n\r\n return (\r\n
\r\n {submitState != SubmitState.Submitted && (\r\n
\r\n \r\n Email\r\n \r\n \r\n \r\n Tilmeld\r\n \r\n \r\n )}\r\n {submitState == SubmitState.Error && (\r\n
\r\n Ups, der opstod en fejl.\r\n
\r\n submitForm()}>\r\n Prøv igen...\r\n \r\n
\r\n )}\r\n {submitState == SubmitState.Submitted && (\r\n
Tak for din tilmelding.
\r\n )}\r\n
\r\n );\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport clientConfiguration from \"../client-configuration\";\r\nimport Cookies from \"js-cookie\";\r\nimport { EmailSubscribeForm } from \"../components/forms/email-subscribe-form\";\r\nimport { CookieKeys } from \"../util/cookie\";\r\nimport { CampaignApi } from \"../lib-api/apis/CampaignApi\";\r\nimport { apiConfiguration } from \"../api-configuration\";\r\nimport { CampaignBookingDto } from \"../lib-api\";\r\nimport { createRoot, Root } from \"react-dom/client\";\r\n\r\nconst SlideUpContainer = styled(\"div\")({\r\n position: \"fixed\",\r\n zIndex: 20,\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n transition: \"linear 0.1s\",\r\n pointerEvents: \"none\",\r\n});\r\n\r\nconst BoxContainer = styled.div({\r\n margin: \"auto\",\r\n maxWidth: \"400px\",\r\n});\r\n\r\nconst SlideUpBox = styled.div({\r\n backgroundColor: \"white\",\r\n pointerEvents: \"all\",\r\n border: \"1px solid #333\",\r\n position: \"relative\",\r\n marginLeft: \"25px\",\r\n marginRight: \"25px\",\r\n});\r\n\r\nconst CornerIcon = styled.div({\r\n border: \"0\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"#D03822\",\r\n color: \"#FFF\",\r\n padding: \"10px\",\r\n position: \"absolute\",\r\n top: \"-30px\",\r\n left: \"-30px\",\r\n fontSize: \"12px\",\r\n textAlign: \"center\",\r\n});\r\n\r\nconst api = new CampaignApi(apiConfiguration);\r\n\r\nconst getPreview = async (id: string) => {\r\n const preview = await api.getCampaignBookingAsync({ id });\r\n if (preview) {\r\n return preview;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getCampaign = async () => {\r\n const campaign = await api.getActiveCampaignBookingBySiteAsync();\r\n\r\n if (campaign) {\r\n return campaign;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst SubscribeModal: React.FC<{\r\n root: Root;\r\n container: HTMLElement;\r\n onDismiss: (didSubscribe: boolean) => void;\r\n location?: string;\r\n campaignId?: string;\r\n}> = (props) => {\r\n const [shown, setShown] = useState(false);\r\n\r\n const detach = (didSubscribe: boolean) => {\r\n props.root.unmount();\r\n props.container.parentNode?.removeChild(props.container);\r\n\r\n if (didSubscribe) {\r\n Cookies.set(CookieKeys.EmailSubscribed, \"true\", { expires: 365 });\r\n } else {\r\n Cookies.set(CookieKeys.SuppressSlideUp, \"true\", { expires: 3 });\r\n }\r\n\r\n props.onDismiss(didSubscribe);\r\n };\r\n\r\n const [campaign, setCampaign] = useState();\r\n\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n if (props.campaignId) {\r\n const result = await getPreview(props.campaignId);\r\n\r\n if (result) {\r\n setCampaign(result);\r\n }\r\n } else {\r\n //ID is not set\r\n //setCampaign(await getCampaign());\r\n }\r\n } catch (e) {\r\n //ID is invalid\r\n try {\r\n //setCampaign(await getCampaign());\r\n } catch (e) {\r\n setCampaign(undefined);\r\n }\r\n }\r\n setShown(true);\r\n })();\r\n }, [props.campaignId]);\r\n\r\n return (\r\n <>\r\n e.stopPropagation()}\r\n >\r\n \r\n \r\n {campaign ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n detach(false)}\r\n className=\"close pl-3 pb-3 text-primary\"\r\n style={{ opacity: 1 }}\r\n aria-label=\"Close\"\r\n >\r\n ×\r\n \r\n {campaign ? (\r\n
\r\n ) : (\r\n
Modtag gratis nyheder fra {clientConfiguration.site.name}
\r\n )}\r\n\r\n {campaign ? (\r\n

\r\n ) : (\r\n

\r\n Tilmeld dig VORES nyhedsbrev og få nyheder og lokaltilbud\r\n direkte i indbakken hver uge.\r\n

\r\n )}\r\n {\r\n setTimeout(() => {\r\n detach(true);\r\n }, 1500);\r\n }}\r\n hasAutofocus={true}\r\n />\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nlet isModalVisible = false;\r\n\r\nexport const showSubscribeModal = (\r\n location?: string,\r\n onDismis?: (didSubscribe: boolean) => void,\r\n campaignId?: string\r\n) => {\r\n if (!isModalVisible) {\r\n const containerElement = document.createElement(\"div\");\r\n document.body.appendChild(containerElement);\r\n const root = createRoot(containerElement);\r\n root.render(\r\n {\r\n isModalVisible = false;\r\n if (onDismis) {\r\n onDismis(didSubscribe);\r\n }\r\n }}\r\n location={location}\r\n campaignId={campaignId}\r\n />\r\n );\r\n\r\n isModalVisible = true;\r\n }\r\n};\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable no-var */\r\nimport clientConfiguration from \"./client-configuration\";\r\nimport { isNo3rdparty } from \"./util/browser-detection\";\r\n\r\nlet fbLoaded = false;\r\nlet gtmLoaded = false;\r\n\r\ndeclare const fbq: any;\r\nconst loadFb = () => {\r\n console.log(\"loadFb\");\r\n if (fbLoaded) return;\r\n (function (f: any, b: any, e: any, v: any, n?: any, t?: any, s?: any) {\r\n if (f.fbq) return;\r\n n = f.fbq = function () {\r\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\r\n };\r\n if (!f._fbq) f._fbq = n;\r\n n.push = n;\r\n n.loaded = !0;\r\n n.version = \"2.0\";\r\n n.queue = [];\r\n t = b.createElement(e);\r\n t.async = !0;\r\n t.src = v;\r\n s = b.getElementsByTagName(e)[0];\r\n s.parentNode.insertBefore(t, s);\r\n })(\r\n window,\r\n document,\r\n \"script\",\r\n \"https://connect.facebook.net/en_US/fbevents.js\"\r\n );\r\n fbq(\"init\", \"653644375453926\");\r\n fbq(\"track\", \"PageView\", { hostname: location.hostname });\r\n\r\n //const appId = \"603210533761694\";\r\n //const script = document.createElement(\"script\");\r\n //script.async = true;\r\n //script.crossOrigin = \"anonymous\"\r\n //script.src = `https://connect.facebook.net/da_DK/sdk.js#xfbml=1&version=v6.0&appId=${appId}&autoLogAppEvents=1`\r\n //document.getElementsByTagName(\"script\")[0].parentNode.insertBefore(script, document.getElementsByTagName(\"script\")[0]);\r\n fbLoaded = true;\r\n};\r\n\r\ninterface Window {\r\n _sp_queue: any[];\r\n _sp_: {\r\n config: {\r\n accountId: number;\r\n baseEndpoint: string;\r\n propertyHref: string;\r\n gdpr: any;\r\n events: {\r\n onMessageChoiceSelect: Function;\r\n onMessageReady: Function;\r\n onMessageChoiceError: Function;\r\n onPrivacyManagerAction: Function;\r\n onPMCancel: Function;\r\n onMessageReceiveData: Function;\r\n onSPPMObjectReady: Function;\r\n onConsentReady: (consentUUID: string, euconsent: string) => void;\r\n onError: Function;\r\n };\r\n };\r\n };\r\n}\r\n\r\ninterface SpecificConsent {\r\n purpose?: string;\r\n allowed: boolean;\r\n}\r\n\r\ninterface Concept {\r\n specificConsent: SpecificConsent[];\r\n}\r\n\r\nconst loadGtm = () => {\r\n if (gtmLoaded) return;\r\n\r\n (function (w, d, s, l, i) {\r\n w[l] = w[l] || [];\r\n w[l].push({\r\n \"gtm.start\": new Date().getTime(),\r\n event: \"gtm.js\",\r\n });\r\n const f = d.getElementsByTagName(s)[0],\r\n j: any = d.createElement(s),\r\n dl = l != \"dataLayer\" ? \"&l=\" + l : \"\";\r\n j.async = true;\r\n j.src = \"https://www.googletagmanager.com/gtm.js?id=\" + i + dl;\r\n f.parentNode!.insertBefore(j, f);\r\n })(window, document, \"script\", \"dataLayer\", clientConfiguration.gtmId);\r\n gtmLoaded = true;\r\n};\r\n\r\nfunction generateDeferredPromise() {\r\n let resolve, reject;\r\n const promise = new Promise((res, rej) => {\r\n [resolve, reject] = [res, rej];\r\n });\r\n return { promise, reject, resolve };\r\n}\r\n\r\nconst { promise, resolve } = generateDeferredPromise();\r\n\r\nexport const cookieDecision = promise;\r\n\r\ndeclare const concept: Concept;\r\n\r\ndeclare const window: Window;\r\n\r\nwindow._sp_queue = [];\r\nwindow._sp_ = {\r\n config: {\r\n accountId: 1423,\r\n baseEndpoint: \"https://cdn.privacy-mgmt.com\",\r\n propertyHref: \"https://vores.dk\",\r\n gdpr: {},\r\n events: {\r\n onMessageChoiceSelect: function () {\r\n //console.log(\"[event] onMessageChoiceSelect\", arguments);\r\n },\r\n onMessageReady: function () {\r\n //console.log(\"[event] onMessageReady\", arguments);\r\n },\r\n onMessageChoiceError: function () {\r\n //console.log(\"[event] onMessageChoiceError\", arguments);\r\n },\r\n onPrivacyManagerAction: function () {\r\n //console.log(\"[event] onPrivacyManagerAction\", arguments);\r\n },\r\n onPMCancel: function () {\r\n //console.log(\"[event] onPMCancel\", arguments);\r\n },\r\n onMessageReceiveData: function () {\r\n //console.log(\"[event] onMessageReceiveData\", arguments);\r\n },\r\n onSPPMObjectReady: function () {\r\n //console.log(\"[event] onSPPMObjectReady\", arguments);\r\n },\r\n onConsentReady: function (consentUUID, euconsent) {\r\n //console.log(\"[event] onConsentReady\", arguments);\r\n //console.log(consentUUID);\r\n //console.log(euconsent);\r\n\r\n const fbConsent = concept.specificConsent.find(\r\n (c) => c.purpose === \"Measure content performance\"\r\n );\r\n\r\n if (fbConsent) {\r\n loadFb();\r\n }\r\n\r\n //Always load gtm\r\n if (!isNo3rdparty()) {\r\n loadGtm();\r\n }\r\n\r\n resolve();\r\n },\r\n onError: function () {\r\n //console.log(\"[event] onError\", arguments);\r\n },\r\n },\r\n },\r\n};\r\n\r\n// loadGtm();\r\n\r\nconst script = document.createElement(\"script\");\r\nscript.src =\r\n \"https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js\";\r\nscript.async = true;\r\ndocument.head.appendChild(script);\r\n","import digest from '../runtime/digest.js';\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nexport function p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nexport async function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await digest('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","export class JOSEError extends Error {\n static get code() {\n return 'ERR_JOSE_GENERIC';\n }\n constructor(message) {\n super(message);\n this.code = 'ERR_JOSE_GENERIC';\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static get code() {\n return 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JWTExpired extends JOSEError {\n static get code() {\n return 'ERR_JWT_EXPIRED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_EXPIRED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n static get code() {\n return 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n}\nexport class JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_NOT_SUPPORTED';\n }\n static get code() {\n return 'ERR_JOSE_NOT_SUPPORTED';\n }\n}\nexport class JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_DECRYPTION_FAILED';\n this.message = 'decryption operation failed';\n }\n static get code() {\n return 'ERR_JWE_DECRYPTION_FAILED';\n }\n}\nexport class JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_INVALID';\n }\n static get code() {\n return 'ERR_JWE_INVALID';\n }\n}\nexport class JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_INVALID';\n }\n static get code() {\n return 'ERR_JWS_INVALID';\n }\n}\nexport class JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWT_INVALID';\n }\n static get code() {\n return 'ERR_JWT_INVALID';\n }\n}\nexport class JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWK_INVALID';\n }\n static get code() {\n return 'ERR_JWK_INVALID';\n }\n}\nexport class JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_INVALID';\n }\n static get code() {\n return 'ERR_JWKS_INVALID';\n }\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_NO_MATCHING_KEY';\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_NO_MATCHING_KEY';\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n }\n}\nSymbol.asyncIterator;\nexport class JWKSTimeout extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_TIMEOUT';\n this.message = 'request timed out';\n }\n static get code() {\n return 'ERR_JWKS_TIMEOUT';\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n this.message = 'signature verification failed';\n }\n static get code() {\n return 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n }\n}\n","export default crypto;\nexport const isCryptoKey = (key) => key instanceof CryptoKey;\n","import fetchJwks from '../runtime/fetch_jwks.js';\nimport { JWKSInvalid, JWKSNoMatchingKey } from '../util/errors.js';\nimport { isJWKSLike, LocalJWKSet } from './local.js';\nfunction isCloudflareWorkers() {\n return (typeof WebSocketPair !== 'undefined' ||\n (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||\n (typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));\n}\nlet USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'jose';\n const VERSION = 'v5.2.0';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nclass RemoteJWKSet extends LocalJWKSet {\n constructor(url, options) {\n super({ keys: [] });\n this._jwks = undefined;\n if (!(url instanceof URL)) {\n throw new TypeError('url must be an instance of URL');\n }\n this._url = new URL(url.href);\n this._options = { agent: options?.agent, headers: options?.headers };\n this._timeoutDuration =\n typeof options?.timeoutDuration === 'number' ? options?.timeoutDuration : 5000;\n this._cooldownDuration =\n typeof options?.cooldownDuration === 'number' ? options?.cooldownDuration : 30000;\n this._cacheMaxAge = typeof options?.cacheMaxAge === 'number' ? options?.cacheMaxAge : 600000;\n }\n coolingDown() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cooldownDuration\n : false;\n }\n fresh() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cacheMaxAge\n : false;\n }\n async getKey(protectedHeader, token) {\n if (!this._jwks || !this.fresh()) {\n await this.reload();\n }\n try {\n return await super.getKey(protectedHeader, token);\n }\n catch (err) {\n if (err instanceof JWKSNoMatchingKey) {\n if (this.coolingDown() === false) {\n await this.reload();\n return super.getKey(protectedHeader, token);\n }\n }\n throw err;\n }\n }\n async reload() {\n if (this._pendingFetch && isCloudflareWorkers()) {\n this._pendingFetch = undefined;\n }\n const headers = new Headers(this._options.headers);\n if (USER_AGENT && !headers.has('User-Agent')) {\n headers.set('User-Agent', USER_AGENT);\n this._options.headers = Object.fromEntries(headers.entries());\n }\n this._pendingFetch || (this._pendingFetch = fetchJwks(this._url, this._timeoutDuration, this._options)\n .then((json) => {\n if (!isJWKSLike(json)) {\n throw new JWKSInvalid('JSON Web Key Set malformed');\n }\n this._jwks = { keys: json.keys };\n this._jwksTimestamp = Date.now();\n this._pendingFetch = undefined;\n })\n .catch((err) => {\n this._pendingFetch = undefined;\n throw err;\n }));\n await this._pendingFetch;\n }\n}\nexport function createRemoteJWKSet(url, options) {\n const set = new RemoteJWKSet(url, options);\n return async function (protectedHeader, token) {\n return set.getKey(protectedHeader, token);\n };\n}\n","import crypto from './webcrypto.js';\nexport default crypto.getRandomValues.bind(crypto);\n","import { encode as base64url } from '../../runtime/base64url.js';\nimport encrypt from '../../runtime/encrypt.js';\nimport generateIv from '../../lib/iv.js';\nimport encryptKeyManagement from '../../lib/encrypt_key_management.js';\nimport { JOSENotSupported, JWEInvalid } from '../../util/errors.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport { encoder, decoder, concat } from '../../lib/buffer_utils.js';\nimport validateCrit from '../../lib/validate_crit.js';\nexport const unprotected = Symbol();\nexport class FlattenedEncrypt {\n constructor(plaintext) {\n if (!(plaintext instanceof Uint8Array)) {\n throw new TypeError('plaintext must be an instance of Uint8Array');\n }\n this._plaintext = plaintext;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._sharedUnprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._sharedUnprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n async encrypt(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {\n throw new JWEInvalid('either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {\n throw new JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...this._sharedUnprotectedHeader,\n };\n validateCrit(JWEInvalid, new Map(), options?.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n let encryptedKey;\n if (alg === 'dir') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Encryption');\n }\n }\n else if (alg === 'ECDH-ES') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Key Agreement');\n }\n }\n let cek;\n {\n let parameters;\n ({ cek, encryptedKey, parameters } = await encryptKeyManagement(alg, enc, key, this._cek, this._keyManagementParameters));\n if (parameters) {\n if (options && unprotected in options) {\n if (!this._unprotectedHeader) {\n this.setUnprotectedHeader(parameters);\n }\n else {\n this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };\n }\n }\n else {\n if (!this._protectedHeader) {\n this.setProtectedHeader(parameters);\n }\n else {\n this._protectedHeader = { ...this._protectedHeader, ...parameters };\n }\n }\n }\n }\n this._iv || (this._iv = generateIv(enc));\n let additionalData;\n let protectedHeader;\n let aadMember;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(base64url(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n if (this._aad) {\n aadMember = base64url(this._aad);\n additionalData = concat(protectedHeader, encoder.encode('.'), encoder.encode(aadMember));\n }\n else {\n additionalData = protectedHeader;\n }\n const { ciphertext, tag } = await encrypt(enc, this._plaintext, cek, this._iv, additionalData);\n const jwe = {\n ciphertext: base64url(ciphertext),\n iv: base64url(this._iv),\n tag: base64url(tag),\n };\n if (encryptedKey) {\n jwe.encrypted_key = base64url(encryptedKey);\n }\n if (aadMember) {\n jwe.aad = aadMember;\n }\n if (this._protectedHeader) {\n jwe.protected = decoder.decode(protectedHeader);\n }\n if (this._sharedUnprotectedHeader) {\n jwe.unprotected = this._sharedUnprotectedHeader;\n }\n if (this._unprotectedHeader) {\n jwe.header = this._unprotectedHeader;\n }\n return jwe;\n }\n}\n","import { decode as base64url } from './base64url.js';\nimport { decoder } from '../lib/buffer_utils.js';\nimport isObject from '../lib/is_object.js';\nimport { JWTInvalid } from './errors.js';\nexport function decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new JWTInvalid('Invalid JWT');\n if (!payload)\n throw new JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = base64url(payload);\n }\n catch {\n throw new JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(decoder.decode(decoded));\n }\n catch {\n throw new JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!isObject(result))\n throw new JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nexport const encodeBase64 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n};\nexport const encode = (input) => {\n return encodeBase64(input).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nexport const decodeBase64 = (encoded) => {\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n};\nexport const decode = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return decodeBase64(encoded);\n }\n catch {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","import { useFormik } from \"formik\";\r\nimport React, { } from \"react\";\r\nimport { Button, Form } from \"react-bootstrap\";\r\nimport { Schema, object, string } from \"yup\";\r\nimport voresConfiguration from \"../../client-configuration\";\r\nimport { api } from \"../../api\";\r\nimport { SubscribeForm } from \"../../lib-api\";\r\n\r\n\r\n\r\nconst validationSchema: Schema = object().shape({\r\n email: string().required(),\r\n name: string(),\r\n source: string()\r\n});\r\n\r\nexport const ConfirmSubscriptionForm: React.FC<{ name: string; email: string; close: (confirmed: boolean) => void }> = ({ name, email, close }) => {\r\n\r\n const { handleSubmit, isSubmitting } = useFormik({\r\n initialValues: {\r\n email: email,\r\n name: name,\r\n source: \"Website-OneTap\"\r\n },\r\n validationSchema: validationSchema,\r\n onSubmit: async (values) => {\r\n await api.subscribeToNewsletter(values, \"one-tap\");\r\n close(true);\r\n }\r\n })\r\n\r\n return (\r\n
\r\n \r\n

\r\n Hej {name}
\r\n
\r\n Du modtager fremover nyhedsbrevet for {voresConfiguration.site.name}. Nyhedsbrevet er gratis, og kan til enhver tid afmeldes.\r\n

\r\n
\r\n \r\n \r\n Nyhedsbrevet kan indeholde tilbud fra lokale erhvervsdrivende, og partnere. \r\n Læs brugerbetingelser\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { ConfirmSubscriptionForm } from \"../forms/confirm-subscription-form\";\r\n\r\n\r\nexport const ConfirmSubscriptionModal: React.FC<{ name: string; email: string; onDecision: (confirmed: boolean) => void }> = ({ name, email, onDecision }) => {\r\n const [show, setShow] = useState(true);\r\n\r\n const handleClose = useCallback((confirmed: boolean) => {\r\n setShow(false);\r\n onDecision(confirmed);\r\n }, [setShow]);\r\n\r\n return (\r\n handleClose(false)} backdrop=\"static\">\r\n \r\n Bekræft tilmelding\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { Cookie, CookieKeys } from \"../util/cookie\";\r\n\r\nlet _firstPageView = true;\r\nif (Cookie.get(CookieKeys.IsNewVisitor) == \"false\") {\r\n _firstPageView = false;\r\n}\r\nCookie.set(CookieKeys.IsNewVisitor, \"false\", { expires: 365 });\r\n\r\nexport const isFirstPageView = () => {\r\n return _firstPageView;\r\n}","import { cookieDecision } from \"../../cookieconsent\";\r\nimport { Cookie, CookieKeys } from \"../../util/cookie\";\r\nimport { loadOneTap } from \"./one-tap/google-one-tap\";\r\nimport { showSubscribeModal } from \"../../components/subscribe-modal\";\r\nimport { isFirstPageView } from \"../../util/is-first-page-view\";\r\n\r\n\r\nconst shouldSuppress = Cookie.get(CookieKeys.SuppressSlideUp) == \"true\";\r\nconst alreadySubscribed = (Cookie.get(CookieKeys.EmailSubscribed) == \"true\");\r\nconst query = new URLSearchParams(window.location.search);\r\nconst forceShow = query.get(\"showsub\") !== null;\r\n//const previewId = query.get(\"id\");\r\n\r\ncookieDecision.then(() => {\r\n if (forceShow) {\r\n return showSubscribeModal();\r\n }\r\n\r\n if (!shouldSuppress && !alreadySubscribed) {\r\n if (isFirstPageView()) {\r\n loadOneTap();\r\n }\r\n else {\r\n setTimeout(() => {\r\n showSubscribeModal();\r\n }, 16 * 1000);\r\n }\r\n }\r\n});\r\n\r\n\r\n","import React from \"react\";\r\nimport * as jose from 'jose';\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { JWTPayload } from \"jose\";\r\nimport { trackGaEvent } from \"../../../util/gtm\";\r\nimport voresConfiguration from \"../../../client-configuration\";\r\nimport { Cookie, CookieKeys } from \"../../../util/cookie\";\r\nimport { ConfirmSubscriptionModal } from \"../../../components/email-subscription/confirm-subscription-modal\";\r\n\r\nconst loadModal = (name: string, email: string) => {\r\n const container = document.createElement(\"div\");\r\n container.id = \"onetap-subscribe-modal\";\r\n\r\n const root = createRoot(container);\r\n\r\n const onDecision = (confirmed: boolean) => {\r\n trackGaEvent(\"on_one_tap\", {\r\n action: confirmed ? \"confirm_subscription\" : \"deny_subscription\"\r\n });\r\n\r\n root.unmount();\r\n\r\n Cookie.set(CookieKeys.SuppressSlideUp, \"true\", { expires: 3 });\r\n }\r\n\r\n root.render();\r\n\r\n document.body.appendChild(container);\r\n\r\n trackGaEvent(\"on_one_tap\", {\r\n action: \"show_confirm_modal\"\r\n });\r\n}\r\n\r\nexport const loadOneTap = () => {\r\n const scriptSrc = \"https://accounts.google.com/gsi/client\";\r\n\r\n const scriptElement = document.createElement(\"script\");\r\n scriptElement.defer = true;\r\n scriptElement.async = true;\r\n\r\n const handleCredentialResponse = (e) => {\r\n const data = jose.decodeJwt(e.credential) as JWTPayload & { given_name: string; email: string };\r\n loadModal(data.given_name, data.email);\r\n\r\n }\r\n\r\n scriptElement.onload = () => {\r\n window.google?.accounts?.id?.initialize({\r\n client_id: voresConfiguration.googleSignInClientId,\r\n callback: handleCredentialResponse,\r\n context: \"use\",\r\n cancel_on_tap_outside: false,\r\n use_fedcm_for_prompt: true\r\n });\r\n window.google?.accounts?.id?.prompt((moment) => {\r\n console.log(moment);\r\n });\r\n\r\n trackGaEvent(\"on_one_tap\", {\r\n action: \"prompt\"\r\n });\r\n }\r\n\r\n scriptElement.src = scriptSrc;\r\n document.body.appendChild(scriptElement);\r\n}\r\n\r\n\r\n\r\n","declare const window: {\r\n fbq: any;\r\n};\r\n\r\nexport function trackEventFbLead(\r\n category?: any\r\n) {\r\n if (\"fbq\" in window) {\r\n window.fbq('track', \"Lead\", { content_category: category });\r\n }\r\n}","declare const window: {\r\n dataLayer: any[];\r\n};\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 Event Tag */\r\ntype validEvents =\r\n | \"on_cookie_consent\"\r\n | \"on_company_contact\"\r\n | \"on_facebook_carousel_clicked\"\r\n | \"on_shared_with_friend\"\r\n | \"on_content_task_feedback\"\r\n | \"on_newsletter_subscribe\"\r\n | \"on_external_link_clicked\"\r\n | \"on_questionnaire_submitted\"\r\n | \"on_one_tap\"\r\n | \"on_kpi\"\r\n | \"lead_generated\";\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 Event Tag, And in CustomDefinitions IN GA4 */\r\ntype validParameters =\r\n | \"in_section\"\r\n | \"action\"\r\n | \"href\"\r\n | \"variant\"\r\n | \"lead_type\"\r\n | \"customer_id\"\r\n | \"customer_name\"\r\n | \"user_data\";\r\n\r\ntype validUserData = \"email\" | \"phone\" | \"zip\" | \"city\" | \"country\";\r\n\r\nexport function trackGaEvent(\r\n type: validEvents,\r\n parameters?: { [key in validParameters]?: string | number },\r\n userData?: { [key in validUserData]?: string | number },\r\n callback?: (id: string) => void\r\n) {\r\n window.dataLayer = window.dataLayer || [];\r\n //convert parameter keys to dlv_* for Tag Manager.\r\n const convertedParams = convertParams(parameters);\r\n\r\n const event: any = {\r\n event: type,\r\n ...convertedParams,\r\n };\r\n\r\n if (userData) {\r\n event.user_data = userData;\r\n }\r\n\r\n if (callback) {\r\n event.eventCallback = callback;\r\n }\r\n\r\n window.dataLayer.push(event);\r\n}\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 DLV */\r\ntype validDataLayerVariables = \"page_type\" | \"category\";\r\n\r\nexport function setDataLayerVariables(parameters: {\r\n [key in validDataLayerVariables]?: string | number;\r\n}) {\r\n window.dataLayer = window.dataLayer || [];\r\n //convert parameter keys to dlv_* for Tag Manager.\r\n const convertedParams = convertParams(parameters);\r\n window.dataLayer.push({\r\n ...convertedParams,\r\n });\r\n}\r\n\r\nfunction convertParams(parameters?: { [key: string]: string | number }) {\r\n return parameters\r\n ? Object.fromEntries(\r\n Object.entries(parameters).map(([key, value]) => [`dlv_${key}`, value])\r\n )\r\n : {};\r\n}\r\n\r\nexport function trackVirtualPageView(url: string) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: \"GAVirtualPageView\",\r\n virtualPageUrl: url,\r\n });\r\n}\r\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n"],"names":["_subscribeToNewsletter","subscriptionApi","SubscriptionApi","apiConfiguration","api","subscribeToNewsletter","values","location","apiSubscriptionsPut","subscribeForm","Cookies","set","CookieKeys","EmailSubscribed","expires","trackGaEvent","in_section","email","city","clientConfiguration","site","name","country","trackEventFbLead","_x","_x2","apply","arguments","SubmitState","EmailSubscribeForm","props","_onSubmit","submitState","setSubmitState","useState","None","errors","isSubmitting","handleChange","handleSubmit","submitForm","useFormik","initialValues","validationSchema","object","string","required","max","onSubmit","Submitted","onSubscribed","e","Error","React","Form","Group","controlId","Label","srOnly","Control","isInvalid","type","placeholder","value","disabled","onChange","autoFocus","hasAutofocus","Button","variant","block","className","onClick","SlideUpContainer","styled","position","zIndex","left","right","top","transition","pointerEvents","BoxContainer","div","margin","maxWidth","SlideUpBox","backgroundColor","border","marginLeft","marginRight","CornerIcon","borderRadius","color","padding","fontSize","textAlign","CampaignApi","getPreview","_ref","_asyncToGenerator","id","getCampaignBookingAsync","SubscribeModal","shown","setShown","detach","didSubscribe","_props$container$pare","root","unmount","container","parentNode","removeChild","SuppressSlideUp","onDismiss","campaign","setCampaign","useEffect","campaignId","result","style","transform","stopPropagation","dangerouslySetInnerHTML","__html","prize","opacity","title","body","setTimeout","isModalVisible","showSubscribeModal","onDismis","containerElement","document","createElement","appendChild","createRoot","render","fbLoaded","gtmLoaded","promise","resolve","reject","Promise","res","rej","generateDeferredPromise","cookieDecision","window","_sp_queue","_sp_","config","accountId","baseEndpoint","propertyHref","gdpr","events","onMessageChoiceSelect","onMessageReady","onMessageChoiceError","onPrivacyManagerAction","onPMCancel","onMessageReceiveData","onSPPMObjectReady","onConsentReady","consentUUID","euconsent","f","b","n","t","s","concept","specificConsent","find","c","purpose","console","log","fbq","callMethod","queue","push","_fbq","loaded","version","async","src","getElementsByTagName","insertBefore","hostname","isNo3rdparty","w","d","l","i","Date","getTime","event","j","gtmId","onError","script","head","TextEncoder","TextDecoder","code","constructor","message","super","this","captureStackTrace","Symbol","asyncIterator","USER_AGENT","getRandomValues","bind","navigator","userAgent","startsWith","decodeJwt","jwt","payload","length","split","decoded","input","encoded","Uint8Array","decode","replace","binary","atob","bytes","charCodeAt","TypeError","JSON","parse","Object","prototype","toString","call","getPrototypeOf","proto","shape","source","ConfirmSubscriptionForm","close","voresConfiguration","Text","href","target","rel","ConfirmSubscriptionModal","onDecision","show","setShow","handleClose","useCallback","confirmed","Modal","size","onHide","backdrop","Header","closeButton","Title","Body","_firstPageView","Cookie","get","IsNewVisitor","shouldSuppress","alreadySubscribed","forceShow","URLSearchParams","search","then","loadOneTap","scriptElement","defer","handleCredentialResponse","data","jose","credential","loadModal","action","given_name","onload","_window$google","_window$google2","google","accounts","initialize","client_id","googleSignInClientId","callback","context","cancel_on_tap_outside","use_fedcm_for_prompt","prompt","moment","category","content_category","parameters","userData","dataLayer","_objectSpread","fromEntries","entries","map","key","concat","convertParams","user_data","eventCallback","toPropertyKey","definePropertyModule","createPropertyDescriptor","module","exports","propertyKey","$","iterate","createProperty","stat","iterable","obj","k","v","AS_ENTRIES"],"sourceRoot":""}