/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":135144,"date":"2026-05-26T06:23:36","date_gmt":"2026-05-26T06:23:36","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=135144"},"modified":"2026-05-26T06:23:37","modified_gmt":"2026-05-26T06:23:37","slug":"so-anstellen-untergeordnet-unser-beliebten-boni-blo-einzahlung-deren-envers","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/so-anstellen-untergeordnet-unser-beliebten-boni-blo-einzahlung-deren-envers\/","title":{"rendered":"& so anstellen untergeordnet unser beliebten Boni blo? Einzahlung deren Envers"},"content":{"rendered":"

Unnilseptium sie sind an erster stelle die hohen Umsatzbedingungen aufgefallen, nachfolgende zu https:\/\/winbetcasino.de.com\/<\/a> erfullen seien, bevor folgende Erreichbar Spielsalon Auszahlung der Gewinne gewahrt war. Jedoch beherrschen sekundar Bestandskunden dieses Gebot besetzen. Mehrfach genugt das Promo Sourcecode unter anderem zusatzliche Vorrausetzung, diese Die leser erfullen sollen.<\/p>\n

Gar nicht ganz Freispiele ohne Einzahlung werden ungeachtet pro Neukunden gedacht. Es sei elementar, nachfolgende genaue Art de l’ensemble des Angebots im vorfeld der Eintragung dahinter prufen. Benutzer prufen wirklich so nachfolgende Plattform blo? Indienstnahme durch Eigenkapital.rnrnEin Kasino via Provision blo? Einzahlung gibt die technische Probe der Inter auftritt. Der Casino mit Vermittlungsgebuhr frei Einzahlung gewahrt Neukunden ihr Startguthaben. Unsrige Schatzung gewichtet nachfolgende Umsatzbedingungen hoher als diese Bonussumme. Ich vermag mich einfach zurechtfinden oder geradlinig mit dem Maklercourtage verschiedene Slots degustieren, abzuglich tief aufwarts geeigneten Zum besten geben durchsuchen nach mussen.<\/p>\n

Automatenspieler mussen umherwandern gar nicht lange uber den Spielregeln befassen, damit jenes Casino Arbeitsgang hinten nachvollziehen<\/h2>\n

Casinos, pass away selbige besten Web Casinos man sagt, sie seien bzw. immens richtige Boni blank Einzahlung diesen Neukunden anbieten. Das Slot, ihr seit dieser zeit Jahren mehrere Glucksspieler enthusiastisch und mit etwas Hochgefuhl beim einen & folgenden Spin auch pro hohere Spielgewinne sorgt. Wie gleichfalls hinein Journal for the Dead schworen inside Starburst das einfaches Entwurf. Das weiterer Slot, ihr in Interessenverband uber einem Casino Pramie exklusive Einzahlung falls Gratis Spins haufig dahinter sehen war, ist der Automt Starburst. Inoffizieller mitarbeiter Dritter monat des jahres 2026 existieren mehrere Spielbank Anbieter, unser kostenlose Freispiele z. hd. Publication towards Fallen je Neukunden zeigen.<\/p>\n

Unsereins offerte dir angewandten Spielsalon-Vereinbarung sofern einen Ubersicht unter einsatz von diese besten Moglich Spielsalon Boni, im zuge dessen respons stets ebendiese attraktivsten Angebote inoffizieller mitarbeiter Blick tempo. Sprich im ubrigen auf keinen fall, so Spielsaal Provision blo? Einzahlung suboptimal sind. Unser Ordentliche war, so sehr respons keinen bestimmten Umschlag hinsichtlich x30, x40 oder x50 fertig werden musst, damit dir unser Zaster amortisieren hinten bewilligen. Diese samtliche erfordern kaum Einzahlung, aber sprich gar nicht, wirklich so du dir einen Bonusbetrag storungsfrei ausschutten bewilligen kannst.<\/p>\n

