X12 0.1.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1844) hide show
  1. data/CHANGELOG +6 -1
  2. data/README +215 -60
  3. data/Rakefile +6 -16
  4. data/example/factory.rb +1 -1
  5. data/example/parse.rb +1 -1
  6. data/lib/X12.rb +4 -7
  7. data/lib/X12/Base.rb +16 -2
  8. data/lib/X12/Field.rb +16 -9
  9. data/lib/X12/Parser.rb +52 -29
  10. data/lib/X12/Segment.rb +6 -4
  11. data/lib/X12/XMLDefinitions.rb +160 -0
  12. data/misc/270.xml +152 -0
  13. data/misc/270interchange.xml +163 -0
  14. data/misc/997.xml +50 -0
  15. data/misc/997single.xml +835 -0
  16. data/misc/AAA.xml +31 -0
  17. data/misc/ACD.xml +30 -0
  18. data/misc/ACK.xml +56 -0
  19. data/misc/ACS.xml +31 -0
  20. data/misc/ACT.xml +36 -0
  21. data/misc/AD1.xml +32 -0
  22. data/misc/ADI.xml +31 -0
  23. data/misc/ADJ.xml +44 -0
  24. data/misc/ADT.xml +37 -0
  25. data/misc/ADV.xml +34 -0
  26. data/misc/ADX.xml +31 -0
  27. data/misc/AEI.xml +30 -0
  28. data/misc/AES.xml +32 -0
  29. data/misc/AIN.xml +40 -0
  30. data/misc/AK1.xml +29 -0
  31. data/misc/AK2.xml +29 -0
  32. data/misc/AK3.xml +31 -0
  33. data/misc/AK4.xml +31 -0
  34. data/misc/AK5.xml +33 -0
  35. data/misc/AK9.xml +36 -0
  36. data/misc/AM1.xml +33 -0
  37. data/misc/AMT.xml +30 -0
  38. data/misc/ANI.xml +36 -0
  39. data/misc/AOC.xml +32 -0
  40. data/misc/AOI.xml +40 -0
  41. data/misc/AOL.xml +35 -0
  42. data/misc/AOR.xml +40 -0
  43. data/misc/AP1.xml +40 -0
  44. data/misc/APE.xml +32 -0
  45. data/misc/API.xml +35 -0
  46. data/misc/APR.xml +30 -0
  47. data/misc/ARC.xml +30 -0
  48. data/misc/ARS.xml +32 -0
  49. data/misc/ASI.xml +30 -0
  50. data/misc/ASL.xml +31 -0
  51. data/misc/ASM.xml +30 -0
  52. data/misc/ASO.xml +38 -0
  53. data/misc/AST.xml +38 -0
  54. data/misc/AT1.xml +28 -0
  55. data/misc/AT2.xml +39 -0
  56. data/misc/AT3.xml +34 -0
  57. data/misc/AT4.xml +28 -0
  58. data/misc/AT5.xml +33 -0
  59. data/misc/AT6.xml +30 -0
  60. data/misc/AT7.xml +34 -0
  61. data/misc/AT8.xml +34 -0
  62. data/misc/AT9.xml +35 -0
  63. data/misc/ATA.xml +30 -0
  64. data/misc/ATH.xml +32 -0
  65. data/misc/ATN.xml +33 -0
  66. data/misc/ATR.xml +37 -0
  67. data/misc/ATV.xml +37 -0
  68. data/misc/AVA.xml +29 -0
  69. data/misc/AWD.xml +31 -0
  70. data/misc/AXL.xml +35 -0
  71. data/misc/B1.xml +33 -0
  72. data/misc/B10.xml +36 -0
  73. data/misc/B11.xml +38 -0
  74. data/misc/B12.xml +30 -0
  75. data/misc/B13.xml +29 -0
  76. data/misc/B2.xml +39 -0
  77. data/misc/B2A.xml +29 -0
  78. data/misc/B3.xml +41 -0
  79. data/misc/B3A.xml +29 -0
  80. data/misc/B3B.xml +38 -0
  81. data/misc/B4.xml +40 -0
  82. data/misc/B9.xml +30 -0
  83. data/misc/B9A.xml +28 -0
  84. data/misc/BA1.xml +39 -0
  85. data/misc/BA2.xml +38 -0
  86. data/misc/BAA.xml +33 -0
  87. data/misc/BAK.xml +37 -0
  88. data/misc/BAL.xml +30 -0
  89. data/misc/BAT.xml +31 -0
  90. data/misc/BAU.xml +33 -0
  91. data/misc/BAX.xml +41 -0
  92. data/misc/BBC.xml +29 -0
  93. data/misc/BC.xml +34 -0
  94. data/misc/BCA.xml +42 -0
  95. data/misc/BCD.xml +42 -0
  96. data/misc/BCH.xml +43 -0
  97. data/misc/BCI.xml +35 -0
  98. data/misc/BCM.xml +39 -0
  99. data/misc/BCO.xml +39 -0
  100. data/misc/BCP.xml +40 -0
  101. data/misc/BCQ.xml +34 -0
  102. data/misc/BCS.xml +39 -0
  103. data/misc/BCT.xml +37 -0
  104. data/misc/BCU.xml +34 -0
  105. data/misc/BDD.xml +30 -0
  106. data/misc/BDS.xml +30 -0
  107. data/misc/BEG.xml +39 -0
  108. data/misc/BEN.xml +33 -0
  109. data/misc/BEP.xml +29 -0
  110. data/misc/BFR.xml +40 -0
  111. data/misc/BFS.xml +37 -0
  112. data/misc/BGF.xml +30 -0
  113. data/misc/BGN.xml +36 -0
  114. data/misc/BGP.xml +36 -0
  115. data/misc/BHT.xml +33 -0
  116. data/misc/BIA.xml +33 -0
  117. data/misc/BIG.xml +38 -0
  118. data/misc/BIN.xml +29 -0
  119. data/misc/BIX.xml +38 -0
  120. data/misc/BJF.xml +34 -0
  121. data/misc/BL.xml +44 -0
  122. data/misc/BLI.xml +45 -0
  123. data/misc/BLN.xml +33 -0
  124. data/misc/BLR.xml +30 -0
  125. data/misc/BLS.xml +33 -0
  126. data/misc/BMA.xml +35 -0
  127. data/misc/BMG.xml +30 -0
  128. data/misc/BMM.xml +37 -0
  129. data/misc/BMP.xml +31 -0
  130. data/misc/BMS.xml +36 -0
  131. data/misc/BNR.xml +33 -0
  132. data/misc/BNX.xml +31 -0
  133. data/misc/BOL.xml +38 -0
  134. data/misc/BOR.xml +37 -0
  135. data/misc/BOS.xml +33 -0
  136. data/misc/BOX.xml +42 -0
  137. data/misc/BPA.xml +32 -0
  138. data/misc/BPP.xml +41 -0
  139. data/misc/BPR.xml +48 -0
  140. data/misc/BPT.xml +37 -0
  141. data/misc/BQR.xml +35 -0
  142. data/misc/BQT.xml +38 -0
  143. data/misc/BR.xml +38 -0
  144. data/misc/BRA.xml +34 -0
  145. data/misc/BRC.xml +32 -0
  146. data/misc/BRR.xml +33 -0
  147. data/misc/BSC.xml +31 -0
  148. data/misc/BSD.xml +36 -0
  149. data/misc/BSF.xml +30 -0
  150. data/misc/BSI.xml +36 -0
  151. data/misc/BSN.xml +34 -0
  152. data/misc/BSR.xml +39 -0
  153. data/misc/BSS.xml +38 -0
  154. data/misc/BT1.xml +38 -0
  155. data/misc/BTA.xml +31 -0
  156. data/misc/BTC.xml +39 -0
  157. data/misc/BTI.xml +41 -0
  158. data/misc/BTP.xml +37 -0
  159. data/misc/BTR.xml +35 -0
  160. data/misc/BTS.xml +42 -0
  161. data/misc/BUY.xml +32 -0
  162. data/misc/BVA.xml +52 -0
  163. data/misc/BVB.xml +34 -0
  164. data/misc/BVP.xml +38 -0
  165. data/misc/BVS.xml +39 -0
  166. data/misc/BW.xml +30 -0
  167. data/misc/BX.xml +41 -0
  168. data/misc/C001.xml +43 -0
  169. data/misc/C002.xml +33 -0
  170. data/misc/C003.xml +35 -0
  171. data/misc/C004.xml +32 -0
  172. data/misc/C005.xml +33 -0
  173. data/misc/C006.xml +33 -0
  174. data/misc/C007.xml +38 -0
  175. data/misc/C022.xml +37 -0
  176. data/misc/C023.xml +31 -0
  177. data/misc/C024.xml +33 -0
  178. data/misc/C028.xml +48 -0
  179. data/misc/C030.xml +31 -0
  180. data/misc/C033.xml +30 -0
  181. data/misc/C034.xml +30 -0
  182. data/misc/C035.xml +31 -0
  183. data/misc/C036.xml +33 -0
  184. data/misc/C037.xml +30 -0
  185. data/misc/C040.xml +34 -0
  186. data/misc/C042.xml +30 -0
  187. data/misc/C043.xml +32 -0
  188. data/misc/C045.xml +33 -0
  189. data/misc/C046.xml +33 -0
  190. data/misc/C047.xml +33 -0
  191. data/misc/C048.xml +32 -0
  192. data/misc/C050.xml +40 -0
  193. data/misc/C052.xml +32 -0
  194. data/misc/C053.xml +33 -0
  195. data/misc/C055.xml +36 -0
  196. data/misc/C056.xml +31 -0
  197. data/misc/C057.xml +29 -0
  198. data/misc/C2.xml +34 -0
  199. data/misc/C3.xml +31 -0
  200. data/misc/C4.xml +29 -0
  201. data/misc/C8.xml +31 -0
  202. data/misc/C8C.xml +30 -0
  203. data/misc/CA1.xml +29 -0
  204. data/misc/CAD.xml +36 -0
  205. data/misc/CAI.xml +34 -0
  206. data/misc/CAL.xml +43 -0
  207. data/misc/CAS.xml +46 -0
  208. data/misc/CAT.xml +34 -0
  209. data/misc/CB1.xml +29 -0
  210. data/misc/CBS.xml +30 -0
  211. data/misc/CCI.xml +37 -0
  212. data/misc/CD.xml +38 -0
  213. data/misc/CD1.xml +58 -0
  214. data/misc/CD2.xml +35 -0
  215. data/misc/CD3.xml +41 -0
  216. data/misc/CDA.xml +49 -0
  217. data/misc/CDD.xml +41 -0
  218. data/misc/CDI.xml +38 -0
  219. data/misc/CDS.xml +38 -0
  220. data/misc/CED.xml +32 -0
  221. data/misc/CF1.xml +33 -0
  222. data/misc/CF2.xml +37 -0
  223. data/misc/CFI.xml +34 -0
  224. data/misc/CFT.xml +36 -0
  225. data/misc/CGS.xml +32 -0
  226. data/misc/CHB.xml +36 -0
  227. data/misc/CHR.xml +30 -0
  228. data/misc/CI.xml +41 -0
  229. data/misc/CIC.xml +32 -0
  230. data/misc/CID.xml +34 -0
  231. data/misc/CIV.xml +45 -0
  232. data/misc/CL1.xml +31 -0
  233. data/misc/CLD.xml +32 -0
  234. data/misc/CLI.xml +33 -0
  235. data/misc/CLM.xml +47 -0
  236. data/misc/CLP.xml +41 -0
  237. data/misc/CLR.xml +31 -0
  238. data/misc/CM.xml +44 -0
  239. data/misc/CMA.xml +38 -0
  240. data/misc/CMC.xml +29 -0
  241. data/misc/CN1.xml +33 -0
  242. data/misc/COB.xml +31 -0
  243. data/misc/COM.xml +30 -0
  244. data/misc/CON_.xml +30 -0
  245. data/misc/CPR.xml +32 -0
  246. data/misc/CQ.xml +37 -0
  247. data/misc/CR1.xml +37 -0
  248. data/misc/CR2.xml +39 -0
  249. data/misc/CR3.xml +32 -0
  250. data/misc/CR4.xml +56 -0
  251. data/misc/CR5.xml +45 -0
  252. data/misc/CR6.xml +48 -0
  253. data/misc/CR7.xml +30 -0
  254. data/misc/CR8.xml +36 -0
  255. data/misc/CRC.xml +34 -0
  256. data/misc/CRD.xml +31 -0
  257. data/misc/CRI.xml +37 -0
  258. data/misc/CRO.xml +33 -0
  259. data/misc/CRS.xml +47 -0
  260. data/misc/CRT.xml +37 -0
  261. data/misc/CRV.xml +34 -0
  262. data/misc/CS.xml +45 -0
  263. data/misc/CSB.xml +29 -0
  264. data/misc/CSC.xml +36 -0
  265. data/misc/CSD.xml +36 -0
  266. data/misc/CSE.xml +39 -0
  267. data/misc/CSF.xml +30 -0
  268. data/misc/CSH.xml +37 -0
  269. data/misc/CSI.xml +31 -0
  270. data/misc/CSM.xml +30 -0
  271. data/misc/CSS.xml +34 -0
  272. data/misc/CST.xml +31 -0
  273. data/misc/CSU.xml +37 -0
  274. data/misc/CT.xml +30 -0
  275. data/misc/CTB.xml +34 -0
  276. data/misc/CTC.xml +37 -0
  277. data/misc/CTP.xml +38 -0
  278. data/misc/CTT.xml +34 -0
  279. data/misc/CUR.xml +48 -0
  280. data/misc/CV.xml +41 -0
  281. data/misc/CYC.xml +33 -0
  282. data/misc/D9.xml +39 -0
  283. data/misc/DAD.xml +42 -0
  284. data/misc/DAI.xml +30 -0
  285. data/misc/DAM.xml +43 -0
  286. data/misc/DB.xml +33 -0
  287. data/misc/DD.xml +37 -0
  288. data/misc/DDI.xml +28 -0
  289. data/misc/DED.xml +36 -0
  290. data/misc/DEF.xml +33 -0
  291. data/misc/DEG.xml +32 -0
  292. data/misc/DEL.xml +32 -0
  293. data/misc/DEP.xml +35 -0
  294. data/misc/DEX.xml +33 -0
  295. data/misc/DFI.xml +31 -0
  296. data/misc/DH.xml +30 -0
  297. data/misc/DIS.xml +33 -0
  298. data/misc/DK.xml +37 -0
  299. data/misc/DL.xml +38 -0
  300. data/misc/DLV.xml +32 -0
  301. data/misc/DM.xml +48 -0
  302. data/misc/DMA.xml +36 -0
  303. data/misc/DMG.xml +38 -0
  304. data/misc/DMI.xml +39 -0
  305. data/misc/DN.xml +31 -0
  306. data/misc/DN1.xml +31 -0
  307. data/misc/DN2.xml +32 -0
  308. data/misc/DOS.xml +34 -0
  309. data/misc/DP.xml +44 -0
  310. data/misc/DPN.xml +31 -0
  311. data/misc/DR.xml +33 -0
  312. data/misc/DRT.xml +33 -0
  313. data/misc/DSB.xml +35 -0
  314. data/misc/DTM.xml +33 -0
  315. data/misc/DTP.xml +30 -0
  316. data/misc/DVI.xml +41 -0
  317. data/misc/E01.xml +31 -0
  318. data/misc/E03.xml +34 -0
  319. data/misc/E1.xml +30 -0
  320. data/misc/E10.xml +32 -0
  321. data/misc/E13.xml +37 -0
  322. data/misc/E20.xml +31 -0
  323. data/misc/E22.xml +39 -0
  324. data/misc/E24.xml +34 -0
  325. data/misc/E30.xml +36 -0
  326. data/misc/E34.xml +31 -0
  327. data/misc/E4.xml +31 -0
  328. data/misc/E40.xml +31 -0
  329. data/misc/E41.xml +31 -0
  330. data/misc/E5.xml +31 -0
  331. data/misc/E6.xml +36 -0
  332. data/misc/E8.xml +29 -0
  333. data/misc/EA.xml +30 -0
  334. data/misc/EB.xml +40 -0
  335. data/misc/EC.xml +33 -0
  336. data/misc/ED.xml +35 -0
  337. data/misc/EDF.xml +38 -0
  338. data/misc/EFI.xml +43 -0
  339. data/misc/EI.xml +33 -0
  340. data/misc/EIA.xml +33 -0
  341. data/misc/ELV.xml +33 -0
  342. data/misc/EM.xml +34 -0
  343. data/misc/EMP.xml +37 -0
  344. data/misc/EMS.xml +42 -0
  345. data/misc/EMT.xml +35 -0
  346. data/misc/ENE.xml +32 -0
  347. data/misc/ENM.xml +35 -0
  348. data/misc/ENR.xml +47 -0
  349. data/misc/ENT.xml +36 -0
  350. data/misc/EQ.xml +31 -0
  351. data/misc/ER.xml +38 -0
  352. data/misc/ERI.xml +36 -0
  353. data/misc/ERP.xml +32 -0
  354. data/misc/ES.xml +33 -0
  355. data/misc/ESI.xml +36 -0
  356. data/misc/ETD.xml +32 -0
  357. data/misc/EXI.xml +35 -0
  358. data/misc/F01.xml +36 -0
  359. data/misc/F02.xml +36 -0
  360. data/misc/F04.xml +37 -0
  361. data/misc/F05.xml +30 -0
  362. data/misc/F07.xml +49 -0
  363. data/misc/F09.xml +39 -0
  364. data/misc/F10.xml +31 -0
  365. data/misc/F11.xml +37 -0
  366. data/misc/F12.xml +35 -0
  367. data/misc/F13.xml +33 -0
  368. data/misc/F14.xml +29 -0
  369. data/misc/F6X.xml +35 -0
  370. data/misc/F9.xml +39 -0
  371. data/misc/FA1.xml +30 -0
  372. data/misc/FA2.xml +29 -0
  373. data/misc/FAA.xml +42 -0
  374. data/misc/FAC.xml +33 -0
  375. data/misc/FBB.xml +34 -0
  376. data/misc/FC.xml +32 -0
  377. data/misc/FCL.xml +32 -0
  378. data/misc/FDA.xml +36 -0
  379. data/misc/FGS.xml +30 -0
  380. data/misc/FH.xml +31 -0
  381. data/misc/FIR.xml +39 -0
  382. data/misc/FIS.xml +31 -0
  383. data/misc/FK.xml +41 -0
  384. data/misc/FNA.xml +33 -0
  385. data/misc/FOB.xml +36 -0
  386. data/misc/FOS.xml +34 -0
  387. data/misc/FPT.xml +29 -0
  388. data/misc/FRM.xml +32 -0
  389. data/misc/FSA.xml +36 -0
  390. data/misc/FST.xml +40 -0
  391. data/misc/FTH.xml +31 -0
  392. data/misc/G01.xml +35 -0
  393. data/misc/G05.xml +35 -0
  394. data/misc/G07.xml +33 -0
  395. data/misc/G08.xml +31 -0
  396. data/misc/G1.xml +30 -0
  397. data/misc/G11.xml +37 -0
  398. data/misc/G12.xml +34 -0
  399. data/misc/G13.xml +33 -0
  400. data/misc/G14.xml +29 -0
  401. data/misc/G15.xml +31 -0
  402. data/misc/G17.xml +41 -0
  403. data/misc/G18.xml +31 -0
  404. data/misc/G19.xml +36 -0
  405. data/misc/G2.xml +29 -0
  406. data/misc/G20.xml +36 -0
  407. data/misc/G21.xml +37 -0
  408. data/misc/G22.xml +32 -0
  409. data/misc/G23.xml +43 -0
  410. data/misc/G24.xml +28 -0
  411. data/misc/G25.xml +30 -0
  412. data/misc/G26.xml +33 -0
  413. data/misc/G27.xml +33 -0
  414. data/misc/G28.xml +33 -0
  415. data/misc/G29.xml +30 -0
  416. data/misc/G3.xml +33 -0
  417. data/misc/G30.xml +29 -0
  418. data/misc/G31.xml +38 -0
  419. data/misc/G32.xml +32 -0
  420. data/misc/G33.xml +28 -0
  421. data/misc/G35.xml +30 -0
  422. data/misc/G36.xml +31 -0
  423. data/misc/G37.xml +30 -0
  424. data/misc/G38.xml +30 -0
  425. data/misc/G39.xml +56 -0
  426. data/misc/G4.xml +33 -0
  427. data/misc/G40.xml +36 -0
  428. data/misc/G42.xml +30 -0
  429. data/misc/G43.xml +31 -0
  430. data/misc/G45.xml +44 -0
  431. data/misc/G46.xml +39 -0
  432. data/misc/G47.xml +29 -0
  433. data/misc/G48.xml +36 -0
  434. data/misc/G49.xml +30 -0
  435. data/misc/G5.xml +44 -0
  436. data/misc/G50.xml +34 -0
  437. data/misc/G51.xml +35 -0
  438. data/misc/G53.xml +28 -0
  439. data/misc/G54.xml +33 -0
  440. data/misc/G55.xml +60 -0
  441. data/misc/G61.xml +32 -0
  442. data/misc/G62.xml +32 -0
  443. data/misc/G63.xml +31 -0
  444. data/misc/G66.xml +34 -0
  445. data/misc/G68.xml +42 -0
  446. data/misc/G69.xml +28 -0
  447. data/misc/G70.xml +37 -0
  448. data/misc/G72.xml +38 -0
  449. data/misc/G73.xml +28 -0
  450. data/misc/G76.xml +37 -0
  451. data/misc/G82.xml +39 -0
  452. data/misc/G83.xml +40 -0
  453. data/misc/G84.xml +30 -0
  454. data/misc/G85.xml +28 -0
  455. data/misc/G86.xml +29 -0
  456. data/misc/G87.xml +33 -0
  457. data/misc/G88.xml +32 -0
  458. data/misc/G89.xml +37 -0
  459. data/misc/G91.xml +29 -0
  460. data/misc/G92.xml +30 -0
  461. data/misc/G93.xml +35 -0
  462. data/misc/G94.xml +29 -0
  463. data/misc/G95.xml +34 -0
  464. data/misc/GA.xml +45 -0
  465. data/misc/GDP.xml +34 -0
  466. data/misc/GE.xml +29 -0
  467. data/misc/GF.xml +36 -0
  468. data/misc/GH.xml +31 -0
  469. data/misc/GID.xml +30 -0
  470. data/misc/GR.xml +49 -0
  471. data/misc/GR2.xml +39 -0
  472. data/misc/GR4.xml +38 -0
  473. data/misc/GR5.xml +32 -0
  474. data/misc/GRI.xml +38 -0
  475. data/misc/GRP.xml +31 -0
  476. data/misc/GS.xml +35 -0
  477. data/misc/GY.xml +42 -0
  478. data/misc/H1.xml +36 -0
  479. data/misc/H2.xml +29 -0
  480. data/misc/H3.xml +32 -0
  481. data/misc/H5.xml +30 -0
  482. data/misc/H6.xml +34 -0
  483. data/misc/HAD.xml +33 -0
  484. data/misc/HC.xml +34 -0
  485. data/misc/HCP.xml +42 -0
  486. data/misc/HCR.xml +31 -0
  487. data/misc/HD.xml +38 -0
  488. data/misc/HI.xml +39 -0
  489. data/misc/HL.xml +31 -0
  490. data/misc/HLH.xml +34 -0
  491. data/misc/HPL.xml +33 -0
  492. data/misc/HS.xml +32 -0
  493. data/misc/HSD.xml +35 -0
  494. data/misc/IC.xml +36 -0
  495. data/misc/ICH.xml +39 -0
  496. data/misc/ICM.xml +33 -0
  497. data/misc/ID.xml +30 -0
  498. data/misc/ID1.xml +61 -0
  499. data/misc/ID2.xml +35 -0
  500. data/misc/ID3.xml +48 -0
  501. data/misc/ID4.xml +36 -0
  502. data/misc/IDB.xml +32 -0
  503. data/misc/IDC.xml +31 -0
  504. data/misc/IEA.xml +29 -0
  505. data/misc/IGI.xml +33 -0
  506. data/misc/III.xml +36 -0
  507. data/misc/IIS.xml +41 -0
  508. data/misc/IM.xml +30 -0
  509. data/misc/IMA.xml +31 -0
  510. data/misc/IMM.xml +33 -0
  511. data/misc/IMP.xml +29 -0
  512. data/misc/IN1.xml +34 -0
  513. data/misc/IN2.xml +30 -0
  514. data/misc/INC.xml +32 -0
  515. data/misc/IND.xml +39 -0
  516. data/misc/INI.xml +30 -0
  517. data/misc/INQ.xml +29 -0
  518. data/misc/INR.xml +30 -0
  519. data/misc/INS.xml +44 -0
  520. data/misc/INT.xml +33 -0
  521. data/misc/INV.xml +34 -0
  522. data/misc/INX.xml +29 -0
  523. data/misc/IRA.xml +30 -0
  524. data/misc/IRP.xml +34 -0
  525. data/misc/IS1.xml +34 -0
  526. data/misc/IS2.xml +44 -0
  527. data/misc/ISA.xml +43 -0
  528. data/misc/ISC.xml +37 -0
  529. data/misc/ISD.xml +31 -0
  530. data/misc/ISI.xml +33 -0
  531. data/misc/ISR.xml +30 -0
  532. data/misc/ISS.xml +35 -0
  533. data/misc/IT1.xml +52 -0
  534. data/misc/IT3.xml +32 -0
  535. data/misc/IT8.xml +54 -0
  536. data/misc/ITA.xml +44 -0
  537. data/misc/ITC.xml +39 -0
  538. data/misc/ITD.xml +42 -0
  539. data/misc/IV1.xml +32 -0
  540. data/misc/JCT.xml +36 -0
  541. data/misc/JID.xml +33 -0
  542. data/misc/JIL.xml +34 -0
  543. data/misc/JIT.xml +29 -0
  544. data/misc/JL.xml +31 -0
  545. data/misc/JS.xml +31 -0
  546. data/misc/K1.xml +29 -0
  547. data/misc/K2.xml +28 -0
  548. data/misc/K3.xml +30 -0
  549. data/misc/L0.xml +42 -0
  550. data/misc/L1.xml +49 -0
  551. data/misc/L10.xml +30 -0
  552. data/misc/L11.xml +32 -0
  553. data/misc/L12.xml +29 -0
  554. data/misc/L13.xml +43 -0
  555. data/misc/L1A.xml +29 -0
  556. data/misc/L3.xml +42 -0
  557. data/misc/L4.xml +33 -0
  558. data/misc/L5.xml +37 -0
  559. data/misc/L7.xml +43 -0
  560. data/misc/L8.xml +38 -0
  561. data/misc/L9.xml +29 -0
  562. data/misc/LAD.xml +41 -0
  563. data/misc/LC.xml +34 -0
  564. data/misc/LC1.xml +39 -0
  565. data/misc/LCD.xml +33 -0
  566. data/misc/LCT.xml +39 -0
  567. data/misc/LDT.xml +31 -0
  568. data/misc/LE.xml +28 -0
  569. data/misc/LEP.xml +31 -0
  570. data/misc/LEQ.xml +36 -0
  571. data/misc/LET.xml +31 -0
  572. data/misc/LFG.xml +33 -0
  573. data/misc/LFH.xml +34 -0
  574. data/misc/LFI.xml +35 -0
  575. data/misc/LH.xml +33 -0
  576. data/misc/LH1.xml +38 -0
  577. data/misc/LH2.xml +40 -0
  578. data/misc/LH3.xml +31 -0
  579. data/misc/LH4.xml +39 -0
  580. data/misc/LH6.xml +31 -0
  581. data/misc/LHE.xml +32 -0
  582. data/misc/LHR.xml +30 -0
  583. data/misc/LHT.xml +30 -0
  584. data/misc/LIC.xml +35 -0
  585. data/misc/LID.xml +36 -0
  586. data/misc/LIE.xml +31 -0
  587. data/misc/LIN.xml +58 -0
  588. data/misc/LM.xml +29 -0
  589. data/misc/LN.xml +38 -0
  590. data/misc/LN1.xml +50 -0
  591. data/misc/LN2.xml +39 -0
  592. data/misc/LOC.xml +51 -0
  593. data/misc/LOD.xml +33 -0
  594. data/misc/LP.xml +34 -0
  595. data/misc/LQ.xml +29 -0
  596. data/misc/LRQ.xml +48 -0
  597. data/misc/LS.xml +28 -0
  598. data/misc/LS1.xml +34 -0
  599. data/misc/LT.xml +31 -0
  600. data/misc/LTE.xml +31 -0
  601. data/misc/LTR.xml +39 -0
  602. data/misc/LUC.xml +31 -0
  603. data/misc/LUI.xml +32 -0
  604. data/misc/LV.xml +29 -0
  605. data/misc/LX.xml +28 -0
  606. data/misc/M0.xml +31 -0
  607. data/misc/M1.xml +39 -0
  608. data/misc/M10.xml +41 -0
  609. data/misc/M11.xml +46 -0
  610. data/misc/M12.xml +38 -0
  611. data/misc/M13.xml +39 -0
  612. data/misc/M14.xml +38 -0
  613. data/misc/M15.xml +43 -0
  614. data/misc/M2.xml +35 -0
  615. data/misc/M20.xml +36 -0
  616. data/misc/M21.xml +42 -0
  617. data/misc/M3.xml +31 -0
  618. data/misc/M7.xml +32 -0
  619. data/misc/M7A.xml +33 -0
  620. data/misc/MAN.xml +33 -0
  621. data/misc/MBL.xml +32 -0
  622. data/misc/MC.xml +32 -0
  623. data/misc/MCD.xml +31 -0
  624. data/misc/MCT.xml +35 -0
  625. data/misc/MEA.xml +39 -0
  626. data/misc/MI.xml +32 -0
  627. data/misc/MI1.xml +30 -0
  628. data/misc/MIA.xml +51 -0
  629. data/misc/MIC.xml +45 -0
  630. data/misc/MIN.xml +43 -0
  631. data/misc/MIR.xml +39 -0
  632. data/misc/MIS.xml +32 -0
  633. data/misc/MIT.xml +31 -0
  634. data/misc/MKS.xml +30 -0
  635. data/misc/MLA.xml +35 -0
  636. data/misc/MLS.xml +31 -0
  637. data/misc/MNC.xml +44 -0
  638. data/misc/MOA.xml +36 -0
  639. data/misc/MPI.xml +34 -0
  640. data/misc/MPP.xml +35 -0
  641. data/misc/MRC.xml +36 -0
  642. data/misc/MS.xml +33 -0
  643. data/misc/MS1.xml +35 -0
  644. data/misc/MS2.xml +31 -0
  645. data/misc/MS3.xml +32 -0
  646. data/misc/MS4.xml +31 -0
  647. data/misc/MS5.xml +32 -0
  648. data/misc/MS6.xml +31 -0
  649. data/misc/MSG.xml +30 -0
  650. data/misc/MSI.xml +29 -0
  651. data/misc/MSS.xml +34 -0
  652. data/misc/MTX.xml +33 -0
  653. data/misc/N1.xml +33 -0
  654. data/misc/N10.xml +40 -0
  655. data/misc/N11.xml +30 -0
  656. data/misc/N12.xml +29 -0
  657. data/misc/N2.xml +29 -0
  658. data/misc/N3.xml +29 -0
  659. data/misc/N4.xml +34 -0
  660. data/misc/N5.xml +36 -0
  661. data/misc/N7.xml +51 -0
  662. data/misc/N7A.xml +36 -0
  663. data/misc/N7B.xml +33 -0
  664. data/misc/N8.xml +38 -0
  665. data/misc/N8A.xml +37 -0
  666. data/misc/N9.xml +34 -0
  667. data/misc/NA.xml +39 -0
  668. data/misc/NCA.xml +32 -0
  669. data/misc/NCD.xml +34 -0
  670. data/misc/NM1.xml +38 -0
  671. data/misc/NTE.xml +29 -0
  672. data/misc/NX1.xml +32 -0
  673. data/misc/NX2.xml +30 -0
  674. data/misc/OBI.xml +33 -0
  675. data/misc/OD.xml +31 -0
  676. data/misc/OI.xml +33 -0
  677. data/misc/OID.xml +38 -0
  678. data/misc/OOI.xml +31 -0
  679. data/misc/OPS.xml +33 -0
  680. data/misc/OPX.xml +32 -0
  681. data/misc/OQS.xml +29 -0
  682. data/misc/ORI.xml +28 -0
  683. data/misc/OTI.xml +44 -0
  684. data/misc/P1.xml +34 -0
  685. data/misc/P2.xml +30 -0
  686. data/misc/P4.xml +32 -0
  687. data/misc/P5.xml +30 -0
  688. data/misc/PAD.xml +32 -0
  689. data/misc/PAI.xml +32 -0
  690. data/misc/PAL.xml +44 -0
  691. data/misc/PAM.xml +42 -0
  692. data/misc/PAS.xml +37 -0
  693. data/misc/PAT.xml +36 -0
  694. data/misc/PBI.xml +35 -0
  695. data/misc/PCL.xml +34 -0
  696. data/misc/PCR.xml +29 -0
  697. data/misc/PCS.xml +38 -0
  698. data/misc/PCT.xml +29 -0
  699. data/misc/PD.xml +37 -0
  700. data/misc/PDD.xml +32 -0
  701. data/misc/PDE.xml +31 -0
  702. data/misc/PDI.xml +31 -0
  703. data/misc/PDL.xml +39 -0
  704. data/misc/PDP.xml +30 -0
  705. data/misc/PDR.xml +31 -0
  706. data/misc/PDS.xml +30 -0
  707. data/misc/PEN.xml +36 -0
  708. data/misc/PER.xml +36 -0
  709. data/misc/PEX.xml +35 -0
  710. data/misc/PI.xml +42 -0
  711. data/misc/PID.xml +36 -0
  712. data/misc/PIN.xml +34 -0
  713. data/misc/PKD.xml +32 -0
  714. data/misc/PKG.xml +33 -0
  715. data/misc/PKL.xml +40 -0
  716. data/misc/PL.xml +33 -0
  717. data/misc/PLA.xml +32 -0
  718. data/misc/PLB.xml +41 -0
  719. data/misc/PLC.xml +29 -0
  720. data/misc/PLD.xml +31 -0
  721. data/misc/PLI.xml +36 -0
  722. data/misc/PM.xml +33 -0
  723. data/misc/PO1.xml +52 -0
  724. data/misc/PO3.xml +35 -0
  725. data/misc/PO4.xml +45 -0
  726. data/misc/POC.xml +54 -0
  727. data/misc/POD.xml +30 -0
  728. data/misc/PPA.xml +33 -0
  729. data/misc/PPD.xml +40 -0
  730. data/misc/PPL.xml +32 -0
  731. data/misc/PPY.xml +35 -0
  732. data/misc/PR.xml +36 -0
  733. data/misc/PR1.xml +40 -0
  734. data/misc/PR2.xml +36 -0
  735. data/misc/PRC.xml +39 -0
  736. data/misc/PRD.xml +38 -0
  737. data/misc/PRF.xml +34 -0
  738. data/misc/PRI.xml +41 -0
  739. data/misc/PRJ.xml +31 -0
  740. data/misc/PRM.xml +40 -0
  741. data/misc/PRR.xml +38 -0
  742. data/misc/PRS.xml +29 -0
  743. data/misc/PRT.xml +31 -0
  744. data/misc/PRV.xml +33 -0
  745. data/misc/PS.xml +41 -0
  746. data/misc/PS1.xml +30 -0
  747. data/misc/PSA.xml +32 -0
  748. data/misc/PSC.xml +52 -0
  749. data/misc/PSD.xml +36 -0
  750. data/misc/PT.xml +38 -0
  751. data/misc/PTD.xml +33 -0
  752. data/misc/PTF.xml +34 -0
  753. data/misc/PTS.xml +38 -0
  754. data/misc/PUN.xml +32 -0
  755. data/misc/PWK.xml +36 -0
  756. data/misc/PYD.xml +32 -0
  757. data/misc/PYM.xml +34 -0
  758. data/misc/PYT.xml +35 -0
  759. data/misc/Q2.xml +43 -0
  760. data/misc/Q3.xml +29 -0
  761. data/misc/Q5.xml +45 -0
  762. data/misc/Q7.xml +30 -0
  763. data/misc/Q8.xml +37 -0
  764. data/misc/QTY.xml +31 -0
  765. data/misc/R1.xml +40 -0
  766. data/misc/R11.xml +34 -0
  767. data/misc/R12.xml +37 -0
  768. data/misc/R13.xml +39 -0
  769. data/misc/R2.xml +40 -0
  770. data/misc/R2A.xml +37 -0
  771. data/misc/R2B.xml +30 -0
  772. data/misc/R2C.xml +31 -0
  773. data/misc/R2D.xml +29 -0
  774. data/misc/R3.xml +39 -0
  775. data/misc/R4.xml +35 -0
  776. data/misc/R9.xml +36 -0
  777. data/misc/RA.xml +37 -0
  778. data/misc/RAB.xml +37 -0
  779. data/misc/RAP.xml +34 -0
  780. data/misc/RB.xml +35 -0
  781. data/misc/RC.xml +36 -0
  782. data/misc/RCD.xml +48 -0
  783. data/misc/RCR.xml +29 -0
  784. data/misc/RD.xml +31 -0
  785. data/misc/RDD.xml +32 -0
  786. data/misc/RDI.xml +32 -0
  787. data/misc/RDM.xml +32 -0
  788. data/misc/RDR.xml +32 -0
  789. data/misc/RDT.xml +33 -0
  790. data/misc/REA.xml +41 -0
  791. data/misc/REC.xml +40 -0
  792. data/misc/RED.xml +33 -0
  793. data/misc/REF.xml +31 -0
  794. data/misc/REL.xml +29 -0
  795. data/misc/REN.xml +34 -0
  796. data/misc/REP.xml +47 -0
  797. data/misc/REQ.xml +29 -0
  798. data/misc/RES.xml +34 -0
  799. data/misc/RET.xml +32 -0
  800. data/misc/RH.xml +30 -0
  801. data/misc/RIC.xml +45 -0
  802. data/misc/RLD.xml +31 -0
  803. data/misc/RLT.xml +39 -0
  804. data/misc/RMR.xml +35 -0
  805. data/misc/RMT.xml +37 -0
  806. data/misc/RO.xml +36 -0
  807. data/misc/RP.xml +36 -0
  808. data/misc/RPA.xml +32 -0
  809. data/misc/RQS.xml +32 -0
  810. data/misc/RRA.xml +29 -0
  811. data/misc/RS.xml +33 -0
  812. data/misc/RSC.xml +31 -0
  813. data/misc/RSD.xml +30 -0
  814. data/misc/RST.xml +29 -0
  815. data/misc/RT.xml +39 -0
  816. data/misc/RT1.xml +35 -0
  817. data/misc/RTE.xml +32 -0
  818. data/misc/RTT.xml +29 -0
  819. data/misc/RU1.xml +36 -0
  820. data/misc/RU2.xml +35 -0
  821. data/misc/RU3.xml +56 -0
  822. data/misc/RYL.xml +31 -0
  823. data/misc/S1.xml +33 -0
  824. data/misc/S2.xml +30 -0
  825. data/misc/S4A.xml +38 -0
  826. data/misc/S5.xml +38 -0
  827. data/misc/S9.xml +35 -0
  828. data/misc/SA.xml +32 -0
  829. data/misc/SAC.xml +43 -0
  830. data/misc/SAD.xml +34 -0
  831. data/misc/SAL.xml +34 -0
  832. data/misc/SB.xml +28 -0
  833. data/misc/SBR.xml +36 -0
  834. data/misc/SBT.xml +30 -0
  835. data/misc/SC.xml +29 -0
  836. data/misc/SCA.xml +34 -0
  837. data/misc/SCD.xml +34 -0
  838. data/misc/SCH.xml +39 -0
  839. data/misc/SCL.xml +37 -0
  840. data/misc/SCM.xml +31 -0
  841. data/misc/SCN.xml +32 -0
  842. data/misc/SCP.xml +31 -0
  843. data/misc/SCR.xml +51 -0
  844. data/misc/SCS.xml +29 -0
  845. data/misc/SCT.xml +38 -0
  846. data/misc/SD1.xml +35 -0
  847. data/misc/SDP.xml +35 -0
  848. data/misc/SDQ.xml +50 -0
  849. data/misc/SE.xml +29 -0
  850. data/misc/SER.xml +38 -0
  851. data/misc/SES.xml +41 -0
  852. data/misc/SFC.xml +29 -0
  853. data/misc/SG.xml +33 -0
  854. data/misc/SHD.xml +41 -0
  855. data/misc/SHI.xml +32 -0
  856. data/misc/SHP.xml +34 -0
  857. data/misc/SHR.xml +29 -0
  858. data/misc/SI.xml +48 -0
  859. data/misc/SID.xml +33 -0
  860. data/misc/SII.xml +34 -0
  861. data/misc/SIN.xml +33 -0
  862. data/misc/SL1.xml +36 -0
  863. data/misc/SLA.xml +35 -0
  864. data/misc/SLI.xml +49 -0
  865. data/misc/SLN.xml +55 -0
  866. data/misc/SMA.xml +32 -0
  867. data/misc/SMB.xml +36 -0
  868. data/misc/SMD.xml +30 -0
  869. data/misc/SMO.xml +34 -0
  870. data/misc/SMR.xml +31 -0
  871. data/misc/SMS.xml +40 -0
  872. data/misc/SN1.xml +35 -0
  873. data/misc/SOI.xml +32 -0
  874. data/misc/SOM.xml +40 -0
  875. data/misc/SP.xml +32 -0
  876. data/misc/SPA.xml +38 -0
  877. data/misc/SPE.xml +31 -0
  878. data/misc/SPI.xml +42 -0
  879. data/misc/SPK.xml +32 -0
  880. data/misc/SPR.xml +36 -0
  881. data/misc/SPS.xml +33 -0
  882. data/misc/SPY.xml +30 -0
  883. data/misc/SR.xml +38 -0
  884. data/misc/SRA.xml +29 -0
  885. data/misc/SRD.xml +47 -0
  886. data/misc/SRE.xml +29 -0
  887. data/misc/SRM.xml +43 -0
  888. data/misc/SRT.xml +40 -0
  889. data/misc/SS.xml +36 -0
  890. data/misc/SSC.xml +35 -0
  891. data/misc/SSD.xml +31 -0
  892. data/misc/SSE.xml +32 -0
  893. data/misc/SSS.xml +36 -0
  894. data/misc/SST.xml +36 -0
  895. data/misc/ST.xml +30 -0
  896. data/misc/STA.xml +35 -0
  897. data/misc/STC.xml +39 -0
  898. data/misc/STP.xml +36 -0
  899. data/misc/STS.xml +32 -0
  900. data/misc/SUM.xml +45 -0
  901. data/misc/SUP.xml +31 -0
  902. data/misc/SV.xml +31 -0
  903. data/misc/SV1.xml +48 -0
  904. data/misc/SV2.xml +37 -0
  905. data/misc/SV3.xml +38 -0
  906. data/misc/SV4.xml +45 -0
  907. data/misc/SV5.xml +34 -0
  908. data/misc/SV6.xml +34 -0
  909. data/misc/SV7.xml +33 -0
  910. data/misc/SVA.xml +30 -0
  911. data/misc/SVC.xml +34 -0
  912. data/misc/SVD.xml +33 -0
  913. data/misc/SW.xml +36 -0
  914. data/misc/T1.xml +36 -0
  915. data/misc/T1002.xml +30 -0
  916. data/misc/T1004.xml +305 -0
  917. data/misc/T1005.xml +107 -0
  918. data/misc/T1006.xml +35 -0
  919. data/misc/T1007.xml +31 -0
  920. data/misc/T1008.xml +58 -0
  921. data/misc/T1009.xml +116 -0
  922. data/misc/T1012.xml +53 -0
  923. data/misc/T1013.xml +113 -0
  924. data/misc/T1015.xml +33 -0
  925. data/misc/T1016.xml +33 -0
  926. data/misc/T1017.xml +82 -0
  927. data/misc/T1019.xml +30 -0
  928. data/misc/T102.xml +32 -0
  929. data/misc/T1020.xml +30 -0
  930. data/misc/T1023.xml +31 -0
  931. data/misc/T1025.xml +30 -0
  932. data/misc/T1026.xml +34 -0
  933. data/misc/T1029.xml +68 -0
  934. data/misc/T103.2.xml +84 -0
  935. data/misc/T1030.xml +41 -0
  936. data/misc/T1031.xml +40 -0
  937. data/misc/T1032.xml +75 -0
  938. data/misc/T1033.xml +36 -0
  939. data/misc/T104.xml +31 -0
  940. data/misc/T1042.xml +32 -0
  941. data/misc/T1044.xml +41 -0
  942. data/misc/T1045.xml +32 -0
  943. data/misc/T1046.xml +34 -0
  944. data/misc/T1047.xml +40 -0
  945. data/misc/T1048.xml +36 -0
  946. data/misc/T1053.xml +29 -0
  947. data/misc/T1054.xml +30 -0
  948. data/misc/T1062.xml +47 -0
  949. data/misc/T1065.xml +43 -0
  950. data/misc/T1066.xml +45 -0
  951. data/misc/T1067.xml +39 -0
  952. data/misc/T1068.xml +34 -0
  953. data/misc/T1069.xml +181 -0
  954. data/misc/T107.xml +64 -0
  955. data/misc/T1070.xml +42 -0
  956. data/misc/T1071.xml +104 -0
  957. data/misc/T1072.xml +31 -0
  958. data/misc/T1073.xml +31 -0
  959. data/misc/T1074.xml +101 -0
  960. data/misc/T1075.xml +40 -0
  961. data/misc/T1076.xml +31 -0
  962. data/misc/T1077.xml +31 -0
  963. data/misc/T1078.xml +43 -0
  964. data/misc/T1079.xml +31 -0
  965. data/misc/T108.xml +59 -0
  966. data/misc/T1080.xml +31 -0
  967. data/misc/T1081.xml +72 -0
  968. data/misc/T1082.xml +48 -0
  969. data/misc/T1083.xml +76 -0
  970. data/misc/T1084.xml +29 -0
  971. data/misc/T1085.xml +58 -0
  972. data/misc/T1086.xml +34 -0
  973. data/misc/T1089.xml +98 -0
  974. data/misc/T1090.xml +30 -0
  975. data/misc/T1091.xml +39 -0
  976. data/misc/T1093.xml +45 -0
  977. data/misc/T1097.xml +31 -0
  978. data/misc/T1098.xml +30 -0
  979. data/misc/T1099.xml +31 -0
  980. data/misc/T11.xml +47 -0
  981. data/misc/T110.xml +47 -0
  982. data/misc/T1100.xml +36 -0
  983. data/misc/T1101.xml +34 -0
  984. data/misc/T1102.xml +30 -0
  985. data/misc/T1103.xml +35 -0
  986. data/misc/T1104.xml +49 -0
  987. data/misc/T1105.xml +32 -0
  988. data/misc/T1106.xml +101 -0
  989. data/misc/T1107.xml +43 -0
  990. data/misc/T1108.xml +39 -0
  991. data/misc/T1109.xml +50 -0
  992. data/misc/T1113.xml +43 -0
  993. data/misc/T1122.xml +34 -0
  994. data/misc/T1123.xml +46 -0
  995. data/misc/T1127.xml +60 -0
  996. data/misc/T1129.xml +184 -0
  997. data/misc/T1130.xml +29 -0
  998. data/misc/T1131.xml +120 -0
  999. data/misc/T1132.xml +68 -0
  1000. data/misc/T1133.xml +112 -0
  1001. data/misc/T1134.xml +36 -0
  1002. data/misc/T1135.xml +40 -0
  1003. data/misc/T1136.xml +447 -0
  1004. data/misc/T1138.xml +33 -0
  1005. data/misc/T1139.xml +42 -0
  1006. data/misc/T1140.xml +32 -0
  1007. data/misc/T1141.xml +43 -0
  1008. data/misc/T1142.xml +65 -0
  1009. data/misc/T1143.xml +36 -0
  1010. data/misc/T1146.xml +33 -0
  1011. data/misc/T1147.xml +47 -0
  1012. data/misc/T115.xml +60 -0
  1013. data/misc/T1150.xml +30 -0
  1014. data/misc/T1152.xml +30 -0
  1015. data/misc/T1153.xml +41 -0
  1016. data/misc/T1154.xml +31 -0
  1017. data/misc/T1156.xml +38 -0
  1018. data/misc/T1157.xml +31 -0
  1019. data/misc/T1159.xml +56 -0
  1020. data/misc/T1160.xml +41 -0
  1021. data/misc/T1161.xml +57 -0
  1022. data/misc/T1162.xml +35 -0
  1023. data/misc/T1163.xml +35 -0
  1024. data/misc/T1164.xml +36 -0
  1025. data/misc/T1165.xml +30 -0
  1026. data/misc/T1166.xml +77 -0
  1027. data/misc/T1168.xml +43 -0
  1028. data/misc/T1172.xml +109 -0
  1029. data/misc/T1173.xml +46 -0
  1030. data/misc/T1176.xml +97 -0
  1031. data/misc/T1179.xml +29 -0
  1032. data/misc/T1181.xml +46 -0
  1033. data/misc/T1185.xml +48 -0
  1034. data/misc/T1186.xml +144 -0
  1035. data/misc/T1187.xml +60 -0
  1036. data/misc/T1188.xml +144 -0
  1037. data/misc/T1189.xml +33 -0
  1038. data/misc/T1193.xml +61 -0
  1039. data/misc/T1196.xml +189 -0
  1040. data/misc/T1197.xml +46 -0
  1041. data/misc/T1198.xml +30 -0
  1042. data/misc/T1199.xml +32 -0
  1043. data/misc/T120.xml +31 -0
  1044. data/misc/T1201.xml +37 -0
  1045. data/misc/T1202.xml +32 -0
  1046. data/misc/T1203.xml +143 -0
  1047. data/misc/T1205.xml +79 -0
  1048. data/misc/T1207.xml +45 -0
  1049. data/misc/T1209.xml +34 -0
  1050. data/misc/T121.xml +52 -0
  1051. data/misc/T1211.xml +35 -0
  1052. data/misc/T1212.xml +32 -0
  1053. data/misc/T1213.xml +40 -0
  1054. data/misc/T1215.xml +32 -0
  1055. data/misc/T1216.xml +33 -0
  1056. data/misc/T1218.xml +32 -0
  1057. data/misc/T1219.xml +38 -0
  1058. data/misc/T122.xml +204 -0
  1059. data/misc/T1220.xml +30 -0
  1060. data/misc/T1221.xml +53 -0
  1061. data/misc/T1222.xml +38 -0
  1062. data/misc/T1223.xml +35 -0
  1063. data/misc/T1224.xml +62 -0
  1064. data/misc/T1225.xml +39 -0
  1065. data/misc/T1226.xml +43 -0
  1066. data/misc/T1227.xml +34 -0
  1067. data/misc/T1229.xml +32 -0
  1068. data/misc/T1230.xml +87 -0
  1069. data/misc/T1231.xml +38 -0
  1070. data/misc/T1232.xml +50 -0
  1071. data/misc/T1233.xml +49 -0
  1072. data/misc/T1234.xml +31 -0
  1073. data/misc/T1236.xml +31 -0
  1074. data/misc/T1237.xml +32 -0
  1075. data/misc/T1238.xml +30 -0
  1076. data/misc/T1239.xml +36 -0
  1077. data/misc/T1240.xml +57 -0
  1078. data/misc/T1241.xml +36 -0
  1079. data/misc/T1246.xml +30 -0
  1080. data/misc/T125.xml +47 -0
  1081. data/misc/T1250.xml +68 -0
  1082. data/misc/T1254.xml +41 -0
  1083. data/misc/T1257.xml +52 -0
  1084. data/misc/T1262.xml +98 -0
  1085. data/misc/T1264.xml +59 -0
  1086. data/misc/T1265.xml +34 -0
  1087. data/misc/T1266.xml +43 -0
  1088. data/misc/T1267.xml +33 -0
  1089. data/misc/T1268.xml +30 -0
  1090. data/misc/T1270.xml +917 -0
  1091. data/misc/T1273.xml +30 -0
  1092. data/misc/T1275.xml +31 -0
  1093. data/misc/T1277.xml +31 -0
  1094. data/misc/T1278.xml +29 -0
  1095. data/misc/T128.xml +1712 -0
  1096. data/misc/T1280.xml +43 -0
  1097. data/misc/T1292.xml +41 -0
  1098. data/misc/T1293.xml +56 -0
  1099. data/misc/T1294.xml +41 -0
  1100. data/misc/T1295.xml +55 -0
  1101. data/misc/T1297.xml +33 -0
  1102. data/misc/T1300.xml +1116 -0
  1103. data/misc/T1303.xml +35 -0
  1104. data/misc/T1304.xml +37 -0
  1105. data/misc/T1307.xml +216 -0
  1106. data/misc/T1308.xml +38 -0
  1107. data/misc/T1309.xml +144 -0
  1108. data/misc/T1310.xml +30 -0
  1109. data/misc/T1311.xml +38 -0
  1110. data/misc/T1312.xml +30 -0
  1111. data/misc/T1316.xml +31 -0
  1112. data/misc/T1317.xml +33 -0
  1113. data/misc/T1319.xml +37 -0
  1114. data/misc/T132.xml +33 -0
  1115. data/misc/T1320.xml +31 -0
  1116. data/misc/T1321.xml +1327 -0
  1117. data/misc/T1322.xml +41 -0
  1118. data/misc/T1327.xml +31 -0
  1119. data/misc/T1329.xml +37 -0
  1120. data/misc/T133.xml +50 -0
  1121. data/misc/T1330.xml +100 -0
  1122. data/misc/T1332.xml +29 -0
  1123. data/misc/T1333.xml +33 -0
  1124. data/misc/T1335.xml +31 -0
  1125. data/misc/T1336.xml +74 -0
  1126. data/misc/T1337.xml +35 -0
  1127. data/misc/T1338.xml +44 -0
  1128. data/misc/T1340.xml +30 -0
  1129. data/misc/T1342.xml +34 -0
  1130. data/misc/T1343.xml +74 -0
  1131. data/misc/T1344.xml +30 -0
  1132. data/misc/T1345.xml +36 -0
  1133. data/misc/T1346.xml +30 -0
  1134. data/misc/T1347.xml +31 -0
  1135. data/misc/T1348.xml +33 -0
  1136. data/misc/T1349.xml +34 -0
  1137. data/misc/T1350.xml +30 -0
  1138. data/misc/T1351.xml +32 -0
  1139. data/misc/T1355.xml +35 -0
  1140. data/misc/T1356.xml +31 -0
  1141. data/misc/T1357.xml +35 -0
  1142. data/misc/T1358.xml +29 -0
  1143. data/misc/T1359.xml +31 -0
  1144. data/misc/T1360.xml +34 -0
  1145. data/misc/T1361.xml +43 -0
  1146. data/misc/T1362.xml +33 -0
  1147. data/misc/T1363.xml +33 -0
  1148. data/misc/T1364.xml +35 -0
  1149. data/misc/T1365.xml +210 -0
  1150. data/misc/T1366.xml +37 -0
  1151. data/misc/T1367.xml +55 -0
  1152. data/misc/T1368.xml +31 -0
  1153. data/misc/T1369.xml +34 -0
  1154. data/misc/T1370.xml +37 -0
  1155. data/misc/T1373.xml +41 -0
  1156. data/misc/T1376.xml +55 -0
  1157. data/misc/T1378.xml +36 -0
  1158. data/misc/T1379.xml +49 -0
  1159. data/misc/T1382.xml +32 -0
  1160. data/misc/T1383.xml +45 -0
  1161. data/misc/T1384.xml +42 -0
  1162. data/misc/T1387.xml +61 -0
  1163. data/misc/T139.xml +40 -0
  1164. data/misc/T1390.xml +66 -0
  1165. data/misc/T1393.xml +31 -0
  1166. data/misc/T1395.xml +35 -0
  1167. data/misc/T1396.xml +30 -0
  1168. data/misc/T1398.xml +68 -0
  1169. data/misc/T1401.xml +44 -0
  1170. data/misc/T1402.xml +56 -0
  1171. data/misc/T1403.xml +30 -0
  1172. data/misc/T1404.xml +29 -0
  1173. data/misc/T1407.xml +29 -0
  1174. data/misc/T1408.xml +30 -0
  1175. data/misc/T1413.xml +30 -0
  1176. data/misc/T1420.xml +41 -0
  1177. data/misc/T1422.xml +32 -0
  1178. data/misc/T1423.xml +89 -0
  1179. data/misc/T1425.xml +36 -0
  1180. data/misc/T1426.xml +43 -0
  1181. data/misc/T1428.xml +29 -0
  1182. data/misc/T1429.xml +76 -0
  1183. data/misc/T143.xml +341 -0
  1184. data/misc/T1431.xml +33 -0
  1185. data/misc/T1432.xml +51 -0
  1186. data/misc/T1434.xml +34 -0
  1187. data/misc/T1439.xml +37 -0
  1188. data/misc/T146.xml +58 -0
  1189. data/misc/T1465.xml +48 -0
  1190. data/misc/T1466.xml +49 -0
  1191. data/misc/T1468.xml +64 -0
  1192. data/misc/T1469.xml +33 -0
  1193. data/misc/T147.xml +62 -0
  1194. data/misc/T1473.xml +42 -0
  1195. data/misc/T1476.xml +38 -0
  1196. data/misc/T1484.xml +37 -0
  1197. data/misc/T1485.xml +29 -0
  1198. data/misc/T1487.xml +58 -0
  1199. data/misc/T1488.xml +44 -0
  1200. data/misc/T1489.xml +39 -0
  1201. data/misc/T1491.xml +30 -0
  1202. data/misc/T1492.xml +37 -0
  1203. data/misc/T1493.xml +35 -0
  1204. data/misc/T1496.xml +81 -0
  1205. data/misc/T1499.xml +29 -0
  1206. data/misc/T150.xml +1125 -0
  1207. data/misc/T1511.xml +34 -0
  1208. data/misc/T1514.xml +41 -0
  1209. data/misc/T152.xml +577 -0
  1210. data/misc/T1520.xml +52 -0
  1211. data/misc/T1521.xml +41 -0
  1212. data/misc/T1522.xml +52 -0
  1213. data/misc/T1523.xml +35 -0
  1214. data/misc/T1525.xml +34 -0
  1215. data/misc/T1526.xml +32 -0
  1216. data/misc/T1527.xml +33 -0
  1217. data/misc/T1540.xml +31 -0
  1218. data/misc/T1543.xml +29 -0
  1219. data/misc/T1546.xml +32 -0
  1220. data/misc/T1549.xml +34 -0
  1221. data/misc/T1550.xml +31 -0
  1222. data/misc/T1552.xml +41 -0
  1223. data/misc/T1553.xml +41 -0
  1224. data/misc/T1554.xml +47 -0
  1225. data/misc/T1555.xml +31 -0
  1226. data/misc/T1556.xml +30 -0
  1227. data/misc/T1557.xml +32 -0
  1228. data/misc/T1558.xml +31 -0
  1229. data/misc/T1559.xml +50 -0
  1230. data/misc/T1560.xml +38 -0
  1231. data/misc/T1561.xml +29 -0
  1232. data/misc/T157.xml +206 -0
  1233. data/misc/T1570.xml +35 -0
  1234. data/misc/T1572.xml +30 -0
  1235. data/misc/T1574.xml +34 -0
  1236. data/misc/T1575.xml +33 -0
  1237. data/misc/T1576.xml +30 -0
  1238. data/misc/T1577.xml +30 -0
  1239. data/misc/T1578.xml +36 -0
  1240. data/misc/T1579.xml +30 -0
  1241. data/misc/T1585.xml +33 -0
  1242. data/misc/T1588.xml +47 -0
  1243. data/misc/T1590.xml +151 -0
  1244. data/misc/T1591.xml +159 -0
  1245. data/misc/T1592.xml +60 -0
  1246. data/misc/T1594.xml +69 -0
  1247. data/misc/T1595.xml +42 -0
  1248. data/misc/T1596.xml +82 -0
  1249. data/misc/T1599.xml +151 -0
  1250. data/misc/T16.xml +33 -0
  1251. data/misc/T160.xml +31 -0
  1252. data/misc/T1600.xml +36 -0
  1253. data/misc/T1601.xml +39 -0
  1254. data/misc/T1602.xml +59 -0
  1255. data/misc/T1606.xml +39 -0
  1256. data/misc/T1607.xml +47 -0
  1257. data/misc/T1609.xml +51 -0
  1258. data/misc/T1610.xml +31 -0
  1259. data/misc/T1611.xml +38 -0
  1260. data/misc/T1612.xml +32 -0
  1261. data/misc/T1617.xml +31 -0
  1262. data/misc/T1619.xml +30 -0
  1263. data/misc/T1620.xml +49 -0
  1264. data/misc/T1621.xml +29 -0
  1265. data/misc/T1622.xml +35 -0
  1266. data/misc/T1626.xml +30 -0
  1267. data/misc/T1627.xml +29 -0
  1268. data/misc/T1629.xml +41 -0
  1269. data/misc/T163.xml +49 -0
  1270. data/misc/T1630.xml +61 -0
  1271. data/misc/T1631.xml +44 -0
  1272. data/misc/T1632.xml +96 -0
  1273. data/misc/T1633.xml +32 -0
  1274. data/misc/T1634.xml +128 -0
  1275. data/misc/T1635.xml +39 -0
  1276. data/misc/T1636.xml +54 -0
  1277. data/misc/T1637.xml +29 -0
  1278. data/misc/T1638.xml +57 -0
  1279. data/misc/T1642.xml +37 -0
  1280. data/misc/T1644.xml +34 -0
  1281. data/misc/T1650.xml +73 -0
  1282. data/misc/T1651.xml +111 -0
  1283. data/misc/T1652.xml +36 -0
  1284. data/misc/T1656.xml +31 -0
  1285. data/misc/T1657.xml +30 -0
  1286. data/misc/T1658.xml +34 -0
  1287. data/misc/T1675.xml +31 -0
  1288. data/misc/T1678.xml +34 -0
  1289. data/misc/T1679.xml +30 -0
  1290. data/misc/T1680.xml +30 -0
  1291. data/misc/T1681.xml +43 -0
  1292. data/misc/T1685.xml +30 -0
  1293. data/misc/T1691.xml +81 -0
  1294. data/misc/T1693.xml +28 -0
  1295. data/misc/T1698.xml +30 -0
  1296. data/misc/T1699.xml +30 -0
  1297. data/misc/T1701.xml +30 -0
  1298. data/misc/T1703.xml +32 -0
  1299. data/misc/T1706.xml +33 -0
  1300. data/misc/T1713.xml +39 -0
  1301. data/misc/T1714.xml +40 -0
  1302. data/misc/T1719.xml +31 -0
  1303. data/misc/T1720.xml +46 -0
  1304. data/misc/T1721.xml +67 -0
  1305. data/misc/T1722.xml +38 -0
  1306. data/misc/T1727.xml +30 -0
  1307. data/misc/T1729.xml +48 -0
  1308. data/misc/T1730.xml +37 -0
  1309. data/misc/T1731.xml +40 -0
  1310. data/misc/T176.xml +70 -0
  1311. data/misc/T181.xml +75 -0
  1312. data/misc/T184.xml +43 -0
  1313. data/misc/T187.xml +79 -0
  1314. data/misc/T188.xml +35 -0
  1315. data/misc/T190.xml +29 -0
  1316. data/misc/T192.xml +30 -0
  1317. data/misc/T195.xml +33 -0
  1318. data/misc/T197.xml +34 -0
  1319. data/misc/T199.xml +31 -0
  1320. data/misc/T2.xml +39 -0
  1321. data/misc/T201.xml +39 -0
  1322. data/misc/T202.xml +66 -0
  1323. data/misc/T208.xml +41 -0
  1324. data/misc/T210.xml +29 -0
  1325. data/misc/T211.xml +161 -0
  1326. data/misc/T214.xml +31 -0
  1327. data/misc/T216.xml +28 -0
  1328. data/misc/T221.xml +74 -0
  1329. data/misc/T226.xml +29 -0
  1330. data/misc/T23.xml +53 -0
  1331. data/misc/T231.xml +42 -0
  1332. data/misc/T235.xml +544 -0
  1333. data/misc/T236.xml +194 -0
  1334. data/misc/T240.xml +46 -0
  1335. data/misc/T241.xml +36 -0
  1336. data/misc/T242.xml +35 -0
  1337. data/misc/T246.xml +86 -0
  1338. data/misc/T248.xml +34 -0
  1339. data/misc/T249.xml +32 -0
  1340. data/misc/T253.xml +33 -0
  1341. data/misc/T256.xml +48 -0
  1342. data/misc/T257.xml +37 -0
  1343. data/misc/T259.xml +48 -0
  1344. data/misc/T261.xml +44 -0
  1345. data/misc/T262.xml +37 -0
  1346. data/misc/T263.xml +48 -0
  1347. data/misc/T271.xml +29 -0
  1348. data/misc/T272.xml +29 -0
  1349. data/misc/T283.xml +31 -0
  1350. data/misc/T284.xml +93 -0
  1351. data/misc/T286.xml +37 -0
  1352. data/misc/T287.xml +30 -0
  1353. data/misc/T288.xml +34 -0
  1354. data/misc/T290.xml +51 -0
  1355. data/misc/T291.xml +30 -0
  1356. data/misc/T292.xml +29 -0
  1357. data/misc/T293.xml +30 -0
  1358. data/misc/T295.xml +36 -0
  1359. data/misc/T3.xml +34 -0
  1360. data/misc/T304.xml +138 -0
  1361. data/misc/T305.xml +50 -0
  1362. data/misc/T306.xml +347 -0
  1363. data/misc/T308.xml +28 -0
  1364. data/misc/T309.xml +209 -0
  1365. data/misc/T311.xml +32 -0
  1366. data/misc/T312.xml +32 -0
  1367. data/misc/T313.xml +37 -0
  1368. data/misc/T321.xml +35 -0
  1369. data/misc/T322.xml +32 -0
  1370. data/misc/T33.xml +34 -0
  1371. data/misc/T331.xml +49 -0
  1372. data/misc/T333.xml +44 -0
  1373. data/misc/T334.xml +30 -0
  1374. data/misc/T335.xml +52 -0
  1375. data/misc/T336.xml +104 -0
  1376. data/misc/T340.xml +153 -0
  1377. data/misc/T344.xml +87 -0
  1378. data/misc/T345.xml +59 -0
  1379. data/misc/T346.xml +111 -0
  1380. data/misc/T349.xml +30 -0
  1381. data/misc/T353.xml +93 -0
  1382. data/misc/T355.xml +831 -0
  1383. data/misc/T363.xml +376 -0
  1384. data/misc/T365.xml +69 -0
  1385. data/misc/T366.xml +265 -0
  1386. data/misc/T368.xml +129 -0
  1387. data/misc/T371.xml +57 -0
  1388. data/misc/T372.xml +29 -0
  1389. data/misc/T374.xml +1283 -0
  1390. data/misc/T375.xml +106 -0
  1391. data/misc/T377.xml +31 -0
  1392. data/misc/T378.xml +39 -0
  1393. data/misc/T379.xml +36 -0
  1394. data/misc/T381.xml +44 -0
  1395. data/misc/T39.xml +35 -0
  1396. data/misc/T392.xml +30 -0
  1397. data/misc/T393.xml +44 -0
  1398. data/misc/T399.xml +32 -0
  1399. data/misc/T40.xml +164 -0
  1400. data/misc/T400.xml +39 -0
  1401. data/misc/T407.xml +31 -0
  1402. data/misc/T412.xml +42 -0
  1403. data/misc/T422.xml +103 -0
  1404. data/misc/T423.xml +34 -0
  1405. data/misc/T426.xml +508 -0
  1406. data/misc/T432.xml +166 -0
  1407. data/misc/T433.xml +31 -0
  1408. data/misc/T436.xml +33 -0
  1409. data/misc/T437.xml +28 -0
  1410. data/misc/T441.xml +61 -0
  1411. data/misc/T444.xml +33 -0
  1412. data/misc/T445.xml +37 -0
  1413. data/misc/T448.xml +43 -0
  1414. data/misc/T455.xml +29 -0
  1415. data/misc/T456.xml +31 -0
  1416. data/misc/T460.xml +40 -0
  1417. data/misc/T461.xml +30 -0
  1418. data/misc/T465.xml +28 -0
  1419. data/misc/T47.xml +29 -0
  1420. data/misc/T473.xml +40 -0
  1421. data/misc/T478.xml +29 -0
  1422. data/misc/T479.xml +288 -0
  1423. data/misc/T48.xml +31 -0
  1424. data/misc/T480.xml +72 -0
  1425. data/misc/T481.xml +30 -0
  1426. data/misc/T482.xml +36 -0
  1427. data/misc/T483.xml +32 -0
  1428. data/misc/T484.xml +32 -0
  1429. data/misc/T485.xml +38 -0
  1430. data/misc/T486.xml +35 -0
  1431. data/misc/T487.xml +33 -0
  1432. data/misc/T491.xml +31 -0
  1433. data/misc/T501.xml +44 -0
  1434. data/misc/T503.xml +30 -0
  1435. data/misc/T506.xml +32 -0
  1436. data/misc/T51.xml +29 -0
  1437. data/misc/T511.xml +36 -0
  1438. data/misc/T512.xml +31 -0
  1439. data/misc/T514.xml +40 -0
  1440. data/misc/T516.xml +31 -0
  1441. data/misc/T519.xml +33 -0
  1442. data/misc/T52.xml +55 -0
  1443. data/misc/T521.xml +84 -0
  1444. data/misc/T522.xml +1767 -0
  1445. data/misc/T529.xml +43 -0
  1446. data/misc/T533.xml +31 -0
  1447. data/misc/T534.xml +34 -0
  1448. data/misc/T535.xml +33 -0
  1449. data/misc/T536.xml +40 -0
  1450. data/misc/T537.xml +29 -0
  1451. data/misc/T538.xml +36 -0
  1452. data/misc/T54.xml +36 -0
  1453. data/misc/T544.xml +29 -0
  1454. data/misc/T545.xml +36 -0
  1455. data/misc/T546.xml +208 -0
  1456. data/misc/T547.xml +47 -0
  1457. data/misc/T548.xml +86 -0
  1458. data/misc/T558.xml +37 -0
  1459. data/misc/T559.xml +218 -0
  1460. data/misc/T56.xml +46 -0
  1461. data/misc/T560.xml +196 -0
  1462. data/misc/T562.xml +74 -0
  1463. data/misc/T563.xml +83 -0
  1464. data/misc/T566.xml +36 -0
  1465. data/misc/T568.xml +34 -0
  1466. data/misc/T569.xml +73 -0
  1467. data/misc/T570.xml +29 -0
  1468. data/misc/T571.xml +29 -0
  1469. data/misc/T572.xml +32 -0
  1470. data/misc/T575.xml +28 -0
  1471. data/misc/T578.xml +45 -0
  1472. data/misc/T579.xml +36 -0
  1473. data/misc/T580.xml +34 -0
  1474. data/misc/T584.xml +117 -0
  1475. data/misc/T585.xml +46 -0
  1476. data/misc/T587.xml +42 -0
  1477. data/misc/T590.xml +30 -0
  1478. data/misc/T591.xml +81 -0
  1479. data/misc/T592.xml +34 -0
  1480. data/misc/T594.xml +50 -0
  1481. data/misc/T595.xml +33 -0
  1482. data/misc/T6.xml +34 -0
  1483. data/misc/T604.xml +30 -0
  1484. data/misc/T605.xml +31 -0
  1485. data/misc/T608.xml +34 -0
  1486. data/misc/T611.xml +52 -0
  1487. data/misc/T612.xml +31 -0
  1488. data/misc/T615.xml +65 -0
  1489. data/misc/T617.xml +51 -0
  1490. data/misc/T623.xml +78 -0
  1491. data/misc/T625.xml +31 -0
  1492. data/misc/T626.xml +50 -0
  1493. data/misc/T627.xml +32 -0
  1494. data/misc/T629.xml +33 -0
  1495. data/misc/T632.xml +38 -0
  1496. data/misc/T635.xml +47 -0
  1497. data/misc/T639.xml +118 -0
  1498. data/misc/T640.xml +553 -0
  1499. data/misc/T641.xml +463 -0
  1500. data/misc/T644.xml +31 -0
  1501. data/misc/T645.xml +29 -0
  1502. data/misc/T647.xml +227 -0
  1503. data/misc/T648.xml +33 -0
  1504. data/misc/T650.xml +109 -0
  1505. data/misc/T653.xml +39 -0
  1506. data/misc/T654.xml +31 -0
  1507. data/misc/T656.xml +29 -0
  1508. data/misc/T659.xml +47 -0
  1509. data/misc/T66.xml +266 -0
  1510. data/misc/T662.xml +32 -0
  1511. data/misc/T665.xml +29 -0
  1512. data/misc/T666.xml +47 -0
  1513. data/misc/T668.xml +53 -0
  1514. data/misc/T669.xml +33 -0
  1515. data/misc/T670.xml +57 -0
  1516. data/misc/T672.xml +35 -0
  1517. data/misc/T673.xml +1123 -0
  1518. data/misc/T674.xml +32 -0
  1519. data/misc/T675.xml +38 -0
  1520. data/misc/T676.xml +31 -0
  1521. data/misc/T678.xml +72 -0
  1522. data/misc/T679.xml +36 -0
  1523. data/misc/T680.xml +48 -0
  1524. data/misc/T681.xml +38 -0
  1525. data/misc/T682.xml +58 -0
  1526. data/misc/T683.xml +32 -0
  1527. data/misc/T687.xml +89 -0
  1528. data/misc/T688.xml +38 -0
  1529. data/misc/T689.xml +44 -0
  1530. data/misc/T692.xml +61 -0
  1531. data/misc/T693.xml +34 -0
  1532. data/misc/T695.xml +39 -0
  1533. data/misc/T698.xml +30 -0
  1534. data/misc/T699.xml +29 -0
  1535. data/misc/T701.xml +118 -0
  1536. data/misc/T703.xml +45 -0
  1537. data/misc/T704.xml +41 -0
  1538. data/misc/T705.xml +30 -0
  1539. data/misc/T706.xml +151 -0
  1540. data/misc/T707.xml +115 -0
  1541. data/misc/T708.xml +125 -0
  1542. data/misc/T709.xml +29 -0
  1543. data/misc/T714.xml +30 -0
  1544. data/misc/T715.xml +34 -0
  1545. data/misc/T716.xml +47 -0
  1546. data/misc/T717.xml +33 -0
  1547. data/misc/T718.xml +50 -0
  1548. data/misc/T72.xml +30 -0
  1549. data/misc/T720.xml +35 -0
  1550. data/misc/T723.xml +39 -0
  1551. data/misc/T726.xml +46 -0
  1552. data/misc/T728.xml +38 -0
  1553. data/misc/T73.xml +30 -0
  1554. data/misc/T731.xml +34 -0
  1555. data/misc/T732.xml +37 -0
  1556. data/misc/T735.xml +277 -0
  1557. data/misc/T736.xml +29 -0
  1558. data/misc/T737.xml +191 -0
  1559. data/misc/T738.xml +1018 -0
  1560. data/misc/T743.xml +31 -0
  1561. data/misc/T744.xml +39 -0
  1562. data/misc/T745.xml +28 -0
  1563. data/misc/T747.xml +30 -0
  1564. data/misc/T748.xml +51 -0
  1565. data/misc/T749.xml +51 -0
  1566. data/misc/T750.xml +263 -0
  1567. data/misc/T752.xml +136 -0
  1568. data/misc/T753.xml +72 -0
  1569. data/misc/T755.xml +560 -0
  1570. data/misc/T756.xml +82 -0
  1571. data/misc/T759.xml +28 -0
  1572. data/misc/T760.xml +28 -0
  1573. data/misc/T762.xml +42 -0
  1574. data/misc/T771.xml +41 -0
  1575. data/misc/T772.xml +30 -0
  1576. data/misc/T78.xml +31 -0
  1577. data/misc/T783.xml +42 -0
  1578. data/misc/T786.xml +44 -0
  1579. data/misc/T789.xml +44 -0
  1580. data/misc/T792.xml +42 -0
  1581. data/misc/T795.xml +36 -0
  1582. data/misc/T797.xml +32 -0
  1583. data/misc/T8.xml +34 -0
  1584. data/misc/T808.xml +46 -0
  1585. data/misc/T811.xml +45 -0
  1586. data/misc/T812.xml +38 -0
  1587. data/misc/T813.xml +39 -0
  1588. data/misc/T814.xml +29 -0
  1589. data/misc/T815.xml +40 -0
  1590. data/misc/T816.xml +37 -0
  1591. data/misc/T820.xml +58 -0
  1592. data/misc/T821.xml +180 -0
  1593. data/misc/T829.xml +48 -0
  1594. data/misc/T83.xml +55 -0
  1595. data/misc/T831.xml +41 -0
  1596. data/misc/T835.xml +28 -0
  1597. data/misc/T836.xml +63 -0
  1598. data/misc/T837.xml +38 -0
  1599. data/misc/T844.xml +30 -0
  1600. data/misc/T845.xml +34 -0
  1601. data/misc/T846.xml +66 -0
  1602. data/misc/T847.xml +35 -0
  1603. data/misc/T848.xml +30 -0
  1604. data/misc/T849.xml +30 -0
  1605. data/misc/T850.xml +39 -0
  1606. data/misc/T852.xml +31 -0
  1607. data/misc/T853.xml +48 -0
  1608. data/misc/T854.xml +47 -0
  1609. data/misc/T855.xml +29 -0
  1610. data/misc/T856.xml +31 -0
  1611. data/misc/T859.xml +69 -0
  1612. data/misc/T868.xml +29 -0
  1613. data/misc/T875.xml +150 -0
  1614. data/misc/T88.xml +48 -0
  1615. data/misc/T883.xml +36 -0
  1616. data/misc/T886.xml +36 -0
  1617. data/misc/T887.xml +42 -0
  1618. data/misc/T888.xml +34 -0
  1619. data/misc/T889.xml +37 -0
  1620. data/misc/T890.xml +43 -0
  1621. data/misc/T891.xml +47 -0
  1622. data/misc/T892.xml +52 -0
  1623. data/misc/T893.xml +29 -0
  1624. data/misc/T894.xml +39 -0
  1625. data/misc/T897.xml +31 -0
  1626. data/misc/T9.xml +50 -0
  1627. data/misc/T90.xml +31 -0
  1628. data/misc/T901.xml +234 -0
  1629. data/misc/T902.xml +31 -0
  1630. data/misc/T903.xml +30 -0
  1631. data/misc/T904.xml +33 -0
  1632. data/misc/T906.xml +31 -0
  1633. data/misc/T91.xml +107 -0
  1634. data/misc/T912.xml +32 -0
  1635. data/misc/T913.xml +43 -0
  1636. data/misc/T92.xml +98 -0
  1637. data/misc/T921.xml +33 -0
  1638. data/misc/T922.xml +33 -0
  1639. data/misc/T923.xml +35 -0
  1640. data/misc/T924.xml +29 -0
  1641. data/misc/T927.xml +29 -0
  1642. data/misc/T934.xml +34 -0
  1643. data/misc/T935.xml +157 -0
  1644. data/misc/T936.xml +86 -0
  1645. data/misc/T937.xml +47 -0
  1646. data/misc/T938.xml +35 -0
  1647. data/misc/T939.xml +29 -0
  1648. data/misc/T940.xml +32 -0
  1649. data/misc/T943.xml +53 -0
  1650. data/misc/T944.xml +43 -0
  1651. data/misc/T945.xml +56 -0
  1652. data/misc/T950.xml +75 -0
  1653. data/misc/T951.xml +36 -0
  1654. data/misc/T952.xml +30 -0
  1655. data/misc/T955.xml +32 -0
  1656. data/misc/T959.xml +29 -0
  1657. data/misc/T960.xml +40 -0
  1658. data/misc/T962.xml +38 -0
  1659. data/misc/T963.xml +129 -0
  1660. data/misc/T964.xml +46 -0
  1661. data/misc/T969.xml +38 -0
  1662. data/misc/T974.xml +28 -0
  1663. data/misc/T976.xml +32 -0
  1664. data/misc/T98.xml +1511 -0
  1665. data/misc/T980.xml +35 -0
  1666. data/misc/T981.xml +46 -0
  1667. data/misc/T982.xml +32 -0
  1668. data/misc/T983.xml +29 -0
  1669. data/misc/T984.xml +30 -0
  1670. data/misc/T985.xml +28 -0
  1671. data/misc/T986.xml +28 -0
  1672. data/misc/T987.xml +36 -0
  1673. data/misc/T988.xml +48 -0
  1674. data/misc/T990.xml +34 -0
  1675. data/misc/T998.xml +30 -0
  1676. data/misc/T999.xml +39 -0
  1677. data/misc/TA.xml +34 -0
  1678. data/misc/TAX.xml +40 -0
  1679. data/misc/TBI.xml +35 -0
  1680. data/misc/TC2.xml +29 -0
  1681. data/misc/TCD.xml +43 -0
  1682. data/misc/TD1.xml +37 -0
  1683. data/misc/TD3.xml +37 -0
  1684. data/misc/TD4.xml +32 -0
  1685. data/misc/TD5.xml +42 -0
  1686. data/misc/TDS.xml +31 -0
  1687. data/misc/TDT.xml +31 -0
  1688. data/misc/TED.xml +35 -0
  1689. data/misc/TEM.xml +32 -0
  1690. data/misc/TER.xml +33 -0
  1691. data/misc/TF.xml +31 -0
  1692. data/misc/TFR.xml +31 -0
  1693. data/misc/TFS.xml +35 -0
  1694. data/misc/THE.xml +32 -0
  1695. data/misc/TI.xml +34 -0
  1696. data/misc/TI01.xml +34 -0
  1697. data/misc/TI03.xml +29 -0
  1698. data/misc/TI05.xml +65 -0
  1699. data/misc/TI10.xml +28 -0
  1700. data/misc/TI11.xml +41 -0
  1701. data/misc/TI13.xml +29 -0
  1702. data/misc/TI14.xml +30 -0
  1703. data/misc/TI40.xml +36 -0
  1704. data/misc/TI43.xml +61 -0
  1705. data/misc/TI58.xml +32 -0
  1706. data/misc/TI60.xml +29 -0
  1707. data/misc/TI61.xml +30 -0
  1708. data/misc/TI62.xml +30 -0
  1709. data/misc/TI63.xml +33 -0
  1710. data/misc/TIA.xml +34 -0
  1711. data/misc/TID.xml +36 -0
  1712. data/misc/TII.xml +32 -0
  1713. data/misc/TIS.xml +31 -0
  1714. data/misc/TLN.xml +49 -0
  1715. data/misc/TMD.xml +36 -0
  1716. data/misc/TOA.xml +32 -0
  1717. data/misc/TOO.xml +30 -0
  1718. data/misc/TOV.xml +33 -0
  1719. data/misc/TPB.xml +31 -0
  1720. data/misc/TPD.xml +31 -0
  1721. data/misc/TRF.xml +32 -0
  1722. data/misc/TRL.xml +32 -0
  1723. data/misc/TRN.xml +31 -0
  1724. data/misc/TRS.xml +32 -0
  1725. data/misc/TS.xml +34 -0
  1726. data/misc/TS2.xml +46 -0
  1727. data/misc/TS3.xml +51 -0
  1728. data/misc/TSD.xml +29 -0
  1729. data/misc/TSI.xml +31 -0
  1730. data/misc/TSP.xml +31 -0
  1731. data/misc/TST.xml +44 -0
  1732. data/misc/TSU.xml +35 -0
  1733. data/misc/TT.xml +29 -0
  1734. data/misc/TUD.xml +30 -0
  1735. data/misc/TXI.xml +37 -0
  1736. data/misc/TXN.xml +37 -0
  1737. data/misc/TXP.xml +37 -0
  1738. data/misc/UC.xml +31 -0
  1739. data/misc/UCS.xml +35 -0
  1740. data/misc/UD.xml +44 -0
  1741. data/misc/UDA.xml +34 -0
  1742. data/misc/UIT.xml +30 -0
  1743. data/misc/UM.xml +37 -0
  1744. data/misc/UQS.xml +31 -0
  1745. data/misc/UR.xml +29 -0
  1746. data/misc/USD.xml +39 -0
  1747. data/misc/USI.xml +30 -0
  1748. data/misc/UWI.xml +31 -0
  1749. data/misc/V1.xml +36 -0
  1750. data/misc/V2.xml +44 -0
  1751. data/misc/V3.xml +31 -0
  1752. data/misc/V4.xml +28 -0
  1753. data/misc/V5.xml +30 -0
  1754. data/misc/V9.xml +47 -0
  1755. data/misc/VAD.xml +38 -0
  1756. data/misc/VAR.xml +34 -0
  1757. data/misc/VAT.xml +39 -0
  1758. data/misc/VC.xml +40 -0
  1759. data/misc/VC1.xml +42 -0
  1760. data/misc/VDI.xml +42 -0
  1761. data/misc/VEH.xml +43 -0
  1762. data/misc/VID.xml +40 -0
  1763. data/misc/VR.xml +36 -0
  1764. data/misc/VRC.xml +32 -0
  1765. data/misc/W01.xml +43 -0
  1766. data/misc/W03.xml +34 -0
  1767. data/misc/W04.xml +42 -0
  1768. data/misc/W05.xml +35 -0
  1769. data/misc/W06.xml +39 -0
  1770. data/misc/W07.xml +38 -0
  1771. data/misc/W08.xml +36 -0
  1772. data/misc/W09.xml +36 -0
  1773. data/misc/W1.xml +28 -0
  1774. data/misc/W10.xml +36 -0
  1775. data/misc/W12.xml +49 -0
  1776. data/misc/W13.xml +32 -0
  1777. data/misc/W14.xml +32 -0
  1778. data/misc/W15.xml +33 -0
  1779. data/misc/W17.xml +36 -0
  1780. data/misc/W18.xml +30 -0
  1781. data/misc/W19.xml +45 -0
  1782. data/misc/W2.xml +43 -0
  1783. data/misc/W20.xml +37 -0
  1784. data/misc/W27.xml +37 -0
  1785. data/misc/W28.xml +35 -0
  1786. data/misc/W3.xml +33 -0
  1787. data/misc/W4.xml +32 -0
  1788. data/misc/W5.xml +33 -0
  1789. data/misc/W6.xml +31 -0
  1790. data/misc/W66.xml +37 -0
  1791. data/misc/W76.xml +33 -0
  1792. data/misc/WLD.xml +37 -0
  1793. data/misc/WS.xml +30 -0
  1794. data/misc/X01.xml +37 -0
  1795. data/misc/X02.xml +32 -0
  1796. data/misc/X1.xml +44 -0
  1797. data/misc/X2.xml +33 -0
  1798. data/misc/X4.xml +46 -0
  1799. data/misc/X7.xml +29 -0
  1800. data/misc/XD.xml +32 -0
  1801. data/misc/XH.xml +34 -0
  1802. data/misc/XPO.xml +31 -0
  1803. data/misc/XQ.xml +32 -0
  1804. data/misc/Y1.xml +36 -0
  1805. data/misc/Y2.xml +37 -0
  1806. data/misc/Y3.xml +38 -0
  1807. data/misc/Y4.xml +37 -0
  1808. data/misc/Y5.xml +28 -0
  1809. data/misc/Y6.xml +30 -0
  1810. data/misc/Y7.xml +32 -0
  1811. data/misc/YNQ.xml +37 -0
  1812. data/misc/ZA.xml +35 -0
  1813. data/misc/ZC1.xml +36 -0
  1814. data/misc/ZD.xml +36 -0
  1815. data/misc/ZR.xml +43 -0
  1816. data/misc/ZT.xml +33 -0
  1817. data/test/tc_factory_270.rb +170 -0
  1818. data/test/tc_factory_270interchange.rb +306 -0
  1819. data/test/tc_factory_997.rb +11 -7
  1820. data/test/tc_parse_270.rb +98 -0
  1821. data/test/tc_parse_270interchange.rb +184 -0
  1822. data/test/tc_parse_997.rb +4 -4
  1823. metadata +1821 -35
  1824. data/lib/X12/x12syntax.treetop +0 -256
  1825. data/misc/997.d12 +0 -118
  1826. data/misc/IEA.d12 +0 -10
  1827. data/misc/ISA.d12 +0 -24
  1828. data/misc/SE.d12 +0 -12
  1829. data/misc/ST.d12 +0 -7
  1830. data/misc/Tbl143.d12 +0 -302
  1831. data/misc/Tbl479.d12 +0 -238
  1832. data/misc/Tbl715.d12 +0 -11
  1833. data/misc/Tbl716.d12 +0 -27
  1834. data/misc/Tbl717.d12 +0 -10
  1835. data/misc/Tbl718.d12 +0 -29
  1836. data/misc/Tbl720.d12 +0 -12
  1837. data/misc/Tbl723.d12 +0 -14
  1838. data/misc/TblI01.d12 +0 -11
  1839. data/misc/TblI03.d12 +0 -6
  1840. data/misc/TblI05.d12 +0 -42
  1841. data/misc/TblI10.d12 +0 -5
  1842. data/misc/TblI11.d12 +0 -18
  1843. data/misc/TblI13.d12 +0 -6
  1844. data/misc/TblI14.d12 +0 -7
