HTTP/1.1 200 OK
Date: Thu, 16 Apr 2026 15:32:49 GMT
Server: Apache
Content-Type: application/json
Connection: close
Transfer-Encoding: chunked

2000
[{"target":"compet_liste_15370006_view_phase_view_tab_poule_view","html":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n\n<div id=\"compet_liste_15370006_view_phase_view_tab_poule_view\" style=\"width:100%\">\n  <div class=\"cadre\">\n    <div class=\"titre\" style=\"vertical-align:middle\">\n      <i class=\"fa fa-arrow-circle-left fa-colored fa-lg\" onclick=\"jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view').addClass('hide')\" style=\"cursor:pointer\" title=\"Fermer\">\n      </i>\n      <span onclick=\"jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view').addClass('hide')\" style=\"cursor:pointer\" title=\"Fermer\"><span style=\"margin-right:5px\">Poule 1 &mdash; 04/04/2026 &mdash; Rez&eacute;</span></span>\n    </div>\n    <div class=\"contenu\">\n      <div>\n        Club organisateur : \n        16063\n         \n        ACADEMIE REZEENNE DE BILLARD\n      </div>\n      <div>\n        Distance : \n        Normale\n      </div>\n      <div>\n        Points : \n        30\n      </div>\n      <div>\n        Reprises : \n        &mdash;\n      </div>\n      <div style=\"float:right;margin-left:1em\">\n        <button class=\"submit\" id=\"compet_liste_15370006_view_phase_view_tab_poule_view_liste_btn\" onclick=\"jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_liste_btn').hide();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_liste_vue').hide();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_synth_btn').show();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_synth_vue').show()\">\n          Afficher la synth&egrave;se\n        </button>\n        <button class=\"submit hide\" id=\"compet_liste_15370006_view_phase_view_tab_poule_view_synth_btn\" onclick=\"jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_synth_btn').hide();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_synth_vue').hide();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_liste_btn').show();jQuery('#compet_liste_15370006_view_phase_view_tab_poule_view_liste_vue').show()\">\n          Afficher les matchs\n        </button>\n      </div>\n      <div style=\"clear:both\">\n        <div id=\"compet_liste_15370006_view_phase_view_tab_poule_view_liste_vue\">\n          <div id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs\">\n            <div class=\"liste\">\n              <div style=\"float:right\">\n              </div>\n              <h2>\n                Liste des joueurs\n              </h2>\n              <div style=\"clear:both\">\n              </div>\n              <div style=\"float:right\">\n                <a href=\"./?cs=4.55c9dae8b2511cd4c55f5937e111b1bbefb05d4b8329a9feafc6e638e56d7c53fbb50e15add679ea70428d87b9fa3790e719\" style=\"font-size:0.8em;margin-left:1em\" target=\"_blank\">T&eacute;l&eacute;charger le classement</a>\n                <a href=\"./?cs=4.fdc98fe99043c10f5f8f10a0d82f712b68459e6d4797618ea63004085798b6d153df484bba17ada5bd45efcbccb495f0598d\" style=\"font-size:0.8em;margin-left:1em\" target=\"_blank\">T&eacute;l&eacute;charger les matchs</a>\n              </div>\n              <table id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_list\" style=\"width:100%\">\n                <tr>\n                  <th class=\"l\">\n                    Licence\n                  </th>\n                  <th class=\"l\">\n                    Nom\n                  </th>\n                  <th class=\"l\">\n                    Pr&eacute;nom\n                  </th>\n                  <th class=\"c\">\n                    Ranking\n                  </th>\n                  <th class=\"c\">\n                    Rang CNR\n                  </th>\n                  <th class=\"l\">\n                    Club\n                  </th>\n                  <th class=\"c\" title=\"Classement\">\n                    Clt\n                  </th>\n                  <th class=\"c\" title=\"Total points de matchs\">\n                    PM\n                  </th>\n                  <th class=\"c\" title=\"Nombre de victoires\">\n                    V\n                  </th>\n                  <th class=\"c\" title=\"Nombre de matchs jou&eacute;s\">\n                    M\n                  </th>\n                  <th class=\"c\" title=\"Total points de carambolage\">\n                    PT\n                  </th>\n                  <th class=\"c\" title=\"Total points de carambolage poule\">\n                    PP\n                  </th>\n                  <th class=\"c\" title=\"Total des reprises\">\n                    R\n                  </th>\n                  <th class=\"c\" title=\"Meilleure s&eacute;rie\">\n                    MS\n                  </th>\n                  <th class=\"c\" title=\"Moyenne table\">\n                    MT\n                  </th>\n                  <th class=\"c\" title=\"Moyenne poule\">\n                    MP\n                  </th>\n                  <th class=\"c\" title=\"Moyenne particuli&egrave;re poule\">\n                    MPART\n                  </th>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_view_17598219\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    137486 Y\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f74
2000
6128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    GUILLEMENT\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    JEAN POL\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    DON BOSCO BILLARD NANTES\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                     
2000
 jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    90\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    90\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:p
2000
ointer;color:#2040a0\">\n                    76\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    7\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,18\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,18\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.72ff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e435628ac14f8dcd53a19c6fb17c04f6f5f03a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094954f746128b1b21bc12ab6a1becfafbc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,30\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_view_17598218\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    172235 M\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                     
2000
                 jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BRILLOUET\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    GILLES\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    ECOLE DE BILLARD DE LA BERNERIE EN RETZ\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa3
2000
94e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    86\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    86\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n             
2000
                                     });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    75\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    11\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,14\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,14\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.5aff87c14f12947f5993214a58f26e7288bb11356f87bfc5204685535d41a6d0c34d4cb6eb10079fcf24d6e906b5a85e4356edb4e5b11da356e87723064f1698fc42a966371989f9305445fea747097fe6a3077944ac67d55c9f913c18a197abc094a4e839bda4fa394e540154c1cffc622317ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,36\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_view_17598220\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91
