Direkt zum Inhalt
Häufige Fragen

Wie können wir Ihnen helfen?

Hier finden Sie schnell Antworten rund um Lieferung, Bestellung, Zahlung, Qualität und unsere Dienstleistungen. Wählen Sie oben eine Kategorie, um gezielt zu filtern. Ist Ihre Frage nicht dabei? Rufen Sie uns einfach an oder schreiben Sie uns – wir helfen gern persönlich weiter.

Lieferung
Was kostet die Lieferung?
Aufgrund der stetig steigenden Energie- und Spritpreise können wir die Lieferung leider nicht mehr kostenlos anbieten. Wir berechnen eine faire, transparente Lieferpauschale: innerhalb Berlins 12,99 € und im Umland (bis 50 km) 39,99 €. So bleibt unser Liefer- und Anschlussservice für Sie zuverlässig und planbar.
Wie lange dauert die Lieferung?
Lieferung am selben Tag möglich. Sollten wir nicht am gleichen Tag liefern können, erfolgt die Lieferung innerhalb von maximal 1–3 Werktagen.
Was, wenn das Gerät beschädigt ankommt?
Bitte melden Sie Transportschäden innerhalb von 14 Tagen nach Zustellung – per E-Mail an info@bb-haushaltsgeraete.de oder WhatsApp, mit einem Foto des Artikels. Wir kümmern uns umgehend um eine Lösung.
Bestellung & Zahlung
Wie kann ich bei Ihnen bestellen?
Sie haben mehrere Möglichkeiten: ✓ über das Kontaktformular auf unserer Webseite, ✓ telefonisch, oder ✓ direkt per WhatsApp bzw. Telegram.
Kann ich meine Bestellung nachträglich ändern?
Innerhalb von 24 Stunden nach der Bestellung sind Änderungen möglich – z. B. Lieferadresse, Rechnungsadresse, Vor- & Nachname, E-Mail-Adresse oder Telefonnummer.
Welche Zahlungsarten werden unterstützt?
PayPal für eine schnelle, sichere Abwicklung · ✓ Sofortüberweisung über Ihr Online-Banking · ✓ Barzahlung bequem vor Ort.
Widerruf & Rückgabe
Habe ich ein Widerrufsrecht?
Ja. Sie haben das Recht, binnen 14 Tagen ohne Angabe von Gründen zu widerrufen. Die Frist beginnt an dem Tag, an dem Sie (oder ein von Ihnen benannter Dritter) die Ware in Besitz genommen haben.
Wie widerrufe ich meinen Kauf?
Per eindeutiger Erklärung – z. B. E-Mail an info@bb-haushaltsgeraete.de oder Brief an M. R. Zoulaikha, Müllerstraße 61, 13349 Berlin. Sie können das Muster-Widerrufsformular nutzen, müssen es aber nicht. Zur Fristwahrung genügt das rechtzeitige Absenden.Am schnellsten online: Ab sofort können Sie Ihren Widerruf direkt über den Widerrufsbutton erklären – ein Klick und das Widerrufsformular öffnet sich sofort hier im Fenster, ganz ohne Seitenwechsel.
Welche Kosten entstehen bei der Rückgabe?
Wir holen die Ware bei Ihnen ab. Sie tragen dafür die unmittelbaren Rücksendekosten in Höhe von 30 €. Wurde das Gerät bereits über die reine Prüfung hinaus benutzt, kann zusätzlich ein Wertersatz für den entstandenen Wertverlust anfallen.
Bekomme ich auch die Lieferkosten zurück?
Ja. Wir erstatten alle Zahlungen inklusive der Lieferkosten – ausgenommen sind nur Mehrkosten, falls Sie eine teurere als die günstigste Standardlieferung gewählt haben. Die Rückzahlung erfolgt kostenlos über dasselbe Zahlungsmittel wie beim Kauf.
Wann erhalte ich mein Geld zurück?
Spätestens binnen 14 Tagen ab dem Tag, an dem Ihr Widerruf bei uns eingegangen ist.
Muss ich für einen Wertverlust aufkommen?
Nur, wenn Sie das Gerät über die reine Prüfung hinaus benutzt haben und dadurch ein Wertverlust entsteht (z. B. deutliche Gebrauchsspuren). Ein normales Ausprobieren wie im Geschäft ist dagegen kein Problem. Alle Details finden Sie in unserer Widerrufsbelehrung.
Was, wenn das Gerät bei mir beschädigt wird oder einen Defekt bekommt?
Sollte das Gerät bei Ihnen beschädigt werden oder während der Nutzung einen Defekt bekommen, finden wir gemeinsam eine faire Lösung. In diesem Fall wird eine individuelle Einigung zwischen Käufer und Verkäufer getroffen.
Support & Kontakt
Wie erreiche ich den Support?

Wir sind für Sie da – mit schnellen Antworten und erstklassigem deutschen Support. So erreichen Sie uns:

Telefonisch unter 030 921092279 (Festnetz) bzw. 0179 2149607 (Mobil), per E-Mail an info@bb-haushaltsgeraete.de, über WhatsApp oder direkt über unser Kontaktformular.