data/CHANGELOG CHANGED
@@ -1,6 +1,11 @@
1
1
  = CHANGELOG
2
2
 
3
- $Id: CHANGELOG 60 2009-03-19 22:39:00Z ikk $
3
+ $Id: CHANGELOG 92 2009-05-13 22:12:10Z ikk $
4
+
5
+ == 5/15/09 - Release 1.1.0
6
+
7
+ * Ported X12 definitions and definition parser from proprietary d12 language to XML.
8
+ * Added X12 definitions for 270 message and all its dependent segments and validation tables.
4
9
 
5
10
  == 3/19/09 - Release 0.1.0
6
11
 
data/README CHANGED
@@ -1,6 +1,6 @@
1
1
  = X12Parser - a library to manipulate X12 structures using native Ruby syntax
2
2
 
3
- $Id: README 40 2008-11-13 19:51:31Z ikk $
3
+ $Id: README 92 2009-05-13 22:12:10Z ikk $
4
4
 
5
5
  *WARNING* <tt>The project is in development. Contributors are welcome.</tt>
6
6
 
@@ -72,57 +72,56 @@ across the wire - X12 or no X12. The X12 structures are defined in
72
72
  so-called Implementation Guides - thick books with all the data pieces
73
73
  spelled out. There is no other choice, but to invent a