2000
b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    152395 X\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    VANDAELE\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BERTRAND\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    ACADEMIE REZEENNE DE BILLARD\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                         
2000
             jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    69\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style
2000
=\"cursor:pointer;color:#2040a0\">\n                    69\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    83\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,83\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,83\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.28ff87c14f12947f5993214a58f26e7288bb11696f7afaeedb86b9b2d52cbde6e405e0bc487ec0bf4ff3466e3df20d59cea8e7aafedec57893ac36c8522f5f47eada22b6fe97197b4a7f59146c183e1e173bf2e0b5a5cbc4054a69e8a8d4e775c6e5b91b3856e45ebbc1bb11bd9eedadc32f17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,15\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_view_17598217\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                
2000
                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    111807 H\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONFILS\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    FREDDY\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b7
2000
1f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    AMICALE DU BILLARD PAZENAIS\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    71\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                
2000
                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    71\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    74\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    8\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,95\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,95\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.0fff5bd818a0f9487226abc05a2a06ddc26a9b67ec0dfc7658b9b113f7d053f48a5a850e0ef53ed8af7a9498eb27508f9f4e27fb11e4ac35c19d6fd75145c8195119e8f7204e189cac851a65506fd2b150130298d57b9ff3f3f3cca69a92272b2aef421b816aef80f4828c173010f5ae92cc17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\
