• 1. La cultura va messa al centro dell’intera strategia pubblica per il Paese, e ci piacerebbe che il prossimo Documento di Economia e Finanza del Ministero dell’Economia sterzasse con chiarezza in tale direzione[1]. Questa è la premessa indispensabile.

 

  • 2. La cultura va rilanciata come servizio essenziale. Una proposta interessante, suggerita da Testini[2], è quella di far rientrare l’accesso alla cultura tra i Livelli Essenziali delle Prestazioni (LEP), previsti dalla riforma del Titolo V della Costituzione. Questo sancirebbe una maggiore collegialità d’impegno, nella cultura come leva sociale e di sviluppo territoriale, tra amministrazioni centrali e periferiche. Su questo tema tra l’altro il gruppo italiano di Culture Action Europe ha recentemente realizzato un evento e relativa documentazione[3];

 

  • 3. Uno degli strumenti per rilanciare il patrimonio e farne una leva di sviluppo nazionale è l’innovazione tecnologica, la creatività, l’incontro tra arte e scienza. Su questo tema si gioca la scommessa del ciclo di finanziamenti europei 2014-2020. E il punto nevralgico è soprattutto quello di rivedere il patrimonio alla luce dell’incontro con i cittadini: mettere al centro l’uso sociale che facciamo della cultura, e come trasformare quest’uso in un progetto di sviluppo. Sarebbe buona prassi, per tutte le politiche pubbliche, rileggere l’investimento alla luce della sua capacità di stimolare la domanda (e il Ministro Franceschini si sta muovendo in questo senso), laddove quest’ultima non va però intesa solo in termini strettamente quantitativi ma in una dimensione più ampia, che includa non solo il quanto ma anche il come e, soprattutto, la qualità della fruizione. Innovazione significa quindi produrre strumenti per attrarre e coinvolgere un nuovo pubblico ma, anche, contaminare con la creatività filiere tradizionali che possono fare di nuove conoscenze diffuse una leva di riposizionamento. L’attivazione di progettazione creativa al servizio della piccola e media impresa – e, più in generale, dell’imprenditoria – più tradizionale potrebbe, ad esempio, specie in alcune zone del Meridione più economicamente depresse, avviare rilevanti circoli virtuosi di rilancio economico dei territori;

 

  • 4. Troppo spesso le politiche culturali sono costruite per tessuti urbani ad alta densità e per i centri storici. La cultura è invece in grado di svolgere un ruolo decisivo anche nelle periferie e nelle c.d. aree interne (3/4 del territorio e ¼ della popolazione), a fronte del proprio capitale attrattivo e propulsivo. Attrattivo perché la progettazione culturale permette di valorizzare luoghi di valore storico, urbanistico, culturale e sociale, incentivarne la “riappropriazione” frenando il progressivo abbandono e testare così anche nuovi modelli di sviluppo. Propulsivo perché proietta questi luoghi in una dimensione sempre più “glocale” favorendo export di prodotti, di valori e d’idee e, al contempo, frenando i processi di marginalizzazione sociale. Troppo spesso le politiche culturali sono costruite per i centri e non per le periferie. Una nuova progettazione culturale in periferia non può però prescindere da una visione urbanistica nuova, cioè un’idea di città, di spazi, di trasporto, di servizi sociali, di formazione scolastica. In questo quadro la cultura, come conservazione da una parte e come visione di progetti ad alto contenuto d’innovazione dall’altra, può divenire asse strategico di riqualificazione e integrazione sociale, un ponte civico. In questo quadro la cultura, inoltre, può essere strumento chiave di rilancio del mercato del lavoro, nella direzione di ridare valore e dignità alle professioni legate alla cultura ma, anche, di inventare nuove professionalità e nuova impresa in funzione di processi di innovazione intorno e a partire dalla cultura, e in questo modo contenere emigrazione e fuga di cervelli.

 

  • 5. A livello nazionale la Cultura – il Mibact – deve affermare con più forza il suo ruolo nel Consiglio dei Ministri, ergendosi a valutatore e tutore della coerenza delle scelte di governo in rapporto all’identità nazionale e, quindi, all’idea di nazione che il governo intende promuovere. Molto stretto, in particolare, deve essere il rapporto tra Ministero della Cultura e Ministero degli Affari Esteri. In una crescente globalizzazione, la cultura assume valore strategico per rafforzare il senso e l’identità della comunità[4] e della nazione[5]. E per costruire il “racconto del Paese” da proporre all’esterno[6]. Il Mibact deve quindi offrire al Mae gli strumenti per rinnovare l’immagine dell’Italia nel mondo, e questo passa anche attraverso una completa revisione del ruolo degli Istituti Italiani di Cultura. Stessa cosa va fatta con l’Istruzione. Una buona scuola passa inevitabilmente dal recupero di un concetto di cultura contemporaneo e che faccia ponte tra il passato e il futuro. Non si tratta – solo – di ripristinare maggiore spazio per la storia dell’arte, quanto di inserire la cultura in un pacchetto di ore dedicate alla costruzione del senso civico, e quindi cultura, cura del paesaggio, ma anche integrazione sociale, etc. La costruzione di questo pacchetto dovrebbe essere tema di un progetto condiviso tra Mibact e Miur. La cultura ha un valore strategico anche sulle politiche riguardanti immigrazione e integrazione. Non si può, infatti, prescindere da una cabina di regia che coinvolga anche il Mibact laddove prendiamo coscienza che oggi gli immigrati vengono completamente tenuti ai margini del sistema socio-culturale, con conseguenze drammatiche sul futuro del Paese. Questo è il perfetto esempio in cui la mancanza di una strategia efficace d’integrazione culturale sarà responsabile, domani – e già oggi – di degrado e frammentazione sociale. Per avviare un nuovo grande progetto Paese sulla cultura occorre quindi un più chiaro indirizzo strategico e maggior coordinamento tra i diversi livelli e comparti istituzionali, nazionali e locali, che governano la cultura e la creatività: deve essere chiara, condivisa e unitaria, infatti, la visione sul ruolo della cultura, sugli strumenti per sviluppare i progetti e per valutarli. Una visione contemporanea del patrimonio e della cultura può essere il segnale di risveglio del Paese e della volontà di affrontare il proprio futuro con fierezza e determinazione. La chiarezza delle politiche e degli obiettivi deve riflettersi nella presenza italiana, nazionale e locale, sui tavoli internazionali, sia per promuovere i nostri specifici interessi, che per proteggere e supportare i nostri progetti e i nostri operatori nell’accesso alle risorse europee;

 

  • 6. Il Rapporto sui Conti Pubblici Territoriali nelle sue conclusioni evidenzia un elemento chiave delle politiche culturali del nostro paese: “Nel settore culturale notevole è la discrasia che si evidenzia laddove si mettono a confronto le dichiarazioni e gli intenti programmatici con le scelte effettive. La cultura è tradizionalmente un asse strategico nelle dichiarazioni degli amministratori e dei politici, centrali e locali e, al tempo stesso, il primo oggetto di taglio di risorse in tutte le fasi di restrizione della finanza pubblica”[7]. Questa prassi va interrotta. La cultura è la grande occasione per riprendere in mano il senso e il rilancio dell’Europa. Non è più – solo – una questione d’identità e di storia, è una questione di futuro. Come scrive Alfieri a proposito del ‘modello Bilbao’ “davanti a una situazione di crisi gravissima, tocca innanzitutto alle istituzioni e agli altri “attori” forti assumersi le loro responsabilità e avere il coraggio di rischiare”. Naturalmente uno dei primi segnali di una nuova progettazione culturale è la revisione dei bilanci pubblici nei quali le politiche culturali non solo devono assumere un maggior peso in proporzione ma, soprattutto, devono puntare con più chiarezza su una nuova visione, e quindi su innovazione, sviluppo, rapporto tra cultura e sviluppo urbano, sociale etc. Questo significa che l’auspicato dibattito sul rapporto tra tutela e valorizzazione, tra conservazione della memoria e nuova progettazione culturale, deve portare a una totale rivoluzione nella costruzione del bilancio relativo alle politiche culturali in cui le diverse voci devono con chiarezza rispondere agli obiettivi che i vertici amministrativi hanno dato. In moltissimi casi una non-scelta è un costo per la società, per esempio quando il restauro di un muraglione antico crollato è molto più dispendioso dell’ordinario servizio di conservazione. Un bilancio efficiente è quello che li prevede entrambe ma, a monte, risponde alla domanda del ruolo sociale di quel muro e, quindi, del rapporto tra quel muro e la città e il tessuto nel quale s’innesta. Se il muro va preservato e il perché va preservato devono tradursi in un progetto che, oltre alla conservazione non può non includere anche la valorizzazione del bene e il suo ri-uso. E tutto questo, moltiplicato per N beni, materiali e immateriali, deve rispecchiarsi in un bilancio di previsione.

 

  • 7. Le strategie devono quindi essere trasparenti e tracciabili. È necessario avviare una programmazione monitorabile dal cittadino, con chiare scadenze e valutazione di percorso. Il punto è quello di rendere l’amministrazione maggiormente giudicabile con parametri oggettivi, sulla base dei risultati raggiunti. In questo senso propongo di adottare un modello di misurazione gentile, che sperimenti indicatori da testare e revisionare periodicamente sulla base dei risultati. Ammessa la difficoltà di sottoporre la filiera culturale a parametri, metriche e indicatori, una sana amministrazione pubblica non può pensare oggi di non sottomettersi al giogo della valutazione, l’unico in grado di scalzare logiche consolidate e prassi non strettamente finalizzate a un obiettivo di bene comune;

 

  • 8. È necessario riformare l’amministrazione e questo deve passare innanzitutto da un grande progetto formativo. Vanno formati, infatti, in primis i decisori: ad esempio, inserendo nei nuclei di programmazione dei piani operativi a livello locale figure che abbiano fatto master o formazione specifica e che siano parte di network europei e che, insomma, siano in grado di avere strumenti aggiornati e innovativi per fare programmazione sulla cultura; naturalmente occorre soprattutto che, a queste persone, sia dato un peso nei processi decisionali. Per ogni singolo dirigente e funzionario amministrativo appare molto corretto il suggerimento che proviene da una delle passate edizioni degli Incontri di Ravello che auspicano la definizione di un Curriculum, «un set di competenze condivise e valutate in un sistema di accreditamento in grado di ‘certificare” le prassi di funzionari pubblici e le loro esperienze di performance nella declinazione delle politiche culturali in termini di strumenti per lo sviluppo della capacità amministrativa e, insieme, del valore sociale ed economico»[8]. Quanto appena suggerito per l’amministrazione riguarda, naturalmente, anche la programmazione europea che necessita di personale formato ad hoc. In particolare, sarebbe auspicabile che, nei nuclei locali che fanno programmazione pubblica, sieda almeno un esperto di tecnologie digitali, di banda larga, d’innovazione tecnologica;

 

  • 9. L’Amministrazione pubblica deve costruire una nuova “alleanza culturale” con i gruppi privati, i cittadini attivi e le istituzioni europee. Al centro di questo patto va messa una nuova idea di sviluppo sociale a partire dalla cultura. Sinteticamente si potrebbe partire lavorando su due filoni: gli spazi abbandonati da ripensare e il patrimonio di maggior pregio da rilanciare. Molte amministrazioni stanno già lavorando su questo tema ma in ordine sparso: sarebbe utile costruire dei parametri e delle strategie condivise e, soprattutto, partire da queste sperimentazioni per costruire una normativa più efficace. In questo quadro le indicazioni che provengono da Bruxelles sono preziose perché segnano un percorso in cui i settori culturali e creativi sono sperimentazione e veicolo di un progetto comunitario di sviluppo. Ne è prova l’ultimo tema in discussione in Commissione Europea, quello della governance partecipata del patrimonio comune come nuova opportunità di costruzione del futuro[9]. In Italia la revisione costituzionale del 2001 ha posto buone basi di questo processo introducendo il principio della sussidiarietà orizzontale: «Stato, Regioni, Città metropolitane, Province e Comuni favoriscono l’autonoma iniziativa dei cittadini, singoli e associati, per lo svolgimento di attività d’interesse generale, sulla base del principio di sussidiarietà» (Titolo V, art. 118). Si tratta di una grandissima sfida, ma soprattutto di una grande opportunità, sia per l’amministrazione che per i cittadini, e molte amministrazioni locali iniziano a rendersene conto sperimentando modelli di condivisione di grande interesse (tra tutti vedi il “regolamento di Bologna” e il progetto co-Mantova)[10]. Sul fronte pubblico-privato, invece, uno spunto interessante in grado di coniugare la promozione della cultura con gli interessi del capitale privato, potrebbe venire dal sistema dei social impact bond. Si tratta di uno strumento, in via di sperimentazione in diversi paesi dal 2011, che prevede l’affido al capitale finanziario, privato più in generale, di iniziative in campo sociale. Il privato scommette sulla riuscita di un progetto a vocazione pubblica e, se questo riesce, viene risarcito dall’amministrazione, altrimenti ci rimette l’investimento. Il punto non è quello di sottrarre progettazione culturale all’amministrazione, ma di mettere l’amministrazione in competizione con altri soggetti su obiettivi definiti e, al contempo, stimolare il capitale privato a rientrare in scena. È bene ribadire, in proposito, un principio di cui talvolta ci si dimentica: lo scopo dell’amministrazione è quello di portare avanti un obiettivo di bene comune, non il mantenimento di se stessa.

 

  • 10. Cambiare sperimentando. I cambiamenti avvengono testandoli con progetti Paese, prototipali; progetti che si facciano terreno di prova di buone pratiche e testimonianza di una vera volontà di trasformazione. Solo a titolo di esempio ne sintetizziamo qui uno che, per caratteristiche e modello, si presta in modo ottimale a costruire nell’azione i ragionamenti sopra esposti. “Roma Gran Tour[11] è un progetto maturato nel corso della nostra breve esperienza all’Assessorato alla Cultura della città di Roma e strutturato in base alle caratteristiche della Capitale ma modellizzabile anche per altri contesti. L’idea è partita dalla volontà di ricucire la tela frammentata del patrimonio culturale (archeologico, storico-artistico e monumentale) di Roma Capitale in un percorso unitario di fruizione restaurando, rivitalizzando e collegando in un percorso fisico e narrativo molti siti oggi chiusi o quasi sconosciuti (erano stati identificati, per iniziare, otto siti nell’area archeologica centrale e tre siti in aree periferiche). Il progetto, che si può definire europeo sia per la provenienza di parte dei finanziamenti, sia per il coinvolgimento di tutte le accademie straniere in Italia, prevedeva una fase iniziale di restauro e successivamente una fase di interventi immateriali a supporto e valorizzazione degli undici beni rigenerati con il fine di arrivare a costruire un progetto identitario, e trasformare ogni approdo o sito coinvolto nel cantore di un pezzettino dell’identità del Paese. Per fare un esempio, la Cisterna delle Sette Sale sul Colle Oppio, enorme e splendida struttura a sette navate su doppio livello, oggi praticamente inaccessibile, dopo il suo recupero sarebbe dovuta diventare il luogo dove s’indaga il tema dell’acqua attraverso un idoneo sistema di comunicazione multimediale, affrontando quindi non solo il rapporto tra la nostra civiltà e l’acqua fin dalla fondazione di Roma (gli acquedotti, il sistema fognario, le terme etc) ma anche la problematica attuale delle risorse esauribili e del loro consumo. La visione che si cela in questo progetto – ma potrebbe essere estensibile a molti progetti di recupero del patrimonio culturale nel Paese – è quella di dare vita a un modello innovativo di valorizzazione che faccia leva su un approccio esperienziale, sull’uso delle tecnologie digitali, sul coinvolgimento della società civile e dei privati in tutta la filiera del progetto (si prevedeva che alcuni siti fossero gestiti da cittadinanza attiva o da privati), su nuova occupazione qualificata (nel progetto erano previsti, tra l’altro, corsi di formazione e riqualificazione di personale delle controllate culturali di Roma Capitale), sull’uso della cultura come moltiplicatore socio-economico (oltre a promuovere occupazione il progetto si proponeva di attivare circuiti finanziari importanti promuovendo nuova domanda non solo turistica, ma anche interna). E’ solo un esempio di quello che può essere fatto e che, spesso, non viene fatto non per mancanza di risorse ma per assenza di una visione.

 

