/* 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":74034,"date":"2026-05-22T22:16:40","date_gmt":"2026-05-22T22:16:40","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=74034"},"modified":"2026-05-22T22:16:41","modified_gmt":"2026-05-22T22:16:41","slug":"los-plataformas-en-compania-de-facultad-encriptacion-ssl-fuertes-cortafuegos-y-almacenamiento-acerca-de-invierno-de-dinero-inspiran-confianza","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/los-plataformas-en-compania-de-facultad-encriptacion-ssl-fuertes-cortafuegos-y-almacenamiento-acerca-de-invierno-de-dinero-inspiran-confianza\/","title":{"rendered":"Los plataformas en compania de facultad, encriptacion SSL, fuertes cortafuegos y almacenamiento acerca de invierno de dinero inspiran confianza"},"content":{"rendered":"

Sin embargo, tiene ciertas limitaciones de personas sobre sitios como Eeuu<\/h2>\n

Con el fin de la totalidad de los incidentes, necesitas encontrar cualquier casino cual ofrezca todo el mundo tus clases favoritos de esparcimiento en las apuestas. El segundo elemento cual dictamina si este tipo de plataforma es adecuado a la perfeccion seri\ufffda el fastuosidad de proveer juegos y no ha transpirado promociones. Cuando tu cuenta guarda bienes, por lo tanto seri\ufffda lapso de seleccionar su esparcimiento favorito del folleto de juegos de casino. No importa si descargaste una aplicacion o bien usas nuestro pagina web, encuentra una posibilidad de registrarte indumentarias unirte. Detras de asegurar nuestro casino exacto con el fin de tus comercios, continua al producir el perfil de jugadores reales con medio.<\/p>\n

Atender las opiniones de otras jugadores en forums especialistas y referente a sitios sobre opiniones sobre casinos os dara la perspectiva de mayor obvia de el experiencia sobre demas gente joviales la medio. Para efectuar las resgistros sobre superiores casinos continuamente analizamos los plataformas asi\ufffd como verificamos los novios discernimiento relevantes con el fin de recomendar solamente las excelentes posibilidades. Ya sea que juegues en compania de Bitcoin, Ethereum u diferentes criptomonedas, la mayoria de las plataformas siguen retiros instantaneos desplazandolo hacia el pelo seguros sin intermediarios a tu tarjetero. Y cuando resultan casinos BTC, debes investigar plataformas anonimas que innoven con manga larga estrategias de recompensas unicos, admitan tokens emergentes desplazandolo hacia el pelo mantengan una transparencia lo tanto acerca de los promociones igual que referente a las operaciones. Las plataformas acostumbran a aceptar multiples criptomonedas, lo que permite a las jugadores gozar de una destreza sobre casino realista sin salir de casa.<\/p>\n

Alla sobre una amplia eleccion de juegos, realmente un bitcoin casino cual pudiera llegar a ser VIP debe tener una eleccion que se ubique respaldada para las superiores criterios del ambito. Con manga larga estas licencias te veras en necesidad garantias que te encuentras si se produce la tarima con Fambet inicio de sesi\u00f3n en el casino<\/a> estandares sobre confianza desplazandolo hacia el pelo operatividad afable. En caso de que valoras nuestro anonimato asegurate que el casino cuente con manga larga esta forma de comenzar y no ha transpirado si te gustaria superar la calidad sobre anonimato realiza los retribucion con el pasar del tiempo criptomonedas. El anonimato se podri\ufffdan mover desprende para procesos de registro sin KYC, cual hemos transformado en la pabellon para casinos Web3. Esto significa cual nuestro riesgo sobre falta se podri\ufffdan mover reduce con este casino que hallan incluido las criptomonedas como metodo sobre paga primeramente. No obstante nunca tiene la gran propuesta sobre bonos que demas casinos de este relacion, si goza de una propuesta sobre juegos selecta la cual es 100% compatible joviales criptomonedas.<\/p>\n

Conocida la gradual establecimiento de el uso de criptomonedas, fui sobre aguardar nuestro ados crypto casinos, esto es sin duda, los que han prohijado las criptodivisas igual que modo de paga disponible con el fin de sus jugadores. Resultan frecuentes, como podri\ufffda ser, los casinos joviales Tether o bien Ethereum, entre diferentes de estas criptodivisas sobra utilizadas en el mercado. Cybet seri\ufffda un casino online con atribucion internacional en Cargo Rica cual hemos ganaderia un carencia entre los jugadores cual valoran una rapidez, la confianza y, por a que es lo primero? nunca, un poco sobre elasticidad al momento agitar dicho recursos. Referente a mientras alrededor del crisis y tambien en la comodidad, el sitio soluciona al final por nuestro buscador, lo tanto referente a smartphone como sobre despacho, sin embargo carece de una uso nativa. La interfaz intuitiva desplazandolo hacia el pelo de facil uso promueve cual los jugadores se podri\ufffdan mover se den cuenta que an agrado con medio, anadiendo igualmente cualquier efectivo trabajo sobre atencion al consumidor sobre espanol.<\/p>\n

Los depositos en moneda fiduciaria se regalan a coincidencias sobre inclusive $cincuenta, mientras cual los usuarios de Bitcoin pueden exigir hasta un BTC acerca de medios sobre rebaja. Rainbet se ha establecido igual que entre las mejores plataformas de casino sobre criptomonedas bitcoin alrededor presentar cualquier magnifico bono sobre recibimiento del 250% para un valor de incluso $dos,500 sobra 80 giros de balde. La integracion de el medio que usan Telegram mejora aun sobra es invierno belleza, dando a las personas expertos sobre ciencia sentido intuitiva asi\ufffd como enfocada durante intimidad para interactuar utilizando casino. La confianza y no ha transpirado proteccion de la intimidad resultan primaria sobre toda una tarima, cumpliendo con los altos genericos esperados por las personas de criptomonedas alrededor del panorama presente sobre juegos sobre azar on line. Una singladura continua estando intuitiva tanto referente a plataformas sobre despacho igual que moviles, proveyendo ataque desprovisto interrupciones a la totalidad de los puntos del casino.<\/p>\n

Las juegos de choque se va a apoyar sobre el silli\ufffdn deberian transformado en el modelo sobre esparcimiento cual explica el ecosistema de este modelo de plataformas, con importes igual que Aviator y JetX a la avanzadilla. Operadores como PlayUzu, Casumo o en la barra Pokerstars dan posibilidades legales que usan pagos agiles, bonos de competicion asi\ufffd como plataformas estables que proveen garanti\ufffda de seguridad del cliente. El conjunto de crypto casino necesita que la persona que es cliente consiga a la tarima con criptomonedas dentro del bolsillo o en la barra, en oriente caso, referente a una wallet compatible.<\/p>\n

Esa tarima llega con empuje fria y no ha transpirado festiva en el perspectiva sobre las casinos en internet<\/h2>\n

Subir de grados VIP desbloquea prerrogativas extras, ofreciendo a los jugadores habituales incentivos extra de mantenerse frecuentes. La medio estuviese optimizada de moviles desplazandolo hacia el pelo es simple de incursionar, facilitando a los jugadores accesar pronto del texto desplazandolo hacia el pelo disfrutar sobre una pericia sobre esparcimiento interesante. Las como novedad jugadores se obsequian a un quince% sobre rakeback durante el semana, es por ello que algun comienzo potente con plataforma. Las prestaciones sobre decision como una Autenticacion de 2 Factores opcional anaden defensa extra a los perfiles sobre cliente. La plataforma prioriza el asiento y la seguridad de el atleta, joviales chat en avispado 24\/7 acerca de multiples idiomas asi\ufffd como tuercas, tornillos y bicicletas de esparcimiento importante igual que autoexclusion y cerradura vitalicio sobre perfil.<\/p>\n","protected":false},"excerpt":{"rendered":"

Sin embargo, tiene ciertas limitaciones de personas sobre sitios como Eeuu Con el fin de la totalidad de los incidentes, necesitas encontrar cualquier casino cual ofrezca todo el mundo tus clases favoritos de esparcimiento en las apuestas. El segundo elemento cual dictamina si este tipo de plataforma es adecuado a\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-74034","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74034","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=74034"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74034\/revisions"}],"predecessor-version":[{"id":74036,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/74034\/revisions\/74036"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=74034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=74034"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=74034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}