%%
%% This is file `arydshln.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% arydshln.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% You are *not* allowed to modify this file.
%% 
%% You are *not* allowed to distribute this file.
%% For distribution of the original source see the terms
%% for copying and modification in the file arydshln.dtx.
%% 
%% Style file `arydshln'
%% Copyright (C) 1993,1998-2002
%%               Hiroshi Nakashima <nakasima@tutics.tut.ac.jp>
%%               (Kyoto Univ. / Toyohashi Univ. of Tech.)
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
%%
\def\next{LaTeX2e}
\ifx\fmtname\next\def\next{
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{arydshln}}
\else\def\next[#1]{}\fi\next
[2002/06/26 v1.5b ]
%% Register Declaration

\newdimen\dashlinedash \dashlinedash4pt %
\newdimen\dashlinegap \dashlinegap4pt %
\let\hdashlinewidth\dashlinedash
\let\hdashlinegap\dashlinegap

\newif\ifadl@leftrule
\newif\ifadl@connected
\newif\ifadl@doublerule
\newif\ifadl@zwvrule
\newif\ifadl@usingarypkg
\ifx\extrarowheight\undefined \adl@usingarypkgfalse
\else                         \adl@usingarypkgtrue  \fi
\newif\ifadl@inactive \adl@inactivefalse

\def\ADLnullwide{\adl@zwvruletrue}
\def\ADLsomewide{\adl@zwvrulefalse}
\ifadl@usingarypkg \ADLsomewide \else \ADLnullwide \fi

\def\ADLactivate{\adl@inactivefalse}
\def\ADLinactivate{\adl@inactivetrue}

\newbox\adl@box
\newdimen\adl@height \newdimen\adl@heightsave
\newdimen\adl@depth \newdimen\adl@depthsave
\newdimen\adl@finaldepth
\newcount\adl@columns \newcount\adl@ncol
\newcount\adl@currentcolumn \newcount\adl@currentcolumnsave
\newcount\adl@totalheight \newcount\adl@totalheightsave
\newcount\adl@dash \newcount\adl@gap
\newcount\adl@cla \newcount\adl@clb
\newtoks\adl@everyvbox

\let\adl@org@arrayclassz\@arrayclassz
\let\adl@org@tabclassz\@tabclassz
\let\adl@org@classz\@classz
\let\adl@org@@startpbox\@@startpbox
\let\adl@org@@endpbox\@@endpbox
\let\adl@org@endpbox\@endpbox
\let\adl@org@cline\cline

%%^L

%% Initialization

\let\adl@array\@array
\def\@array{\adl@everyvbox\everyvbox
        \everyvbox{\adl@arrayinit \the\adl@everyvbox \everyvbox\adl@everyvbox}%
        \adl@array}
\let\@@array\@array

\def\adl@arrayinit{%
\adl@arraysave
        \global\adl@height\z@ \global\adl@depth\z@
        \global\adl@currentcolumn\@ne \global\adl@totalheight\z@
        \gdef\adl@rowsL{}\gdef\adl@rowsR{}\gdef\adl@colsL{}\gdef\adl@colsR{}%
        \let\@elt\relax \let\adl@connect\relax
        \adl@columns\adl@ncol
        \ifadl@inactive \adl@inactivate \fi}
\def\adl@arraysave{%
        \adl@heightsave\adl@height
        \adl@depthsave\adl@depth
        \adl@currentcolumnsave\adl@currentcolumn
        \adl@totalheightsave\adl@totalheight
        \let\adl@rowsLsave\adl@rowsL
        \let\adl@rowsRsave\adl@rowsR
        \let\adl@colsLsave\adl@colsL
        \let\adl@colsRsave\adl@colsR}

\def\adl@inactivate{%
        \let\@arrayclassz\adl@org@arrayclassz
        \let\@tabclassz\adl@org@tabclassz
        \ifadl@usingarypkg \let\@classz\adl@org@classz \fi
        \let\@@startpbox\adl@org@@startpbox
        \let\@@endpbox\adl@org@@endpbox
        \let\@endpbox\adl@org@endpbox
        \def\adl@cr{\cr}%
        \let\cline\adl@org@cline
        \def\adl@endarray{\crcr}%
        \let\adl@hline\@gobbletwo
        \let\adl@ihdashline\adl@inactivehdl
        \let\adl@cdline\adl@inactivecdl
        \let\adl@@vlineL\adl@inactivevl
        \let\adl@@vlineR\adl@inactivevl
        \let\adl@vlineL\adl@inactivevl
        \let\adl@vlineR\adl@inactivevl}

%%^L

%% Making Preamble

\let\adl@mkpream\@mkpream
\def\@mkpream#1{\let\adl@colhtdp\relax
        \let\adl@vlineL\relax \let\adl@vlineR\relax
        \global\adl@ncol\@ne \adl@leftruletrue
        \adl@mkpream{#1}\adl@columns\adl@ncol \afterassignment\adl@preaminit}

\def\@addamp{\if@firstamp\@firstampfalse \else
        \@addtopreamble{\global\advance\adl@currentcolumn\@ne &}%
        \global\advance\adl@ncol\@ne \fi}

\ifadl@usingarypkg
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar l\@ne \else
     \if \@nextchar r\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \let\@arrayrule\adl@arrayrule \else
   \if\@nextchar :\@ne \let\@arrayrule\adl@arraydashrule \else
   \if\@nextchar ;\@ne \let\@arrayrule\adl@argarraydashrule \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar <8 \else
       \if \@nextchar >9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
   \if \@nextchar p4 \else
    \if \@nextchar b5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}

\def\@classz{\@classx
   \@tempcnta \count@
   \prepnext@tok
   \@addtopreamble{\ifcase \@chnum
      \hfil
      \adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
      \hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
      \hfil\hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\or
   $\setbox\adl@box\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or
   \setbox\adl@box\vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
   \setbox\adl@box\vbox \@startpbox{\@nextchar}\insert@column \@endpbox
  \fi}\prepnext@tok}
\def\adl@class@start{4}
\def\adl@class@iiiorvii{7}

\else
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4\relax \else
        \ifnum \@lastchclass=\thr@@ 5\relax \else
                \z@ \if #1c\@chnum \z@ \else
                    \if #1l\@chnum \@ne \else
                    \if #1r\@chnum \tw@ \else
                \@chclass
                    \if #1|\@ne \let\@arrayrule\adl@arrayrule \else
                    \if #1:\@ne \let\@arrayrule\adl@arraydashrule \else
                    \if #1;\@ne \let\@arrayrule\adl@argarraydashrule \else
                    \if #1@\tw@ \else
                    \if #1p\thr@@ \else \z@ \@preamerr 0\fi
        \fi  \fi  \fi  \fi  \fi  \fi  \fi  \fi  \fi}