74
74
  computer-readable definition language that will codify these
75
- books. For example, the X12/997 message can be defined as
76
-
77
- loop 997 1:1
78
- {
79
- segment ST 1:1
80
- segment AK1 1:1
81
- loop L1000 0:999999
82
- {
83
- segment AK2 0:1
84
- loop L1010 0:999999
85
- {
86
- segment AK3 0:1
87
- segment AK4 0:99
88
- } # L1010
89
- segment AK5 1:1
90
- } # L1000
91
- segment AK9 1:1
92
- segment SE 1:1
93
- } # 997
94
-
95
- Namely, the 997 is a 'loop' containing segments ST (only one - '1:1'),
96
- AK1 (also only one), another loop L1000 (zero or many repeats),
97
- segments AK9 and SE. The loop L1000 can contain a segment AK2
98
- (optional - '0:1') and another loop L1010 (zero or many), and so on.
75
+ books. For familiarity sake we'll use XML. For example, the X12/997
76
+ message can be defined as
77
+
78
+ <Definition>
79
+ <Loop name="997">
80
+ <Segment name="ST" min="1" max="1"/>
81
+ <Segment name="AK1" min="1" max="1"/>
82
+ <Loop name="L1000" max="999999" required="y">
83
+ <Segment name="AK2" max="1" required="n"/>
84
+ <Loop name="L1010" max="999999" required="n">
85
+ <Segment name="AK3" max="1" required="n"/>
86
+ <Segment name="AK4" max="99" required="n"/>
87
+ </Loop>
88
+ <Segment name="AK5" max="1" required="y"/>
89
+ </Loop>
90
+ <Segment name="AK9" max="1" required="y"/>
91
+ <Segment name="SE" max="1" required="y"/>
92
+ </Loop>
93
+ </Definition>
94
+
95
+ Namely, the 997 is a 'loop' containing segments ST (only one), AK1
96
+ (also only one), another loop L1000 (zero or many repeats), segments
97
+ AK9 and SE. The loop L1000 can contain a segment AK2 (optional) and
98
+ another loop L1010 (zero or many), and so on.
99
99
 
