23             array(
'left', 
'right', 
'center', 
'justify'), 
false);
 
   26         $this->info[
'border-bottom-style'] =
 
   27         $this->info[
'border-right-style'] =
 
   28         $this->info[
'border-left-style'] =
 
   30             array(
'none', 
'hidden', 
'dotted', 
'dashed', 
'solid', 
'double',
 
   31             'groove', 
'ridge', 
'inset', 
'outset'), 
false);
 
   36             array(
'none', 
'left', 
'right', 
'both'), 
false);
 
   38             array(
'none', 
'left', 
'right'), 
false);
 
   40             array(
'normal', 
'italic', 
'oblique'), 
false);
 
   42             array(
'normal', 
'small-caps'), 
false);
 
   52             array(
'inside', 
'outside'), 
false);
 
   54             array(
'disc', 
'circle', 
'square', 
'decimal', 
'lower-roman',
 
   55             'upper-roman', 
'lower-alpha', 
'upper-alpha', 
'none'), 
false);
 
   56         $this->info[
'list-style-image'] = $uri_or_none;
 
   61             array(
'capitalize', 
'uppercase', 
'lowercase', 
'none'), 
false);
 
   64         $this->info[
'background-image'] = $uri_or_none;
 
   66             array(
'repeat', 
'repeat-x', 
'repeat-y', 
'no-repeat')
 
   69             array(
'scroll', 
'fixed')
 
   74         $this->info[
'border-top-color'] =
 
   75         $this->info[
'border-bottom-color'] =
 
   76         $this->info[
'border-left-color'] =
 
   77         $this->info[
'border-right-color'] =
 
   88         $this->info[
'border-top-width'] =
 
   89         $this->info[
'border-bottom-width'] =
 
   90         $this->info[
'border-left-width'] =
 
  110                 'small', 
'medium', 
'large', 
'x-large', 
'xx-large',
 
  111                 'larger', 
'smaller')),
 
  124         $this->info[
'margin-top'] =
 
  125         $this->info[
'margin-bottom'] =
 
  126         $this->info[
'margin-left'] =
 
  137         $this->info[
'padding-top'] =
 
  138         $this->info[
'padding-bottom'] =
 
  139         $this->info[
'padding-left'] =
 
  157         $max = $config->get(
'CSS.MaxImgLength');
 
  159         $this->info[
'width'] =
 
  160         $this->info[
'height'] =
 
  179             array(
'normal', 
'bold', 
'bolder', 
'lighter', 
'100', 
'200', 
'300',
 
  180             '400', 
'500', 
'600', 
'700', 
'800', 
'900'), 
false);
 
  187         $this->info[
'border'] =
 
  188         $this->info[
'border-bottom'] =
 
  189         $this->info[
'border-top'] =
 
  190         $this->info[
'border-left'] =
 
  194             'collapse', 
'separate'));
 
  204                 'top', 
'text-top', 
'middle', 
'bottom', 
'text-bottom')),
 
  214         if ($config->get(
'CSS.Proprietary')) {
 
  218         if ($config->get(
'CSS.AllowTricky')) {
 
  222         if ($config->get(
'CSS.Trusted')) {
 
  226         $allow_important = $config->get(
'CSS.AllowImportant');
 
  228         foreach ($this->info as $k => $v) {
 
  256             'inline', 
'block', 
'list-item', 
'run-in', 
'compact',
 
  257             'marker', 
'table', 
'inline-table', 
'table-row-group',
 
  258             'table-header-group', 
'table-footer-group', 
'table-row',
 
  259             'table-column-group', 
'table-column', 
'table-cell', 
'table-caption', 
'none' 
  262             'visible', 
'hidden', 
'collapse' 
  269             'static', 
'relative', 
'absolute', 
'fixed' 
  272         $this->info[
'left'] =
 
  273         $this->info[
'right'] =
 
  294         $support = 
"(for information on implementing this, see the ".
 
  296         $allowed_properties = $config->get(
'CSS.AllowedProperties');
 
  297         if ($allowed_properties !== null) {
 
  298             foreach ($this->info as $name => 
$d) {
 
  299                 if(!isset($allowed_properties[$name])) unset($this->info[$name]);
 
  300                 unset($allowed_properties[$name]);
 
  303             foreach ($allowed_properties as $name => 
$d) {
 
  305                 $name = htmlspecialchars($name);
 
  306                 trigger_error(
"Style attribute '$name' is not supported $support", E_USER_WARNING);
 
  310         $forbidden_properties = $config->get(
'CSS.ForbiddenProperties');
 
  311         if ($forbidden_properties !== null) {
 
  312             foreach ($this->info as $name => 
$d) {
 
  313                 if (isset($forbidden_properties[$name])) {
 
  314                     unset($this->info[$name]);