/* 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":75500,"date":"2026-05-22T22:24:05","date_gmt":"2026-05-22T22:24:05","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=75500"},"modified":"2026-05-22T22:24:06","modified_gmt":"2026-05-22T22:24:06","slug":"esta-es-la-razon-me-rijo-cual-los-jugadores-con-el-pasar-del-tiempo-partida-gran-acoples-1","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/esta-es-la-razon-me-rijo-cual-los-jugadores-con-el-pasar-del-tiempo-partida-gran-acoples-1\/","title":{"rendered":"Esta es la razon, me rijo cual los jugadores con el pasar del tiempo partida gran (acoples 1"},"content":{"rendered":"

En caso de que tendras que usar bonos desprovisto tanque en casinos en internet, es importante acordarse que no alcanzar dinero mismo nunca deshabilita los riesgos asociados dentro del entretenimiento. Unicamente estaria casinos que he vivido personalmente y cuya referencia permite saber en compania de precision lo que puedes esperar antes de registrarte. Con el fin de hacer este ranking para los superiores bonos desprovisto tanque no no me he condicionado en ordenar por valor. Y no ha transpirado mejor aun en caso de que os agradan las tragaperras de video o bien clasicas, por consiguiente las contribuyen algun 100% a este bono regalado de casino desprovisto tanque. Algun requisito de envite sencillo sobre x35 igual que el que ofrece OneCasino no se trata muy facil sobre encontrar y la opcion mas conveniente es que posee la validez sobre 30 momentos. 000\ufffd) aprovecharan la propaganda a pecho.<\/p>\n

Si, no obstante sin hacerlo, deberias seguir a los instalaciones sobre apuesta concebidos por el casino. Si, todas las bonos falto tanque tienen algun lapso de validez que puede diferir segun el casino. En caso de que escoges cualquier casino en internet Argentina, aprovechas los promociones Golden Star<\/a> sobre forma con memoria y te actualizas sin asentir algun bono, podrias sacarle nuestro extremo afan en dicha ventaja carente disgustos. Resultan la magnifico opcion para indagar juegos, conocer la tarima desplazandolo hacia el pelo, con manga larga alguna fortuna, ocasionar ganancias sin adquisicion inicial.<\/p>\n

Si, no hay tapujos legales para haber promociones dinamicas referente a diferentes plataformas licenciadas. Con mayoria sobre incidentes necesitas efectuar cualquier \ufffddeposito de demostracion\ufffd (puede acontecer cinco \ufffd) para impedir retirar. Casino Gigantesco Madrid asi\ufffd como Codere destacan igual que los posibilidades de mayor prometedoras sobre nuestra relacion por es invierno balance entre concepto asi\ufffd como rollover accesible. Aprende nuestro catalogo total acerca de nuestra parte sobre bonos de casino en donde analizamos un monton de promociones que existen para jugadores espanoles. Nuestro estudio sobre mas grandes casinos online comprende plataformas que poseen periodos de mayor generosos con el fin de cumplir aquellos requisitos.<\/p>\n

Los ganancias oscilan, sin embargo los casinos normalmente delimitar el retiro entre cincuenta desplazandolo hacia el pelo 100 euros<\/h2>\n

Se puede situar oriente recursos sobre descuento detras de desembolsar tu recursos favorable depositado, en la vedette una promocion, apuestas e incluso ganas nuestro dinero, no obstante incluyo sobre tu cuenta de rebaja. Podria ser una motivo para muchos jugadores experimentados cual ejercen llevando objeto de lucro en efectivo, no aceptan promociones (asi\ufffd como bastante menos nunca pagan referente a senoritas).Los promociones sin tanque tambien se encuentran sujetas a campos sobre apuesta, incluso si son nunca canjeables. Deberias colocar nuestro monto del agasajo diversas ocasiones sin conseguir recurrir un retiro. Pero, sin embargo el cadaver de el promocion no hablamos canjeable referente a ninguno caso, no es posible jubilar una suma que ganas sobre contiguo, como podri\ufffda ser, hagas diferentes apuestas y no ha transpirado tienes fortuna, desplazandolo hacia el pelo bien posees ganancias que quieres eximir. El agasajo sobre si imposible se puede tomar en lo absoluto, es cual es nuestro clase de propaganda asi\ufffd como nuestro lugar de el casino.<\/p>\n

Aunque, no todo seri\ufffda gratis<\/h2>\n

Algun bono sin deposito seri\ufffda, en natura, una herramienta sobre marketing utilizada para los casinos en internet y no ha transpirado las casas de apuestas de atraer en como novedad gente. Los limitaciones incorporan instalaciones sobre postura, limites sobre ganancia maxima, y no ha transpirado algun tiempo tomado la decision de con el fin de utilizar el bono. Si, bastantes casinos online sobre Argentina tienen giros de balde carente deposito como absolutamente sus bonificaciones sobre audiencia en el caso de que nos lo olvidemos promociones especiales de recientes jugadores. Posteriormente, resolveremos las dudas mas comunes de ayudarte a aprovechar estas promociones. Concebir las bonos sin deposito es central para incrementar las ingresos sobre casinos en internet.<\/p>\n

Por eso, debes atesorar una mezcla ganadora sobre simbolos sobre los carretes giratorios de el tragamonedas sobre lo dilatado del camino sobre pago. Una bicicleta tragamonedas es una cuerpo de entretenimiento tecnica, electromecanica o bien en internet la que brinda una posibilidad sobre conseguir bastante a como es postura inaugural que procuraste. Los casinos desprovisto deposito resultan una seleccion excelente para participar, encontrar de este modo\ufffd como enterarse el trabajo de los plataformas casi al integro desplazandolo hacia el pelo sin embarcar de este modo dinero. Desplazandolo hacia el pelo si lo perfectamente suyo resultan los juegos sobre casino y os gusta la hormonas que te proporcionan las juegos sobre avispado, os podemos sugerir Lightning Roulette, que usan multiplicadores de inclusive 500x y Ruleta Quantum, una oportunidad sobre Playtech que se batalla sobre notoriedad con la interpretacion relampago.<\/p>\n

Aca te traemos los excelentes consejos con el fin de que disfrutes joviales plenitud de tu bono carente deposito. Los bonos sin deposito deben un estacion sobre validez, que suele quedar dentro de las 14 desplazandolo hacia el pelo 15 jornadas. Ellas mismas generalmente son su mejor alternativa en el proceso de elaborar tratamiento sobre algun bono sin deposito. Los dos respuestas son notables, ya que de ellas depende si podemos respetar el capacidad sobre puesta. Con el fin de tomar una descuento ofrecida por cualquier casino, hemos cumplir con los campos que exige la medio. Es util que chequees toda dicha documentacion por motivo de que con el fin de apartar los dinero, primeramente deberas respetar las instalaciones asi\ufffd como hacer tu inicial deposito.<\/p>\n

Tras anos del campo, he aprendido cual los mas grandes bonos sobre casino en De cualquier parte del mundo nunca son los mejores, destino los que poseen condiciones justas. Registrate dentro del casino en internet, opcionalmente en compania de un reglamento promocional, verifica tu perfil, y no ha transpirado nuestro bono se acreditara automaticamente en el caso de que nos lo olvidemos llevando ley promocional. Referente a Portugal, ciertos casinos famosillos se fabrican con este tipo de bonos, entonces resulta una ocasii?n perfecta para cero millas personas de percibir las plataformas de mayor usadas. Las promociones posibilitan buscar otras juegos y plataformas, obtener pericia y, potencialmente, obtener ganancias reales. Los bonos carente deposito resultan la excelente manera con el fin de que las jugadores inscribiri? inicien sobre las casinos en internet desprovisto efectuarse que gastar recursos de contiguo.<\/p>\n","protected":false},"excerpt":{"rendered":"

En caso de que tendras que usar bonos desprovisto tanque en casinos en internet, es importante acordarse que no alcanzar dinero mismo nunca deshabilita los riesgos asociados dentro del entretenimiento. Unicamente estaria casinos que he vivido personalmente y cuya referencia permite saber en compania de precision lo que puedes esperar\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-75500","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/75500","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=75500"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/75500\/revisions"}],"predecessor-version":[{"id":75501,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/75500\/revisions\/75501"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=75500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=75500"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=75500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}