2000
n                  </td>\n                </tr>\n              </table>\n            </div>\n            <div id=\"compet_liste_15370006_view_phase_view_tab_poule_view_joueurs_joueur_view\">\n            </div>\n          </div>\n          <div id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs\">\n            <div class=\"liste\">\n              <div style=\"float:right\">\n              </div>\n              <h2>\n                Matchs\n              </h2>\n              <div style=\"clear:both\">\n              </div>\n              <table id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_list\" style=\"width:100%\">\n                <tr>\n                  <th>\n                    Num&eacute;ro\n                  </th>\n                  <th>\n                    Date\n                  </th>\n                  <th>\n                    Billard\n                  </th>\n                  <th>\n                    Joueur \n                  </th>\n                  <th>\n                    Points\n                  </th>\n                  <th>\n                    Reprises\n                  </th>\n                  <th>\n                    Meilleure s&eacute;rie\n                  </th>\n                  <th>\n                    Moyenne\n                  </th>\n                  <th>\n                    Joueur 2\n                  </th>\n                  <th>\n                    Points\n                  </th>\n                  <th>\n                    Reprises\n                  </th>\n                  <th>\n                    Meilleure s&eacute;rie\n                  </th>\n                  <th>\n                    Moyenne\n                  </th>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598221\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONFILS\n                     \n                    FREDDY\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if
2000
 (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    25\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    22\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,13\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BRILLOUET\n                     \n                    GILLES\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde3
2000
9d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    22\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    7\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.17ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae77054ff64fcbee47d3dd46736a662f953bbf021f2c81bfc31baebd1e988f25a12a74bfa1dc74b6f18114a623c583793091994158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,36\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598223\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                 
2000
                                 jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    GUILLEMENT\n                     \n                    JEAN POL\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    27\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    5\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b5
2000
67c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,11\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    VANDAELE\n                     \n                    BERTRAND\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    17\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    27\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ecff04d58b82ad0f8dfc68d0d6a197e9bf099eb743325f6ada43d70335b77c683f0c1fc2bd03513be2d1bd23b24d07957e71a686b5ac29df3170f8b7d259a126fa74208398b731940c9b567c983a4f4f9dfea64e73e7d511caadd394ca19458544fdca1db78f7a374af85e13d7b4271e7b6194158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,62\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598227\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                   
2000
                               jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    GUILLEMENT\n                     \n                    JEAN POL\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e3
2000
06b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,15\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONFILS\n                     \n                    FREDDY\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    17\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      
2000
jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    8\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.84ff04d58b82ad0f8dfc68d0d6a197e9bf095f2be0da21db0d4781176bd5735c7b6874e678012d5307936cf73cde39d0128bb871bdf4c346b4df6661d606e70ae7705f48a1f26e306b98ec40e0c491a56f9ff021f2c81bfc31baebd1e988f25a12a72d10b69ee392e02fd804bafc959f1c5b94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,65\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598229\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    5\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c
2000
6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    VANDAELE\n                     \n                    BERTRAND\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,15\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONFILS\n                     \n                    FREDDY\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      
2000
jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    29\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff04d58b82ad0f8dfc68d0d6a197e9bf095e9fc288f9e81e7cf8fb6e4dbe9291c9a1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67ef567014019b7dec2e1b81c6248d8e4d7f7573ccaa4f0eaa63eaa23f1389038b605b66c6ddd94026991323e958a2c3bef94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,11\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598231\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc52
2000
6f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    GUILLEMENT\n                     \n                    JEAN POL\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    23\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    7\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n              
2000
                                    });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BRILLOUET\n                     \n                    GILLES\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    23\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    11\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.74ff94d086405263b98545df24ee94752ccc18a5b2bd3becf0441b214eb9dca4d2f4d217b8d0af79ca234fc23085940e8b80d19f533f8d57d40e6e8701afa705b18fd99bb30ce00f0d22005517a506377a6140c92ba890bfe56b8d44e417a89ef913cd63dd04c10abc526f92decd33a2f4a017ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,13\n   
2000
               </td>\n                </tr>\n                <tr id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view_17598233\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    7\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    04/04/2026\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BRILLOUET\n                     \n                    GILLES\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n           
2000
                                       });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,00\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    VANDAELE\n                     \n                    BERTRAND\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    22\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    30\n  
