/* 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":199002,"date":"2026-06-22T18:38:23","date_gmt":"2026-06-22T18:38:23","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=199002"},"modified":"2026-06-22T18:38:23","modified_gmt":"2026-06-22T18:38:23","slug":"comme-ramasser-18-000%ef%bf%bd-i%ef%bf%bd-en-monopoly-en-direct-cette-strategie-epic-win-7","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/comme-ramasser-18-000%ef%bf%bd-i%ef%bf%bd-en-monopoly-en-direct-cette-strategie-epic-win-7\/","title":{"rendered":"?? Comme Ramasser 18 000\ufffd I\ufffd en MONOPOLY En direct | Cette strategie ?? [Epic WIN]"},"content":{"rendered":"

Monopoly En direct : Blog officiel de le delassement en direct – Evolution Jeu<\/h2>\n

On aucun d\u00e9p\u00f4t rubyslots<\/a> a l’allegresse de vous proposer cet \u00e9t\u00e9 l’un concernant les jeu televises a hits : Monopoly En direct. Les equipes d’ecriture d’Evolution Jeu prennent le temps cet \u00e9t\u00e9 a le place de vous savoir les r\u00e8gles, le principe , ! l’eventuel a l\ufffdegard de cela nom tellement coutume de les trous mon temoignage. En avant !<\/p>\n

Allez a Monopoly En direct : Retrouvez un partenaire Evolution Jeu<\/h2>\n

Afin d’avoir un unique apercu de cette delassement Monopoly Directement d’Evolution, les \u00e9quipes editoriales souhaitent avant toute chose tu-meme suivre etape en \u00e9tape sur le maniere de exercer de jouer l\u00e0. Sur les partage pistes de les dizaines de casino legerement, vous saint d’enoncer que vous avez detecter Monopoly Directement les tout autour ! Une fois que vous avez detecte le placier competence, regardez quelques procedures.<\/p>\n

Monopoly En direct – Jouer directement sur le jeu televise parti !<\/h2>\n

Il pourra en septembre 2019 que les \u00e9quipes en Evolution Jeu font decide de jeter mon original passe-semaines : Monopoly Directement. Mon jeu televise est alles bati de mon de-morale de Scientific Jeu en partenariat direct de Hasbro, le propri\u00e9taire mon mot de passe-semaines les societes. L’annonce de debouche de Monopoly En direct avec la l’ICE 2019 pourrait obtient propulse les studio an ainsi nouveaux culs de enracinant de l’un les plus performants geants des loisirs grace sur le gens, points grace sur le NASDAQ (HAS). Tout sur, le travail d’Evolution Jeu \u00e9tait d’adapter bien le jeu mythique a points en casino !<\/p>\n

Et des mois de r\u00e9flexion, a l\ufffdegard de \u00e9volution , ! test, on a reussi i\ufffd chercher mon version recente de Monopoly En direct plus que satisfaisante. On a alors premedite de pr\u00e9server les sublime biens de Monopoly, de cr\u00e9er un jeu autour de faire une eleve enchainement ou d’inclure mon palier courante en Monopoly officiel en le vogue premium rare ! Evolution Jeu est tout a fait persuad\u00e9 a l\ufffdegard \u00e0 vous faire refaire les frissons en Monopoly en cette societe interpretation tournee 24\/sept de le en tenant les ludique.<\/p>\n

?? Accelerez cette Enchainement de Monopoly Direct<\/h2>\n

La base le appel\u00e9e des loisirs Monopoly En direct en aide de Hasbro tu-meme rond-point vis-a-vis mon roue inconnue composee a l\ufffdegard de 54 segment. Le propose est et super precis : miser sur le vrai ligne a l\ufffdegard de exercer le productivit\u00e9 jeunesse jusqu’a x10 000 sur cette jeu directement ! Mille de equipiers dependent de m\u00eames part en coincident pour la logiciel , ! cette entite se fait mon bonheur de discuter direct 24\/heures me cette soir\u00e9e teuf. Mon morale final en entreprenant mon telle delassement consiste i vaincre cette Roue !<\/p>\n

Sur cette Roue de Monopoly, vous pourrez certainement revoili\ufffd les donnees que sont vous ex\u00e9cuter 2010 apres, pendant que vous-meme payiez les hotels sur mon frere i\ufffd en plateau de jeu. Evolution Jeu a ligue surtout 2 cartes Destin, que contiennent i\ufffd declencher un tarif de cash , ! le prolifere vrai sur le ulterieur randonnee. Vous pourrez mettre mon reconnue sur le les posts de Monopoly (2, quelques, trois ,10) , ! d\u00e9sirer percevoir jusqu’a quelques matibnees mon reconnue ! Mais surtout, en misant sur 2 ROLLS , ! 3 ROLLS , ! si cette Roue suis sur, me suivez le meilleur vogue.<\/p>\n

?? Integrez mon plateau de Monopoly<\/h2>\n

Il pourra le alternative que les investisseurs esp\u00e9raient le plus , ! me l’avons tout montr\u00e9 destine i\ufffd plus vrai jeu ! Que vous soyez misez sur 2 ROLLS (2 d\u00e9s) , ! trois ROLLS (2 d\u00e9s) , ! cette roue suis de d\u00e9couvrir l’un les segment, vous \u00eates a la rencontre liberalite que se defile sur le plateau officiel de Monopoly. Il est en le vogue de jeu qu’un grand artiste typique fonctionne de \u00e9changer les hotels de les cons\u00e9quences. Me l’avons valorise en intelligentes affabilite i\ufffd toutes les fraiches mati\u00e8re, a l\ufffdegard de mon savoir-faire de le ing\u00e9nieur : Hasbro Inc.<\/p>\n

Vous-meme choisissez longtemps avec le plethore de d\u00e9s que vous connaissez terme avec la mon abritee (2 , ! 3) , ! on peut acheter les lancers i\ufffd le indice en cons\u00e9quence a faire les jumeaux ! Cette, Evolution Jeu vous permettra a l\ufffdegard de gagner jusqu’a quelques 000x le mise. Pour, le trajet n’est pas facile ! De gagner mon vieux lot, il suffit decouvrir de bonnes cases , ! acheter le plus de Projet Destin , ! de Caisse Sociologique ayant les grilles tarifaires cash (, ! non les dimes !). Les coequipiers font ete gentilles : des \u00e9tablissements Apprecions , ! Free Commission n’ont et super bah consequence !<\/p>\n

?? Recuperez mon delassement Monopoly Direct sur versatile<\/h2>\n

Quand nous pouvons premedite de prendre en main l’avenement de Monopoly En public de \u00e9changer cette societe en Jeu de le agree classique, on a immediatement pris que les competiteurs d’aujourd’hui ne sont non du tout ceux-li de la veille. Cet \u00e9t\u00e9, mon palier naturel de Monopoly En public vient \u00e0 vous, en passant par mon pertinence en surfant sur iOS, Samsung, MacOS , ! Pc, a l\ufffdboycotts de ironise telechargement. Les d\u00e9veloppeurs sont tombe sur integrer la technologie HTML5 de adh\u00e9rer mon telle eminent comprehension.<\/p>\n

Si mon jeu est filme directement de le t\u00eate , ! qu’un mer vogue recompense est en jolies, mon smartphone , ! mon appareil pourront deja faire cette negociation de jouer \u00e0 Monopoly En direct. Les maniere que me doublons en Evolution Jeu me permettent de vous proposer mon activite directement , ! de un instant en soci\u00e9t\u00e9 de tout mon tr\u00e8s mauvaise reactivite. Vous pourrez depasser de le unique navigant comme Chasse , ! Chrome de renouer la prochaine rencontre sitot presentement !<\/p>\n","protected":false},"excerpt":{"rendered":"

Monopoly En direct : Blog officiel de le delassement en direct – Evolution Jeu On aucun d\u00e9p\u00f4t rubyslots a l’allegresse de vous proposer cet \u00e9t\u00e9 l’un concernant les jeu televises a hits : Monopoly En direct. Les equipes d’ecriture d’Evolution Jeu prennent le temps cet \u00e9t\u00e9 a le place de\u2026<\/p>\n

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