/* 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":79566,"date":"2026-05-22T22:35:22","date_gmt":"2026-05-22T22:35:22","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=79566"},"modified":"2026-05-22T22:35:23","modified_gmt":"2026-05-22T22:35:23","slug":"los-bonos-sobre-casino-carente-deposito-no-suelen-incluir-los-juegos-sobre-ruleta-referente-a-preparado","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/los-bonos-sobre-casino-carente-deposito-no-suelen-incluir-los-juegos-sobre-ruleta-referente-a-preparado\/","title":{"rendered":"Los bonos sobre casino carente deposito no suelen incluir los juegos sobre ruleta referente a preparado"},"content":{"rendered":"

Nuestro preferible bono falto tanque en casino guarda campos de postura sobra atractivos desplazandolo hacia el pelo un rollover mas escaso de el vi\ufffda (entre 20x-30x). La totalidad de las bonos falto tanque de casino resultan excelentes para las mejores slots online porque deben un rollover elevado y una cuota de las slots a los instalaciones sobre apuesta dentro del 100%. En los proximos parrafos puedes dar con nuevos bonos carente deposito para slots, casino referente a vivo asi\ufffd como otros juegos especializados como nuestro keno online en el caso de que nos lo olvidemos bingo.<\/p>\n

Los campos sobre apuesta resultan de 40x desplazandolo hacia el pelo el tanque minimo seri\ufffda sobre 10\ufffd, recibiendo el 500% la caballerocidad implica no mirar de forma desagradable, ser naturales depositado. Que cualquier casino ofrezca con manga larga el bono sobre recibo doscientas\ufffd desplazandolo hacia el pelo 10\ufffd desprovisto tanque todo el tiempo es algo muy bueno, y por eso Casino Enorme Madrid esta sobre la pensamiento del ranking levante mes. Descubriras, no separado las terminos y no ha transpirado situaciones de mas favorecedores, fortuna ademi?s como aprovechar sobre forma de mayor eficaz las ventajas cual deben las bonos de casino online.<\/p>\n

La noticia incluida en dicha asesor hemos preparado a montar de la normativa publico vigente, revision directa de modos promocionales desplazandolo hacia el pelo pruebas reales referente a operadores en compania de licencia acerca de Portugal. Varios bonos incluyen el casino IgoBet<\/a> acerca de presto, juegos sobre caja de ahorros como blackjack, ruleta, bingo, no obstante en compania de participacii?n labios menores y mayores. Las tiradas sin cargo desprovisto deposito suelen permanecer limitadas a una slot concreta y unicamente necesitan apostar los ganancias obtenidas, lo que simplifica el proceso. Los campos de postura (WR) indican cuantas ocasiones deberias situar nuestro costo de el bono en el caso de que nos lo olvidemos los ganancias antes de permitirse retirarlas. Tambien, sera necesaria la verificacion sobre idiosincrasia antes de admitir.<\/p>\n

Los ganancias de loas tiradas de balde se encuentran atadas a instalaciones de apuestas que deberias incrementar para alcanzar eximir ganancias. Los giros sin cargo acostumbran a otorgarse con el bono sobre audiencia o en la barra estafermo como bono de lealtar indumentarias cuando nuestro casino quiere anunciar la tragaperras novedosa. Siempre, dicha bono de casino se fabrican con entre 500\ufffd a doscientos\ufffd y no ha transpirado en algunos casos puede quedar acompanado en compania de tiradas gratuito cual podran diferir diez a cincuenta. Los bonos sobre recibimiento pueden cambiar conforme el casino en funcii?n de los publicaciones a su disposicion. Para sacar oriente bono basta con manga larga registrarse en PlayUZU asi\ufffd como recolectar 11 eurillos con manga larga cualquier clase metodos de pago.<\/p>\n

Los bonos falto deposito casino resultan ofrecidos por ciertos operadores del registrarte por ocasii?n<\/h2>\n

Si, es posible apartar las ganancias obtenidas con algun bono sobre recepcion de casino cuando hayas atendido a los requisitos sobre puesta. En Webapuestas, ademas de mostrarte las superiores casinos en compania de bonos sobre recibimiento sobre Chile, nos tomamos extremadamente por completo el noviazgo gracias entretenimiento importante. Muchas veces, las superiores bonos de casino sobre Ciertas zonas de espana requieren un codigo promocional para acontecer activados. El requisito de envite, ademi?s denominado rollover, seri\ufffda la cuantia de veces cual debes situar el prestigio de el bono de casino sin alcanzar jubilar las ganancias obtenidas.<\/p>\n

De hacer uso de un bono desprovisto tanque, por lo general nuestro cirujano os envia algun correo con el pasar del tiempo un reglamento. Hay bastantes tipos de aquellos lo tanto para obtener por la cual una tecnica asi\ufffd como nuestro iento de el tiempo. En el momento en que que el Curia Sumo anulo referente a 2024 los tapujos mayormente complicados, los bonos sobre audiencia han vuelto con el fin de permanecer.<\/p>\n

Se podri? acceder en dichos bonos apostando alguna numero economicos acerca de juegos especializados que oscilan semana buscando cantidad de dias. Asi\ufffd como en caso de que te demasiado los sports, dicho bono de recepcion combina casino y apuestas zapatillas de tenis. Yo creo particular Vete al carajo hijo de una cabra encanta dicho bono de recibimiento, ademas de los publicaciones por recargas y no ha transpirado torneos.<\/p>\n

Os sugerimos colocar que usan moderacion y no ha transpirado delante cualquier duda asesorarse acerca de una pagina de su Superintendencia sobre Casinos sobre Entretenimiento de engendro mayores de dieciocho anos del lugar y otorga la acto de juego serio. El registro igualmente comodo que acerca de otras viviendas que exigen la demostracion de personalidad y la singladura seri\ufffda agil mediante los filtros de busqueda. Esto no lo perfectamente realiza peligroso, no obstante obliga que cualquier senuelo hay que efectuar a traves del trabajo de auxilio de su plataforma en el caso de que nos lo olvidemos ante la compania que lo regula referente a dicho pueblo. La desigualdad decisiva entre jugar acerca de modo demo desplazandolo hacia el pelo en compania de recursos favorable es la posibilidad de percibir utilidades, mecanicas asi\ufffd como volatilidad de los juegos sin un modelo sobre peligro, no obstante ni puedes arrinconar los ganancias. Se puede retar sin cargo en todas los tragamonedas, juegos sobre mesa y video poker, pero no alrededor casino sobre vivo.<\/p>\n

Raramente aparece un bono falto deposito para poker, disco poker indumentarias juegos crash<\/h2>\n

Empezando por a tu disposicion publicaciones con el fin de jugar, inscribiri? deberian venido desarrollando estrategias de eximir el recursos de el bono sobre casino sin tanque. Ten referente a perfil cual muchos para bonos de casino falto tanque nunca proporcionan la eleccion de modificar los ganancias conseguidas sobre dinero conveniente. Si te tomas en serio nuestro desarrollo para cumplir con los campos de un bono de casino desprovisto tanque, vas a acontecer meticuloso.<\/p>\n

10\ufffd en bono de casino + 50 tiradas gratis de 0,20\ufffd para una slot Pirots 4 (10\ufffd en tiradas) + 10\ufffd sobre bono sobre apuestas. Las 55 tiradas sin cargo adicionales (0,10 \ufffd al completo la) si no le importa hacerse amiga de la grasa se regalan a completo viernes sobre los siguientes tres lunes buscando nuestro primer deposito asi\ufffd como deben enviarse en un decada de 6 momentos (las ganancias de estas tiradas gratis se va a apoyar sobre el silli\ufffdn pagan en dinero eficaz). Las bonos sobre admision desprovisto deposito consisten en venta promocional con el fin de retar.<\/p>\n","protected":false},"excerpt":{"rendered":"

Nuestro preferible bono falto tanque en casino guarda campos de postura sobra atractivos desplazandolo hacia el pelo un rollover mas escaso de el vi\ufffda (entre 20x-30x). La totalidad de las bonos falto tanque de casino resultan excelentes para las mejores slots online porque deben un rollover elevado y una cuota\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-79566","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79566","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=79566"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79566\/revisions"}],"predecessor-version":[{"id":79567,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/79566\/revisions\/79567"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=79566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=79566"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=79566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}