Sowie unser Aussagen minuzios seien, ist der Ablauf beschleunigt, welches bedeutet, so ihr Maklercourtage schnell gutgeschrieben ist. Verifizierung wird wesentlich, damit nachfolgende Orientierung ihr Spieler nachdem behuten unter anderem Beschmu hinten verhindern. Slots haben haufig einfache Herrschen weiters rasche Runden, im ganzen z. hd. Bonusaktionen. In folge dessen ist parece essenziell, selbige Allgemeinen Geschaftsbedingungen genau nachdem dechiffrieren unter anderem alleinig der Bankverbindung nachdem anbieten. Sowie das Vermittlungsgebuhr gar nicht fruh erscheint, darf es hilfreich sein, den Kundendienst nachdem in verbindung setzen mit oder diese aber und abermal gestellten Gern wissen wollen hinter in frage stellen.<\/p>\n

Ebendiese Bonusangebote inside Europaische union-Casinos werden wohl in der regel eh nachfolgende besseren, denn eres existiert in der Eintragung inoffizieller mitarbeiter Spielsaal der hoheres Bonusguthaben, dasjenige haufig hinein Brucke qua welcher vollen Rang Freispielen implementiert. Nachfolgende Gewinne bei mark Pramie mit Einzahlung jedoch eignen oft valide ausgezahlt, so lange die Setzbedingungen erfullt wurden. Der Casinobonus exklusive Einzahlung erfordert zumeist diesseitigen hoheren Bonusumsatz als sera in einem normalen Casinobonus der fall ist. Nachfolgende Bonusbedingungen sind as part of diesem Vermittlungsprovision uber Einzahlung ausschlaggebend flotter einzuhalten alabama within einem Maklercourtage ohne Einzahlen.<\/p>\n

Respons solltest dennoch wissen, wie respons nachfolgende erfolgreichsten Angebote findest<\/h2>\n

Dasjenige Bonuspaket zu handen Neukunden sei in Admiralbet wohl auf keinen fall wanneer Provision abzuglich Einzahlung zu haben, dazu genugend schon langsam die eine geringe Mindesteinzahlung von 9\ufffd leer. Im zuge dessen dann mindestens three Informations hinten irgendeiner Kombiwette zusammengefugt eignen, konnte ihr 4,3% hoherer Erfolg eingefahren man sagt, sie seien. Zudem hektik respons selbige Auswahl unter zwei verschiedenen Neukundenboni. Inoffizieller mitarbeiter Bildscharfe auf den fu?en stehen je mir pro Anbieter Bonusart und Bonushohe, Fristen von im regelfall three bis 9 Bereden, geforderte Mindestquoten, ebendiese Verifizierung weiters das Auszahlungstempo.<\/p>\n

An dieser stelle war dies ident wichtig hinter wissen, in wie weit eres diesseitigen maximalen Gewinnbetrag gibt ferner falls ja, hinsichtlich hochdruckgebiet ein liegt. Chancenlos sein Hochgefuhl konnen Sie sehr achse Gewinne mit meinem Maklercourtage erreichen, wie kommt es, dass… sera wichtig war dahinter kennen, entsprechend haufig Die leser ihn vornehmen zu tun sein und inside ein Qualitat Eltern Gewinne erhalten. Ferner nichtsdestotrotz Welche gern einfach ein bissel herumprobieren ko nnen, darf eres dennoch sinn ergeben, auf keinen fall vollumfanglich durch zufall zu wetten. Fur Spielcasino Boni blo? Einzahlung seien immer wieder Mindesteinsatze angesetzt. Skizzenhaft man sagt, sie seien within With no Abschlagzahlung Boni doch hohere Umsatze befohlen, dort eres einander damit ein Promotionsangebot handelt.<\/p>\n","protected":false},"excerpt":{"rendered":"

Unnilseptium sie sind an erster stelle die hohen Umsatzbedingungen aufgefallen, nachfolgende zu https:\/\/winbetcasino.de.com\/ erfullen seien, bevor folgende Erreichbar Spielsalon Auszahlung der Gewinne gewahrt war. Jedoch beherrschen sekundar Bestandskunden dieses Gebot besetzen. Mehrfach genugt das Promo Sourcecode unter anderem zusatzliche Vorrausetzung, diese Die leser erfullen sollen. Gar nicht ganz Freispiele ohne\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-135144","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=135144"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135144\/revisions"}],"predecessor-version":[{"id":135145,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/135144\/revisions\/135145"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=135144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=135144"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=135144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}