100
100
  The segments' structure can be further defined as, for example,
101
101
 
102
- segment AK2 {
103
- TransactionSetIdentifierCode S R 3-3 Tbl143
104
- TransactionSetControlNumber S R 4-9
105
- } # AK2
102
+ <Segment name="AK2">
103
+ <Field name="TransactionSetIdentifierCode" required="y" min="3" max="3" validation="T143"/>
104
+ <Field name="TransactionSetControlNumber" required="y" min="4" max="9"/>
105
+ </Segment>
106
106
 
107
- wihch defines a segment AK2 as having to fields:
107
+ which defines a segment AK2 as having two fields:
108
108
  TransactionSetIdentifierCode and TransactionSetControlNumber. The
109
109
  field TransactionSetIdentifierCode is defined as having a type of
110
- string ('S'), begin required ('R'), having length of minimum 3 and
111
- maximum 3 characters ('3-3'), and being validated against a table
112
- Tbl143. The validation table is defined as
110
+ string (default), being required, having length of minimum 3 and
111
+ maximum 3 characters, and being validated against a table T143. The
112
+ validation table is defined as
113
113
 
114
- table Tbl143 {
115
- 100 Insurance Plan Description
116
- 101 Name and Address Lists
114
+ <Table name="T143">
115
+ <Entry name="100" value="Insurance Plan Description"/>
116
+ <Entry name="101" value="Name and Address Lists"/>
117
117
  ...
118
- 997 Functional Acknowledgment
119
- 998 Set Cancellation
120
- } # Tbl143
118
+ <Entry name="997" value="Functional Acknowledgment"/>
119
+ <Entry name="998" value="Set Cancellation"/>
120
+ </Table>
121
121
 
