chem  -  groff preprocessor for producing chemical structure dia-
grams | | There are no other options than and these options  pro-
voke  the printing of a version or usage information, respective-
ly, and all arguments are ignored.  A argument is either  a  file
name  of  an  existing file or a minus character meaning standard
input.  If no argument is specified then standard input is  taken
automatically.   produces  chemical  structure diagrams.  Today's
version is best suited for organic chemistry (bonds, rings).  The
program  is  a  preprocessor  like etc.  It generates output such
that all parts are translated into diagrams of the language.  The
program  originates from the Perl source file It tells to include
a copy of the macro file Moreover the source file is loaded.   In
a  style reminiscent of and the diagrams are written in a special
language.  A set of lines looks like this
..ccssttaarrtt
_c_h_e_m _d_a_t_a
..cceenndd
_L_i_n_e_s _c_o_n_t_a_i_n_i_n_g _t_h_e _k_e_y_w_o_r_d_s _a_n_d _s_t_a_r_t _a_n_d _e_n_d _t_h_e _i_n_p_u_t _f_o_r _r_e_-
_s_p_e_c_t_i_v_e_l_y_.   _I_n  _c_o_n_t_e_x_t_,  _i_._e_._, _a_f_t_e_r _t_h_e _c_a_l_l _o_f _i_n_p_u_t _c_a_n _o_p_-
_t_i_o_n_a_l_l_y _b_e _s_t_a_r_t_e_d _b_y _t_h_e _l_i_n_e _a_n_d _e_n_d_e_d _b_y _t_h_e  _l_i_n_e  _w_i_t_h  _t_h_e
_s_i_n_g_l_e _w_o_r_d _i_n_s_t_e_a_d_.  _A_n_y_t_h_i_n_g _o_u_t_s_i_d_e _t_h_e_s_e _i_n_i_t_i_a_l_i_z_a_t_i_o_n _l_i_n_e_s
_i_s _c_o_p_i_e_d _t_h_r_o_u_g_h _w_i_t_h_o_u_t _m_o_d_i_f_i_c_a_t_i_o_n_; _a_l_l _d_a_t_a _b_e_t_w_e_e_n _t_h_e _i_n_i_-
_t_i_a_l_i_z_a_t_i_o_n _l_i_n_e_s _i_s _c_o_n_v_e_r_t_e_d _i_n_t_o _c_o_m_m_a_n_d_s _t_o _d_r_a_w _t_h_e _d_i_a_g_r_a_m_.
_A_s _a_n _e_x_a_m_p_l_e_,
..ccssttaarrtt
CCHH33
bboonndd
CCHH33
..cceenndd
_p_r_i_n_t_s _t_w_o _g_r_o_u_p_s _w_i_t_h _a _b_o_n_d _b_e_t_w_e_e_n  _t_h_e_m_.   _T_o  _a_c_t_u_a_l_l_y  _v_i_e_w
_t_h_i_s_, _y_o_u _m_u_s_t _r_u_n _f_o_l_l_o_w_e_d _b_y _I_f _y_o_u _w_a_n_t _t_o _c_r_e_a_t_e _j_u_s_t _o_u_t_p_u_t_,
_y_o_u _m_u_s_t _r_u_n _f_o_l_l_o_w_e_d _b_y _w_i_t_h _t_h_e _o_p_t_i_o_n _f_o_r  _t_h_e  _a_c_t_i_v_a_t_i_o_n  _o_f
_T_h_e _i_n_p_u_t _l_a_n_g_u_a_g_e _i_s _r_a_t_h_e_r _s_m_a_l_l_.  _I_t _p_r_o_v_i_d_e_s _r_i_n_g_s _o_f _s_e_v_e_r_a_l
_s_t_y_l_e_s _a_n_d _a _w_a_y _t_o _g_l_u_e _t_h_e_m _t_o_g_e_t_h_e_r _a_s _d_e_s_i_r_e_d_, _b_o_n_d_s _o_f  _s_e_v_-
_e_r_a_l  _s_t_y_l_e_s_,  _m_o_i_e_t_i_e_s _(_e_._g_._, _._._._._, _a_n_d _s_t_r_i_n_g_s_.  _T_h_e_r_e _a_r_e _s_o_m_e
_v_a_r_i_a_b_l_e_s _t_h_a_t _c_a_n _b_e _s_e_t _b_y _c_o_m_m_a_n_d_s_.  _S_u_c_h  _c_o_m_m_a_n_d_s  _h_a_v_e  _t_w_o
_p_o_s_s_i_b_l_e  _f_o_r_m_s_, _e_i_t_h_e_r _o_r _T_h_i_s _s_e_t_s _t_h_e _g_i_v_e_n _t_o _t_h_e _a_r_g_u_m_e_n_t _I_f
_m_o_r_e _a_r_g_u_m_e_n_t_s _a_r_e _g_i_v_e_n _o_n_l_y _t_h_e _l_a_s_t  _a_r_g_u_m_e_n_t  _i_s  _t_a_k_e_n_,  _a_l_l
_o_t_h_e_r  _a_r_g_u_m_e_n_t_s  _a_r_e _i_g_n_o_r_e_d_.  _T_h_e_r_e _a_r_e _o_n_l_y _a _f_e_w _v_a_r_i_a_b_l_e_s _t_o
_b_e _s_e_t _b_y _t_h_e_s_e _c_o_m_m_a_n_d_s_: _S_e_t _t_h_e _h_e_i_g_h_t _o_f _t_h_e _t_e_x_t  _t_o  _d_e_f_a_u_l_t
_i_s  _0_._1_6_.   _S_e_t  _t_h_e _c_h_a_r_a_c_t_e_r _w_i_d_t_h _t_o _d_e_f_a_u_l_t _i_s _0_._1_2_.  _S_e_t _t_h_e
_b_o_n_d _l_e_n_g_t_h _t_o _d_e_f_a_u_l_t _i_s _0_._2_.  _S_c_a_l_e _t_h_e _d_i_a_g_r_a_m _t_o _m_a_k_e _i_t _l_o_o_k
_p_l_a_u_s_i_b_l_e _a_t _p_o_i_n_t _s_i_z_e _d_e_f_a_u_l_t _i_s _1_0 _p_o_i_n_t_.  _T_h_i_s _d_r_a_w_s _a _s_i_n_g_l_e
_b_o_n_d _i_n _d_i_r_e_c_t_i_o_n _f_r_o_m _n_e_a_r_e_s_t _c_o_r_n_e_r _o_f _c_a_n _a_l_s_o  _b_e  _e_t_c_.   _(_W_e
_w_i_l_l  _g_e_t _b_a_c_k _t_o _s_o_o_n_._)  _i_s _t_h_e _a_n_g_l_e _i_n _d_e_g_r_e_e_s _(_0 _u_p_, _p_o_s_i_t_i_v_e
_c_l_o_c_k_w_i_s_e_) _o_r _a _d_i_r_e_c_t_i_o_n _w_o_r_d _l_i_k_e _(_= _s_o_u_t_h_w_e_s_t_)_,  _e_t_c_.   _I_f  _n_o
_d_i_r_e_c_t_i_o_n  _i_s  _s_p_e_c_i_f_i_e_d_,  _t_h_e _b_o_n_d _g_o_e_s _i_n _t_h_e _c_u_r_r_e_n_t _d_i_r_e_c_t_i_o_n
_(_u_s_u_a_l_l_y _t_h_a_t _o_f _t_h_e _l_a_s_t _b_o_n_d_)_.  _N_o_r_m_a_l_l_y _t_h_e _b_o_n_d _b_e_g_i_n_s _a_t _t_h_e
_l_a_s_t  _o_b_j_e_c_t _p_l_a_c_e_d_;  _t_h_i_s _c_a_n _b_e _c_h_a_n_g_e_d _b_y _n_a_m_i_n_g _a _p_l_a_c_e_.  _F_o_r
_i_n_s_t_a_n_c_e_, _t_o _m_a_k_e _a _s_i_m_p_l_e _a_l_k_y_l  _c_h_a_i_n_:  _t_a_b  _(_@_)_;  _l_b  _l_.   _C_H_3
_b_o_n_d_@_(_t_h_i_s  _o_n_e  _g_o_e_s  _r_i_g_h_t _f_r_o_m _t_h_e _C_H_3_) _C_@_(_a_t _t_h_e _r_i_g_h_t _e_n_d _o_f
_t_h_e _b_o_n_d_) _d_o_u_b_l_e _b_o_n_d _u_p_@_(_f_r_o_m _t_h_e _C_) _O_@_(_a_t _t_h_e _e_n_d _o_f _t_h_e _d_o_u_b_l_e
_b_o_n_d_)  _b_o_n_d  _r_i_g_h_t _f_r_o_m _C _C_H_3 _A _l_e_n_g_t_h _i_n _i_n_c_h_e_s _m_a_y _b_e _s_p_e_c_i_f_i_e_d
_t_o _o_v_e_r_r_i_d_e _t_h_e _d_e_f_a_u_l_t _l_e_n_g_t_h_.  _O_t_h_e_r _c_o_m_m_a_n_d_s _c_a_n _b_e _t_a_c_k_e_d  _o_n
_t_o  _t_h_e  _e_n_d _o_f _a _b_o_n_d _c_o_m_m_a_n_d_, _t_o _c_r_e_a_t_e_d _d_o_t_t_e_d _o_r _d_a_s_h_e_d _b_o_n_d_s
_o_r _t_o _s_p_e_c_i_f_y _a _p_l_a_c_e_.  _T_h_e_r_e _a_r_e _l_o_t_s _o_f _r_i_n_g_s_, _b_u_t _o_n_l_y  _5  _a_n_d
_6_-_s_i_d_e_d  _r_i_n_g_s _g_e_t _m_u_c_h _s_u_p_p_o_r_t_.  _b_y _i_t_s_e_l_f _i_s _a _6_-_s_i_d_e_d _r_i_n_g_; _i_s
_t_h_e _b_e_n_z_e_n_e _r_i_n_g _w_i_t_h _a _c_i_r_c_l_e _i_n_s_i_d_e_.  _p_u_t_s _a  _c_i_r_c_l_e  _i_n_t_o  _a_n_y
_k_i_n_d  _o_f  _r_i_n_g_.   _._._._.  _T_h_e _v_e_r_t_i_c_e_s _o_f _a _r_i_n_g _a_r_e _n_u_m_b_e_r_e_d _1_, _2_,
_._._._. _f_r_o_m _t_h_e _v_e_r_t_e_x _t_h_a_t _p_o_i_n_t_s _i_n _t_h_e  _n_a_t_u_r_a_l  _c_o_m_p_a_s_s  _d_i_r_e_c_-
_t_i_o_n_.  _S_o _f_o_r _a _h_e_x_a_g_o_n_a_l _r_i_n_g _w_i_t_h _t_h_e _p_o_i_n_t _a_t _t_h_e _t_o_p_, _t_h_e _t_o_p
_v_e_r_t_e_x _i_s _1_, _w_h_i_l_e _i_f _t_h_e _r_i_n_g _h_a_s _a _p_o_i_n_t _a_t _t_h_e _e_a_s_t _s_i_d_e_, _t_h_a_t
_i_s _v_e_r_t_e_x _1_.  _T_h_i_s _i_s _e_x_p_r_e_s_s_e_d _a_s
RR11:: rriinngg ppooiinnttiinngg uupp
RR22:: rriinngg ppooiinnttiinngg rriigghhtt
_T_h_e _r_i_n_g _v_e_r_t_i_c_e_s _a_r_e _n_a_m_e_d _._._._._, _w_i_t_h _i_n _t_h_e _p_o_i_n_t_i_n_g _d_i_r_e_c_t_i_o_n_.
_S_o _t_h_e _c_o_r_n_e_r_s _o_f _a_r_e _(_t_h_e _(_t_h_e _e_t_c_._, _w_h_e_r_e_a_s _f_o_r _i_s  _t_h_e  _r_i_g_h_t_-
_m_o_s_t  _v_e_r_t_e_x  _a_n_d  _t_h_e _l_e_f_t_m_o_s_t_.  _T_h_e_s_e _v_e_r_t_e_x _n_a_m_e_s _a_r_e _u_s_e_d _f_o_r
_c_o_n_n_e_c_t_i_n_g _b_o_n_d_s _o_r _o_t_h_e_r _r_i_n_g_s_.  _F_o_r _e_x_a_m_p_l_e_,
RR11:: bbeennzzeennee ppooiinnttiinngg rriigghhtt
RR22:: bbeennzzeennee ppooiinnttiinngg rriigghhtt wwiitthh ..VV66 aatt RR11..VV22
_c_r_e_a_t_e_s _t_w_o _b_e_n_z_e_n_e _r_i_n_g_s _c_o_n_n_e_c_t_e_d _a_l_o_n_g _a _s_i_d_e_.  _I_n_t_e_r_i_o_r  _d_o_u_-
_b_l_e  _b_o_n_d_s  _a_r_e  _s_p_e_c_i_f_i_e_d  _a_s  _e_a_c_h _n_u_m_b_e_r _p_a_i_r _a_d_d_s _a_n _i_n_t_e_r_i_o_r
_b_o_n_d_.  _S_o _t_h_e _a_l_t_e_r_n_a_t_e _f_o_r_m _o_f _a _b_e_n_z_e_n_e  _r_i_n_g  _i_s  _H_e_t_e_r_o_c_y_c_l_e_s
_(_r_i_n_g_s  _w_i_t_h _s_o_m_e_t_h_i_n_g _o_t_h_e_r _t_h_a_n _c_a_r_b_o_n _a_t _a _v_e_r_t_e_x_) _a_r_e _w_r_i_t_t_e_n
_a_s _a_s _i_n _I_n _t_h_i_s _h_e_t_e_r_o_c_y_c_l_e_, _a_n_d _b_e_c_o_m_e _s_y_n_o_n_y_m_s _f_o_r  _a_n_d  _T_h_e_r_e
_a_r_e  _t_w_o  _5_-_s_i_d_e_d  _r_i_n_g_s_.  _i_s _p_e_n_t_a_g_o_n_a_l _w_i_t_h _a _s_i_d_e _t_h_a_t _m_a_t_c_h_e_s
_t_h_e _6_-_s_i_d_e_d _r_i_n_g_; _i_t _h_a_s _f_o_u_r _n_a_t_u_r_a_l _d_i_r_e_c_t_i_o_n_s_.  _A _i_s _a _5_-_s_i_d_e_d
_r_i_n_g  _c_r_e_a_t_e_d _b_y _c_h_o_p_p_i_n_g _o_n_e _c_o_r_n_e_r _o_f _a _6_-_s_i_d_e_d _r_i_n_g _s_o _t_h_a_t _i_t
_e_x_a_c_t_l_y _m_a_t_c_h_e_s _t_h_e _6_-_s_i_d_e_d _r_i_n_g_s_.  _T_h_e _d_e_s_c_r_i_p_t_i_o_n _o_f _a _r_i_n_g _h_a_s
_t_o  _f_i_t _o_n _a _s_i_n_g_l_e _l_i_n_e_.  _A _m_o_i_e_t_y _i_s _a _s_t_r_i_n_g _o_f _c_h_a_r_a_c_t_e_r_s _b_e_-
_g_i_n_n_i_n_g _w_i_t_h _a _c_a_p_i_t_a_l _l_e_t_t_e_r_, _s_u_c_h  _a_s  _N_(_C_2_H_5_)_2_.   _N_u_m_b_e_r_s  _a_r_e
_c_o_n_v_e_r_t_e_d _t_o _s_u_b_s_c_r_i_p_t_s _(_u_n_l_e_s_s _t_h_e_y _a_p_p_e_a_r _t_o _b_e _f_r_a_c_t_i_o_n_a_l _v_a_l_-
_u_e_s_, _a_s _i_n _N_2_._5_H_)_.  _T_h_e _n_a_m_e _o_f _a _m_o_i_e_t_y _i_s _d_e_t_e_r_m_i_n_e_d  _f_r_o_m  _t_h_e
_m_o_i_e_t_y  _a_f_t_e_r  _s_p_e_c_i_a_l  _c_h_a_r_a_c_t_e_r_s  _h_a_v_e _b_e_e_n _s_t_r_i_p_p_e_d _o_u_t_: _e_._g_._,
_N_(_C_2_H_5_)_2_) _h_a_s _t_h_e _n_a_m_e _N_C_2_H_5_2_.  _M_o_i_e_t_i_e_s _c_a_n _b_e _s_p_e_c_i_f_i_e_d _i_n  _t_w_o
_k_i_n_d_s_.   _N_o_r_m_a_l_l_y  _a  _m_o_i_e_t_y _i_s _p_l_a_c_e_d _r_i_g_h_t _a_f_t_e_r _t_h_e _l_a_s_t _t_h_i_n_g
_m_e_n_t_i_o_n_e_d_, _s_e_p_a_r_a_t_e_d _b_y _a _s_e_m_i_c_o_l_o_n _s_u_r_r_o_u_n_d_e_d _b_y  _s_p_a_c_e_s_,  _e_._g_._,
_H_e_r_e  _t_h_e _m_o_i_e_t_y _i_s _i_t _i_s _s_e_t _a_f_t_e_r _a _b_o_n_d_.  _A_s _t_h_e _s_e_c_o_n_d _k_i_n_d _a
_m_o_i_e_t_y _c_a_n _b_e _p_o_s_i_t_i_o_n_e_d _a_s _t_h_e _f_i_r_s_t _w_o_r_d _i_n  _a  _c_o_m_m_a_n_d_,  _e_._g_._,
_H_e_r_e  _t_h_e _m_o_i_e_t_y _i_s _I_t _i_s _p_l_a_c_e_d _a_t _a _p_o_s_i_t_i_o_n _r_e_l_a_t_i_v_e _t_o _a _m_o_i_-
_e_t_y _u_s_e_d _e_a_r_l_i_e_r _i_n _t_h_e _c_h_e_m_i_c_a_l _s_t_r_u_c_t_u_r_e_.  _S_o _m_o_i_e_t_y _n_a_m_e_s  _c_a_n
_b_e  _s_p_e_c_i_f_i_e_d _a_s _p_o_s_i_t_i_o_n_s _e_v_e_r_y_w_h_e_r_e _i_n _t_h_e _c_o_d_e_.  _B_e_n_e_a_t_h _t_h_e_i_r
_p_r_i_n_t_i_n_g _m_o_i_e_t_i_e_s _a_r_e _n_a_m_e_s _f_o_r _p_l_a_c_e_s_.  _T_h_e _m_o_i_e_t_y  _i_s  _s_p_e_c_i_a_l_.
_I_t  _i_s _n_o_t _p_r_i_n_t_e_d _b_u_t _j_u_s_t _s_e_r_v_e_s _a_s _a _m_a_r_k _t_o _b_e _r_e_f_e_r_r_e_d _t_o _i_n
_l_a_t_e_r _c_o_m_m_a_n_d_s_.  _F_o_r _e_x_a_m_p_l_e_, _s_e_t_s _a _m_a_r_k _a_t _t_h_e _e_n_d _o_f _t_h_e _b_o_n_d_.
_T_h_i_s  _c_a_n  _b_e  _u_s_e_d _t_h_e_n _f_o_r _s_p_e_c_i_f_y_i_n_g _a _p_l_a_c_e_.  _T_h_e _n_a_m_e _i_s _d_e_-
_r_i_v_e_d _f_r_o_m _(_i_._e_._, _l_i_n_e _c_r_o_s_s_i_n_g_)_.  _A _s_t_r_i_n_g _w_i_t_h_i_n _d_o_u_b_l_e  _q_u_o_t_e_s
_i_s  _i_n_t_e_r_p_r_e_t_e_d  _a_s  _a _p_a_r_t _o_f _a _c_o_m_m_a_n_d_.  _I_t _r_e_p_r_e_s_e_n_t_s _a _s_t_r_i_n_g
_t_h_a_t _s_h_o_u_l_d _b_e _p_r_i_n_t_e_d _(_w_i_t_h_o_u_t _t_h_e _q_u_o_t_e_s_)_.  _T_e_x_t _w_i_t_h_i_n  _q_u_o_t_e_s
_"_._._._._"  _i_s  _t_r_e_a_t_e_d  _m_o_r_e  _o_r  _l_e_s_s  _l_i_k_e _a _m_o_i_e_t_y _e_x_c_e_p_t _t_h_a_t _n_o
_c_h_a_n_g_e_s _a_r_e _m_a_d_e _t_o _t_h_e _q_u_o_t_e_d _p_a_r_t_.  _I_n _t_h_e _a_l_k_y_l  _c_h_a_i_n  _a_b_o_v_e_,
_n_o_t_i_c_e  _t_h_a_t  _t_h_e _c_a_r_b_o_n _a_t_o_m _w_a_s _u_s_e_d _b_o_t_h _t_o _d_r_a_w _s_o_m_e_t_h_i_n_g _a_n_d
_a_s _t_h_e _n_a_m_e _f_o_r _a _p_l_a_c_e_.  _A _m_o_i_e_t_y _a_l_w_a_y_s _d_e_f_i_n_e_s _a  _n_a_m_e  _f_o_r  _a
_p_l_a_c_e_;   _y_o_u  _c_a_n  _u_s_e _y_o_u_r _o_w_n _n_a_m_e_s _f_o_r _p_l_a_c_e_s _i_n_s_t_e_a_d_, _a_n_d _i_n_-
_d_e_e_d_, _f_o_r _r_i_n_g_s _y_o_u _w_i_l_l _h_a_v_e _t_o_.  _A _n_a_m_e _i_s _j_u_s_t _._._._.  _i_s  _o_f_t_e_n
_t_h_e  _n_a_m_e  _o_f _a _m_o_i_e_t_y _l_i_k_e _b_u_t _i_t _n_e_e_d _n_o_t _t_o _b_e_.  _A_n_y _n_a_m_e _t_h_a_t
_b_e_g_i_n_s _w_i_t_h _a _c_a_p_i_t_a_l _l_e_t_t_e_r _a_n_d _w_h_i_c_h _c_o_n_t_a_i_n_s _o_n_l_y _l_e_t_t_e_r_s  _a_n_d
_n_u_m_b_e_r_s _i_s _v_a_l_i_d_:  _T_h_e _s_p_e_c_i_f_i_c _c_o_n_s_t_r_u_c_t_i_o_n _i_s _e_q_u_i_v_a_l_e_n_t _t_o
bboonndd
mmooiieettyy
_O_t_h_e_r_w_i_s_e_,  _e_a_c_h  _i_t_e_m _h_a_s _t_o _b_e _o_n _a _s_e_p_a_r_a_t_e _l_i_n_e _(_a_n_d _o_n_l_y _o_n_e
_l_i_n_e_)_.  _N_o_t_e _t_h_a_t _t_h_e_r_e _m_u_s_t _b_e _w_h_i_t_e_s_p_a_c_e  _a_f_t_e_r  _t_h_e  _s_e_m_i_c_o_l_o_n
_w_h_i_c_h  _s_e_p_a_r_a_t_e_s  _t_h_e  _c_o_m_m_a_n_d_s_.   _A _p_e_r_i_o_d _c_h_a_r_a_c_t_e_r _o_r _a _s_i_n_g_l_e
_q_u_o_t_e _i_n _t_h_e _f_i_r_s_t _c_o_l_u_m_n _o_f _a _l_i_n_e _s_i_g_n_a_l_s _a _c_o_m_m_a_n_d_,  _w_h_i_c_h  _i_s
_c_o_p_i_e_d  _t_h_r_o_u_g_h _a_s_-_i_s_.  _A _l_i_n_e _w_h_o_s_e _f_i_r_s_t _n_o_n_-_b_l_a_n_k _c_h_a_r_a_c_t_e_r _i_s
_a _h_a_s_h _c_h_a_r_a_c_t_e_r _i_s _t_r_e_a_t_e_d _a_s _a _c_o_m_m_e_n_t _a_n_d _t_h_u_s _i_g_n_o_r_e_d_.   _H_o_w_-
_e_v_e_r_, _h_a_s_h _c_h_a_r_a_c_t_e_r_s _w_i_t_h_i_n _a _w_o_r_d _a_r_e _k_e_p_t_.  _A _l_i_n_e _w_h_o_s_e _f_i_r_s_t
_w_o_r_d _i_s _i_s _c_o_p_i_e_d _t_h_r_o_u_g_h _a_s_-_i_s _a_f_t_e_r _t_h_e _w_o_r_d _h_a_s _b_e_e_n  _r_e_m_o_v_e_d_.
_T_h_e _c_o_m_m_a_n_d _s_c_a_l_e_s _t_h_e _d_i_a_g_r_a_m _t_o _m_a_k_e _i_t _l_o_o_k _p_l_a_u_s_i_b_l_e _a_t _p_o_i_n_t
_s_i_z_e _(_d_e_f_a_u_l_t _i_s _1_0 _p_o_i_n_t_)_.  _A_n_y_t_h_i_n_g _e_l_s_e _i_s _a_s_s_u_m_e_d _t_o _b_e _c_o_d_e_,
_w_h_i_c_h  _i_s  _c_o_p_i_e_d _t_h_r_o_u_g_h _w_i_t_h _a _l_a_b_e_l_.  _S_i_n_c_e _i_s _a _p_r_e_p_r_o_c_e_s_s_o_r_,
_i_t _i_s _p_o_s_s_i_b_l_e _t_o _i_n_c_l_u_d_e _s_t_a_t_e_m_e_n_t_s _i_n _t_h_e _m_i_d_d_l_e _o_f  _a  _d_i_a_g_r_a_m
_t_o  _d_r_a_w  _t_h_i_n_g_s  _n_o_t  _p_r_o_v_i_d_e_d  _f_o_r  _b_y _i_t_s_e_l_f_.  _S_u_c_h _s_t_a_t_e_m_e_n_t_s
_s_h_o_u_l_d _b_e _i_n_c_l_u_d_e_d _i_n _c_o_d_e _b_y _a_d_d_i_n_g _a_s _t_h_e _f_i_r_s_t  _w_o_r_d  _o_f  _t_h_i_s
_l_i_n_e  _f_o_r  _c_l_a_r_i_t_y_.   _T_h_e _f_o_l_l_o_w_i_n_g _c_o_m_m_a_n_d_s _a_r_e _a_c_c_e_p_t_e_d _a_s _c_o_m_-
_m_a_n_d_s_, _s_o _n_o _c_o_m_m_a_n_d _w_o_r_d _i_s  _n_e_e_d_e_d_:  _S_t_a_r_t  _t_h_e  _d_e_f_i_n_i_t_i_o_n  _o_f
_m_a_c_r_o  _w_i_t_h_i_n  _S_t_a_r_t  _a  _b_l_o_c_k _c_o_m_p_o_s_i_t_e_.  _E_n_d _a _b_l_o_c_k _c_o_m_p_o_s_i_t_e_.
_S_t_a_r_t _a _m_a_c_r_o _d_e_f_i_n_i_t_i_o_n _b_l_o_c_k_.  _E_n_d _a  _m_a_c_r_o  _d_e_f_i_n_i_t_i_o_n  _b_l_o_c_k_.
_T_h_e  _m_a_c_r_o _n_a_m_e_s _f_r_o_m _s_t_a_t_e_m_e_n_t_s _a_r_e _s_t_o_r_e_d _a_n_d _t_h_e_i_r _c_a_l_l _i_s _a_c_-
_c_e_p_t_e_d _a_s _a _c_o_m_m_a_n_d _a_s _w_e_l_l_.  _T_h_i_s _T_O_D_O  _l_i_s_t  _w_a_s  _c_o_l_l_e_c_t_e_d  _b_y
_B_r_i_a_n  _K_e_r_n_i_g_h_a_n_.   _E_r_r_o_r _c_h_e_c_k_i_n_g _i_s _m_i_n_i_m_a_l_; _e_r_r_o_r_s _a_r_e _u_s_u_a_l_l_y
_d_e_t_e_c_t_e_d _a_n_d _r_e_p_o_r_t_e_d _i_n _a_n _o_b_l_i_q_u_e _f_a_s_h_i_o_n _b_y _T_h_e_r_e  _i_s  _n_o  _l_i_-
_b_r_a_r_y  _o_r _f_i_l_e _i_n_c_l_u_s_i_o_n _m_e_c_h_a_n_i_s_m_, _a_n_d _t_h_e_r_e _i_s _n_o _s_h_o_r_t_h_a_n_d _f_o_r
_r_e_p_e_t_i_t_i_v_e _s_t_r_u_c_t_u_r_e_s_.  _T_h_e  _e_x_t_e_n_s_i_o_n  _m_e_c_h_a_n_i_s_m  _i_s  _t_o  _c_r_e_a_t_e
_m_a_c_r_o_s_,  _b_u_t _t_h_e_s_e _a_r_e _t_r_i_c_k_y _t_o _g_e_t _r_i_g_h_t _a_n_d _d_o_n_'_t _h_a_v_e _a_l_l _t_h_e
_p_r_o_p_e_r_t_i_e_s _o_f _b_u_i_l_t_-_i_n _o_b_j_e_c_t_s_.  _T_h_e_r_e _i_s  _n_o  _i_n_-_l_i_n_e  _c_h_e_m_i_s_t_r_y
_y_e_t  _(_e_._g_._,  _a_n_a_l_o_g_o_u_s _t_o _t_h_e _$_._._._._$ _c_o_n_s_t_r_u_c_t _o_f _e_q_n_)_.  _T_h_e_r_e _i_s
_n_o _w_a_y _t_o _c_o_n_t_r_o_l _e_n_t_r_y _p_o_i_n_t _f_o_r _b_o_n_d_s _o_n  _g_r_o_u_p_s_.   _N_o_r_m_a_l_l_y  _a
_b_o_n_d _c_o_n_n_e_c_t_s _t_o _t_h_e _c_a_r_b_o_n _a_t_o_m _i_f _e_n_t_e_r_i_n_g _f_r_o_m _t_h_e _t_o_p _o_r _b_o_t_-
_t_o_m _a_n_d _o_t_h_e_r_w_i_s_e _t_o _t_h_e _n_e_a_r_e_s_t _c_o_r_n_e_r_.  _B_o_n_d_s _f_r_o_m  _s_u_b_s_t_i_t_u_t_e_d
_a_t_o_m_s  _o_n  _h_e_t_e_r_o_c_y_c_l_e_s  _d_o  _n_o_t _j_o_i_n _a_t _t_h_e _p_r_o_p_e_r _p_l_a_c_e _w_i_t_h_o_u_t
_a_d_d_i_n_g _a _b_i_t _o_f _T_h_e_r_e _i_s _n_o _d_e_c_e_n_t _p_r_i_m_i_t_i_v_e _f_o_r _b_r_a_c_k_e_t_s_.   _T_e_x_t
_(_q_u_o_t_e_d  _s_t_r_i_n_g_s_)  _d_o_e_s_n_'_t  _w_o_r_k  _v_e_r_y  _w_e_l_l_.  _A _s_q_u_i_g_g_l_e _b_o_n_d _i_s
_n_e_e_d_e_d_.  _A _c_o_l_l_e_c_t_i_o_n _o_f _m_a_c_r_o_s _n_e_e_d_e_d _b_y _A _m_a_c_r_o _f_i_l_e _w_h_i_c_h  _r_e_-
_d_e_f_i_n_e_s  _a_n_d _t_o _c_e_n_t_e_r _d_i_a_g_r_a_m_s_.  _E_x_a_m_p_l_e _f_i_l_e_s _f_o_r _E_x_a_m_p_l_e _f_i_l_e_s
_f_r_o_m _t_h_e _c_l_a_s_s_i_c_a_l _b_o_o_k _R_e_p_o_r_t _b_u_g_s _t_o _t_h_e _b_u_g_-_g_r_o_f_f _m_a_i_l_i_n_g _l_i_s_t
_I_n_c_l_u_d_e  _a  _c_o_m_p_l_e_t_e_,  _s_e_l_f_-_c_o_n_t_a_i_n_e_d _e_x_a_m_p_l_e _t_h_a_t _w_i_l_l _a_l_l_o_w _t_h_e
_b_u_g _t_o _b_e _r_e_p_r_o_d_u_c_e_d_, _a_n_d _s_a_y _w_h_i_c_h _v_e_r_s_i_o_n _o_f _a_n_d _y_o_u _a_r_e _u_s_i_n_g_.
_Y_o_u  _c_a_n _g_e_t _b_o_t_h _v_e_r_s_i_o_n _n_u_m_b_e_r_s _b_y _c_a_l_l_i_n_g _Y_o_u _c_a_n _a_l_s_o _u_s_e _t_h_e
_g_r_o_f_f _m_a_i_l_i_n_g _l_i_s_t _b_u_t _y_o_u _m_u_s_t _f_i_r_s_t  _s_u_b_s_c_r_i_b_e  _t_o  _t_h_i_s  _l_i_s_t_.
_Y_o_u  _c_a_n  _d_o _t_h_a_t _b_y _v_i_s_i_t_i_n_g _t_h_e _g_r_o_f_f _m_a_i_l_i_n_g _l_i_s_t _w_e_b _p_a_g_e _S_e_e
_f_o_r _i_n_f_o_r_m_a_t_i_o_n _o_n _a_v_a_i_l_a_b_i_l_i_t_y_.  _Y_o_u _c_a_n _s_t_i_l_l _g_e_t _t_h_e  _o_r_i_g_i_n_a_l
_c_h_e_m _a_w_k _s_o_u_r_c_e _I_t_s _f_i_l_e _w_a_s _u_s_e_d _f_o_r _t_h_i_s _m_a_n_u_a_l _p_a_g_e_.  _T_h_e _o_t_h_-
_e_r _c_l_a_s_s_i_c_a_l _d_o_c_u_m_e_n_t _o_n _i_s _1_2_2_._p_s _C_o_p_y_r_i_g_h_t _(_C_)  _2_0_0_6_-_2_0_1_4  _F_r_e_e
_S_o_f_t_w_a_r_e _F_o_u_n_d_a_t_i_o_n_, _I_n_c_.

_T_h_i_s  _f_i_l_e  _i_s _p_a_r_t _o_f _c_h_e_m_, _w_h_i_c_h _i_s _p_a_r_t _o_f _g_r_o_f_f_, _a _f_r_e_e _s_o_f_t_-
_w_a_r_e _p_r_o_j_e_c_t_.

_Y_o_u _c_a_n _r_e_d_i_s_t_r_i_b_u_t_e _i_t _a_n_d_/_o_r _m_o_d_i_f_y _i_t _u_n_d_e_r _t_h_e _t_e_r_m_s  _o_f  _t_h_e
_G_N_U  _G_e_n_e_r_a_l  _P_u_b_l_i_c _L_i_c_e_n_s_e _v_e_r_s_i_o_n _2 _(_G_P_L_2_) _a_s _p_u_b_l_i_s_h_e_d _b_y _t_h_e
_F_r_e_e _S_o_f_t_w_a_r_e _F_o_u_n_d_a_t_i_o_n_.

_T_h_e _l_i_c_e_n_s_e _t_e_x_t _f_o_r _G_P_L_2 _i_s _a_v_a_i_l_a_b_l_e _i_n _t_h_e  _i_n_t_e_r_n_e_t  _a_t  _T_h_i_s
_f_i_l_e _w_a_s _w_r_i_t_t_e_n _b_y _B_e_r_n_d _W_a_r_k_e_n _<_g_r_o_f_f_-_b_e_r_n_d_._w_a_r_k_e_n_-_7_2_@_w_e_b_._d_e_>_.

_I_t  _i_s  _b_a_s_e_d  _o_n _t_h_e _d_o_c_u_m_e_n_t_a_t_i_o_n _o_f _B_r_i_a_n _K_e_r_n_i_g_h_a_n_'_s _o_r_i_g_i_n_a_l
_a_w_k _v_e_r_s_i_o_n _o_f _c_h_e_m _a_t





