\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
                \or \or \@addamp \or
                \@acolampacol \or \@firstampfalse \@acol \fi
        \edef\@preamble{\@preamble
                \ifcase \@chnum
                    \hfil\adl@putlrc{$\relax\@sharp$}\hfil
                \or \adl@putlrc{$\relax\@sharp$}\hfil
                \or \hfil\adl@putlrc{$\relax\@sharp$}\fi}}
\def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
                \or \or \@addamp \or
                \@acolampacol \or \@firstampfalse \@acol \fi
        \edef\@preamble{\@preamble
        \ifcase \@chnum
                    \hfil\adl@putlrc{\@sharp\unskip}\hfil
                \or \adl@putlrc{\@sharp\unskip}\hfil
                \or \hfil\hskip\z@ \adl@putlrc{\@sharp\unskip}\fi}}
\def\adl@class@start{6}
\def\adl@class@iiiorvii{3}
\fi

\def\adl@putlrc#1{\setbox\adl@box\hbox{#1}\adl@colhtdp \unhbox\adl@box}

\def\adl@arrayrule{%
        \adl@xarraydashrule
                {\@ne}{\adl@ncol}{{\z@/\z@}}}
\def\adl@arraydashrule{%
        \adl@xarraydashrule
                {\@ne}{\adl@ncol}%
                {{\dashlinedash/\dashlinegap}}}