Il cammino è lungo, ma basta iniziare. Ricordandoci che è la cultura la vera battaglia politica da giocare.

 


 




		

 


 


[1] Nel DEF 2014 (http://www.mef.gov.it/doc-finanza-pubblica/def/2014/documenti/DEF_Sezione_I_Programma_di_Stabilitx_xON-LINEx.pdf) la parola cultura compare per la prima volta a pagina 83, viene in tutto nominata tre volte e fa solo riferimento ai crediti d’imposta per rilanciare il settore cinematografico e musicale. Meglio il Programma nazionale di riforma (parte I) http://www.mef.gov.it/doc-finanza-pubblica/def/2014/documenti/DEF_Sezione_III_Programma_Nazionale_di_Riforma_xParte_Ix_a.pdf che, alla cultura, dedica un paragrafo ma, come purtroppo spesso accade, il programma è molto vago e generico e, comunque, si fa confusione tra cultura e turismo (si veda p.42-44), come se fossero la stessa cosa e non, il secondo, uno degli effetti benefici degli investimenti in cultura. Si veda anche il Programma nazionale di riforma (parte II) http://www.mef.gov.it/doc-finanza-pubblica/def/2014/documenti/DEF_Sezione_III_Programma_Nazionale_di_Riforma_xParte_IIx_a.pdf.

[2] TESTINI C. 2012, Testimoni della cultura, in «Economia della cultura», 4, p. 510. E anche Manacorda: «penso … che quello culturale sia alla fine dei conti un bisogno primario perché offre categorie di interpretazione della realtà che influiscono sulla qualità della vita». MANACORDA D. 2014, L’Italia agli italiani. Edipuglia, Bari, p. 46.

[3] http://cultureactioneurope.org/milestone/cae-in-italia-2/quando/

[4] JOHANSON K. – GLOW H. – KERSHAW A. 2014, New Modes Of Arts Participation And The Limits Of Cultural Indicators For Local Government, in «Poetics», 43.

[5] «Non siamo mai stati una nazione ‘per via di sangue’: non c’è nazione più meticcia di quella italiana, eterna preda dei più diversi conquistatori. Semmai lo siamo stati, e lo siamo, per cultura». MONTANARI T. 2014, Istruzioni per l’uso del futuro, Minimum Fax, Roma, p. 55.

[6] Come ci ricorda Sacco la cultura è “soft power”: “da sempre, lo strumento privilegiato di persuasione “morbida”, di influenza e di trasmissione dei valori a disposizione degli Stati e delle comunità (Joseph Nye); attraverso la sua produzione culturale e mediatica, un Paese comunica e proietta all’esterno la sua appartenenza alla contemporaneità, costruendo la propria reputazione internazionale e dando forma alla sua visione di futuro”. SACCO P. 2011, Oltre la valorizzazione: un’agenda di politica culturale per l’Italia dei prossimi anni, in Bocci C., Passaro G. (Eds.) Lo sviluppo guidato dalla cultura: creatività, crescita, inclusione sociale, Giappichelli, Torino, p. 7.

[7] AA.VV. 2013, I flussi finanziari pubblici nel settore Cultura e Servizi Ricreativi L’Italia secondo i Conti Pubblici Territoriali (CPT), Monografie edizione 2013, Dipartimento per lo Sviluppo e la Coesione Economica, Unità di Valutazione degli Investimenti Pubblici, p.35.

[8] BOCCI C. – PASSARO G. (Eds.) 2011, Lo sviluppo guidato dalla cultura: creatività, crescita, inclusione sociale, cit., p. 141.

[9] SCHIACCHITANO E. 2015 Dall’Europa uno sguardo nuovo al patrimonio culturale in Il Giornale delle Fondazioni, 15/1/2015

[10] Vedi ARENA G. 2006 Cittadini attivi, Laterza, Bari e ARENA G. – IAIONE C. (Eds.) 2012 L’Italia dei beni comuni, Carocci, Roma.

[11] CONTI P. 2014, Rivoluziono l’area archeologica. Sarà il ritorno del Gran Tour in «Corriere della Sera», 9 Marzo. Si tratta di un progetto avviato da chi scrive, nel ruolo di Assessore alla Cultura di Roma Capitale, assieme a Christian Iaione e con il supporto della Sovrintendenza Capitolina. Ha un budget di 101 milioni di euro che, secondo il modello previsto (condiviso con gli allora vertici del Dipartimento per lo sviluppo e la coesione economica), possono essere reperiti in parte dal Fondo Sviluppo e Coesione, in parte da Fondi europei e in parte da contributi di privati che potrebbero avere in gestione alcuni siti, naturalmente rispettando le linee guida dell’impianto complessivo.

 


 


Hai qualcosa da aggiungere

Loading Facebook Comments ...

Leave a Reply

 


V I S I O N I

Precedente  |  Successiva

Show Buttons
Share On Facebook
Share On Twitter
Share On Google Plus
Share On Linkedin
Share On Pinterest
Hide Buttons
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.5.2";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Content blocked

Please turn off your ad blocker.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o,status:e}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a,o;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com","https://syndicatedsearch.goog","https://googleadservices.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i):yield this.transitionToParking(n)}}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return this.adblock.state!==Blocking.BLOCKED&&(!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason))))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));