Öffnungszeiten
Mo – Fr8:00 – 20:00 UhrSamstag8:00 – 16:00 UhrSonntaggeschlossen
Qualität & Transparenz
In welchem Zustand sind die Geräte?
Alle Geräte durchlaufen eine sorgfältige Qualitätskontrolle. Wir verkaufen ausschließlich voll funktionsfähige Geräte in sehr gutem Zustand. Kleinere Gebrauchsspuren werden in der Produktbeschreibung transparent aufgeführt.
Wie werden die Geräte überprüft?
Unsere qualifizierten Fachtechniker führen bei jedem Gerät eine umfassende technische Prüfung aller wichtigen Funktionen durch. Nur Geräte, die diese Kontrolle bestehen, kommen in den Verkauf.
Wie bereiten Sie die Geräte auf?
Jedes Gerät wird von uns gründlich gereinigt und ausführlich getestet, bevor es zu Ihnen kommt.
Sind die Produktfotos authentisch?
Ja, absolut! Alle Produktfotos sind von uns selbst aufgenommen – keine Katalog- oder Stockfotos. So sehen Sie den tatsächlichen Zustand des Geräts, das Sie erwerben.
Reparaturservice
Was kostet eine Reparatur?
Sie erhalten vorab einen transparenten Festpreis. Erst nach Ihrer Zustimmung beginnen wir – keine versteckten Kosten, keine Überraschungen.
Kommen Sie zu mir nach Hause?
Ja – die meisten Reparaturen führen wir direkt bei Ihnen vor Ort durch, in ganz Berlin und Umgebung.
Welche Marken reparieren Sie?
Alle gängigen Marken: Bosch, Siemens, Miele, AEG, Bauknecht, Samsung, Beko u. v. m. – sagen Sie uns einfach Ihr Gerät.
Wie schnell bekomme ich einen Termin?
Oft schon innerhalb von 24–48 Stunden. Bei dringenden Fällen bemühen wir uns, noch schneller bei Ihnen zu sein.
Gibt es Garantie auf die Reparatur?
Ja. Auf jede durchgeführte Reparatur gewähren wir Gewährleistung – damit Sie sicher sein können.
Küchenmontage
Was kostet die Küchenmontage?
Den Preis nennen wir Ihnen nach kurzer Planung als transparenten Festpreis – abhängig von Größe, Geräten und Anschlüssen. Keine versteckten Kosten.
Montiert ihr Küchen aller Anbieter?
Ja – wir montieren Küchen aller Hersteller (z. B. IKEA, Nobilia, Höffner, Küchen-Studios u. v. m.).
Schließt ihr auch Elektro & Wasser an?
Ja. Wir übernehmen die fachgerechte Installation aller Strom- und Wasseranschlüsse sowie den Einbau der Elektrogeräte – sicher und sofort einsatzbereit.
Baut ihr meine alte Küche ab?
Auf Wunsch übernehmen wir die Demontage der alten Küche und die fachgerechte Entsorgung – alles aus einer Hand.
Wie schnell bekomme ich einen Termin?
In der Regel kurzfristig. Den genauen Termin stimmen wir flexibel mit Ihnen ab – auch passend zur Lieferung Ihrer Küche.
Passt ihr die Küche an meinen Raum an?
Ja. Wir richten alles millimetergenau an die baulichen Gegebenheiten an und integrieren auf Wunsch vorhandene Möbel und Geräte.
Möbelaufbau
Was kostet der Möbelaufbau?
Sie erhalten vorab einen transparenten Festpreis – abhängig von Art, Anzahl und Aufwand der Möbel. Erst nach Ihrer Zustimmung legen wir los, ganz ohne versteckte Kosten.
Welche Möbel bauen Sie auf?
Alle Möbelarten und Hersteller – z. B. IKEA, Nobilia, Höffner u. v. m. Vom Bett über Kleiderschrank, Regal und Küche bis zu Büro-, Kinder- und Gartenmöbeln.
Wie schnell bekomme ich einen Termin?
In der Regel kurzfristig und flexibel – auch nach Feierabend. Den genauen Termin stimmen wir passend mit Ihnen ab.
Bauen Sie auch alte Möbel ab und entsorgen sie?
Ja. Auf Wunsch übernehmen wir die Demontage Ihrer alten Möbel und die fachgerechte Entsorgung – alles aus einer Hand.
Muss ich Werkzeug bereitstellen?
Nein. Unser Team bringt das komplette Profi-Werkzeug mit. Sie müssen nichts vorbereiten – wir kümmern uns um alles.
In welchen Gebieten sind Sie tätig?
Wir sind in ganz Berlin und im Umland für Sie unterwegs. Fragen Sie bei größerer Entfernung einfach kurz an.
Entsorgen Sie auch das Verpackungsmaterial?
Ja – auf Wunsch nehmen wir Kartons und Verpackungen direkt nach dem Aufbau mit und entsorgen sie umweltgerecht.
Was, wenn Teile fehlen oder beschädigt sind?
Wir prüfen die Teile vor dem Aufbau und geben Ihnen sofort Bescheid. Bei fehlenden oder defekten Teilen unterstützen wir Sie bei der Reklamation beim Hersteller.
Transportservice
Was kostet der Transport?
Sie erhalten vorab einen transparenten Festpreis – abhängig von Transportgut, Strecke, Etage und gewünschter Leistung. Keine versteckten Kosten, keine Überraschungen.
Was transportieren Sie?
Einzelstücke aller Art: Waschmaschine, Kühl-/Gefrierschrank, Trockner, Geschirrspüler, Herd sowie Schränke, Kommoden, Sofas, Tische, Betten – auch Online- & Kleinanzeigen-Käufe. Schon ab einem Stück, kein Umzug nötig.
Holen Sie auch beim Händler oder Kleinanzeigen-Verkäufer ab?
Ja. Wir holen Ihr Stück dort ab, wo es steht – beim Händler, beim Kleinanzeigen-Verkäufer oder an einer Privatadresse – und bringen es sicher zu Ihnen.
Tragen Sie auch ohne Aufzug in höhere Etagen?
Ja – ob 1. oder 5. Stock, mit oder ohne Aufzug. Wir tragen Ihr Stück in jede Etage, auch durch enge Treppenhäuser und schmale Türen.
Bauen Sie das Möbel auf bzw. schließen Sie das Gerät an?
Auf Wunsch ja: Möbel bauen wir vor Ort fertig auf, Geräte wie Waschmaschine oder Kühlschrank schließen wir fachgerecht an Strom und Wasser an und prüfen die Funktion.
Machen Sie auch komplette Umzüge?
Nein – wir sind auf Einzelstücke und kleine Transporte spezialisiert. Für einen kompletten Haushaltsumzug sind wir nicht der richtige Partner, für einzelne Möbel oder Geräte aber genau richtig.
In welchen Gebieten sind Sie unterwegs?
In ganz Berlin und im Umland – flexibel nach Ihrem Wunschtermin, auf Anfrage auch kurzfristig.
Wie schnell bekomme ich einen Termin?
Den Termin stimmen wir flexibel mit Ihnen ab – nach Ihrem Wunschtermin und auf Anfrage auch kurzfristig.
Wohnungsauflösung
Was kostet eine Wohnungsauflösung?
Den Preis nennen wir Ihnen nach einer kostenlosen Besichtigung als transparenten Festpreis – ohne versteckte Kosten. Verwertbare Gegenstände rechnen wir auf Wunsch an.
Wie schnell können Sie räumen?
Oft schon kurzfristig. Den genauen Termin stimmen wir flexibel mit Ihnen ab – auch Übergabefristen mit dem Vermieter koordinieren wir.
Übernehmen Sie auch die Entsorgung?
Ja – inklusive Sperrmüll, umweltgerecht über zertifizierte Betriebe. Sie müssen nichts selbst zum Wertstoffhof bringen.
Was passiert mit wertvollen Dingen?
Wir arbeiten sorgsam und werfen nichts achtlos weg. Dokumente, Schmuck und Erinnerungsstücke bleiben Ihnen erhalten; Verwertbares rechnen wir an.
Übergeben Sie besenrein?
Ja. Auf Wunsch übergeben wir die Wohnung besenrein und beanstandungsfrei – inkl. Grundreinigung und kleiner Renovierung.
Arbeiten Sie auch in sensiblen Fällen diskret?
Gerade dann. Bei Trauerfall oder Umzug ins Pflegeheim gehen wir einfühlsam, diskret und respektvoll vor und nehmen Ihnen den Stress ab.
Kontakt & Öffnungszeiten
Wir sind für Sie da – Antwort in 24 Std.
🏠
Adresse
Müllerstraße 6113349 Berlin-Wedding
📞
Telefon
030 921092279Mobil: 0179 2149607
🕗
Öffnungszeiten
Mo–Fr 8:00–20:00Sa 8:00–16:00 · So geschlossen
Jetzt anrufen →
PHN0eWxlPgogIC5kcmF3ZXIgewogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KPC9zdHlsZT4KPGNhcnQtZHJhd2VyIGNsYXNzPSJkcmF3ZXJ7JSBpZiBjYXJ0ID09IGVtcHR5ICV9IGlzLWVtcHR5eyUgZW5kaWYgJX0gY29sb3Ite3sgc2V0dGluZ3MuZHJhd2VyX2NvbG9yX3NjaGVtZSB9fSBncmFkaWVudCI+CiAgPGRpdiBpZD0iQ2FydERyYXdlciIgY2xhc3M9ImNhcnQtZHJhd2VyIj4KICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItT3ZlcmxheSIgY2xhc3M9ImNhcnQtZHJhd2VyX19vdmVybGF5Ij48L2Rpdj4KICAgIDxzdWJjYXJ0LWRyYXdlciBjbGFzcz0iZ2xvYmFsLXNldHRpbmdzLWRyYXdlciB7JSB1bmxlc3Mgc2V0dGluZ3MudXBzZWxscCA9PSB0cnVlICV9aXMtZW1wdHlybXYgeyUgZW5kdW5sZXNzICV9IiByb2xlPSJkaWFsb2ciIGFyaWEtbW9kYWw9InRydWUiIGFyaWEtbGFiZWw9Int7ICdzZWN0aW9ucy5jYXJ0LnRpdGxlJyB8IHQgfX0iIHRhYmluZGV4PSItMSI+CiAgICAgIDxkaXYgY2xhc3M9InVwc2VsbGlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3YnN1Yl9oZWFkIj4KICAgICAgICAgIHslLSBpZiBzZXR0aW5ncy53YnVwaGVhZCAtJX08c3BhbiBjbGFzcz0id2JzdWJfaGVhZGluZyI+e3sgc2V0dGluZ3Mud2J1cGhlYWQgfX08L3NwYW4+eyUtIGVuZGlmIC0lfQogICAgICAgICAgPGJ1dHRvbiBpZD0ic3ViX2RfY2xvc2UiICB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Int7ICdhY2Nlc3NpYmlsaXR5LmNsb3NlJyB8IHQgfX0iPgogICAgICAgICAgICB7JSByZW5kZXIgJ2ljb24tY2xvc2UnICV9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICB7JSBjb21tZW50ICV9Q2FydCB1cHNlbGwgcHJvZHVjdHslIGVuZGNvbW1lbnQgJX0KICAgICAgICB7JS0gaWYgc2V0dGluZ3MudXBzZWxscCAtJX0KICAgICAgICAgIDxkaXYgY2xhc3M9IndiY2FydHVwc2VsbCIgPgogICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIHslLSBpZiBzZXR0aW5ncy51cHNlbGxjb2xsZWN0aW9uICE9IGJsYW5rIC0lfQogICAgICAgICAgICAgICAgICB7JS0gYXNzaWduIHVwc2VsbF9jb3VudCA9IDAgLSV9CiAgICAgICAgICAgICAgICAgIHslLSBmb3IgcHJvZHVjdCBpbiBzZXR0aW5ncy51cHNlbGxjb2xsZWN0aW9uLnByb2R1Y3RzIC0lfQogICAgICAgICAgICAgICAgICAgIHslLSBpZiBwcm9kdWN0LmF2YWlsYWJsZSAtJX0KICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2FydHVwY2luZXIgdXBzZWxsY29sbGVjdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIHslIHJlbmRlciAnY2FyZC1wcm9kdWN0dXBzZWxsJywgY2FyZF9wcm9kdWN0OiBwcm9kdWN0ICV9CiAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgeyUtIGFzc2lnbiB1cHNlbGxfY291bnQgPSB1cHNlbGxfY291bnQgfCBwbHVzOiAxIC0lfQogICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHVwc2VsbF9jb3VudCA+PSBzZXR0aW5ncy51cHNlbGxfdG9fc2hvdyAtJX17JS0gYnJlYWsgLSV9eyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgeyUtIGVuZGZvciAtJX0KICAgICAgICAgICAgICAgIHslLSBlbHNlIC0lfQogICAgICAgICAgICAgICAgeyUtIGZvciBpIGluICgxLi40KSAtJX0KICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjYXJ0dXBjaW5lciB1cHNlbGxjb2xsZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgd2Jwcm9kdWN0LWNvbnRhaW5lciBjb2xsYWdlYmcgcHJvZHVjdC1jYXJkLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FwXzEwIGNhcmQgY2FyZC0te3sgc2V0dGluZ3MuY2FyZF9zdHlsZSB9fQogICAgICAgICAgICAgICAgICAgICAgICAgIHslIGlmIGNhcmRfcHJvZHVjdC5mZWF0dXJlZF9tZWRpYSAlfSBjYXJkLS1tZWRpYXslIGVsc2UgJX0gY2FyZC0tdGV4dHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgc2V0dGluZ3MuY2FyZF9zdHlsZSA9PSAnY2FyZCcgJX0gY29sb3Ite3sgc2V0dGluZ3MuY2FyZF9jb2xvcl9zY2hlbWUgfX0gZ3JhZGllbnR7JSBlbmRpZiAlfQogICAgICAgICAgICAgICAgICAgICAgICAgIHslIGlmIGltYWdlX3NoYXBlIGFuZCBpbWFnZV9zaGFwZSAhPSAnZGVmYXVsdCcgJX0gY2FyZC0tc2hhcGV7JSBlbmRpZiAlfQogICAgICAgICAgICAgICAgICAgICAgICAgIHslIGlmIGV4dGVuZF9oZWlnaHQgJX0gY2FyZC0tZXh0ZW5kLWhlaWdodHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgaG9yaXpvbnRhbF9jbGFzcyAlfSBjYXJkLS1ob3Jpem9udGFseyUgZW5kaWYgJX0iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndiaW1nYmxvY2sgY2FyZF9faW5uZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkdW1teXN2ZyI+e3sgJ3NlY3Rpb25zLmNhcnQuaGVhZGluZ3MuaW1hZ2UnIHwgdCB9fTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndicHJvZHVjdGRlcyBjYXJkX19jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcm9kdWN0LXRpdGxlIj57eyAnb25ib2FyZGluZy5wcm9kdWN0X3RpdGxlJyB8IHQgfX08L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JSByZW5kZXIgJ3ByaWNlJyAlfQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICB7JS0gZW5kZm9yIC0lfQogICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICB7JSBjb21tZW50ICV9IENhcnQgdXBzZWxsIHByb2R1Y3Qgb3ZlciB7JSBlbmRjb21tZW50ICV9CiAgICAgIDwvZGl2PgogICAgPC9zdWJjYXJ0LWRyYXdlcj4KICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9faW5uZXIgZ2xvYmFsLXNldHRpbmdzLWRyYXdlciIgcm9sZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIiBhcmlhLWxhYmVsPSJ7eyAnc2VjdGlvbnMuY2FydC50aXRsZScgfCB0IH19IiB0YWJpbmRleD0iLTEiPgogICAgICB7JS0gaWYgc2V0dGluZ3Mud2JfZnJlZV9zaGlwcGluZ19jb25mZXR0aSAtJX0KICAgICAgICA8ZGl2IGNsYXNzPSJkcmF3ZXItY29uZmV0dGkiIGlkPSJkcmF3ZXJDb25mZXR0aSI+PC9kaXY+CiAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgeyUtIGlmIGNhcnQgPT0gZW1wdHkgLSV9CiAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19pbm5lci1lbXB0eSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWRyYXdlcl9fd2FybmluZ3MgY2VudGVyeyUgaWYgc2V0dGluZ3MuY2FydF9kcmF3ZXJfY29sbGVjdGlvbiAhPSBibGFuayAlfSBjYXJ0LWRyYXdlcl9fd2FybmluZ3MtLWhhcy1jb2xsZWN0aW9ueyUgZW5kaWYgJX0iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWRyYXdlcl9fZW1wdHktY29udGVudCI+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImNhcnRfX2VtcHR5LXRleHQgaDIiPnt7ICdzZWN0aW9ucy5jYXJ0LmVtcHR5JyB8IHQgfX08L3A+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZHJhd2VyX19jbG9zZSIgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ0aGlzLmNsb3Nlc3QoJ2NhcnQtZHJhd2VyJykuY2xvc2UoKSIgYXJpYS1sYWJlbD0ie3sgJ2FjY2Vzc2liaWxpdHkuY2xvc2UnIHwgdCB9fSI+CiAgICAgICAgICAgICAgICB7JSByZW5kZXIgJ2ljb24tY2xvc2UnICV9CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGEgaHJlZj0ie3sgcm91dGVzLmFsbF9wcm9kdWN0c19jb2xsZWN0aW9uX3VybCB9fSIgY2xhc3M9ImJ1dHRvbiBjb250X3Nob3AiPgogICAgICAgICAgICAgICAgPHNwYW4+e3sgJ2dlbmVyYWwuY29udGludWVfc2hvcHBpbmcnIHwgdCB9fTwvc3Bhbj4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgeyUtIGlmIHNob3AuY3VzdG9tZXJfYWNjb3VudHNfZW5hYmxlZCBhbmQgY3VzdG9tZXIgPT0gbnVsbCAtJX0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjYXJ0X19sb2dpbi10aXRsZSBoMyI+e3sgJ3NlY3Rpb25zLmNhcnQubG9naW4udGl0bGUnIHwgdCB9fTwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjYXJ0X19sb2dpbi1wYXJhZ3JhcGgiPgogICAgICAgICAgICAgICAgICB7eyAnc2VjdGlvbnMuY2FydC5sb2dpbi5wYXJhZ3JhcGhfaHRtbCcgfCB0OiBsaW5rOiByb3V0ZXMuYWNjb3VudF9sb2dpbl91cmwgfX0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICB7JS0gaWYgc2V0dGluZ3MuY2FydF9kcmF3ZXJfY29sbGVjdGlvbiAhPSBibGFuayAtJX0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1kcmF3ZXJfX2NvbGxlY3Rpb24iPgogICAgICAgICAgICAgIHslIHJlbmRlciAnY2FyZC1jb2xsZWN0aW9uJywgY2FyZF9jb2xsZWN0aW9uOiBzZXR0aW5ncy5jYXJ0X2RyYXdlcl9jb2xsZWN0aW9uLCBjb2x1bW5zOiAxICV9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgIDwvZGl2PgogICAgICB7JS0gZW5kaWYgLSV9CiAgICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9faGVhZGVyIj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZHJhd2VyX19oZWFkaW5nIj57eyAnc2VjdGlvbnMuY2FydC50aXRsZScgfCB0IH19ICh7eyBjYXJ0Lml0ZW1fY291bnQgfX0pPC9kaXY+CiAgICAgICAgICB7JSBpZiBzZXR0aW5ncy53YmVuYWJsZV9zaGlwICV9CiAgICAgICAgICAgIHslLSBsaXF1aWQKICAgICAgICAgICAgICAgIGFzc2lnbiBpc051bWJlciA9IHNldHRpbmdzLndibWluX29yZGVyIHwgcGx1czogMAogICAgICAgICAgICAgICAgaWYgaXNOdW1iZXIgIT0gMAogICAgICAgICAgICAgICAgICBhc3NpZ24gc2hpcG1pbnByaWNlID0gc2V0dGluZ3Mud2JtaW5fb3JkZXIgfCB0aW1lczogMTAwCiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIGFzc2lnbiBzaGlwX211bHRpY3VycmVuY2llcyA9IHNldHRpbmdzLndibWluX29yZGVyIHwgc3BsaXQ6ICIsIgogICAgICAgICAgICAgICAgICBmb3Igc2hpcF9tdWx0aWN1cnJlbmN5IGluIHNoaXBfbXVsdGljdXJyZW5jaWVzCiAgICAgICAgICAgICAgICAgICAgYXNzaWduIHNoaXBtaW5wcmljZXMgPSBzaGlwX211bHRpY3VycmVuY3kgfCBzcGxpdDogIjoiCiAgICAgICAgICAgICAgICAgICAgaWYgc2hpcG1pbnByaWNlcy5maXJzdCA9PSBsb2NhbGl6YXRpb24uY291bnRyeS5jdXJyZW5jeS5pc29fY29kZQogICAgICAgICAgICAgICAgICAgICAgYXNzaWduIHNoaXBtaW5wcmljZSA9IHNoaXBtaW5wcmljZXMubGFzdCB8IHRpbWVzOiAxMDAKICAgICAgICAgICAgICAgICAgICBlbmRpZgogICAgICAgICAgICAgICAgICBlbmRmb3IKICAgICAgICAgICAgICAgIGVuZGlmCiAgICAgICAgICAgIC0lfQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YnNoaXAiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Indic2hpcF93cmFwcGVyeyUgaWYgY2FydC50b3RhbF9wcmljZSA+PSBzaGlwbWlucHJpY2UgJX0gd2JzaGlwX2Z1bGxfd3JhcHBlcnslIGVuZGlmICV9Ij4KICAgICAgICAgICAgICAgICAgeyUgaWYgY2FydC50b3RhbF9wcmljZSA+PSBzaGlwbWlucHJpY2UgJX0KICAgICAgICAgICAgICAgICAgICB7JSByZW5kZXIgJ2ljb24tYmVsbCcgJX0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YnNoaXBpbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICB7JSBpZiBzZXR0aW5ncy5kcmF3ZXJfZnJlZSAhPSBibGFuayAlfQogICAgICAgICAgICAgICAgICAgICAgICB7eyBzZXR0aW5ncy5kcmF3ZXJfZnJlZSB9fQogICAgICAgICAgICAgICAgICAgICAgeyUgZWxzZSAlfQogICAgICAgICAgICAgICAgICAgICAgICB7eyAnd2JjdXN0b21sYWJlbC53YmFsbHRleHQuZnJlZV9zaGlwJyB8IHQgfX0KICAgICAgICAgICAgICAgICAgICAgIHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICA8Yj4mbmJzcDt7eyAnd2JjdXN0b21sYWJlbC53YmFsbHRleHQuZnJlZV9zaGlwaW5uZXInIHwgdCB9fTwvYj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnslIHJlbmRlciAnaWNvbi10cnVjaycgJX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIHslIGVsc2lmIGNhcnQudG90YWxfcHJpY2UgPCBzaGlwbWlucHJpY2UgJX0KICAgICAgICAgICAgICAgICAgICB7JSBpZiBzZXR0aW5ncy5kcmF3ZXJfZnJlZV9hd2F5ICE9IGJsYW5rICV9CiAgICAgICAgICAgICAgICAgICAgICB7eyBzZXR0aW5ncy5kcmF3ZXJfZnJlZV9hd2F5IH19CiAgICAgICAgICAgICAgICAgICAgeyUgZWxzZSAlfQogICAgICAgICAgICAgICAgICAgICAge3sgJ3diY3VzdG9tbGFiZWwud2JhbGx0ZXh0LmZyZWVfc2hpcG9ubHknIHwgdCB9fSAKICAgICAgICAgICAgICAgICAgICB7JSBlbmRpZiAlfQogICAgICAgICAgICAgICAgICAgIDxiPgogICAgICAgICAgICAgICAgICAgICAgeyUgaWYgc2V0dGluZ3MuY3VycmVuY3lfY29kZV9lbmFibGVkICV9CiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNoaXBtaW5wcmljZSB8IG1pbnVzOiBjYXJ0LnRvdGFsX3ByaWNlIHwgbW9uZXlfd2l0aF9jdXJyZW5jeSB9fQogICAgICAgICAgICAgICAgICAgICAgeyUgZWxzZSAlfQogICAgICAgICAgICAgICAgICAgICAgICB7eyBzaGlwbWlucHJpY2UgfCBtaW51czogY2FydC50b3RhbF9wcmljZSB8IG1vbmV5IH19CiAgICAgICAgICAgICAgICAgICAgICB7JSBlbmRpZiAlfQogICAgICAgICAgICAgICAgICAgIDwvYj4mbmJzcDsKICAgICAgICAgICAgICAgICAgICB7JSBpZiBzZXR0aW5ncy5kcmF3ZXJfZnJlZV9hd2F5X2FmdGVyICE9IGJsYW5rICV9CiAgICAgICAgICAgICAgICAgICAgICB7eyBzZXR0aW5ncy5kcmF3ZXJfZnJlZV9hd2F5X2FmdGVyIH19CiAgICAgICAgICAgICAgICAgICAgeyUgZWxzZSAlfQogICAgICAgICAgICAgICAgICAgICAge3sgJ3diY3VzdG9tbGFiZWwud2JhbGx0ZXh0LmZyZWVfc2hpcGF3YXknIHwgdCB9fQogICAgICAgICAgICAgICAgICAgIHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgIHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGV0ZXJtaW5hdGUiCiAgICAgICAgICAgICAgICAgICAgICBpZD0iZnJlZVNoaXBwaW5nQmFyIgogICAgICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiB7eyBjYXJ0LnRvdGFsX3ByaWNlIHwgdGltZXM6IDEwMCB8IGRpdmlkZWRfYnk6IHNoaXBtaW5wcmljZSB8IHJvdW5kIHwgYXRfbW9zdDogMTAwIH19JTsiCiAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRocmVzaG9sZD0ieyUgaWYgY2FydC50b3RhbF9wcmljZSA+PSBzaGlwbWlucHJpY2UgJX10cnVleyUgZWxzZSAlfWZhbHNleyUgZW5kaWYgJX0iCiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIHslIGVuZGlmICV9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRyYXdlcl9fY2xvc2UiIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0idGhpcy5jbG9zZXN0KCdjYXJ0LWRyYXdlcicpLmNsb3NlKCkiIGFyaWEtbGFiZWw9Int7ICdhY2Nlc3NpYmlsaXR5LmNsb3NlJyB8IHQgfX0iPgogICAgICAgICAgICB7JSByZW5kZXIgJ2ljb24tY2xvc2UnICV9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIHslLSBpZiBzZXR0aW5ncy5zaG93X2NhcnRfY291bnRkb3duIC0lfQogICAgICAgIDxkaXYgY2xhc3M9ImNvdW50bWFyZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNkb3ducmlnaHQte3sgc2VjdGlvbi5pZCB9fSBjb2xvci17eyBzZXR0aW5ncy5jZHJhd2VyX2NvbG9yX3NjaGVtZSB9fSBncmFkaWVudCBjb3VudGRvd25fd3JhcHBlciBjb250ZW50LWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1oZWFkaW5nLXdyYXBwZXIiPgogICAgICAgICAgICAgIHslIGlmIHNldHRpbmdzLmhlYWRpbmcgIT0gYmxhbmsgJX0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkaW5nIGlubGluZS1yaWNodGV4dCBoMyI+e3sgc2V0dGluZ3MuaGVhZGluZyB9fTwvc3Bhbj4KICAgICAgICAgICAgICB7JSBlbmRpZiAlfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY291bnRkb3duLWRhdGUtd3JhcHBlciI+CiAgICAgICAgICAgICAgPGRpdiBkYXRhLWRhdGU9Int7IHNldHRpbmdzLndiX2VuZGRhdGUgfX0iIGNsYXNzPSJ3Yl9wcm9kdWN0X2NvdW50ZG93biBjb3VudGRfYWxsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lIG1haW5fY2RheXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnQgd2JfY2RheXMiPjAwPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPnt7ICd3YmN1c3RvbWxhYmVsLndiYWxsdGV4dC50aW1lX2RheXMnIHwgdCB9fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lIG1haW5fY2hvdXJzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50IHdiX2Nob3VycyI+MDA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+e3sgJ3diY3VzdG9tbGFiZWwud2JhbGx0ZXh0LnRpbWVfaG91cicgfCB0IH19PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUgbWFpbl9jbWludXRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3VudCB3Yl9jbWludXRlcyI+MDA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+e3sgJ3diY3VzdG9tbGFiZWwud2JhbGx0ZXh0LnRpbWVfbWluJyB8IHQgfX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZSBtYWluX2NzZWNvbmRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50IHdiX2NzZWNvbmRzIj4wMDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIj57eyAnd2JjdXN0b21sYWJlbC53YmFsbHRleHQudGltZV9zZWMnIHwgdCB9fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgeyUtIGVuZGlmIC0lfQogICAgICAgIDxjYXJ0LWRyYXdlci1pdGVtcyB7JSBpZiBjYXJ0ID09IGVtcHR5ICV9Y2xhc3M9ImlzLWVtcHR5InslIGVuZGlmICV9PgogICAgICAgICAgPGZvcm0gYWN0aW9uPSJ7eyByb3V0ZXMuY2FydF91cmwgfX0iIGlkPSJDYXJ0RHJhd2VyLUZvcm0iIGNsYXNzPSJjYXJ0X19jb250ZW50cyBjYXJ0LWRyYXdlcl9fZm9ybSIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgPGRpdiBpZD0iQ2FydERyYXdlci1DYXJ0SXRlbXMiIGNsYXNzPSJkcmF3ZXJfX2NvbnRlbnRzIGpzLWNvbnRlbnRzIj4KICAgICAgICAgICAgICB7JS0gaWYgY2FydCAhPSBlbXB0eSAtJX0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9fY2FydC1pdGVtcy13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJjYXJ0LWl0ZW1zIiByb2xlPSJ0YWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5IHJvbGU9InJvd2dyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgIHslLSBmb3IgaXRlbSBpbiBjYXJ0Lml0ZW1zIC0lfQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9IkNhcnREcmF3ZXItSXRlbS17eyBpdGVtLmluZGV4IHwgcGx1czogMSB9fSIgY2xhc3M9ImNhcnQtaXRlbSB7JSBpZiBpdGVtLmltYWdlID09IGJsYW5rICV9IGNhcnRfbm9fbWVkaWF7JSBlbmRpZiAlfSIgcm9sZT0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICB7JSBpZiBpdGVtLmltYWdlICE9IGJsYW5rICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNhcnQtaXRlbV9fbWVkaWEiIHJvbGU9ImNlbGwiIGhlYWRlcnM9IkNhcnREcmF3ZXItQ29sdW1uUHJvZHVjdEltYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgaXRlbS5pbWFnZSAlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIGNvbW1lbnQgJX0gTGVhdmUgZW1wdHkgc3BhY2UgZHVlIHRvIGE6ZW1wdHkgQ1NTIGRpc3BsYXk6IG5vbmUgcnVsZSB7JSBlbmRjb21tZW50ICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ie3sgaXRlbS51cmwgfX0iIGNsYXNzPSJjYXJ0LWl0ZW1fX2xpbmsiIHRhYmluZGV4PSItMSIgYXJpYS1oaWRkZW49InRydWUiPiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9ImNhcnQtaXRlbV9faW1hZ2UiIHNyYz0ie3sgaXRlbS5pbWFnZSB8IGltYWdlX3VybDogd2lkdGg6IDMwMCB9fSIgYWx0PSJ7eyBpdGVtLmltYWdlLmFsdCB8IGVzY2FwZSB9fSIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjE1MCIgaGVpZ2h0PSJ7eyAxNTAgfCBkaXZpZGVkX2J5OiBpdGVtLmltYWdlLmFzcGVjdF9yYXRpbyB8IGNlaWwgfX0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgZW5kaWYgJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IGhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5X19zcGlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgNjYgNjYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9InBhdGgiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNiIgY3g9IjMzIiBjeT0iMzMiIHI9IjMwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgZW5kaWYgJX0KICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNhcnQtaXRlbV9fZGV0YWlscyIgcm9sZT0iY2VsbCIgaGVhZGVycz0iQ2FydERyYXdlci1Db2x1bW5Qcm9kdWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBpZiBzZXR0aW5ncy5lbmFibGVfdmVuZG9yIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic3ZlbmQiPnt7IGl0ZW0ucHJvZHVjdC52ZW5kb3IgfX08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJ7eyBpdGVtLnVybCB9fSIgY2xhc3M9ImNhcnQtaXRlbV9fbmFtZSBoNCBicmVhayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7LSBpdGVtLnByb2R1Y3QudGl0bGUgfCBlc2NhcGUgLX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gaWYgaXRlbS5wcm9kdWN0Lmhhc19vbmx5X2RlZmF1bHRfdmFyaWFudCA9PSBmYWxzZSBvciBpdGVtLnByb3BlcnRpZXMuc2l6ZSAhPSAwIG9yIGl0ZW0uc2VsbGluZ19wbGFuX2FsbG9jYXRpb24gIT0gbnVsbCAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBpZiBpdGVtLnByb2R1Y3QuaGFzX29ubHlfZGVmYXVsdF92YXJpYW50ID09IGZhbHNlIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGZvciBvcHRpb24gaW4gaXRlbS5vcHRpb25zX3dpdGhfdmFsdWVzIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LW9wdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pnt7IG9wdGlvbi5uYW1lIH19OjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLnZhbHVlIC19fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGZvciAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGZvciBwcm9wZXJ0eSBpbiBpdGVtLnByb3BlcnRpZXMgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gYXNzaWduIHByb3BlcnR5X2ZpcnN0X2NoYXIgPSBwcm9wZXJ0eS5maXJzdCB8IHNsaWNlOiAwIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHByb3BlcnR5Lmxhc3QgIT0gYmxhbmsgYW5kIHByb3BlcnR5X2ZpcnN0X2NoYXIgIT0gJ18nIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LW9wdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pnt7IHByb3BlcnR5LmZpcnN0IH19OjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHByb3BlcnR5Lmxhc3QgY29udGFpbnMgJy91cGxvYWRzLycgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Int7IHByb3BlcnR5Lmxhc3QgfX0iIGNsYXNzPSJsaW5rIiB0YXJnZXQ9Il9ibGFuayIgYXJpYS1kZXNjcmliZWRieT0iYTExeS1uZXctd2luZG93LW1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5Lmxhc3QgfCBzcGxpdDogJy8nIHwgbGFzdCB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZWxzZSAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvcGVydHkubGFzdCB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRmb3IgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcm9kdWN0LW9wdGlvbiI+e3sgaXRlbS5zZWxsaW5nX3BsYW5fYWxsb2NhdGlvbi5zZWxsaW5nX3BsYW4ubmFtZSB9fTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZGlzY291bnRzIGxpc3QtdW5zdHlsZWQiIGFyaWEtbGFiZWw9Int7ICdjdXN0b21lci5vcmRlci5kaXNjb3VudCcgfCB0IH19Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGZvciBkaXNjb3VudCBpbiBpdGVtLmRpc2NvdW50cyAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRpc2NvdW50c19fZGlzY291bnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHJlbmRlciAnaWNvbi1kaXNjb3VudCcgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNjb3VudC50aXRsZSB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRmb3IgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsIGNsYXNzPSJpdGVtLXByaWNlLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gaWYgaXRlbS5vcmlnaW5hbF9saW5lX3ByaWNlICE9IGl0ZW0uZmluYWxfbGluZV9wcmljZSAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW1fX2Rpc2NvdW50ZWQtcHJpY2VzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncHJvZHVjdHMucHJvZHVjdC5wcmljZS5zYWxlX3ByaWNlJyB8IHQgfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZSBwcmljZS0tZW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHNldHRpbmdzLmN1cnJlbmN5X2NvZGVfZW5hYmxlZCAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmZpbmFsX2xpbmVfcHJpY2UgfCBtb25leV93aXRoX2N1cnJlbmN5IH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbHNlIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZmluYWxfbGluZV9wcmljZSB8IG1vbmV5IH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3Byb2R1Y3RzLnByb2R1Y3QucHJpY2UucmVndWxhcl9wcmljZScgfCB0IH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cyBjbGFzcz0iY2FydC1pdGVtX19vbGQtcHJpY2UgcHJpY2UgcHJpY2UtLWVuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBpZiBzZXR0aW5ncy5jdXJyZW5jeV9jb2RlX2VuYWJsZWQgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5vcmlnaW5hbF9saW5lX3ByaWNlIHwgbW9uZXlfd2l0aF9jdXJyZW5jeSB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZWxzZSAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm9yaWdpbmFsX2xpbmVfcHJpY2UgfCBtb25leSB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3M+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbHNlIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LW9wdGlvbiBwcmljZS1vcmlnaW5hbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gaWYgc2V0dGluZ3MuY3VycmVuY3lfY29kZV9lbmFibGVkIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm9yaWdpbmFsX2xpbmVfcHJpY2UgfCBtb25leV93aXRoX2N1cnJlbmN5IH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZWxzZSAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5vcmlnaW5hbF9saW5lX3ByaWNlIHwgbW9uZXkgfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIGl0ZW0udmFyaWFudC5hdmFpbGFibGUgYW5kIGl0ZW0udW5pdF9wcmljZV9tZWFzdXJlbWVudCAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1bml0LXByaWNlIGNhcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+e3sgJ3Byb2R1Y3RzLnByb2R1Y3QucHJpY2UudW5pdF9wcmljZScgfCB0IH19PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHNldHRpbmdzLmN1cnJlbmN5X2NvZGVfZW5hYmxlZCAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YXJpYW50LnVuaXRfcHJpY2UgfCBtb25leV93aXRoX2N1cnJlbmN5IH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZWxzZSAtJX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YXJpYW50LnVuaXRfcHJpY2UgfCBtb25leSB9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPi88L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Jm5ic3A7e3sgJ2FjY2Vzc2liaWxpdHkudW5pdF9wcmljZV9zZXBhcmF0b3InIHwgdCB9fSZuYnNwOzwvc3BhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIGl0ZW0udmFyaWFudC51bml0X3ByaWNlX21lYXN1cmVtZW50LnJlZmVyZW5jZV92YWx1ZSAhPSAxIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ey0gaXRlbS52YXJpYW50LnVuaXRfcHJpY2VfbWVhc3VyZW1lbnQucmVmZXJlbmNlX3ZhbHVlIC19fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YXJpYW50LnVuaXRfcHJpY2VfbWVhc3VyZW1lbnQucmVmZXJlbmNlX3VuaXQgfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkNhcnREcmF3ZXItTGluZUl0ZW1FcnJvci17eyBpdGVtLmluZGV4IHwgcGx1czogMSB9fSIgY2xhc3M9ImNhcnQtaXRlbV9fZXJyb3IiIHJvbGU9ImFsZXJ0IiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0iY2FydC1pdGVtX19lcnJvci10ZXh0Ij48L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIiBjbGFzcz0iaWNvbiBpY29uLWVycm9yIiB2aWV3Qm94PSIwIDAgMTMgMTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNTAwNDkiIHI9IjUuNSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi41IiBjeT0iNi41IiByPSI1LjUiIGZpbGw9IiNFQjAwMUIiIHN0cm9rZT0iI0VCMDAxQiIgc3Ryb2tlLXdpZHRoPSIwLjciLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNS44NzQxMyAzLjUyODMyTDUuOTc0MzkgNy41NzIxNkg3LjAyNzEzTDcuMTI3MzkgMy41MjgzMkg1Ljg3NDEzWk02LjUwMDc2IDkuNjYwOTFDNi44ODA5MSA5LjY2MDkxIDcuMTgxNjkgOS4zNzI2NyA3LjE4MTY5IDkuMDA1MDRDNy4xODE2OSA4LjYzNzQyIDYuODgwOTEgOC4zNDkxNyA2LjUwMDc2IDguMzQ5MTdDNi4xMjA2MSA4LjM0OTE3IDUuODE5ODIgOC42Mzc0MiA1LjgxOTgyIDkuMDA1MDRDNS44MTk4MiA5LjM3MjY3IDYuMTIwNjEgOS42NjA5MSA2LjUwMDc2IDkuNjYwOTFaIiBmaWxsPSJ3aGl0ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg3NDEzIDMuMTc4MzJINS41MTUzNUw1LjUyNDI0IDMuNTM3TDUuNjI0NSA3LjU4MDgzTDUuNjMyOTYgNy45MjIxNkg1Ljk3NDM5SDcuMDI3MTNINy4zNjg1Nkw3LjM3NzAyIDcuNTgwODNMNy40NzcyOCAzLjUzN0w3LjQ4NjE3IDMuMTc4MzJINy4xMjczOUg1Ljg3NDEzWk02LjUwMDc2IDEwLjAxMDlDNy4wNjEyMSAxMC4wMTA5IDcuNTMxNyA5LjU3ODcyIDcuNTMxNyA5LjAwNTA0QzcuNTMxNyA4LjQzMTM3IDcuMDYxMjEgNy45OTkxOCA2LjUwMDc2IDcuOTk5MThDNS45NDAzMSA3Ljk5OTE4IDUuNDY5ODIgOC40MzEzNyA1LjQ2OTgyIDkuMDA1MDRDNS40Njk4MiA5LjU3ODcyIDUuOTQwMzEgMTAuMDEwOSA2LjUwMDc2IDEwLjAxMDlaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSIjRUIwMDFCIiBzdHJva2Utd2lkdGg9IjAuNyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjYXJ0LWl0ZW1fX3RvdGFscyByaWdodCIgcm9sZT0iY2VsbCIgaGVhZGVycz0iQ2FydERyYXdlci1Db2x1bW5Ub3RhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXJpZ2h0LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNhcnQtcmVtb3ZlLWJ1dHRvbiBjbGFzcz0iYnV0dG9uIiBpZD0iQ2FydERyYXdlci1SZW1vdmUte3sgaXRlbS5pbmRleCB8IHBsdXM6IDEgfX0iIGRhdGEtaW5kZXg9Int7IGl0ZW0uaW5kZXggfCBwbHVzOiAxIH19Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57JSByZW5kZXIgJ2ljb24tcmVtb3ZlJyAlfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jYXJ0LXJlbW92ZS1idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxxdWFudGl0eS1pbnB1dCBjbGFzcz0icXVhbnRpdHkgY2FydC1xdWFudGl0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icXVhbnRpdHlfX2J1dHRvbiBuby1qcy1oaWRkZW4iIG5hbWU9Im1pbnVzIiB0eXBlPSJidXR0b24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZpc3VhbGx5LWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7LSAncHJvZHVjdHMucHJvZHVjdC5xdWFudGl0eS5kZWNyZWFzZScgfCB0OiBwcm9kdWN0OiBpdGVtLnByb2R1Y3QudGl0bGUgfCBlc2NhcGUgLX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JSByZW5kZXIgJ2ljb24tbWludXMnICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icXVhbnRpdHlfX2lucHV0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1xdWFudGl0eS12YXJpYW50LWlkPSJ7eyBpdGVtLnZhcmlhbnQuaWQgfX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJ1cGRhdGVzW10iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ie3sgaXRlbS5xdWFudGl0eSB9fSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslICMgdGhlbWUtY2hlY2stZGlzYWJsZSAlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jYXJ0LXF1YW50aXR5PSJ7eyBjYXJ0IHwgaXRlbV9jb3VudF9mb3JfdmFyaWFudDogaXRlbS52YXJpYW50LmlkIH19IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPSJ7eyBpdGVtLnZhcmlhbnQucXVhbnRpdHlfcnVsZS5taW4gfX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JSBpZiBpdGVtLnZhcmlhbnQucXVhbnRpdHlfcnVsZS5tYXggIT0gbnVsbCAlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9Int7IGl0ZW0udmFyaWFudC5xdWFudGl0eV9ydWxlLm1heCB9fSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwPSJ7eyBpdGVtLnZhcmlhbnQucXVhbnRpdHlfcnVsZS5pbmNyZW1lbnQgfX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JSAjIHRoZW1lLWNoZWNrLWVuYWJsZSAlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ie3sgJ3Byb2R1Y3RzLnByb2R1Y3QucXVhbnRpdHkuaW5wdXRfbGFiZWwnIHwgdDogcHJvZHVjdDogaXRlbS5wcm9kdWN0LnRpdGxlIHwgZXNjYXBlIH19IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IkRyYXdlci1xdWFudGl0eS17eyBpdGVtLmluZGV4IHwgcGx1czogMSB9fSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaW5kZXg9Int7IGl0ZW0uaW5kZXggfCBwbHVzOiAxIH19IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJxdWFudGl0eV9fYnV0dG9uIG5vLWpzLWhpZGRlbiIgbmFtZT0icGx1cyIgdHlwZT0iYnV0dG9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2aXN1YWxseS1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ey0gJ3Byb2R1Y3RzLnByb2R1Y3QucXVhbnRpdHkuaW5jcmVhc2UnIHwgdDogcHJvZHVjdDogaXRlbS5wcm9kdWN0LnRpdGxlIHwgZXNjYXBlIC19fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgcmVuZGVyICdpY29uLXBsdXMnICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcXVhbnRpdHktaW5wdXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGZvciAtJX0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgICAgICAgIDxwIGlkPSJDYXJ0RHJhd2VyLUxpdmVSZWdpb25UZXh0IiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiByb2xlPSJzdGF0dXMiPjwvcD4KICAgICAgICAgICAgICA8cCBpZD0iQ2FydERyYXdlci1MaW5lSXRlbVN0YXR1cyIgY2xhc3M9InZpc3VhbGx5LWhpZGRlbiIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9InN0YXR1cyI+CiAgICAgICAgICAgICAgICB7eyAnYWNjZXNzaWJpbGl0eS5sb2FkaW5nJyB8IHQgfX0KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJDYXJ0RHJhd2VyLUNhcnRFcnJvcnMiIHJvbGU9ImFsZXJ0Ij48L2Rpdj4KICAgICAgICAgIDwvZm9ybT4KICAgICAgICA8L2NhcnQtZHJhd2VyLWl0ZW1zPgogICAgICAgIHslIGNvbW1lbnQgJX1DYXJ0IHVwc2VsbCBwcm9kdWN0eyUgZW5kY29tbWVudCAlfQogICAgICAgIHslLSBpZiBzZXR0aW5ncy51cHNlbGxwIC0lfQogICAgICAgICAgPHNsaWRlci1jb21wb25lbnQgY2xhc3M9ImRlc2t0b3BjYXJ0dXBzZWxsIHdiY2FydHVwc2VsbCB7JSB1bmxlc3Mgc2V0dGluZ3MudXBzZWxscCA9PSB0cnVlICV9aXMtZW1wdHlybXYgeyUgZW5kdW5sZXNzICV9Ij4KICAgICAgICAgICAgeyUtIGlmIHNldHRpbmdzLndidXBoZWFkIC0lfTxwIGNsYXNzPSJ1cHNoZWFkIj57eyBzZXR0aW5ncy53YnVwaGVhZCB9fTwvcD57JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgPHVsIGNsYXNzPSJncmlkIHNsaWRlciBjb250YWlucy1jYXJkLS1wcm9kdWN0IiBpZD0iU2xpZGVyLXt7IHNlY3Rpb24uaWQgfX0iPgogICAgICAgICAgICAgICAgeyUtIGlmIHNldHRpbmdzLnVwc2VsbGNvbGxlY3Rpb24gIT0gYmxhbmsgLSV9CiAgICAgICAgICAgICAgICAgIHslLSBhc3NpZ24gdXBzZWxsX2NvdW50ID0gMCAtJX0KICAgICAgICAgICAgICAgICAgeyUtIGZvciBwcm9kdWN0IGluIHNldHRpbmdzLnVwc2VsbGNvbGxlY3Rpb24ucHJvZHVjdHMgLSV9CiAgICAgICAgICAgICAgICAgICAgeyUtIGlmIHByb2R1Y3QuYXZhaWxhYmxlIC0lfQogICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjYXJ0dXBjaW5lciBzbGlkZXJfX3NsaWRlIHVwc2VsbGNvbGxlY3Rpb24iIGlkPSJTbGlkZS17eyBzZWN0aW9uLmlkIH19LXt7IGZvcmxvb3AuaW5kZXggfX0iPgogICAgICAgICAgICAgICAgICAgICAgICB7JSByZW5kZXIgJ2NhcmQtcHJvZHVjdHVwc2VsbCcsIGNhcmRfcHJvZHVjdDogcHJvZHVjdCAlfQogICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgIHslLSBhc3NpZ24gdXBzZWxsX2NvdW50ID0gdXBzZWxsX2NvdW50IHwgcGx1czogMSAtJX0KICAgICAgICAgICAgICAgICAgICAgIHslLSBpZiB1cHNlbGxfY291bnQgPj0gc2V0dGluZ3MudXBzZWxsX3RvX3Nob3cgLSV9eyUtIGJyZWFrIC0lfXslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICAgICAgICAgIHslLSBlbmRmb3IgLSV9CiAgICAgICAgICAgICAgICB7JS0gZWxzZSAtJX0KICAgICAgICAgICAgICAgIHslLSBmb3IgaSBpbiAoMS4uNCkgLSV9CiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2FydHVwY2luZXIgc2xpZGVyX19zbGlkZSB1cHNlbGxjb2xsZWN0aW9uIiBpZD0iU2xpZGUte3sgc2VjdGlvbi5pZCB9fS17eyBmb3Jsb29wLmluZGV4IH19Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLXdyYXBwZXIgd2Jwcm9kdWN0LWNvbnRhaW5lciBjb2xsYWdlYmcgcHJvZHVjdC1jYXJkLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZCBjYXJkLS17eyBzZXR0aW5ncy5jYXJkX3N0eWxlIH19CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgY2FyZF9wcm9kdWN0LmZlYXR1cmVkX21lZGlhICV9IGNhcmQtLW1lZGlheyUgZWxzZSAlfSBjYXJkLS10ZXh0eyUgZW5kaWYgJX0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JSBpZiBzZXR0aW5ncy5jYXJkX3N0eWxlID09ICdjYXJkJyAlfSBjb2xvci17eyBzZXR0aW5ncy5jYXJkX2NvbG9yX3NjaGVtZSB9fSBncmFkaWVudHslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgaW1hZ2Vfc2hhcGUgYW5kIGltYWdlX3NoYXBlICE9ICdkZWZhdWx0JyAlfSBjYXJkLS1zaGFwZXslIGVuZGlmICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgaWYgZXh0ZW5kX2hlaWdodCAlfSBjYXJkLS1leHRlbmQtaGVpZ2h0eyUgZW5kaWYgJX0KICAgICAgICAgICAgICAgICAgICAgICAgICB7JSBpZiBob3Jpem9udGFsX2NsYXNzICV9IGNhcmQtLWhvcml6b250YWx7JSBlbmRpZiAlfSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2JpbWdibG9jayBjYXJkX19pbm5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImR1bW15c3ZnIj57eyAnc2VjdGlvbnMuY2FydC5oZWFkaW5ncy5pbWFnZScgfCB0IH19PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0id2Jwcm9kdWN0ZGVzIGNhcmRfX2NvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByb2R1Y3QtdGl0bGUiPnt7ICdvbmJvYXJkaW5nLnByb2R1Y3RfdGl0bGUnIHwgdCB9fTwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIHJlbmRlciAncHJpY2UnICV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIHslLSBlbmRmb3IgLSV9CiAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndiaG9tZXNidG4gbm8tanMtaGlkZGVuIj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2xpZGVyLWJ1dHRvbiBzbGlkZXItYnV0dG9uLS1wcmV2IGZvY3VzLWluc2V0IiBuYW1lPSJwcmV2aW91cyIgYXJpYS1sYWJlbD0ie3sgJ2dlbmVyYWwuc2xpZGVyLnByZXZpb3VzX3NsaWRlJyB8IHQgfX0iIGFyaWEtY29udHJvbHM9IlNsaWRlci17eyBzZWN0aW9uLmlkIH19IiBkYXRhLXN0ZXA9IjEiPnslIHJlbmRlciAnaWNvbi1jYXJldCcgJX08L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2xpZGVyLWJ1dHRvbiBzbGlkZXItYnV0dG9uLS1uZXh0IGZvY3VzLWluc2V0IiBuYW1lPSJuZXh0IiBhcmlhLWxhYmVsPSJ7eyAnZ2VuZXJhbC5zbGlkZXIubmV4dF9zbGlkZScgfCB0IH19IiBhcmlhLWNvbnRyb2xzPSJTbGlkZXIte3sgc2VjdGlvbi5pZCB9fSIgZGF0YS1zdGVwPSIxIj57JSByZW5kZXIgJ2ljb24tY2FyZXQnICV9PC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L3NsaWRlci1jb21wb25lbnQ+CiAgICAgICAgeyUtIGVuZGlmIC0lfQogICAgICAgIDxkaXYgY2xhc3M9ImRyYXdlcl9fZm9vdGVyIj4KICAgICAgICAgIHslLSBpZiBzZXR0aW5ncy5zaG93X2NhcnRfbm90ZSAtJX0KICAgICAgICAgICAgPGRldGFpbHMgaWQ9IkRldGFpbHMtQ2FydERyYXdlciI+CiAgICAgICAgICAgICAgPHN1bW1hcnk+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3VtbWFyeV9fdGl0bGUiPgogICAgICAgICAgICAgICAgICB7eyAnc2VjdGlvbnMuY2FydC5ub3RlJyB8IHQgfX0KICAgICAgICAgICAgICAgICAgeyUgcmVuZGVyICdpY29uLWNhcmV0JyAlfQogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgIDwvc3VtbWFyeT4KICAgICAgICAgICAgICA8Y2FydC1ub3RlIGNsYXNzPSJjYXJ0X19ub3RlIGZpZWxkIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0idmlzdWFsbHktaGlkZGVuIiBmb3I9IkNhcnREcmF3ZXItTm90ZSI+e3sgJ3NlY3Rpb25zLmNhcnQubm90ZScgfCB0IH19PC9sYWJlbD4KICAgICAgICAgICAgICAgIDx0ZXh0YXJlYQogICAgICAgICAgICAgICAgICBpZD0iQ2FydERyYXdlci1Ob3RlIgogICAgICAgICAgICAgICAgICBjbGFzcz0idGV4dC1hcmVhIHRleHQtYXJlYS0tcmVzaXplLXZlcnRpY2FsIGZpZWxkX19pbnB1dCIKICAgICAgICAgICAgICAgICAgbmFtZT0ibm90ZSIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9Int7ICdzZWN0aW9ucy5jYXJ0Lm5vdGUnIHwgdCB9fSIKICAgICAgICAgICAgICAgID57eyBjYXJ0Lm5vdGUgfX08L3RleHRhcmVhPgogICAgICAgICAgICAgIDwvY2FydC1ub3RlPgogICAgICAgICAgICA8L2RldGFpbHM+CiAgICAgICAgICB7JS0gZW5kaWYgLSV9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LWRyYXdlcl9fZm9vdGVyIiB7eyBibG9jay5zaG9waWZ5X2F0dHJpYnV0ZXMgfX0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvdGFscyIgcm9sZT0ic3RhdHVzIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idG90YWxzX19zdWJ0b3RhbCI+e3sgJ3NlY3Rpb25zLmNhcnQuc3VidG90YWwnIHwgdCB9fSAoe3sgY2FydC5pdGVtX2NvdW50IH19KTwvc3Bhbj4KICAgICAgICAgICAgICA8cCBjbGFzcz0icHJvZHVjdC1vcHRpb24gcHJpY2Utb3JpZ2luYWwiPgogICAgICAgICAgICAgICAgeyUtIGlmIHNldHRpbmdzLmN1cnJlbmN5X2NvZGVfZW5hYmxlZCAtJX0KICAgICAgICAgICAgICAgICAge3sgY2FydC50b3RhbF9wcmljZSB8IG1vbmV5X3dpdGhfY3VycmVuY3kgfX0KICAgICAgICAgICAgICAgIHslLSBlbHNlIC0lfQogICAgICAgICAgICAgICAgICB7eyBjYXJ0LnRvdGFsX3ByaWNlIHwgbW9uZXkgfX0KICAgICAgICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0X19jdGFzIGNhcnRkcmF3YnRuIiB7eyBibG9jay5zaG9waWZ5X2F0dHJpYnV0ZXMgfX0+CiAgICAgICAgICAgIDxub3NjcmlwdD4KICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImNhcnRfX3VwZGF0ZS1idXR0b24gYnV0dG9uIGJ1dHRvbi0tc2Vjb25kYXJ5IiBmb3JtPSJDYXJ0RHJhd2VyLUZvcm0iPgogICAgICAgICAgICAgICAgPHNwYW4+e3sgJ3NlY3Rpb25zLmNhcnQudXBkYXRlJyB8IHQgfX08L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvbm9zY3JpcHQ+CiAgICAgICAgICAgIDxhIGhyZWY9Int7IHJvdXRlcy5jYXJ0X3VybCB9fSIgY2xhc3M9ImJ1dHRvbiBidXR0b24tLXByaW1hcnkgYnRuLWJsb2NrIj48c3Bhbj57eyAnd2JjdXN0b21sYWJlbC53YmFsbHRleHQudmlld2NhcnQnIHwgdCB9fTwvc3Bhbj48L2E+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0iQ2FydERyYXdlci1DaGVja291dCIgY2xhc3M9ImNhcnRfX2NoZWNrb3V0LWJ1dHRvbiBidXR0b24gYnV0dG9uLS1wcmltYXJ5IiBuYW1lPSJjaGVja291dCIgZm9ybT0iQ2FydERyYXdlci1Gb3JtInslIGlmIGNhcnQgPT0gZW1wdHkgJX0gZGlzYWJsZWR7JSBlbmRpZiAlfT4KICAgICAgICAgICAgICA8c3Bhbj57eyAnc2VjdGlvbnMuY2FydC5jaGVja291dCcgfCB0IH19PC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgeyUtIGlmIHNldHRpbmdzLnNob3dfY2FydHBheW1lbnQgLSV9IAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0ZHJhd2ZwYXkgdGV4dC1jZW50ZXIiPiAKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idmlzdWFsbHktaGlkZGVuIj57eyAnc2VjdGlvbnMuZm9vdGVyLnBheW1lbnQnIHwgdCB9fTwvc3Bhbj4KICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICB7JS0gZm9yIHR5cGUgaW4gc2hvcC5lbmFibGVkX3BheW1lbnRfdHlwZXMgLSV9CiAgICAgICAgICAgICAgICAgIDxsaT57eyB0eXBlIHwgcGF5bWVudF90eXBlX3N2Z190YWc6IGNsYXNzOiAnaWNvbicgfX08L2xpPgogICAgICAgICAgICAgICAgeyUtIGVuZGZvciAtJX0KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIHslLSBlbmRpZiAtJX0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2NhcnQtZHJhd2VyPgoKPHNjcmlwdD4KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewogICAgZnVuY3Rpb24gaXNJRSgpIHsKICAgICAgY29uc3QgdWEgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgICAgY29uc3QgbXNpZSA9IHVhLmluZGV4T2YoJ01TSUUgJyk7CiAgICAgIGNvbnN0IHRyaWRlbnQgPSB1YS5pbmRleE9mKCdUcmlkZW50LycpOwogICAgICByZXR1cm4gbXNpZSA+IDAgfHwgdHJpZGVudCA+IDA7CiAgICB9CiAgICBpZiAoIWlzSUUoKSkgcmV0dXJuOwogICAgY29uc3QgY2FydFN1Ym1pdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgIGNhcnRTdWJtaXRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnY2hlY2tvdXQnKTsKICAgIGNhcnRTdWJtaXRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2FydCcpLmFwcGVuZENoaWxkKGNhcnRTdWJtaXRJbnB1dCk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2hlY2tvdXQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2FydCcpLnN1Ym1pdCgpOwogICAgfSk7CiAgfSk7Cjwvc2NyaXB0PgoK

Widerrufsantrag einreichen

Füllen Sie das folgende Formular aus, um Ihren Widerrufsantrag einzureichen.