\def\adl@argarraydashrule{%
        \adl@xarraydashrule
                {\@ne}{\adl@ncol}{}%
        \@chclass\adl@class@iiiorvii \let\@classv\adl@classvfordash}
\def\adl@xarraydashrule#1#2#3{%
        \ifnum\@lastchclass=\adl@class@start\else
        \ifnum\@lastchclass=\@ne\else
                \adl@leftrulefalse \fi\fi
        \ifadl@zwvrule\else \ifadl@inactive\else
                \@addtopreamble{\vrule\@width\arrayrulewidth
                        \@height\z@ \@depth\z@}\fi \fi
        \ifadl@leftrule
                \@addtopreamble{\adl@vlineL{\number#1}#3}%
        \else   \@addtopreamble{\adl@vlineR{\number#2}#3}\fi}
\let\adl@classv\@classv
\def\adl@classvfordash{\@addtopreamble{{\@nextchar}}\let\@classv\adl@classv
        \@chclass\@ne}

%%^L

%% Building Columns

\def\adl@preaminit{\let\adl@colhtdp\adl@@colhtdp
        \let\adl@vlineL\adl@@vlineL
        \let\adl@vlineR\adl@@vlineR}

\def\adl@@colhtdp{%
        \ifdim\adl@height<\ht\adl@box \global\adl@height\ht\adl@box \fi
        \ifdim\adl@depth<\dp\adl@box \global\adl@depth\dp\adl@box\fi}

\def\adl@@vlineL#1#2{\adl@ivline#2\@nil
        \xdef\adl@colsL{\adl@colsL
                \@elt{#1}{\number\@tempcnta}{\number\@tempcntb}}}
\def\adl@@vlineR#1#2{\adl@ivline#2\@nil
        \xdef\adl@colsR{\@elt{#1}{\number\@tempcnta}{\number\@tempcntb}%
                \adl@colsR}}
\def\adl@ivline#1/#2\@nil{%
        \@tempdima#1\relax \@tempcnta\@tempdima
        \@tempdima#2\relax \@tempcntb\@tempdima
        \ifnum\@tempcnta>\z@ \else \@tempcnta\z@ \@tempcntb\z@ \fi
        \ifnum\@tempcntb>\z@ \else \@tempcnta\z@ \@tempcntb\z@ \fi}
\adl@preaminit

\def\adl@inactivevl#1#2{\ifadl@zwvrule \hskip-.5\arrayrulewidth \fi
        \vline \ifadl@zwvrule \hskip-.5\arrayrulewidth \fi}

\def\@@startpbox#1{\setbox\adl@box\vtop\bgroup \hsize#1\@arrayparboxrestore}
\def\@@endpbox{\unskip \ifhmode \nobreak
        \vrule\@width\z@\@height\z@\@depth\dp\@arstrutbox \fi
        \par \egroup \adl@colhtdp \box\adl@box \hfil}
\let\@endpbox\@@endpbox

%%^L

%% Multi-Columns

\def\multicolumn#1#2#3{\multispan{#1}\begingroup \begingroup
        \def\adl@arrayrule{\adl@mcarrayrule{#1}}%
        \def\adl@arraydashrule{\adl@mcarraydashrule{#1}}%
        \def\adl@argarraydashrule{\adl@mcargarraydashrule{#1}}%
        \let\@addamp\adl@mcaddamp
        \@mkpream{#2}\@addtopreamble\@empty
        \global\let\adl@preamble\@preamble \endgroup
        \let\@preamble\adl@preamble
        \def\@sharp{#3}\let\protect\relax
        \adl@activatepbox
        \adl@preaminit
        \@arstrut \@preamble\hbox{}\endgroup
        \global\advance\adl@currentcolumn#1\ignorespaces}
\ifadl@usingarypkg
        \def\adl@mcaddamp{\if@firstamp\@firstampfalse \else\@preamerror5\fi}
        \let\adl@activatepbox\relax
\else
        \let\adl@mcaddamp\@addamp
        \def\adl@activatepbox{\let\@startpbox\@@startpbox
                \let\@endpbox\@@endpbox}
\fi

\def\adl@mcarrayrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
        \advance\@tempcnta\m@ne
        \adl@xarraydashrule
                {\adl@currentcolumn}{\@tempcnta}{{\z@/\z@}}}
\def\adl@mcarraydashrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
        \advance\@tempcnta\m@ne
        \adl@xarraydashrule
                {\adl@currentcolumn}{\@tempcnta}%
                {{\dashlinedash/\dashlinegap}}}
\def\adl@mcargarraydashrule#1{\@tempcnta#1\advance\@tempcnta\adl@currentcolumn
        \advance\@tempcnta\m@ne
        \adl@xarraydashrule
                {\adl@currentcolumn}{\@tempcnta}{}%
        \@chclass\adl@class@iiiorvii \let\@classv\adl@classvfordash}

%%^L

%% End of row

\ifadl@usingarypkg
\def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{}\fi\adl@cr}}
\else
\def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{\fi}${}\adl@cr}}
\fi
\def\@xtabularcr{\@ifnextchar[{\@argtabularcr}{\ifnum0=`{\fi}\adl@cr}}
\def\@xargarraycr#1{\@tempdima#1\advance\@tempdima\dp\@arstrutbox
        \vrule\@height\z@\@depth\@tempdima\@width\z@
        \adl@cr}
\def\@yargarraycr#1{\adl@argcr{#1}\noalign{\vskip #1}}

\def\adl@cr{\cr\noalign{\adl@@cr\z@}}
\def\adl@argcr#1{\cr\noalign{\adl@@cr{#1}}}
\def\adl@@cr#1{
        \ifdim\adl@height<\ht\@arstrutbox \adl@height\ht\@arstrutbox\fi
        \ifdim\adl@depth<\dp\@arstrutbox \adl@depth\dp\@arstrutbox\fi
        \advance\adl@height\adl@depth \advance\adl@height#1\relax
        \global\advance\adl@totalheight\adl@height
        \xdef\adl@rowsL{\adl@rowsL
                (\adl@colsL/\number\adl@height);}%
        \xdef\adl@rowsR{\adl@rowsR
                (\adl@colsR/\number\adl@height);}%
        \gdef\adl@colsL{}\gdef\adl@colsR{}
        \global\adl@currentcolumn\@ne
        \ifdim#1=\z@ \global\adl@finaldepth\adl@depth
        \else        \global\adl@finaldepth\z@\fi
        \global\adl@height\z@ \global\adl@depth\z@}

%%^L

%% Horizontal Lines

\def\hline{\noalign{\ifnum0=`}\fi \hrule\@height\arrayrulewidth
        \adl@hline\adl@connect\arrayrulewidth
        \global\adl@finaldepth\z@
        \futurelet\@tempa\adl@xhline}
\def\cline{\noalign{\global\adl@finaldepth\z@}\adl@org@cline}

\def\hdashline{\adl@hdashline\adl@ihdashline}
\def\adl@hdashline#1{\noalign{\ifnum0=`}\fi
        \@ifnextchar[%]
                     {#1}%
                     {#1[\dashlinedash/\dashlinegap]}}
\def\adl@ihdashline[#1/#2]{\adl@hline\adl@connect\arrayrulewidth
        \ifnum0=`{\fi}%
        \multispan{\adl@columns}\unskip \adl@hcline\z@[#1/#2]%
        \noalign{\ifnum0=`}\fi
        \futurelet\@tempa\adl@xhline}
\def\adl@inactivehdl[#1/#2]{\hrule\@height\arrayrulewidth
        \futurelet\@tempa\adl@xhline}

\def\adl@xhline{\ifx\@tempa\hline \adl@ixhline\fi
        \ifx\@tempa\hdashline \adl@ixhline\fi
        \ifnum0=`{\fi}}
\def\adl@ixhline{\vskip\doublerulesep \adl@hline\relax\doublerulesep}

\def\adl@hline#1#2{\@tempcnta#2
        \global\advance\adl@totalheight\@tempcnta
        \xdef\adl@rowsL{\adl@rowsL
                (#1/\number\@tempcnta);}%
        \xdef\adl@rowsR{\adl@rowsR
                (#1/\number\@tempcnta);}}

\def\cdashline#1{\noalign{\ifnum0=`}\fi
        \@ifnextchar[%]
                     {\adl@cdline[#1]}%
                     {\adl@cdline[#1][\dashlinedash/\dashlinegap]}}
\def\adl@cdline[#1-#2]{\global\adl@cla#1\relax
        \global\advance\adl@cla\m@ne
        \ifnum\adl@cla>\z@ \global\let\@gtempa\adl@cdlinea
        \else              \global\let\@gtempa\adl@cdlineb\fi
        \global\adl@clb#2\relax
        \global\advance\adl@clb-\adl@cla \ifnum0=`{\fi}
        \@gtempa{-\arrayrulewidth}}
\def\adl@cdlinea{\multispan\adl@cla &\multispan\adl@clb \unskip \adl@hcline}
\def\adl@cdlineb{\multispan\adl@clb \unskip \adl@hcline}

\def\adl@inactivecdl[#1-#2][#3]{\ifnum0=`{\fi}\adl@org@cline{#1-#2}}

\def\adl@hcline#1[#2/#3]{\@tempdima#2\relax \@tempdimb#3\relax
        \adl@draw\adl@vrule\hskip\hbox \cr
        \noalign{\global\adl@finaldepth\z@ \vskip#1}}

\ifadl@usingarypkg
\def\firsthdashline{\adl@hdashline{\ifnum0=`{\fi}\adl@firsthdashline}}
\def\lasthdashline{\adl@hdashline{\ifnum0=`{\fi}\adl@lasthdashline}}

\def\adl@defflhdl#1{\def\@tempa{#1}
        \expandafter\adl@idefflhdl}
\def\adl@idefflhdl#1\hline#2\@nil{%
        \@namedef\@tempa[##1/##2]{#1\adl@hdashline\adl@ihdashline[##1/##2]#2}}
\adl@defflhdl{adl@firsthdashline}\firsthline\@nil
\adl@defflhdl{adl@lasthdashline}\lasthline\@nil
\fi

%%^L

%% End of Environment

\def\endarray{\adl@endarray \egroup \adl@arrayrestore \egroup}
\def\endtabular{\adl@endarray \egroup \adl@arrayrestore \egroup $\egroup}
\expandafter\let\csname endtabular*\endcsname\endtabular

\def\adl@endarray{\crcr \noalign{
        \ifdim\adl@height=\z@
        \ifdim\adl@depth=\z@  \else \adl@@cr\z@ \fi
                              \else \adl@@cr\z@ \fi
        \let\adl@vl\relax
        \def\adl@vlrow{}\adl@currentcolumn\@ne
                \let\adl@rows\adl@rowsL
                \let\adl@addvl\adl@addvlL
                \adl@makevlrL \global\let\adl@vlrowL\adl@vlrow
        \def\adl@vlrow{}\adl@currentcolumn\adl@columns
                \let\adl@rows\adl@rowsR
                \let\adl@addvl\adl@addvlR
                \adl@makevlrR \global\let\adl@vlrowR\adl@vlrow
        \global\let\adl@vl\adl@@vl}%
        \omit \adl@vlrowL \cr \omit \adl@vlrowR \cr
        \noalign{\vskip-\adl@finaldepth}%
        \omit\vrule\@width\z@\@height\z@\@depth\adl@finaldepth\cr}

\def\adl@arrayrestore{%
        \global\adl@height\adl@heightsave
        \global\adl@depth\adl@depthsave
        \global\adl@currentcolumn\adl@currentcolumnsave
        \global\adl@totalheight\adl@totalheightsave
        \global\let\adl@rowsL\adl@rowsLsave
        \global\let\adl@rowsR\adl@rowsRsave
        \global\let\adl@colsL\adl@colsLsave
        \global\let\adl@colsR\adl@colsRsave}

%%^L

%% Drawing Vertical Lines

\def\adl@makevlrL{\adl@makevlr
        \ifadl@doublerule
                \edef\adl@vlrow{\adl@vlrow \hskip\doublerulesep}%
                \let\next\adl@makevlrL
        \else
                \advance\adl@currentcolumn\@ne
                \ifnum\adl@currentcolumn>\adl@columns \let\next\relax
                        \edef\adl@vlrow{\adl@vlrow \hss}%
                \else \let\next\adl@makevlrL
                        \edef\adl@vlrow{\adl@vlrow \hss &\omit}%
        \fi\fi\next}
\def\adl@makevlrR{\adl@makevlr
        \ifadl@doublerule
                \edef\adl@vlrow{\hskip\doublerulesep \adl@vlrow}%
                \let\next\adl@makevlrR
        \else
                \advance\adl@currentcolumn\m@ne
                \ifnum\adl@currentcolumn=\z@ \let\next\relax
                        \edef\adl@vlrow{\hss \adl@vlrow}%
                \else \let\next\adl@makevlrR
                        \edef\adl@vlrow{&\omit \hss \adl@vlrow}%
        \fi\fi\next}

\def\adl@makevlr{\@tempcnta\adl@totalheight \@tempcntb\adl@totalheight
        \adl@dash\m@ne \adl@gap\m@ne
        \adl@connectedfalse \adl@doublerulefalse \def\@tempb{}%
        \expandafter\adl@imakevlr\adl@rows\@nil;%
        \adl@addvl
        \edef\adl@rows{\@tempb}}

\def\adl@imakevlr#1;{\def\@tempa{#1}\ifx\@tempa\@nnil \let\next\relax
        \else \adl@iimakevlr#1\let\next\adl@imakevlr \fi \next}
\def\adl@iimakevlr(#1/#2){\let\@elt\adl@iiimakevlr
        \let\adl@connect\adl@@connect
        \let\adl@endmakevlr\adl@endmakevlrcut
         #1\adl@endmakevlr
        \let\@elt\relax \let\adl@connect\relax
        \advance\@tempcntb-#2\edef\@tempb{\@tempb(\@tempc/#2);}}

\def\adl@iiimakevlr#1#2#3{\let\@elt\adl@ivmakevlr \let\next\relax
        \ifnum#1=\adl@currentcolumn\relax
                \let\adl@endmakevlr\adl@endmakevlrconn
                \@tempswafalse
                \ifnum#2=\adl@dash\relax
                \ifnum#3=\adl@gap\relax
                        \@tempswatrue
                \fi\fi
                \if@tempswa
                        \ifadl@connected\else
                                \@tempcnta\@tempcntb \adl@connectedtrue \fi
                \else
                        \adl@addvl
                        \adl@dash#2\relax \adl@gap#3\relax
                        \@tempcnta\@tempcntb \adl@connectedtrue
                \fi
        \else
                \adl@addvl
                \def\next{\adl@vmakevlr\@elt{#1}{#2}{#3}}%
        \fi\next}
\def\adl@ivmakevlr#1#2#3{%
        \ifnum#1=\adl@currentcolumn \adl@doubleruletrue \fi
        \adl@vmakevlr\@elt{#1}{#2}{#3}}
\def\adl@vmakevlr#1\adl@endmakevlr{\def\@tempc{#1}}
\def\adl@endmakevlrcut{\adl@addvl \def\@tempc{}}
\def\adl@endmakevlrconn{\def\@tempc{}}
\def\adl@@connect\adl@endmakevlr{\def\@tempc{\adl@connect}}

\def\adl@addvlL{\ifadl@connected
        \advance\@tempcnta-\@tempcntb
        \edef\adl@vlrow{\adl@vlrow
                \adl@vl{\number\@tempcntb}{\number\@tempcnta}%
                       {\number\adl@dash}{\number\adl@gap}}%
        \adl@connectedfalse \fi}
\def\adl@addvlR{\ifadl@connected
        \advance\@tempcnta-\@tempcntb
        \edef\adl@vlrow{\adl@vl{\number\@tempcntb}{\number\@tempcnta}%
                               {\number\adl@dash}{\number\adl@gap}\adl@vlrow}%
        \adl@connectedfalse \fi}

\def\adl@@vl#1#2#3#4{\vbox to\z@{\vss\hbox{%
        \ifadl@zwvrule \hskip-.5\arrayrulewidth \fi
        \raise#1sp\vbox to#2sp{
                \ifnum#3=\z@
                        \hrule height#2sp depth\z@ width\arrayrulewidth
                \else   \@tempdima#3sp \@tempdimb#4sp
                        \adl@draw\adl@hrule\vskip\vbox
                \fi}%
        \ifadl@zwvrule \hskip-.5\arrayrulewidth \fi}}}

%%^L

%% Draw Dash Lines (\adl@vrule/\adl@hrule, \hskip/\vskip, \hbox/\vbox)

\def\adl@vrule#1{\vrule\@width#1\@tempdima\@height\arrayrulewidth\relax}
\def\adl@hrule#1{\hrule\@height#1\@tempdima\@width\arrayrulewidth\relax}
\def\adl@drawi#1#2#3{%
        #1{.5}#2.5\@tempdimb
        \xleaders#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
                #2\z@ plus1fil minus1fil\relax
        #2.5\@tempdimb #1{.5}}
\def\adl@drawii#1#2#3{%
        \setbox\adl@box#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
        #1{.5}#2.5\@tempdimb
        \copy\adl@box #2-\@tempdima #2-\@tempdimb
        \xleaders\copy\adl@box#2\z@ plus1fil minus1fil\relax
        #2-\@tempdima #2-\@tempdimb \copy\adl@box
        #2.5\@tempdimb #1{.5}}
\def\adl@drawiii#1#2#3{{\let\xleaders\cleaders \adl@drawi#1#2#3}}
\let\adl@draw\adl@drawi

\def\ADLdrawingmode#1{\ifcase #1%
        \let\adl@draw\adl@drawi \or
        \let\adl@draw\adl@drawi \or
        \let\adl@draw\adl@drawii \or
        \let\adl@draw\adl@drawiii \else
        \let\adl@draw\adl@drawi \fi}

%%^L

%% Shorthand Activation

\def\adl@Array{\adl@inactivefalse \array}
\def\adl@Tabular{\adl@inactivefalse \tabular}
\def\adl@Tabularstar{\adl@inactivefalse \@nameuse{tabular*}}

\begingroup
\def\@notdefinable{\gdef\adl@notdefinable{}}
\@ifdefinable\Array\relax
\@ifdefinable\Tabular\relax
\expandafter\@ifdefinable\csname Tabular*\endcsname\relax
\endgroup

\ifx\adl@notdefinable\undefined
        \let\Array\adl@Array
        \let\Tabular\adl@Tabular
        \expandafter\let\csname Tabular*\endcsname\adl@Tabularstar
        \let\endArray\endarray
        \let\endTabular\endtabular
        \expandafter\let\csname endTabular*\endcsname\endtabular
\else
\begingroup
\def\@tempa{Array and Tabular are not defined because they have\MessageBreak
        been defined}
\ifx\PackageWarning\undefined
        \def\MessageBreak{^^J}
        \@warning\@tempa
\else
        \let\on@line\empty
        \PackageWarning{arydshln}\@tempa
\fi
\endgroup
\fi

\def\ADLnoshorthanded{%
        \let\Array\relax
        \let\Tabular\relax
        \expandafter\let\csname Tabular*\endcsname\relax
        \let\endArray\relax
        \let\endTabular\relax
        \expandafter\let\csname endTabular*\endcsname\relax}

%%^L

%% Compatibility with colortab

\def\adl@CC@#1#2#3{%
  \ifcolortab
    \noalign{%
      \adl@arraysave
      \setbox\CT@box=\vbox{#1#3\crcr\egroup}%
      \adl@arrayrestore
      \CT@dim=\ht\CT@box
      \global\advance\CT@dim by \dp\CT@box
      \def\CT@next{}%
      \futurelet\next\CT@columncolor#2&\@nil}%
    \CT@next\cr
    \noalign{\vskip-\CT@dim}%
  \fi
  #3}
\ifx\ColortabLoaded\undefined\else
\let\CC@\adl@CC@
\fi
\endinput
%%
%% End of file `arydshln.sty'.
