# Copyright (c) 2006-2008
# Rational Discovery LLC, Greg Landrum, and Julie Penzotti
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#     * Neither the name of Rational Discovery nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1 [!0] 0 |ISOTOPE
2 [#104,#105,#106,#107,#108,#109,#110,#111,#112] 0 |103 < ATOMIC_NUM < 256
3 [Ge,As,as,Se,se,Sn,Sb,Te,Tl,Pb,Bi] 0 |Group IVa,Va,VIa Periods 4-6 (Ge...)  *NOTE* spec wrong
4 [Ac,Th,Pa,U,Np,Pu,Am,Cm,Bk,Cf,Es,Fm,Md,No,Lr] 0 |actinide
5 [Sc,Ti,Y,Zr,Hf] 0 |Group IIIB,IVB (Sc...)  *NOTE* spec wrong
6 [La,Ce,Pr,Nd,Pm,Sm,Eu,Gd,Tb,Dy,Ho,Er,Tm,Yb,Lu] 0 |Lanthanide
7 [V,Cr,Mn,Nb,Mo,Tc,Ta,W,Re] 0 |Group VB,VIB,VIIB (V...) *NOTE* spec wrong
8 [!#6;!#1]1~*~*~*~1 0 |QAAA@1
9 [Fe,Co,Ni,Ru,Rh,Pd,Os,Ir,Pt] 0 |Group VIII (Fe...)
10 [Be,Mg,Ca,Sr,Ba,Ra] 0 |Group IIa (Alkaline earth)
11 [R]1@*@*@*@1 0 |4M Ring
12 [Cu,Zn,Ag,Cd,Au,Hg] 0 |Group IB,IIB (Cu..)
13 [#8]~[#7](~[#6])~[#6] 0 |ON(C)C
14 [#16]-[#16] 0 |S-S
15 [#8]~[#6](~[#8])~[#8] 0 |OC(O)O
16 [R!#6!#1]1~*~*~1 0 |QAA@1
17 [#6]#[#6] 0 |CTC
18 [#5,Al,Ga,In,Tl] 0 |Group IIIA (B...) *NOTE* spec wrong
19 [R]1@*@*@*@*@*@*@1 0 |7M Ring
20 [Si] 0 |Si
21 [#6]=[#6](~[!#6;!#1])~[!#6;!#1] 0 |C=C(Q)Q
22 [R]1@*@*@1 0 |3M Ring
23 [#7]~[#6](~[#8])~[#8] 0 |NC(O)O
24 [#7]-[#8] 0 |N-O
25 [#7]~[#6](~[#7])~[#7] 0 |NC(N)N
26 [#6]=;@[#6](@*)@* 0 |C$=C($A)$A
27 [I] 0 |I
28 [!#6;!#1]~[CH2]~[!#6;!#1] 0 |QCH2Q
29 [#15] 0 |P
30 [#6]~[!#6;!#1](~[#6])(~[#6])~* 0 |CQ(C)(C)A
31 [!#6;!#1]~[F,Cl,Br,I] 0 |QX
32 [#6]~[#16]~[#7] 0 |CSN
33 [#7]~[#16] 0 |NS
34 [CH2]=* 0 |CH2=A
35 [Li,Na,K,Rb,Cs,Fr] 0 |Group IA (Alkali Metal)
36 [#16R] 0 |S Heterocycle
37 [#7]~[#6](~[#8])~[#7] 0 |NC(O)N
38 [#7]~[#6](~[#6])~[#7] 0 |NC(C)N
39 [#8]~[#16](~[#8])~[#8] 0 |OS(O)O
40 [#16]-[#8] 0 |S-O
41 [#6]#[#7] 0 |CTN
42 F 0 |F
43 [!C;!c;!#1;!H0]~*~[!C;!c;!#1;!H0] 0 |QHAQH
44 [!#1;!#6;!#7;!#8;!#9;!#14;!#15;!#16;!#17;!#35;!#53] 0 |OTHER
45 [#6]=[#6]~[#7] 0 |C=CN
46 Br 0 |BR
47 [#16]~*~[#7] 0 |SAN
48 [#8]~[!#6;!#1](~[#8])(~[#8]) 0 |OQ(O)O
49 [!+0] 0 |CHARGE
50 [#6]=[#6](~[#6])~[#6] 0 |C=C(C)C
51 [#6]~[#16]~[#8] 0 |CSO
52 [#7]~[#7] 0 |NN
53 [!#6;!#1;!H0]~*~*~*~[!#6;!#1;!H0] 0 |QHAAAQH
54 [!#6;!#1;!H0]~*~*~[!#6;!#1;!H0] 0 |QHAAQH
55 [#8]~[#16]~[#8] 0 |OSO
56 [#8]~[#7](~[#8])~[#6] 0 |ON(O)C
57 [#8R] 0 |O Heterocycle
58 [!#6;!#1]~[#16]~[!#6;!#1] 0 |QSQ
59 [#16]!:*:* 0 |Snot%A%A
60 [#16]=[#8] 0 |S=O
61 [#16](~*)(~*)~* 0 |AS(A)A
62 [R]!@[R] 0 |A$!A$A
63 [#7]=[#8] 0 |N=O
64 [#16]!@*@* 0 |A$A!S
65 n:c 0 |C%N
66 [#6]~[#6](~[#6])(~[#6])~* 0 |CC(C)(C)A
67 [!#6;!#1]~[#16] 0 |QS
68 [!#6;!#1;!H0]~[!#6;!#1;!H0] 0 |QHQH (&...) FIX: incomplete definition
69 [!#6;!#1]~[!#6;!#1;!H0] 0 |QQH
70 [!#6;!#1]~[#7]~[!#6;!#1] 0 |QNQ
71 [#7]~[#8] 0 |NO
72 [#8]~*~*~[#8] 0 |OAAO
73 [#16]=* 0 |S=A
74 [CH3]~*~[CH3] 0 |CH3ACH3
75 [#7](!@*)@* 0 |A!N$A
76 [#6]=[#6](~*)~* 0 |C=C(A)A
77 [#7]~*~[#7] 0 |NAN
78 [#6]=[#7] 0 |C=N
79 [#7]~*~*~[#7] 0 |NAAN
80 [#7]~*~*~*~[#7] 0 |NAAAN
81 [#16]~*(~*)~* 0 |SA(A)A
82 [CH2](~*)~[!#6;!#1;!H0] 0 |ACH2QH
83 [!#6;!#1]1~*~*~*~*~1 0 |QAAAA@1
84 [NH2] 0 |NH2
85 [#6]~[#7](~[#6])~[#6] 0 |CN(C)C
86 [C;H2,H3][!#6;!#1][C;H2,H3] 0 |CH2QCH2
87 [F,Cl,Br,I]!@*@* 0 |X!A$A
88 [#16] 0 |S
89 [#8]~*~*~*~[#8] 0 |OAAAO
90 [#6H2](~*~*~[!#6!#1!H0])~* 0 |QHAACH2A
91 [#6H2](~*~*~*~[!#6!#1!H0])~* 0 |QHAAACH2A
92 [#8]~[#6](~[#7])~[#6] 0 |OC(N)C
93 [!#6;!#1]~[CH3] 0 |QCH3
94 [!#6;!#1]~[#7] 0 |QN
95 [#7]~*~*~[#8] 0 |NAAO
96 [R]1@*@*@*@*@1 0 |5M ring
97 [#8]~*~*~*~[#7] 0 |NAAAO
98 [R!#6!#1]1@*@*@*@*@*@1 0 |QAAAAA@1
99 [#6]=[#6] 0 |C=C
100 [#7]~[CH2]~* 0 |ACH2N
101 [R]1@*@*@*@*@*@*@*@1 0 |8M Ring
102 [!#6;!#1]~[#8] 0 |QO
103 Cl 0 |CL
104 [!#6;!#1;!H0]~*~[CH2]~* 0 |QHACH2A
105 [R!x2](@*)(@*)@* 0 |A$A($A)$A
106 [!#6;!#1]~*(~[!#6;!#1])~[!#6;!#1] 0 |QA(Q)Q
107 [F,Cl,Br,I]~*(~*)~* 0 |XA(A)A
108 [CH3]~*~*~*~[CH2]~* 0 |CH3AAACH2A
109 [#8]~[CH2]~* 0 |ACH2O
110 [#8]~[#6]~[#7] 0 |NCO
111 [#7]~*~[CH2]~* 0 |NACH2A
112 *(~*)(~*)(~*)~* 0 |AA(A)(A)A
113 [#8]!:*:* 0 |Onot%A%A
114 [CH3]~[CH2]~* 0 |CH3CH2A
115 [CH3]~*~[CH2]~* 0 |CH3ACH2A
116 [#6H3]~*~*~[#6H2]~* 0 |CH3AACH2A
117 [#7]~*~[#8] 0 |NAO
118 [#6H2]([#6H2]*)* 1 |ACH2CH2A > 1
119 [#7]=* 0 |N=A
120 [!#6;R] 1 |Heterocyclic atom > 1 (&...) FIX: incomplete definition
121 [#7;R] 0 |N Heterocycle
122 [#7](~*)(~*)~* 0 |AN(A)A
123 [#8]~[#6]~[#8] 0 |OCO
124 [!#6;!#1]~[!#6;!#1] 0 |QQ
125 [!*] 0 |OTHER
126 [#8](!@*)!@* 0 |A!O!A
127 [#8]!@[R]@* 1 |A$A!O > 1 (&...) FIX: incomplete definition
128 [#6H2](~*~*~*~[#6H2]~*)~* 0 |ACH2AAACH2A
129 [#6H2](~*~*~[#6H2]~*)~* 0 |ACH2AACH2A
130 [!#6;!#1]~[!#6;!#1] 1 |QQ > 1 (&...)  FIX: incomplete definition
131 [!#6;!#1;!H0] 1 |QH > 1
132 [#8]~*~[CH2]~* 0 |OACH2A
133 [#7]!@*@* 0 |A$A!N
134 [F,Cl,Br,I] 0 |X (HALOGEN)
135 [#7]!:*:* 0 |Nnot%A%A
136 [#8]=* 1 |O=A>1
137 [!C;!c;R] 0 |Heterocycle
138 [!#6;!#1]~[CH2]~* 1 |QCH2A>1 (&...) FIX: incomplete definition
139 [O;!H0] 0 |OH
140 [#8] 3 |O > 3 (&...) FIX: incomplete definition
141 [CH3] 2 |CH3 > 2  (&...) FIX: incomplete definition
142 [#7] 1 |N > 1
143 [#8]!@[R]@* 0 |A$A!O
144 a(!:*):a!:* 0 |Anot%A%Anot%A
145 [R]1@*@*@*@*@*@1 1 |6M ring > 1
146 [#8] 2 |O > 2
147 [#6H2](~[#6H2]~*)~* 0 |ACH2CH2A
148 [!#6;!#1](~*)(~*)~* 0 |AQ(A)A
149 [C;H3,H4] 1 |CH3 > 1
150 [R](!@*)@[R]!@* 0 |A!A$A!A
151 [#7;!H0] 0 |NH
152 [#8]~[#6](~[#6])~[#6] 0 |OC(C)C
153 [!#6;!#1]~[CH2]~* 0 |QCH2A
154 [#6]=[#8] 0 |C=O
155 [CH2](!@*)!@* 0 |A!CH2!A
156 [#7]~*(~*)~* 0 |NA(A)A
157 [#6]-[#8] 0 |C-O
158 [#6]-[#7] 0 |C-N
159 [#8] 1 |O>1
160 [C;H3,H4] 0 |CH3
161 [#7] 0 |N
162 a 0 |Aromatic
163 [R]1@*@*@*@*@*@1 0 |6M Ring
164 [#8] 0 |O
165 [R] 0 |Ring
166 (*).(*) 0 |Fragments