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