122
- where required values are first tokens on each line, i.e., 100, 101,
123
- ..., 997, 998.
122
+ with entries having just names and values.
124
123
 
125
- This message is fully flashed out in an example 'misc/997.d12' file,
124
+ This message is fully flashed out in an example 'misc/997.xml' file,
126
125
  copied from the ASC X12N 276/277 (004010X093) "Health Care
127
126
  Claim Status Request and Response" National Electronic Data
128
127
  Interchange Transaction Set Implementation Guide.
@@ -139,11 +138,11 @@ in this field is still in the eye of the beholder, but, at least its
139
138
  location is clearly identified in the message.
140
139
 
141
140
 
142
- === X12 Structure Definition Language (d12)
141
+ === X12 Structure Definition Language
143
142
 
144
143
  The syntax of the X12 structure definition language should be apparent
145
- from the '997.d12' file enclosed with the package. The strict definition
146
- is formalized in 'lib/X12/x12syntax.treetop' file.
144
+ from the '997.xml' file enclosed with the package. A more detailed
145
+ description follows in Appendix A.
147
146
 
148
147
  === Parsing
149
148
 
@@ -153,8 +152,8 @@ example/parse.rb):
153
152
  require 'x12'
154
153
 
155
154
  # Read message definition and create an actual parser
