PageSourceSearch

https://www.aamuposti.fi/gravito-cmp.js

js aamuposti.fi collected 2026-09-24 18:43:27 UTC 27,456 bytes, 510 lines download raw bytes

1window.gravito = {};
2window.gravito.config = {
3  "cmp": {
4    "settings": {
5      "useTopDomain": false,
6      "catchCMPEvents": true,
7      "syncAfter": 1800,
8      "sdkVersion": 6,
9      "version": "latest",
10      "customerUniqueID": "E6180B75-EFA6-4AB9-87CB-C030F1646DEE"
11    },
12    "styles": {
13      "logoUrl": "https://cdn.media.fi/gravito/mediakonserni-keskisuomalainen.png",
14      "logoAltText": "Mediakonserni Keskisuomalainen",
15      "allowBackgroundScroll": false,
16      "isLayeredLayout": true,
17      "primaryColor": "#ffffff",
18      "secondaryColor": "#ffffff",
19      "headerColor": "#ffffff",
20      "footerColor": "#ffffff",
21      "fonts": [],
22      "focusFirstElement": true
23    },
24    "tcf": {
25      "core": {
26        "languageCode": "fi",
27        "publisherCountryCode": "FI",
28        "purposeOneTreatment": false,
29        "hideLegitimateInterest": false,
30        "legitimateInterestDefaultBehavaior": true,
31        "purposes": [
32          {
33            "type": "purposes",
34            "id": 1
35          },
36          {
37            "type": "stacks",
38            "id": 2
39          },
40          {
41            "type": "stacks",
42            "id": 10
43          },
44          {
45            "type": "stacks",
46            "id": 16
47          }
48        ],
49        "specialPurposes": [
50          1,
51          2
52        ],
53        "necessaryLegitimatePurposes": [],
54        "vendors": [
55          1,
56          10,
57          11,
58          12,
59          15,
60          16,
61          21,
62          23,
63          25,
64          28,
65          30,
66          32,
67          45,
68          50,
69          52,
70          57,
71          63,
72          69,
73          76,
74          77,
75          78,
76          91,
77          111,
78          126,
79          128,
80          129,
81          130,
82          131,
83          132,
84          138,
85          140,
86          160,
87          185,
88          205,
89          209,
90          241,
91          253,
92          264,
93          273,
94          275,
95          278,
96          290,
97          315,
98          345,
99          385,
100          394,
101          412,
102          422,
103          612,
104          686,
105          755,
106          793,
107          855,
108          919,
109          922,
110          1029,
111          1100,
112          1126,
113          1208,
114          1234,
115          1242
116        ],
117        "necessaryVendors": [],
118        "features": [
119          1,
120          2,
121          3
122        ],
123        "specialFeatures": [
124          1,
125          2
126        ],
127        "useACM": false,
128        "googleVendors": [],
129        "useGCM": true,
130        "useAdvanceGCM": true,
131        "adsConsentId": [
132          1
133        ],
134        "adsUserDataConsentId": [
135          1,
136          7
137        ],
138        "adsPersonalizationConsentId": [
139          3,
140          4
141        ],
142        "analyticsConsentId": [
143          7,
144          9,
145          10
146        ],
147        "functionalityStorageConsentId": [
148          10
149        ],
150        "functionalityStorageId": false,
151        "personalizationStorageConsentId": [
152          1,
153          4
154        ],
155        "personalizationStorageId": false,
156        "securityStorageConsentId": [
157          9
158        ],
159        "securityStorageId": true,
160        "useUET": true,
161        "nonTCFVendors": [
162          {
163            "id": 1,
164            "type": "nonTCFVendors",
165            "name": "Meta",
166            "isConsentable": false,
167            "cookiesDeclaration": []
168          },
169          {
170            "id": 2,
171            "type": "nonTCFVendors",
172            "name": "X",
173            "isConsentable": false,
174            "cookiesDeclaration": []
175          },
176          {
177            "id": 3,
178            "type": "nonTCFVendors",
179            "name": "Chartbeat",
180            "isConsentable": false,
181            "cookiesDeclaration": []
182          },
183          {
184            "id": 4,
185            "type": "nonTCFVendors",
186            "name": "Spotify",
187            "isConsentable": false,
188            "cookiesDeclaration": []
189          }
190        ],
191        "customPurposes": [
192          {
193            "id": 1,
194            "type": "customPurpose",
195            "name": "Välttämättömät evästeet",
196            "isLegitimate": false,
197            "isConsentable": false
198          },
199          {
200            "id": 2,
201            "type": "customPurpose",
202            "name": "Analytiikka- ja yleisömittausevästeet",
203            "isLegitimate": false,
204            "isConsentable": true
205          },
206          {
207            "id": 3,
208            "type": "customPurpose",
209            "name": "Mainosevästeet",
210            "isLegitimate": false,
211            "isConsentable": true
212          }
213        ],
214        "publisherRestrictions": [],
215        "cookieName": "TcString",
216        "cookieExpiry": 365,
217        "rejectAllCookieExpiry": 365,
218        "version": 11,
219        "googleTcfId": 755
220      },
221      "languages": {
222        "fi": {
223          "label": "Suomi",
224          "nonTCFVendors": [
225            {
226              "id": 1,
227              "type": "nonTCFVendors",
228              "name": "Meta",
229              "isConsentable": false,
230              "cookiesDeclaration": [],
231              "description": "Meta kerää tietoa verkkovierailusta ja sisällöistä myös Metan palveluiden ulkopuolella. Kerättyjä tietoja käytetään mainonnan kohdentamiseen. Voit antaa suostumuksesi ”<strong>Tarkoitukset ja ominaisuudet</strong>” -välilehden valinnoissa (”<strong>Mainosevästeet</strong>”).<br><br>Lue lisää: <a href=\"https://www.facebook.com/privacy/policies/cookie
231s/\">https://www.facebook.com/privacy/policies/cookies/</a>"
232            },
233            {
234              "id": 2,
235              "type": "nonTCFVendors",
236              "name": "X",
237              "isConsentable": false,
238              "cookiesDeclaration": [],
239              "description": "X (entinen Twitter) kerää tietoa verkkovierailusta ja sisällöistä myös X:n ulkopuolella. X:ää käytetään mainontaan ja kerättyjä tietoja parempaan mainonnan kohdentamiseen. Voit antaa suostumuksesi ”<strong>Tarkoitukset ja ominaisuudet</strong>” -välilehden valinnoissa (”<strong>Mainosevästeet</strong>”).<br><br>Lue lisää: <a href=\"https://x.com/en/privacy\">https://x.com/en/privacy</a>"
240            },
241            {
242              "id": 3,
243              "type": "nonTCFVendors",
244              "name": "Chartbeat",
245              "isConsentable": false,
246              "cookiesDeclaration": [],
247              "description": "Chartbeat on sisältöanalyysin työkalu, jonka avulla voimme tarkastella kullakin sivustollamme parhaillaan olevien selainten määrää sekä sivustolla liikkumista.<br><br>Lue lisää: <a href=\"https://chartbeat.com/privacy/\">https://chartbeat.com/privacy/</a>"
248            },
249            {
250              "id": 4,
251              "type": "nonTCFVendors",
252              "name": "Spotify",
253              "isConsentable": false,
254              "cookiesDeclaration": [],
255              "description": "Spotify kerää tietoja mainonnan kohdentamiseen, mainonnan tulosten mittaamiseen, attribuutioon ja raportointiin. Voit antaa suostumuksesi ”<strong>Tarkoitukset ja ominaisuudet</strong>” -välilehden valinnoissa (”<strong>Mainosevästeet</strong>”).<br><br>Lue lisää: <a href=\"https://www.spotify.com/us/legal/privacy-policy/\">https://www.spotify.com/us/legal/privacy-policy/</a>"
256            }
257          ],
258          "customPurposes": [
259            {
260              "id": 1,
261              "type": "customPurpose",
262              "name": "Välttämättömät evästeet",
263              "isLegitimate": false,
264              "isConsentable": false,
265              "description": "Nämä evästeet ovat välttämättömiä sivustomme toiminnan kannalta, ja ne ovat käytössä aina. Ilman näitä evästeitä emme voi esimerkiksi muistaa kirjautumistasi tai tässä evästesuostumustyökalussa tekemiäsi valintoja.",
266              "descriptionLegal": "Nämä evästeet ovat välttämättömiä sivustomme toiminnan kannalta, ja ne ovat käytössä aina. Ilman näitä evästeitä emme voi esimerkiksi muistaa kirjautumistasi tai tässä evästesuostumustyökalussa tekemiäsi valintoja."
267            },
268            {
269              "id": 2,
270              "type": "customPurpose",
271              "name": "Analytiikka- ja yleisömittausevästeet",
272              "isLegitimate": false,
273              "isConsentable": true,
274              "description": "Nämä evästeet auttavat meitä laskemaan sivustollamme vierailevat kävijät ja ymmärtämään, miten sivustoamme käytetään. Näitä evästeitä asettavat mm. Google (Google Analytics) ja Chartbeat.",
275              "descriptionLegal": "Nämä evästeet auttavat meitä laskemaan sivustollamme vierailevat kävijät ja ymmärtämään, miten sivustoamme käytetään. Näitä evästeitä asettavat mm. Google (Google Analytics) ja Chartbeat."
276            },
277            {
278              "id": 3,
279              "type": "customPurpose",
280              "name": "Mainosevästeet",
281              "isLegitimate": false,
282              "isConsentable": true,
283              "description": "Näiden evästeiden avulla voidaan kerätä tietoa siitä, millaisista sisällöistä ja tuotteista olet kiinnostunut. Evästeiden avulla voidaan muodostaa profiili kiinnostuksenkohteistasi ja kohdentaa sinulle mainoksia. Näitä evästeitä asettavat mm. Meta ja X (entinen Twitter).",
284              "descriptionLegal": "Näiden evästeiden avulla voidaan kerätä tietoa siitä, millaisista sisällöistä ja tuotteista olet kiinnostunut. Evästeiden avulla voidaan muodostaa profiili kiinnostuksenkohteistasi ja kohdentaa sinulle mainoksia. Näitä evästeitä asettavat mm. Meta 
284ja X (entinen Twitter)."
285            }
286          ],
287          "text": {
288            "declaration": {
289              "header": "Yleiset valinnat",
290              "title": "Tarvitsemme suostumuksesi tarjotaksemme kotimaista sisältöä",
291              "introductionText": "<strong>Mediakonserni Keskisuomalainen</strong> ja sen valikoidut <span id='partners-link'>kumppanit</span> ({VendorsCount}) käyttävät evästeitä ja käsittelevät henkilötietoja, kuten eväste- ja tai mobiilitunnisteita, kohdennetun mainonnan ja personoidun sisällön näyttämiseen, mainonnan ja sisällön mittaamiseen, yleisötutkimukseen ja palvelujen kehittämiseen. Tarkoitusten toteuttamiseksi voidaan käyttää tarkkoja sijaintitietoja ja laitteen ominaisuuksia tunnistamista varten. Voimme yhdistää evästeillä kerättyjä verkkokäyttäytymistietoja muissa yhteyksissä kerättyihin henkilötietoihin.",
292              "consentableItemDescription": "",
293              "legalFooter": "Painamalla ”<strong>Hyväksy kaikki</strong>” annat suostumuksesi yllä mainittuihin tarkoituksiin tällä sivustolla. Ilman suostumustasi sisältöä tai mainontaa ei personoida, mutta näet yhtä paljon mainontaa kuin aiemmin. Huomaathan, että erityiset tarkoitukset ovat välttämättömiä ja ovat käytössä aina. Ei-välttämättömien evästeiden asettaminen (tietojen tallentaminen laitteelle ja/tai laitteella olevien tietojen käyttö) perustuu suostumukseen, mutta joidenkin kumppanien osalta evästeillä kerätyn datan jatkokäyttö voi perustua oikeutettuun etuun. Voit tehdä tarkempia valintoja ja vastustaa oikeutettuun etuun perustuvaa käsittelyä painamalla alla ”<strong>Muokkaa valintoja</strong>” tai siirtymällä ”<strong>Yksityiskohtaiset valinnat</strong>” -välilehdelle. Voit myöhemmin muuttaa valintojasi, kuten peruuttaa antamasi suostumuksen, valitsemalla sivuston alalaidasta ”<strong>Evästeasetukset</strong>”."
294            },
295            "details": {
296              "header": "Yksityiskohtaiset valinnat",
297              "title": "Yksityiskohtaiset valinnat",
298              "introductionText": "Alla voit tehdä yksityiskohtaisia valintoja ja myös vastustaa tietojen käsittelyn oikeutettua perustetta, jos katsot sen aiheettomaksi. Voit myöhemmin muuttaa valintojasi valitsemalla sivuston alalaidasta ”<strong>Evästeasetukset</strong>”.",
299              "purposesTabDescription": "Tässä pääset tutustumaan yksityiskohtaisesti, mihin käyttötarkoituksiin hyödynnämme tietojasi ja millaisia ominaisuuksia ne mahdollistavat.",
300              "vendorsTabDescription": "{VendorsCount} kumppaniamme tallentavat ja/tai käyttävät evästeitä ja käsittelevät henkilötietoja, kuten eväste- ja tai mobiilitunnisteita, tarjotakseen sinulle parempia palveluita.",
301              "copyTCstringTooltip": "Googlen kumppanit"
302            },
303            "commonTerms": {
304              "acceptAll": "Hyväksy kaikki",
305              "save": "Hyväksy valitut",
306              "rejectAll": "Jatka välttämättömillä",
307              "settings": "Muokkaa valintoja",
308              "privacyPolicyLabel": "Tietosuojalauseke",
309              "consent": "Suostumus",
310              "purposeAndCharacteristics": "Tarkoitukset ja ominaisuudet",
311              "specialPurposes": "Erityistarkoitukset",
312              "specialFeatures": "Erityisominaisuudet",
313              "features": "Ominaisuudet",
314              "nonTCFVendors": "Kumppanit, jotka eivät kuulu IAB Europen TCF-verkostoon",
315              "vendors": "Kumppanit",
316              "vendorsTabHeader": "Kumppanit",
317              "purposes": "Tarkoitukset",
318              "legitimateInterest": "Oikeutettu etu",
319              "customPurposes": "Mediakonserni Keskisuomalaisen evästeet",
320              "cookieMaxAge": "Evästeen enimmäisikä (sekunnit)",
321              "disclouserDetails": "Yksityiskohdat",
322              "disclouserFetchingError": "Tietojen hakeminen epäonnistui",
323              "disclouserHeaderIdentifier": "Tunniste",
324              "disclouserHeaderDomain": "Verkkotunnus",
325              "disclouserHeaderType": "Tyyppi",
326              "disclosureHeaderMaxAge": "Enimmäisikä",
327              "disclosureHeaderPurpose": "Tarkoitukset",
328              "cookieRefresh": "Evästeen päivittäminen",
329              "usesCookies": "Käyttää evästeitä",
330              "usesNonCookieAccess": "Käyttää evästeetöntä teknologiaa",
331              "yes": "Kyllä",
332              "no": "Ei",
333              "seconds": "sekuntia",
334              "days": "päivää",
335              "alertMessageForCopiedTcString": "CMP-asetukset kopioitu",
336              "purposeIllustration": "Kuvaus",
337              "legitVendorCount": "Oikeutettua etua käyttävät kumppanit",
338              "consentVendorCount": "Suostumusta käyttävät kumppanit",
339              "stdRetention": "Normaali säilytysaika",
340              "dataDeclaration": "Tietosuojailmoitus",
341              "vendorCountDeclarationText": "{VendorsCount} kumppania voi käyttää tätä",
342              "legIntClaim": "Oikeutettua etua koskeva informaatio",
343              "dataDeclarationNameHeader": "Hyödynnettävä tieto",
344              "dataDeclarationIdHeader": "Tunnus",
345              "dataDeclarationDescriptionHeader": "Kuvaus",
346              "retention": "Säilytys",
347              "googleVendors": "Googlen kumppanit",
348              "cancel": "Peruuta",
349              "confirm": "Vahvista",
350              "privacyPolicyUrl": "https://www.keskisuomalainen.com/tietosuojalauseke/"
351            }
352          }
353        }
354      },
355      "style": {
356        "hideContentOnFirstLayer": true,
357        "consentInputType": "checkbox",
358        "customCSS": ".gravitoCMP-tab-container {\r\n    font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif !important;\r\n    border-radius: 4px !important;\r\n    max-width: 98% !important;\r\n    box-shadow: 2px 2px 16px #00000020;\r\n    background-color: #FFF;\r\n    gap: 0 !important;\r\n}\r\n\r\n.gravitoCMP-brand-header {\r\n    border-bottom: 1px solid #E5E5E5;\r\n    height: auto;\r\n}\r\n\r\n.gravitoCMP-logo-div {\r\n    height: 64px !important;\r\n}\r\n\r\n.gravitoCMP-logo {\r\n    height: 24px !important;\r\n}\r\n\r\n.gravitoCMP-close-btn {\r\n    top: 8px !important;\r\n    right: 8px !important;\r\n    padding: 16px !important;\r\n}\r\n\r\n.gravitoCMP-close-btn>svg {\r\n    fill: #000;\r\n}\r\n\r\n.gravitoCMP-tabs-div {\r\n    justify-content: flex-start;\r\n    background-color: #F5F5F5;\r\n    border-bottom: 1px solid #E5E5E5;\r\n}\r\n\r\n.gravitoCMP-tab {\r\n    flex: 0 !important;\r\n    color: #262626 !important;\r\n    background-color: #F5F5F5 !important;\r\n    padding: 0 16px !important;\r\n    height: 50px;\r\n}\r\n\r\n.gravitoCMP-tab.active {\r\n    background-color: #FFF !important;\r\n    border-bottom: 3px solid #262626 !important;\r\n}\r\n\r\n@media screen and (max-width: 360px) {\r\n    button.gravitoCMP-tab {\r\n        white-space: normal;\r\n    }\r\n}\r\n\r\n.gravitoCMP-tab-content {\r\n    border-bottom: 1px solid #E5E5E5;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-tab-content-wrapper {\r\n    padding: 0;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-tabs {\r\n    border-bottom: 1px solid #E5E5E5;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-tab {\r\n    align-items: center;\r\n    background-color: #FFF !important;\r\n    border: 0 !important;\r\n    color: #262626 !important;\r\n    padding: 0 16px !important;\r\n    height: 50px;\r\n    font-weight: 600 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-tab.active {\r\n    border-bottom: 3px solid #262626 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-section-item {\r\n    margin: 0 0 8px 0 !important;\r\n    background-color: #FFF;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-section-title:first-child {\r\n    margin: 24px 0 12px 0;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-layer1-container {\r\n    background-color: #FFF !important;\r\n    color: #262626 !important;\r\n    padding: 16px !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-content-container-layer2 {\r\n    background-color: #FFF !important;\r\n    color: #262626 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-introduction-text {\r\n    margin: 0 0 6px 0 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-title {\r\n    background-color: #FFF !important;\r\n    color: #262626 !important;\r\n    padding: 0 0 2px 0 !important;\r\n    position: static;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-accordion-section-title {\r\n    color: #262626 !important;\r\n    padding: 0;\r\n    margin: 24px 0 16px 0;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-accordion-section-title:first-child {\r\n    margin: 0 0 16px 0;\r\n}\r\n\r\n#gravitoCMPRoot strong {\r\n    font-weight: 600;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-content-container-layer2 .gravitoCMP-TCFCMP-section-item {\r\n    border-bottom: 1px solid #E5E5E5;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-nested-nested-vendor-list {\r\n    padding: 8px 0;\r\n}\r\n\r\n.gravitoCMP-accordion-header {\r\n    color: #262626 !important;\r\n    font-weight: 400 !important;\r\n    padding: 16px 0 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-content-container-layer2 .gravitoCMP-accordion-header {\r\n    padding: 8px 0 !important;\r\n}\r\n\r\n.gravitoCMP-nested-accordion-header .gravitoCMP-accordion-header {\r\n    padding: 0px !important;\r\n    color: #737373 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-content-container .gravitoCMP-accordion-header {\r\n    border-bottom: 1px solid #E5E5E5 !important;\r\n}\r\n\r\n.gravitoCMP-accordion-content {\r\n    padding: 8px 0 !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-accordion-inputs {\r\n    padding: 0;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-vendors-description {\r\n    margin: 8px 0 0 0;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-link,\r\n#partners-link,\r\n#gravitoCMP-tab-container-id a {\r\n    color: #0E57B6 !important;\r\n}\r\n\r\n#gravitoTCFCMP-layer2-reject-all,\r\n#gravitoTCFCMP-layer2-accept-all {\r\n    color: #262626;\r\n    background-color: #FFF !important;\r\n    border: 1px solid #262626;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-content-container-layer2 .gravitoCMP-TCFCMP-accordion,\r\n.gravitoCMP-TCFCMP-content-container-layer2 .gravitoCMP-accordion {\r\n    padding-bottom: 8px !important;\r\n}\r\n\r\n.gravitoCMP-accordion-toggle__icon circle {\r\n    stroke: #949494;\r\n}
358\r\n\r\n.gravitoCMP-custom-checkmark {\r\n    border-color: #949494 !important;\r\n    border-radius: 2px;\r\n    width: 20px;\r\n    height: 20px;\r\n}\r\n\r\n.gravitoCMP-consent-input {\r\n    color: #262626 !important;\r\n    font-weight: 600 !important;\r\n    height: 24px !important;\r\n    padding-left: 32px !important;\r\n    margin-bottom: 8px !important;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-accordion-vendor-count {\r\n    padding-bottom: 8px !important;\r\n    color: #737373 !important;\r\n    margin: 0;\r\n    font-size: 14px;\r\n}\r\n\r\n.gravitoCMP-consent-input-checkbox:checked+.gravitoCMP-custom-checkmark {\r\n    background-color: #0E57B6;\r\n    border-color: #0E57B6 !important;\r\n}\r\n\r\n.gravitoCMP-custom-checkmark:after {\r\n    width: 5px;\r\n    height: 12px;\r\n    left: 6px;\r\n    top: 1px;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-consentable-items:empty {\r\n    display: none;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-consentable-items:empty+.gravitoCMP-TCFCMP-legal-footer {\r\n    margin-top: 8px;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-legal-footer {\r\n    margin: 24px 0 16px 0;\r\n}\r\n\r\n.gravitoCMP-action-container {\r\n    gap: 8px;\r\n    padding: 16px;\r\n    border-bottom: 1px solid #E5E5E5 !important;\r\n}\r\n\r\n.gravitoCMP-btn {\r\n    border-radius: 2px !important;\r\n    background-color: #262626 !important;\r\n    color: #FFF;\r\n    font-size: 16px !important;\r\n    line-height: 24px !important;\r\n    padding: 8px 32px !important;\r\n    font-weight: 600 !important;\r\n}\r\n\r\n.gravitoCMP-footer-links {\r\n    margin: 0 16px;\r\n}\r\n\r\n.gravitoCMP-tab-footer {\r\n    justify-content: flex-end;\r\n    height: 56px;\r\n    flex-direction: row !important;\r\n}\r\n\r\n.gravitoCMP-footer-logo-div {\r\n    display: none;\r\n}\r\n\r\n#gravitoTCFCMP-layer1-reject-all {\r\n    display: none;\r\n}\r\n\r\n#gravitoTCFCMP-layer1-reject-all {\r\n    display: none !important;\r\n}\r\n\r\n#gravitoTCFCMP-layer1-settings {\r\n    display: block !important;\r\n}\r\n\r\n.gravitoCMP-seprator-class>.gravitoCMP-action-container {\r\n    flex-direction: row;\r\n}\r\n\r\n@media screen and (max-width: 550px) {\r\n    .gravitoCMP-tab-container {\r\n        width: 98%;\r\n    }\r\n\r\n    .gravitoCMP-action-container {\r\n        flex-direction: column-reverse;\r\n    }\r\n\r\n    .gravitoCMP-seprator-class>.gravitoCMP-action-container {\r\n        flex-direction: column;\r\n    }\r\n}\r\n\r\n.gravitoCMP-table-header-cell {\r\n    font-size: var(--gravito-font-size-body);\r\n}\r\n\r\n.gravitoCMP-TCFCMP-vendor-items-list-item-retention {\r\n    background-color: transparent;\r\n    color: #262626;\r\n}\r\n\r\n.gravitoCMP-paragraph {\r\n    font-size: 14px;\r\n    margin-top: 8px;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-nested-vendor-list-item svg {\r\n    width: 16px;\r\n    height: 16px;\r\n}\r\n\r\n.gravitoCMP-TCFCMP-nested-vendor-list-item a {\r\n    margin-left: 8px;\r\n}"
359      }
360    }
361  },
362  "firstParty": {
363    "useFirstParty": true
364  }
365};
366
367var gravitoData = {};
368function loadCMP() {
369  var gravitoSDKTag = document.createElement("script");
370  gravitoSDKTag.src = "https://cdn.gravito.net/sdk/v6/latest/sdk.js";
371  gravitoSDKTag.onload = function () {
372    window.gravito.init();
373  };
374
375  document.body.appendChild(gravitoSDKTag);
376}
377function check1PId() {
378  let isChrome =
379    /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
380  if (isChrome) {
381    var xhr = new XMLHttpRequest();
382    var params = {
383      e: {},
384      k: [],
385      c: [],
386    };
387    var gravitoSLD =
388      "gto." +
389      window.location.hostname.split(".").reverse()[1] +
390      "." +
391      window.location.hostname.split(".").reverse()[0];
392    xhr.open("POST", "https://" + gravitoSLD + "/api/v3/firstparty", true);
393    xhr.withCredentials = true;
394    xhr.onreadystatechange = function (response) {
395      if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
396        console.log("POST response 1 : " + response.target.response);
397        var fpId = JSON.parse(response.target.response).i;
398        // If 1P id does not contain 3rd party partition key continue setting up the bridge
399        if (fpId.length <= 36) {
400          fetchCdpProfile();
401        } else {
402          localStorage.setItem(
403            "gravito-microprofile-data",
404            JSON.stringify(response.target.response)
405          );
406          loadCMP();
407        }
408      }
409    };
410    xhr.send(JSON.stringify(params));
411  } else {
412    loadCMP();
413  }
414}
415function fetchCdpProfile() {
416  var xhr = new XMLHttpRequest();
417  xhr.open(
418    "POST",
419    "https://handshake.gravito.net/api/ap?includeProfile=true&includeCampaign=true",
420    true
421  );
422  xhr.withCredentials = true;
423  xhr.onreadystatechange = function (response) {
424    if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
425      console.log("POST response 2 : " + response.target.response);
426      gravitoData.cdpProfile = JSON.parse(response.target.response);
427      // Set 1P to contain same id as was received from 3rd party API
428      set1PId();
429    }
430  };
431  xhr.timeout = 3500; // time in milliseconds
432  xhr.send();
433}
434function set1PId() {
435  var FPiD = gravitoData.cdpProfile.gravitoOpUid;
436  var xhr = new XMLHttpRequest();
437  var params = {
438    e: {},
439    k: [],
440    c: [],
441  };
442  var gravitoSLD =
443    "gto." +
444    window.location.hostname.split(".").reverse()[1] +
445    "." +
446    window.location.hostname.split(".").reverse()[0];
447  xhr.open("POST", "https://" + gravitoSLD + "/api/v3/firstparty", true);
448  xhr.withCredentials = true;
449  xhr.onreadystatechange = function (response) {
450    if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
451      console.log("POST response 3 : " + response.target.response);
452      attachHandShakeIdToFp(FPiD);
453    }
454  };
455  // Override the 1P id by setting to contain id received from 3rd party API
456  xhr.setRequestHeader("gm-id", FPiD);
457  xhr.send(JSON.stringify(params));
458}
459check1PId();
460
461// function to check if gravito data is present in firstParty response
462function checkGravitoDataInResponse(data) {
463  let parsedData = JSON.parse(data);
464  if (parsedData["e"] && parsedData["e"].gravitoData) {
465    return true;
466  }
467}
468
469// funtion be called when gravito handshake id is available
470// this function will attach handshake id to first party data
471// and should be called when handshake id is available
472function attachHandShakeIdToFp(handShakeId) {
473  function customCb(data) {
474    if (checkGravitoDataInResponse(data)) {
475      console.log("Gravito data found in response");
476      // you can the required functions here
477    }
478    loadCMP();
479  }
480  function attachMatchOnId(id, callback) {
481    var xhr = new XMLHttpRequest();
482    var params = {
483      e: {
484        matchOnId: id,
485      },
486      k: [],
487      c: [],
488    };
489    var gravitoSLD =
490      "gto." +
491      window.location.hostname.split(".").reverse()[1] +
492      "." +
493      window.location.hostname.split(".").reverse()[0];
494    xhr.open("POST", "https://" + gravitoSLD + "/api/v3/firstparty", true);
495    xhr.withCredentials = true;
496    xhr.onreadystatechange = function (response) {
497      if (xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
498        console.log("POST response 1 : " + response.target.response);
499        localStorage.setItem(
500          "gravito-microprofile-data",
501          JSON.stringify(response.target.response)
502        );
503        callback(response.target.response);
504      }
505    };
506    xhr.send(JSON.stringify(params));
507  }
508  // gravito SDK utility function to attach handshake id to first party data
509  attachMatchOnId(handShakeId, customCb);
510}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.