2000
                </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff04d58b82ad0f8dfc68d0d6a197e9bf09c54620e798f707f168131d817f2986dda1b9b4343d90f20929b2fa5846865c6f69f53926e72def8415027adfd3b6d67edcfff4e43bba9caa068b1409745a22a56131520b63e2a11774cd04fe856aa4e2769bcfc94dbbe0b9aaef873d64b6659794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,73\n                  </td>\n                </tr>\n              </table>\n            </div>\n            <div id=\"compet_liste_15370006_view_phase_view_tab_poule_view_matchs_match_view\">\n            </div>\n          </div>\n        </div>\n        <div class=\"hide\" id=\"compet_liste_15370006_view_phase_view_tab_poule_view_synth_vue\">\n          <div style=\"text-align:right;margin-left:1em\">\n            <a href=\"./?cs=4.fcc9b8b7ca5baff65bd493741068c3c6bec6874907b683dfbadb10cf1993ee41f2dd7f49d34bec25904eb1e50824ecb444d6\" target=\"_blank\">Ouvrir dans une nouvelle fen&ecirc;tre</a>\n          </div>\n          <div class=\"liste\" id=\"compet_liste_15370006_view_phase_view_tab_poule_view_synthese\">\n            <table style=\"margin:auto\">\n              <thead>\n                <thead>\n                  <tr>\n                    <th>\n                      <table style=\"width:100%\">\n                        <tbody>\n                          <tr>\n                            <td class=\"l\" style=\"width: 30%;vertical-align:bottom\">\n                              Clt\n                            </td>\n                            <td class=\"r\" style=\"width: 30%;vertical-align:bottom\">\n                              MGP\n                            </td>\n                            <td class=\"r\" style=\"width: 40%;vertical-align:bottom\">\n                              %V\n                            </td>\n                          </tr>\n                        </tbody>\n                      </table>\n                    </th>\n                    <th>\n                      <div>\n                        GUILLEMENT\n                      </div>\n                      <div>\n                        JEAN POL\n                      </div>\n                    </th>\n                    <th>\n                      <div>\n                        BRILLOUET\n                      </div>\n                      <div>\n                        GILLES\n                      </div>\n                    </th>\n                    <th>\n                      <div>\n                        VANDAELE\n                      </div>\n                      <div>\n                        BERTRAND\n                      </div>\n                    </th>\n                    <th>\n                      <div>\n                        BONFILS\n                      </div>\n                      <div>\n                        FREDDY\n                      </div>\n                    </th>\n                    <th>\n                      Totaux\n                    </th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr>\n                    <th>\n                      <div>\n                        GUILLEMENT\n                         \n                        JEAN POL\n                      </div>\n                      <div class=\"comment\">\n                        DON BOSCO BILLARD NANTES\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                1\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                1,18\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                100.00\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                23\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n
2000
                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                7\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,30\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                27\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                5\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,11\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                6\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,15\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                90\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                76\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                6\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                7\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,18\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <th>\n                      <div>\n                        BRILLOUET\n                         \n                        GILLES\n                      </div>\n                      <div class=\"comment\">\n                        ECOLE DE BILLARD DE LA BERNERIE EN RETZ\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                1,14\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                66.66\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=
2000
\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                23\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                11\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,13\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                4\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,00\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                22\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                7\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,36\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                86\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                75\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                4\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                11\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,14\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <th>\n                      <div>\n                        VANDAELE\n                         \n                        BERTRAND\n                      </div>\n                      <div class=\"comment\">\n                        ACADEMIE REZEENNE DE BILLARD\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                3\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                0,83\n              
2000
                </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                33.33\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                17\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                27\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                2\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,62\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                22\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                3\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,73\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                30\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                4\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,15\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                69\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                83\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                4\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,83\n                              </td>\n                            </t
2000
r>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <th>\n                      <div>\n                        BONFILS\n                         \n                        FREDDY\n                      </div>\n                      <div class=\"comment\">\n                        AMICALE DU BILLARD PAZENAIS\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                4\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                0,95\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                0.00\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                17\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                8\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,65\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                25\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                22\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                6\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,13\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                29\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                3\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,11\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                71\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                74\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4e
4bb
m\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                8\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,95\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                </tbody>\n              </thead>\n            </table>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n\n"}]
0

