2003-04-21 23:37:11 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/* This file sets various arrays and variables for use in b2 */
|
|
|
|
|
|
|
|
|
|
#b2 version
|
|
|
|
|
$b2_version = '0.6.1';
|
|
|
|
|
|
|
|
|
|
#BBcode search and replace arrays
|
|
|
|
|
$b2_bbcode['in'] = array(
|
|
|
|
|
'#\[b](.+?)\[/b]#is', // Formatting tags
|
|
|
|
|
'#\[i](.+?)\[/i]#is',
|
|
|
|
|
'#\[u](.+?)\[/u]#is',
|
|
|
|
|
'#\[s](.+?)\[/s]#is',
|
|
|
|
|
'#\[color=(.+?)](.+?)\[/color]#is',
|
|
|
|
|
'#\[size=(.+?)](.+?)\[/size]#is',
|
|
|
|
|
'#\[font=(.+?)](.+?)\[/font]#is',
|
|
|
|
|
'#\[img](.+?)\[/img]#is', // Image
|
|
|
|
|
'#\[url](.+?)\[/url]#is', // URL
|
|
|
|
|
'#\[url=(.+?)](.+?)\[/url]#is',
|
|
|
|
|
# '#\[email](.+?)\[/email]#eis', // E-mail
|
|
|
|
|
# '#\[email=(.+?)](.+?)\[/email]#eis'
|
|
|
|
|
);
|
|
|
|
|
$b2_bbcode['out'] = array(
|
|
|
|
|
'<strong>$1</strong>', // Formatting tags
|
|
|
|
|
'<em>$1</em>',
|
|
|
|
|
'<span style="text-decoration:underline">$1</span>',
|
|
|
|
|
'<span style="text-decoration:line-through">$1</span>',
|
|
|
|
|
'<span style="color:$1">$2</span>',
|
|
|
|
|
'<span style="font-size:$1px">$2</span>',
|
|
|
|
|
'<span style="font-family:$1">$2</span>',
|
|
|
|
|
'<img src="$1" alt="" />', // Image
|
|
|
|
|
'<a href="$1">$1</a>', // URL
|
|
|
|
|
'<a href="$1" title="$2">$2</a>',
|
|
|
|
|
# "'<a href=\"mailto:'.antispambot('\\1').'\">'.antispambot('\\1').'</a>'", // E-mail
|
|
|
|
|
# '<a href="mailto:$1">$2</a>'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
#GreyMatter formatting search and replace arrays
|
|
|
|
|
$b2_gmcode['in'] = array(
|
|
|
|
|
'#\\*\*(.+?)\\*\*#is', // **bold**
|
|
|
|
|
'#\\\\(.+?)\\\\#is', // \\italic\\
|
|
|
|
|
'#\__(.+?)\__#is' // __underline__
|
|
|
|
|
);
|
|
|
|
|
$b2_gmcode['out'] = array(
|
|
|
|
|
'<strong>$1</strong>',
|
|
|
|
|
'<em>$1</em>',
|
|
|
|
|
'<span style="text-decoration:underline">$1</span>'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
#Translation of HTML entities and special characters
|
|
|
|
|
$b2_htmltrans = array_flip(get_html_translation_table(HTML_ENTITIES));
|
|
|
|
|
$b2_htmltrans['<'] = '<'; # preserve HTML
|
|
|
|
|
$b2_htmltrans['>'] = '>'; # preserve HTML
|
|
|
|
|
$b2_htmltransbis = array(
|
|
|
|
|
'–' => '<27>', '—' => '<27>', '‘' => '<27>', '’' => '<27>',
|
|
|
|
|
'“' => '<27>', '”' => '<27>', '•' => '<27>', '€' => '<27>',
|
|
|
|
|
'<' => '<', # preserve fake HTML
|
|
|
|
|
'>' => '>', # preserve fake HTML
|
|
|
|
|
'&sp;' => ' ', '!' => '!', '"' => '"', '#' => '#', '$' => '$', '%' => '%', '&' => '&', ''' => ''', '(' => '(', ')' => ')',
|
|
|
|
|
'*' => '*', '+' => '+', ',' => ',', '‐' => '-', '−' => '-', '.' => '.', '/' => '/', ':' => ':', ';' => ';', '<' => '<',
|
|
|
|
|
'=' => '=', '>' => '>', '?' => '?', '@' => '@', '[' => '[', '\' => '\', ']' => ']', 'ˆ' => '^', '_' => '_', '―' => '_',
|
|
|
|
|
'`' => '`', '{' => '{', '|' => '|', '}' => '}', '˜' => '~', '‚' => '‚', '„' => '„',
|
|
|
|
|
'&ldots;' => '…', 'Š' => 'Š', '‹' => '‹', 'Œ' => 'Œ', '‘' => '‘', '’' => '‘', '’' => '’',
|
|
|
|
|
'“' => '“', '”' => '“', '”' => '”', '•' => '•', '–' => '–', '&endash;' => '–', '—' => '—', '&emdash;' => '—', '˜' => '˜', '™' => '™',
|
|
|
|
|
'š' => 'š', '›' => '›', 'œ' => 'œ', 'Ÿ' => 'Ÿ', ' ' => ' ', '¡' => '¡', '¢' => '¢', '£' => '£', '¤' => '¤', '¥' => '¥',
|
|
|
|
|
'¦' => '¦', '&brkbar;' => '¦', '§' => '§', '¨' => '¨', '¨' => '¨', '©' => '©', 'ª' => 'ª', '«' => '«', '¬' => '¬', '­' => '­',
|
|
|
|
|
'®' => '®', '¯' => '¯', '&hibar;' => '¯', '°' => '°', '±' => '±', '²' => '²', '³' => '³', '´' => '´', 'µ' => 'µ', '¶' => '¶',
|
|
|
|
|
'·' => '·', '¸' => '¸', '¹' => '¹', 'º' => 'º', '»' => '»', '¼' => '¼', '½' => '½', '½' => '½', '¾' => '¾', '¿' => '¿',
|
|
|
|
|
'À' => 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Æ' => 'Æ', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É',
|
|
|
|
|
'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ð' => 'Ð', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó',
|
|
|
|
|
'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', '×' => '×', 'Ø' => 'Ø', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý',
|
|
|
|
|
'Þ' => 'Þ', 'ß' => 'ß', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'æ' => 'æ', 'ç' => 'ç',
|
|
|
|
|
'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ð' => 'ð', 'ñ' => 'ñ',
|
|
|
|
|
'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', '÷' => '÷', 'ø' => 'ø', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û',
|
|
|
|
|
'ü' => 'ü', 'ý' => 'ý', 'þ' => 'þ', 'ÿ' => 'ÿ', 'Œ' => 'Œ', 'œ' => 'œ', 'Š' => 'Š', 'š' => 'š', 'Ÿ' => 'Ÿ', 'ƒ' => 'ƒ',
|
|
|
|
|
'ˆ' => 'ˆ', '˜' => '˜', 'Α' => 'Α', 'Β' => 'Β', 'Γ' => 'Γ', 'Δ' => 'Δ', 'Ε' => 'Ε', 'Ζ' => 'Ζ', 'Η' => 'Η', 'Θ' => 'Θ',
|
|
|
|
|
'Ι' => 'Ι', 'Κ' => 'Κ', 'Λ' => 'Λ', 'Μ' => 'Μ', 'Ν' => 'Ν', 'Ξ' => 'Ξ', 'Ο' => 'Ο', 'Π' => 'Π', 'Ρ' => 'Ρ', 'Σ' => 'Σ',
|
|
|
|
|
'Τ' => 'Τ', 'Υ' => 'Υ', 'Φ' => 'Φ', 'Χ' => 'Χ', 'Ψ' => 'Ψ', 'Ω' => 'Ω', 'α' => 'α', 'β' => 'β', 'γ' => 'γ', 'δ' => 'δ',
|
|
|
|
|
'ε' => 'ε', 'ζ' => 'ζ', 'η' => 'η', 'θ' => 'θ', 'ι' => 'ι', 'κ' => 'κ', 'λ' => 'λ', 'μ' => 'μ', 'ν' => 'ν', 'ξ' => 'ξ',
|
|
|
|
|
'ο' => 'ο', 'π' => 'π', 'ρ' => 'ρ', 'ς' => 'ς', 'σ' => 'σ', 'τ' => 'τ', 'υ' => 'υ', 'φ' => 'φ', 'χ' => 'χ', 'ψ' => 'ψ',
|
|
|
|
|
'ω' => 'ω', 'ϑ' => 'ϑ', 'ϒ' => 'ϒ', 'ϖ' => 'ϖ', ' ' => ' ', ' ' => ' ', ' ' => ' ', '‌' => '‌', '‍' => '‍', '‎' => '‎',
|
|
|
|
|
'‏' => '‏', '–' => '–', '—' => '—', '‘' => '‘', '’' => '’', '‚' => '‚', '“' => '“', '”' => '”', '„' => '„', '†' => '†',
|
|
|
|
|
'‡' => '‡', '•' => '•', '…' => '…', '‰' => '‰', '′' => '′', '″' => '″', '‹' => '‹', '›' => '›', '‾' => '‾', '⁄' => '⁄',
|
|
|
|
|
'€' => '€', 'ℑ' => 'ℑ', '℘' => '℘', 'ℜ' => 'ℜ', '™' => '™', 'ℵ' => 'ℵ', '←' => '←', '↑' => '↑', '→' => '→', '↓' => '↓',
|
|
|
|
|
'↔' => '↔', '↵' => '↵', '⇐' => '⇐', '⇑' => '⇑', '⇒' => '⇒', '⇓' => '⇓', '⇔' => '⇔', '∀' => '∀', '∂' => '∂', '∃' => '∃',
|
|
|
|
|
'∅' => '∅', '∇' => '∇', '∈' => '∈', '∉' => '∉', '∋' => '∋', '∏' => '∏', '∑' => '∑', '−' => '−', '∗' => '∗', '√' => '√',
|
|
|
|
|
'∝' => '∝', '∞' => '∞', '∠' => '∠', '∧' => '∧', '∨' => '∨', '∩' => '∩', '∪' => '∪', '∫' => '∫', '∴' => '∴', '∼' => '∼',
|
|
|
|
|
'≅' => '≅', '≈' => '≈', '≠' => '≠', '≡' => '≡', '≤' => '≤', '≥' => '≥', '⊂' => '⊂', '⊃' => '⊃', '⊄' => '⊄', '⊆' => '⊆',
|
|
|
|
|
'⊇' => '⊇', '⊕' => '⊕', '⊗' => '⊗', '⊥' => '⊥', '⋅' => '⋅', '⌈' => '⌈', '⌉' => '⌉', '⌊' => '⌊', '⌋' => '⌋', '⟨' => '〈',
|
|
|
|
|
'⟩' => '〉', '◊' => '◊', '♠' => '♠', '♣' => '♣', '♥' => '♥', '♦' => '♦'
|
|
|
|
|
);
|
|
|
|
|
$b2_htmltrans = array_merge($b2_htmltrans,$b2_htmltransbis);
|
|
|
|
|
|
|
|
|
|
#Translation of invalid Unicode references range to valid range
|
|
|
|
|
$b2_htmltranswinuni = array(
|
|
|
|
|
'€' => '€', // the Euro sign
|
|
|
|
|
'' => '',
|
|
|
|
|
'‚' => '‚', // these are Windows CP1252 specific characters
|
|
|
|
|
'ƒ' => 'ƒ', // they would look weird on non-Windows browsers
|
|
|
|
|
'„' => '„',
|
|
|
|
|
'…' => '…',
|
|
|
|
|
'†' => '†',
|
|
|
|
|
'‡' => '‡',
|
|
|
|
|
'ˆ' => 'ˆ',
|
|
|
|
|
'‰' => '‰',
|
|
|
|
|
'Š' => 'Š',
|
|
|
|
|
'‹' => '‹',
|
|
|
|
|
'Œ' => 'Œ',
|
|
|
|
|
'' => '',
|
|
|
|
|
'Ž' => 'ž',
|
|
|
|
|
'' => '',
|
|
|
|
|
'' => '',
|
|
|
|
|
'‘' => '‘',
|
|
|
|
|
'’' => '’',
|
|
|
|
|
'“' => '“',
|
|
|
|
|
'”' => '”',
|
|
|
|
|
'•' => '•',
|
|
|
|
|
'–' => '–',
|
|
|
|
|
'—' => '—',
|
|
|
|
|
'˜' => '˜',
|
|
|
|
|
'™' => '™',
|
|
|
|
|
'š' => 'š',
|
|
|
|
|
'›' => '›',
|
|
|
|
|
'œ' => 'œ',
|
|
|
|
|
'' => '',
|
|
|
|
|
'ž' => '',
|
|
|
|
|
'Ÿ' => 'Ÿ'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
# these are used for b2's interface design
|
|
|
|
|
$tabletop = "\t<table cellspacing=\"0\" cellpadding=\"1\" width=\"85%\" border=\"0\" bgcolor=\"#cccccc\" align=\"center\">\n\t<td align=\"left\">\n\t\t<table cellspacing=\"0\" cellpadding=\"15\" width=\"100%\" border=\"0\"bgcolor=\"#ffffff\" align=\"center\">\n\t\t<td align=\"left\">\n";
|
|
|
|
|
$tablebottom = "\t\t</td>\n\t</table>\n\t</td>\n\t</table>\n";
|
2003-05-23 00:51:40 +02:00
|
|
|
|
$blankline = '<img src="../b2-img/blank.gif" width="10" height="5" border="0" /><br />';
|
2003-04-21 23:37:11 +02:00
|
|
|
|
|
|
|
|
|
# on which page are we ?
|
|
|
|
|
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];
|
|
|
|
|
$pagenow = explode('/', $PHP_SELF);
|
|
|
|
|
$pagenow = trim($pagenow[(sizeof($pagenow)-1)]);
|
|
|
|
|
$pagenow = explode('?', $pagenow);
|
|
|
|
|
$pagenow = $pagenow[0];
|
|
|
|
|
if (($querystring_start == '/') && ($pagenow != 'b2edit.php')) {
|
|
|
|
|
$pagenow = $siteurl.'/'.$blogfilename;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# browser detection
|
|
|
|
|
$is_lynx = 0; $is_gecko = 0; $is_winIE = 0; $is_macIE = 0; $is_opera = 0; $is_NS4 = 0;
|
|
|
|
|
if (!isset($HTTP_USER_AGENT)) {
|
|
|
|
|
$HTTP_USER_AGENT = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
|
|
|
|
|
}
|
|
|
|
|
if (preg_match('/Lynx/', $HTTP_USER_AGENT)) {
|
|
|
|
|
$is_lynx = 1;
|
|
|
|
|
} elseif (preg_match('/Gecko/', $HTTP_USER_AGENT)) {
|
|
|
|
|
$is_gecko = 1;
|
|
|
|
|
} elseif ((preg_match('/MSIE/', $HTTP_USER_AGENT)) && (preg_match('/Win/', $HTTP_USER_AGENT))) {
|
|
|
|
|
$is_winIE = 1;
|
|
|
|
|
} elseif ((preg_match('/MSIE/', $HTTP_USER_AGENT)) && (preg_match('/Mac/', $HTTP_USER_AGENT))) {
|
|
|
|
|
$is_macIE = 1;
|
|
|
|
|
} elseif (preg_match('/Opera/', $HTTP_USER_AGENT)) {
|
|
|
|
|
$is_opera = 1;
|
|
|
|
|
} elseif ((preg_match('/Nav/', $HTTP_USER_AGENT) ) || (preg_match('/Mozilla\/4\./', $HTTP_USER_AGENT))) {
|
|
|
|
|
$is_NS4 = 1;
|
|
|
|
|
}
|
|
|
|
|
$is_IE = (($is_macIE) || ($is_winIE));
|
|
|
|
|
|
|
|
|
|
# browser-specific javascript corrections
|
|
|
|
|
$b2_macIE_correction['in'] = array(
|
|
|
|
|
'/\%uFFD4/', '/\%uFFD5/', '/\%uFFD2/', '/\%uFFD3/',
|
|
|
|
|
'/\%uFFA5/', '/\%uFFD0/', '/\%uFFD1/', '/\%uFFBD/',
|
|
|
|
|
'/\%uFF83%uFFC0/', '/\%uFF83%uFFC1/', '/\%uFF83%uFFC6/', '/\%uFF83%uFFC9/',
|
|
|
|
|
'/\%uFFB9/', '/\%uFF81%uFF8C/', '/\%uFF81%uFF8D/', '/\%uFF81%uFFDA/',
|
|
|
|
|
'/\%uFFDB/'
|
|
|
|
|
);
|
|
|
|
|
$b2_macIE_correction['out'] = array(
|
|
|
|
|
'‘', '’', '“', '”',
|
|
|
|
|
'•', '–', '—', 'Ω',
|
|
|
|
|
'β', 'γ', 'θ', 'λ',
|
|
|
|
|
'π', '′', '″', '∠',
|
|
|
|
|
'€'
|
|
|
|
|
);
|
|
|
|
|
$b2_gecko_correction['in'] = array(
|
|
|
|
|
'/\‘/', '/\’/', '/\“/', '/\”/',
|
|
|
|
|
'/\•/', '/\–/', '/\—/', '/\Ω/',
|
|
|
|
|
'/\β/', '/\γ/', '/\θ/', '/\λ/',
|
|
|
|
|
'/\π/', '/\′/', '/\″/', '/\<5C><>/',
|
|
|
|
|
'/\€/', '/\ /'
|
|
|
|
|
);
|
|
|
|
|
$b2_gecko_correction['out'] = array(
|
|
|
|
|
'&8216;', '’', '“', '”',
|
|
|
|
|
'•', '–', '—', 'Ω',
|
|
|
|
|
'β', 'γ', 'θ', 'λ',
|
|
|
|
|
'π', '′', '″', '∠',
|
|
|
|
|
'€', ' '
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
# server detection
|
|
|
|
|
$is_Apache = strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache') ? 1 : 0;
|
|
|
|
|
$is_IIS = strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Microsoft-IIS') ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
# if the config file does not provide the smilies array, let's define it here
|
|
|
|
|
if (!isset($b2smiliestrans)) {
|
|
|
|
|
$b2smiliestrans = array(
|
|
|
|
|
':)' => 'icon_smile.gif',
|
|
|
|
|
':D' => 'icon_biggrin.gif',
|
|
|
|
|
':-D' => 'icon_biggrin.gif',
|
|
|
|
|
':grin:' => 'icon_biggrin.gif',
|
|
|
|
|
':)' => 'icon_smile.gif',
|
|
|
|
|
':-)' => 'icon_smile.gif',
|
|
|
|
|
':smile:' => 'icon_smile.gif',
|
|
|
|
|
':(' => 'icon_sad.gif',
|
|
|
|
|
':-(' => 'icon_sad.gif',
|
|
|
|
|
':sad:' => 'icon_sad.gif',
|
|
|
|
|
':o' => 'icon_surprised.gif',
|
|
|
|
|
':-o' => 'icon_surprised.gif',
|
|
|
|
|
':eek:' => 'icon_surprised.gif',
|
|
|
|
|
'8O' => 'icon_eek.gif',
|
|
|
|
|
'8-O' => 'icon_eek.gif',
|
|
|
|
|
':shock:' => 'icon_eek.gif',
|
|
|
|
|
':?' => 'icon_confused.gif',
|
|
|
|
|
':-?' => 'icon_confused.gif',
|
|
|
|
|
':???:' => 'icon_confused.gif',
|
|
|
|
|
'8)' => 'icon_cool.gif',
|
|
|
|
|
'8-)' => 'icon_cool.gif',
|
|
|
|
|
':cool:' => 'icon_cool.gif',
|
|
|
|
|
':lol:' => 'icon_lol.gif',
|
|
|
|
|
':x' => 'icon_mad.gif',
|
|
|
|
|
':-x' => 'icon_mad.gif',
|
|
|
|
|
':mad:' => 'icon_mad.gif',
|
|
|
|
|
':P' => 'icon_razz.gif',
|
|
|
|
|
':-P' => 'icon_razz.gif',
|
|
|
|
|
':razz:' => 'icon_razz.gif',
|
|
|
|
|
':oops:' => 'icon_redface.gif',
|
|
|
|
|
':cry:' => 'icon_cry.gif',
|
|
|
|
|
':evil:' => 'icon_evil.gif',
|
|
|
|
|
':twisted:' => 'icon_twisted.gif',
|
|
|
|
|
':roll:' => 'icon_rolleyes.gif',
|
|
|
|
|
':wink:' => 'icon_wink.gif',
|
|
|
|
|
';)' => 'icon_wink.gif',
|
|
|
|
|
';-)' => 'icon_wink.gif',
|
|
|
|
|
':!:' => 'icon_exclaim.gif',
|
|
|
|
|
':?:' => 'icon_question.gif',
|
|
|
|
|
':idea:' => 'icon_idea.gif',
|
|
|
|
|
':arrow:' => 'icon_arrow.gif',
|
|
|
|
|
':|' => 'icon_neutral.gif',
|
|
|
|
|
':-|' => 'icon_neutral.gif',
|
|
|
|
|
':neutral:' => 'icon_neutral.gif',
|
|
|
|
|
':mrgreen:' => 'icon_mrgreen.gif',
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# sorts the smilies' array
|
|
|
|
|
if (!function_exists('smiliescmp')) {
|
|
|
|
|
function smiliescmp ($a, $b) {
|
|
|
|
|
if (strlen($a) == strlen($b)) {
|
|
|
|
|
return strcmp($a, $b);
|
|
|
|
|
}
|
|
|
|
|
return (strlen($a) > strlen($b)) ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
uksort($b2smiliestrans, 'smiliescmp');
|
|
|
|
|
|
|
|
|
|
# generates smilies' search & replace arrays
|
|
|
|
|
foreach($b2smiliestrans as $smiley => $img) {
|
|
|
|
|
$b2_smiliessearch[] = $smiley;
|
|
|
|
|
$smiley_masked = '';
|
|
|
|
|
for ($i = 0; $i < strlen($smiley); $i = $i + 1) {
|
|
|
|
|
$smiley_masked .= substr($smiley, $i, 1).chr(160);
|
|
|
|
|
}
|
|
|
|
|
$b2_smiliesreplace[] = "<img src='$smilies_directory/$img' alt='$smiley_masked' />";
|
|
|
|
|
}
|
|
|
|
|
|
2003-05-06 10:07:29 +02:00
|
|
|
|
add_filter('all', 'wptexturize');
|
|
|
|
|
add_filter('the_content', 'wpautop');
|
|
|
|
|
add_filter('comment_text', 'wpautop');
|
2003-04-21 23:37:11 +02:00
|
|
|
|
|
|
|
|
|
?>
|