156
- # by compiling .d12 file
157
- parser = X12::Parser.new('misc/997.d12')
155
+ # by compiling the XML file
156
+ parser = X12::Parser.new('misc/997.xml')
158
157
 
159
158
  # Define a test message to parse
160
159
  m997='ST*997*2878~AK1*HS*293328532~AK2*270*307272179~'\
@@ -193,7 +192,7 @@ Here is how to perform a reverse operation and generate a well-formed
193
192
 
194
193
  # Read message definition and create an actual parser
195
194
  # by compiling .d12 file
196
- parser = X12::Parser.new('misc/997.d12')
195
+ parser = X12::Parser.new('misc/997.xml')
197
196
 
198
197
  # Make a new 997 message
199
198
  r = parser.factory('997')
@@ -270,11 +269,6 @@ You can install X12 library with the following command.
270
269
 
271
270
  % gem install X12
272
271
 
273
- If you install directly from the X12*.gem file, it requires these
274
- packages to be installed first:
275
- * {Treetop}[http://rubyforge.org/projects/treetop/]
276
- * {Polyglot}[http://rubyforge.org/projects/polyglot/]
277
-
278
272
  == License
279
273
 
280
274
  X12 library is released under the Lesser GPL license, see
@@ -286,12 +280,6 @@ http://www.gnu.org/licenses/lgpl.txt
286
280
  * Field types and sizes are ignored.
287
281
  * No access methods for composites' fields.
288
282
 
289
- == Wish list
290
-
291
- * .d12 files should have an 'include' facility, so data definitions can be reused for different messages.
292
-
293
- * It would be nice to codify all popular X12 messages in .d12 format.
294
-
295
283
  == Support
296
284
 
297
285
  Please use the following:
@@ -306,4 +294,171 @@ The authors of the project were inspired by the following works:
306
294
 
307
295
  1. The Perl X12 parser by Prasad Poruporuthan, http://search.cpan.org/~prasad/X12-0.09/lib/X12/Parser.pm
308
296
  2. The Ruby port of the above by Chris Parker, http://rubyforge.org/projects/x12-parser/
309
- 3. Treetop Ruby parser, http://treetop.rubyforge.org
297
+
298
+ == Appendix A. Structure definition language
299
+
300
+ The structure definition language uses XML to describe X12 message
301
+ format. A message definition can be in a single file or in several. If
302
+ the definition parser encounters an element (segment, composite, or
303
+ table), which has not been previously defined, it tries to load the
304
+ definition from the file with the same name and in the same
305
+ directory. For example, if a loop mentions a segment named 'ST' and
306
+ this segment is not defined, the parser will try to load and parse a
307
+ file called 'ST.xml'. This convention works for any name unless it
308
+ conflicts with a Microsoft's device name, see Appendix B.
309
+
310
+ Each element in a structure definition (except 'Definition') must have
311
+ an attribute called 'name'. It is used to set/get respective content
312
+ from Ruby. If an element's 'name' attribute cannot be a valid Ruby
313
+ identifier (for example, '270'), the parser will prepend the name with
314
+ '_' (underscore). I.e., this expression is not valid:
315
+
316
+ @r.FG[1].270[1].ST.TransactionSetIdentifierCode
317
+
318
+ but his one is
319
+
320
+ @r.FG[1]._270[1].ST.TransactionSetIdentifierCode
321
+
322
+ Each XML file has to have a single root element, one of the following:
323
+
324
+ === Definition
325
+
326
+ The 'Definition' element can have nested loops, segments, composites,
327
+ and tables. It is used to provide 'artificial' root element for XML
328
+ document when several definitions are in one physical file. For
329
+ example, this is `misc/997single.xml' (edited for size):
330
+
331
+ <Definition>
332
+ <Segment name="ST">
333
+ <Field name="TransactionSetIdentifierCode" min="3" max="3" validation="T143"/>
334
+ <Field name="TransactionSetControlNumber" min="4" max="9"/>
335
+ <Field name="ImplementationConventionReference" required="y" min="1" max="35"/>
336
+ </Segment>
337
+
338
+ <Composite name="C030">
339
+ <Field name="ElementPositionInSegment" type="long" required="n" min="1" max="2"/>
340
+ <Field name="ComponentDataElementPositionInComposite" type="long" required="y" min="1" max="2"/>
341
+ <Field name="RepeatingDataElementPosition" type="long" required="y" min="1" max="4"/>
342
+ </Composite>
343
+
344
+ <Segment name="AK1">
345
+ <Field name="FunctionalIdentifierCode" min="2" max="2" validation="T479"/>
346
+ <Field name="GroupControlNumber" type="long" min="1" max="9"/>
347
+ </Segment>
348
+
349
+ <Table name="T723">
350
+ <Entry name="1" value="Mandatory data element missing"/>
351
+ <Entry name="2" value="Conditional required data element missing."/>
352
+ <!-- ... other entries -->
353
+ <Entry name="13" value="Too Many Components"/>
354
+ </Table>
355
+
356
+ <!-- ... other segments or composites or tables -->
357
+
358
+ <Loop name="997">
359
+ <Segment name="ST" min="1" max="1"/>
360
+ <Segment name="AK1" min="1" max="1"/>
361
+ <Loop name="L1000" max="999999" required="y">
362
+ <Segment name="AK2" max="1" required="n"/>
363
+ <Loop name="L1010" max="999999" required="n">
364
+ <Segment name="AK3" max="1" required="n"/>
365
+ <Segment name="AK4" max="99" required="n"/>
366
+ </Loop>
367
+ <Segment name="AK5" max="1" required="y"/>
368
+ </Loop>
369
+ <Segment name="AK9" max="1" required="y"/>
370
+ <Segment name="SE" max="1" required="y"/>
371
+ </Loop>
372
+
373
+ </Definition>
374
+
375
+ This element does not have any attributes and cannot be addressed from Ruby's API.
376
+
377
+ === Loop
378
+
379
+ The 'Loop' element is a main element to define either loops or whole
380
+ messages. Loops can have nested segments and other loops.
381
+
382
+ Note, that a segment defined inside a loop takes precedence over
383
+ previously defined segments. This is convenient if a special version
384
+ of a segment is required. For example, this is a general definition of
385
+ an 'ST' segment stored in a 'ST.xml' file:
386
+
387
+ <Segment name="ST">
388
+ <Field name="TransactionSetIdentifierCode" min="3" max="3" validation="T143"/>
389
+ <Field name="TransactionSetControlNumber" min="4" max="9"/>
390
+ <Field name="ImplementationConventionReference" required="y" min="1" max="35"/>
391
+ </Segment>
392
+
393
+ If you want the X12 parser to look for a particular message type, say '997', do this:
394
+
395
+ <Loop name="997">
396
+ <Segment name="ST" max="1">
397
+ <Field name="TransactionSetIdentifierCode" const="997"/>
398
+ <Field name="TransactionSetControlNumber" min="4" max="9"/>
399
+ </Segment>
400
+ <Segment name="AK1" max="1"/>
401
+ <!-- ... the rest of the 997 definition -->
402
+ </Loop>
403
+
404
+ A loop can have the following attributes:
405
+ * min - minimal number of repeats allowed, default is 0.
406
+ * max - maximum number of repeats allowed, default is 'inf' (infinite).
407
+ * required - if the loop is required (boolean), default is false. The true value implies min="1".
408
+ * comment - ignored
409
+
410
+ === Segment
411
+
412
+ Segments can only have nested fields. Attributes are as follows:
413
+ * min - minimal number of repeats allowed, default is 0. Value min>0 implies required="y".
414
+ * max - maximum number of repeats allowed, default is 'inf' (infinite).
415
+ * required - if the segment is required (boolean), default is false. The true value implies min="1".
416
+ * comment - ignored
417
+
418
+ All attributed except 'name' are ignored in standalone definitions outside any loop.
419
+
420
+ === Composite
421
+ Same as a segment.
422
+
423
+ === Table
424
+
425
+ Tables can only have entries defined as name-value pairs. Order is
426
+ not important. Only required attribute is 'name'.
427
+
428
+ === Field
429
+
430
+ A field cannot have any nested elements, but its attributes are very important:
431
+ * min - minimal number of characters allowed, default is 0. Value min>0 DOES NOT imply required="y" - the field can be missing, but may require a minimum length if present.
432
+ * max - maximum number of characters allowed, default is 'inf' (infinite).
433
+ * required - if the field is required (boolean), default is false. The true value DOES NOT imply min="1".
434
+ * type - one of the 'string' (default), 'integer', 'long', or 'double'. These abbreviations are also valid: 'str', 'int'.
435
+ * const - forces the field to have this value, if present.
436
+ * validation - the name of a validation table, if any.
437
+ * comment - ignored
438
+
439
+ == Appendix B. Microsoft's device file names
440
+
441
+ Apparently, in Microsoft's operating systems one cannot create a file
442
+ named like 'device_name.whatever', for example, 'CON.xml' is highly
443
+ illegal. For such cases, the X12 parser creates an exception and
444
+ expects 'CON_.xml' instead.
445
+
446
+ Here is the full device list according to Microsoft (see
447
+ http://support.microsoft.com/kb/74496):
448
+
449
+ Name Function
450
+ ---- --------
451
+ CON Keyboard and display
452
+ PRN System list device, usually a parallel port
453
+ AUX Auxiliary device, usually a serial port
454
+ CLOCK$ System real-time clock
455
+ NUL Bit-bucket device
456
+ A:-Z: Drive letters
457
+ COM1 First serial communications port
458
+ LPT1 First parallel printer port
459
+ LPT2 Second parallel printer port
460
+ LPT3 Third parallel printer port
461
+ COM2 Second serial communications port
462
+ COM3 Third serial communications port
463
+ COM4 Fourth serial communications port
464
+
data/Rakefile CHANGED
@@ -20,7 +20,7 @@
20
20
  # License along with this library; if not, write to the Free Software
21
21
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
22
  #
23
- # $Id: Rakefile 58 2009-03-19 20:31:26Z ikk $
23
+ # $Id: Rakefile 92 2009-05-13 22:12:10Z ikk $
24
24
  #++
25
25
  require 'rubygems'
26
26
  require 'rake'
@@ -82,8 +82,10 @@ end
82
82
 
83
83
  task :test do |x|
84
84
  Rake::TestTask.new { |t|
85
- t.libs << "test"
85
+ # t.libs << "test"
86
86
  t.test_files = Dir['test/tc_*.rb']
87
+ # t.test_files = Dir['test/tc_factory_270interchange.rb']
88
+ # t.test_files = Dir['test/tc_parse_270interchange.rb']
87
89
  t.verbose = true
88
90
  }
89
91
  end # :test
@@ -126,7 +128,6 @@ spec = Gem::Specification.new do |s|
126
128
  s.requirements << 'none'
127
129
  s.require_path = 'lib'
128
130
  s.autorequire = 'x12'
129
- s.add_dependency "treetop"
130
131
 
131
132
  [
132
133
  "Rakefile",
@@ -136,8 +137,7 @@ spec = Gem::Specification.new do |s|
136
137
  "COPYING",
137
138
  "doc/**/*",
138
139
  "lib/**/*",
139
- "test/tc_factory_997.rb",
140
- "test/tc_parse_997.rb",
140
+ "test/**/*",
141
141
  "example/**/*",
142
142
  "misc/**/*"
143
143
  ].each do |i|
@@ -148,7 +148,7 @@ spec = Gem::Specification.new do |s|
148
148
  puts "Files included into the GEM:" if $VERBOSE
149
149
  pp s.files if $VERBOSE
150
150
 
151
- s.test_files = Dir.glob( "test/**/ts_*rb" )
151
+ s.test_files = Dir.glob( "test/tc_*rb" )
152
152
  end
153
153
 
154
154
  Rake::GemPackageTask.new(spec) do |p|
@@ -156,13 +156,3 @@ Rake::GemPackageTask.new(spec) do |p|
156
156
  p.need_tar = true
157
157
  p.need_zip = true
158
158
  end
159
-
160
- # Compile treetop definition into Ruby code. Like this:
161
- # >rake lib/X12/X12syntax.rb
162
- # It's needed only for debugging Treetop's internals.
163
- rule '.rb' => ['.treetop'] do |t|
164
- require 'treetop'
165
- compiler = Treetop::Compiler::GrammarCompiler.new
166
- puts "Compiling [#{t.source}]"
167
- compiler.compile(t.source)
168
- end
@@ -25,7 +25,7 @@ require 'x12'
25
25
 
26
26
  # Read message definition and create an actual parser
27
27
  # by compiling .d12 file
28
- parser = X12::Parser.new('misc/997.d12')
28
+ parser = X12::Parser.new('misc/997single.xml')
29
29
 
30
30
  # Make a new 997 message
31
31
  r = parser.factory('997')
@@ -25,7 +25,7 @@ require 'x12'
25
25
 
26
26
  # Read message definition and create an actual parser
27
27
  # by compiling .d12 file
28
- parser = X12::Parser.new('misc/997.d12')
28
+ parser = X12::Parser.new('misc/997single.xml')
29
29
 
30
30
  # Define a test message to parse
31
31
  m997='ST*997*2878~AK1*HS*293328532~AK2*270*307272179~'\
data/lib/X12.rb CHANGED
@@ -24,7 +24,6 @@
24
24
  $:.unshift(File.dirname(__FILE__))
25
25
 
26
26
  require 'rubygems'
27
- require 'treetop'
28
27
 
29
28
  require 'X12/base'
30
29
  require 'X12/empty'
@@ -33,18 +32,16 @@ require 'X12/composite'
33
32
  require 'X12/segment'
34
33
  require 'X12/table'
35
34
  require 'X12/loop'
35
+ require 'X12/xmldefinitions'
36
36
  require 'X12/parser'
37
37
 
38
- # This relies on the polyglot package to compile and load x12syntax.treetop
39
- require 'x12/x12syntax'
40
-
41
- # $Id: X12.rb 59 2009-03-19 22:32:13Z ikk $
38
+ # $Id: X12.rb 91 2009-05-13 22:11:10Z ikk $
42
39
  #
43
40
  # Package implementing direct manipulation of X12 structures using Ruby syntax.
44
41
 
45
42
  module X12
46
43
 
47
- VERSION = '0.1.0'
44
+ VERSION = '1.1.0'
48
45
  EMPTY = Empty.new()
49
-
46
+ TEST_REPEAT = 100
50
47
  end