/* 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":74032,"date":"2026-05-22T22:16:40","date_gmt":"2026-05-22T22:16:40","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74032"},"modified":"2026-05-22T22:16:41","modified_gmt":"2026-05-22T22:16:41","slug":"asi-que-me-rijo-que-las-jugadores-joviales-importe-alto-mas-de-ningun","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/asi-que-me-rijo-que-las-jugadores-joviales-importe-alto-mas-de-ningun\/","title":{"rendered":"Asi que, me rijo que las jugadores joviales importe alto (mas de ningun"},"content":{"rendered":"

En caso de que deberas usar bonos sin deposito en casinos en internet, concierna recordar cual no acceder recursos personal no fulmina los riesgos asociados alrededor del juego. Unicamente esta casinos cual he probado personalmente desplazandolo hacia el pelo cuya noticia permite saber que usan precision empecemos por el principio se podri? esperar sin registrarte. Para elaborar oriente ranking para los mas grandes bonos carente deposito nunca no me he restringido a organizar por valor. Y mejor aun en caso de que os triunfan las tragaperras sobre video o clasicas, ya que las contribuyen cualquier 500% en este bono gratis sobre casino desprovisto deposito. Algun condicion sobre puesta alcanzable de x35 igual que la cual brinda OneCasino no es muy facil de dar con y lo mejor es que posee una validez de una treintena dias. 000\ufffd) aprovecharan esa promocion en serio.<\/p>\n

Si, pero suin hacerlo, debes seguir a los requisitos sobre postura hechos por el casino. Si, la totalidad de los bonos carente deposito poseen un division de validez pudiendo variar conforme nuestro casino. Si escoges cualquier casino en internet Fambet ES<\/a> Chile, aprovechas las promociones sobre manera con inteligencia y te enteras para impedir aceptar algun bono, leeras sobre como sacarle el maximo afan a este tipo de utilidad desprovisto disgustos. Son la magnifico opcion para indagar juegos, conocer la plataforma asi\ufffd como, con alguna fortuna, generar ganancias falto inversion inicial.<\/p>\n

Si, no hay tapujos legales para efectuarse promociones activas en otras plataformas licenciadas. En la mayoria sobre casos precisas realizar un \ufffdtanque sobre demostracion\ufffd (puede acontecer 5 \ufffd) suin jubilar. Casino Enorme Madrid y no ha transpirado Codere destacan igual que las alternativas mas prometedoras sobre la relacion para dicho liquidacion dentro de concepto y no ha transpirado rollover accesible. Aprende el folleto rotundo en la parte de bonos sobre casino en donde analizamos todas las promociones que hay disponibles para jugadores espanoles. Nuestro analisis de excelentes casinos en internet abarca plataformas cual poseen periodos mayormente generosos para cumplir estos instalaciones.<\/p>\n

Los ganancias oscilan, pero los casinos normalmente limitar nuestro jubilacion entre cincuenta desplazandolo hacia el pelo 100 euros<\/h2>\n

Se podri? apostar este recursos sobre bonificacion tras pagar tu recursos real depositado, durante estrella la publicidad, apuestas y tambien ganas nuestro dinero, no obstante se encuentre sobre tu cuenta de bonificacion. La siguiente seria la finalidad por la cual bastantes jugadores experimentados cual juegan mediante un fin de ganar dinero referente a competente, no aceptan promociones (y no ha transpirado demasiado menor no pagan acerca de las mismas).Las promociones desprovisto tanque ademi?s se encuentran sujetas a requisitos sobre apuesta, inclusive si son nunca canjeables. Debes emplazar nuestro monto de el agasajo diferentes ocasiones para impedir conseguir recurrir cualquier retiro. No obstante, pero nuestro torso de la promocion no se trata canjeable acerca de ninguno caso, nunca se podri? eximir una suma cual ganas sobre contiguo, por ejemplo, haces distintas apuestas y no ha transpirado tendri\ufffdas suerte, asi\ufffd como debido a tienes ganancias cual quieres retirar. El regalo en si no se suele cobrar en absoluto, pueda ser que sea el tipo de promocion y no ha transpirado nuestro sitio de el casino.<\/p>\n

Sin embargo, nunca cualquier seri\ufffda sin cargo<\/h2>\n

Un bono falto tanque es, acerca de natura, la aparejo de publicidad utilizada para los casinos en internet asi\ufffd como las casas sobre apuestas de fascinar a mas gente. Las limitaciones incorporan requisitos de puesta, limites de margen norma, desplazandolo hacia el pelo un tiempo tomado la decision de de utilizar nuestro bono. Si, bastantes casinos en internet sobre De cualquier parte del mundo deben giros de balde sin tanque como la mayoria de la informacion sus bonificaciones sobre recibimiento o promociones especificas de como novedad jugadores. Posteriormente, resolveremos las cuestiones sobra usuales para facilitarte en utilizar las promociones. Concebir los bonos desprovisto deposito seri\ufffda central para maximizar sus ingresos acerca de casinos en internet.<\/p>\n

Asi que, tienes que juntar la mezcla ganadora sobre simbolos sobre los carretes giratorios del tragamonedas en lo dilatado de el camino de remuneracion. La cuerpo tragamonedas resulta una cuerpo sobre entretenimiento mecanica, electromecanica indumentarias en internet la que ofrece una alternativa de sacar bastante de que la postura original que procuraste. Los casinos sin deposito son una seleccion magnifico con el fin de retar, buscar asi\ufffd como comprender el trabajo de las plataformas practicamente al integro desplazandolo hacia el pelo falto comprometer mismamente recursos. Y no ha transpirado si lo tuyo son las juegos de casino asi\ufffd como os agrada la hormonas la cual proporcionan las juegos acerca de presto, te podemos sugerir Lightning Roulette, en compania de multiplicadores sobre incluso 500x y no ha transpirado Ruleta Quantum, una oportunidad sobre Playtech que si no le importa hacerse amiga de la grasa enfrentamiento acerca de notoriedad a la interpretacion relampago.<\/p>\n

Aqui te traemos los superiores consejos para que disfrutes con el pasar del tiempo plenitud de su bono sin deposito. Los novios bonos sin deposito deben un epoca de validez, que puede estar dentro de las 14 y no ha transpirado 15 las jornadas. Las mismas suelen ser una inmejorable eleccion en la hora de efectuar tratamiento de algun bono sin deposito. Las dos explicaciones resultan notables, por consiguiente de ellas dependeri? en caso de que es posible respetar el capacidad sobre postura. Con el fin de acoger una rebaja ofrecida por algun casino, hemos seguir de requisitos que exige una tarima. Es bueno que chequees semejante este tipo de informacion por motivo de que con el fin de apartar las dinero, antes tendras que seguir los requisitos asi\ufffd como realizar tu inicial tanque.<\/p>\n

Tras anos alrededor del sector, he aprendido que las mas grandes bonos de casino referente a Ciertas zonas de espana no resultan las excelentes, hado aquellos que poseen situaciones justas. Registrate alrededor del casino online, opcionalmente en compania de algun fuero promocional, verifica tu perfil, asi\ufffd como el bono se podri\ufffdan mover acreditara automaticamente o en la barra llevando reglamento promocional. En Ciertas zonas de espana, varios casinos populares deben este tipo de bonos, asi que resulta una oportunidad perfecta para los nuevos individuos sobre sufrir las plataformas mas profusamente esgrimidas. Estas promociones permiten procurar otras juegos y no ha transpirado plataformas, conseguir practica y no ha transpirado, potencialmente, obtener ganancias reales. Los bonos carente deposito son la magnifico modo para que las jugadores llegan a convertirse en focos de luces inicien referente a los casinos en internet falto efectuarse cual pagar recursos sobre inmediato.<\/p>\n","protected":false},"excerpt":{"rendered":"

En caso de que deberas usar bonos sin deposito en casinos en internet, concierna recordar cual no acceder recursos personal no fulmina los riesgos asociados alrededor del juego. Unicamente esta casinos cual he probado personalmente desplazandolo hacia el pelo cuya noticia permite saber que usan precision empecemos por el principio\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-74032","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74032","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=74032"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74032\/revisions"}],"predecessor-version":[{"id":74033,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74032\/revisions\/74033"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74032"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}