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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.project +13 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +100 -0
- data/Rakefile +26 -0
- data/example/factory.rb +92 -0
- data/example/parse.rb +57 -0
- data/init.rb +1 -0
- data/lib/x12.rb +48 -0
- data/lib/x12/base.rb +226 -0
- data/lib/x12/composite.rb +37 -0
- data/lib/x12/empty.rb +43 -0
- data/lib/x12/field.rb +94 -0
- data/lib/x12/loop.rb +96 -0
- data/lib/x12/parser.rb +133 -0
- data/lib/x12/segment.rb +114 -0
- data/lib/x12/table.rb +44 -0
- data/lib/x12/version.rb +3 -0
- data/lib/x12/xmldefinitions.rb +173 -0
- data/misc/270.xml +152 -0
- data/misc/270interchange.xml +164 -0
- data/misc/271.xml +125 -0
- data/misc/276.xml +93 -0
- data/misc/277.xml +95 -0
- data/misc/832.xml +127 -0
- data/misc/834.xml +92 -0
- data/misc/835.xml +84 -0
- data/misc/837p.xml +255 -0
- data/misc/850.xml +66 -0
- data/misc/850dsd.xml +59 -0
- data/misc/997.xml +55 -0
- data/misc/997single.xml +835 -0
- data/misc/999.xml +54 -0
- data/misc/AAA.xml +31 -0
- data/misc/ACD.xml +30 -0
- data/misc/ACK.xml +56 -0
- data/misc/ACS.xml +31 -0
- data/misc/ACT.xml +36 -0
- data/misc/AD1.xml +32 -0
- data/misc/ADI.xml +31 -0
- data/misc/ADJ.xml +44 -0
- data/misc/ADT.xml +37 -0
- data/misc/ADV.xml +34 -0
- data/misc/ADX.xml +31 -0
- data/misc/AEI.xml +30 -0
- data/misc/AES.xml +32 -0
- data/misc/AIN.xml +40 -0
- data/misc/AK1.xml +30 -0
- data/misc/AK2.xml +30 -0
- data/misc/AK3.xml +31 -0
- data/misc/AK4.xml +31 -0
- data/misc/AK5.xml +33 -0
- data/misc/AK9.xml +36 -0
- data/misc/AM1.xml +33 -0
- data/misc/AMT.xml +30 -0
- data/misc/ANI.xml +36 -0
- data/misc/AOC.xml +32 -0
- data/misc/AOI.xml +40 -0
- data/misc/AOL.xml +35 -0
- data/misc/AOR.xml +40 -0
- data/misc/AP1.xml +40 -0
- data/misc/APE.xml +32 -0
- data/misc/API.xml +35 -0
- data/misc/APR.xml +30 -0
- data/misc/ARC.xml +30 -0
- data/misc/ARS.xml +32 -0
- data/misc/ASI.xml +30 -0
- data/misc/ASL.xml +31 -0
- data/misc/ASM.xml +30 -0
- data/misc/ASO.xml +38 -0
- data/misc/AST.xml +38 -0
- data/misc/AT1.xml +28 -0
- data/misc/AT2.xml +39 -0
- data/misc/AT3.xml +34 -0
- data/misc/AT4.xml +28 -0
- data/misc/AT5.xml +33 -0
- data/misc/AT6.xml +30 -0
- data/misc/AT7.xml +34 -0
- data/misc/AT8.xml +34 -0
- data/misc/AT9.xml +35 -0
- data/misc/ATA.xml +30 -0
- data/misc/ATH.xml +32 -0
- data/misc/ATN.xml +33 -0
- data/misc/ATR.xml +37 -0
- data/misc/ATV.xml +37 -0
- data/misc/AVA.xml +29 -0
- data/misc/AWD.xml +31 -0
- data/misc/AXL.xml +35 -0
- data/misc/B1.xml +33 -0
- data/misc/B10.xml +36 -0
- data/misc/B11.xml +38 -0
- data/misc/B12.xml +30 -0
- data/misc/B13.xml +29 -0
- data/misc/B2.xml +39 -0
- data/misc/B2A.xml +29 -0
- data/misc/B3.xml +41 -0
- data/misc/B3A.xml +29 -0
- data/misc/B3B.xml +38 -0
- data/misc/B4.xml +40 -0
- data/misc/B9.xml +30 -0
- data/misc/B9A.xml +28 -0
- data/misc/BA1.xml +39 -0
- data/misc/BA2.xml +38 -0
- data/misc/BAA.xml +33 -0
- data/misc/BAK.xml +37 -0
- data/misc/BAL.xml +30 -0
- data/misc/BAT.xml +31 -0
- data/misc/BAU.xml +33 -0
- data/misc/BAX.xml +41 -0
- data/misc/BBC.xml +29 -0
- data/misc/BC.xml +34 -0
- data/misc/BCA.xml +42 -0
- data/misc/BCD.xml +42 -0
- data/misc/BCH.xml +43 -0
- data/misc/BCI.xml +35 -0
- data/misc/BCM.xml +39 -0
- data/misc/BCO.xml +39 -0
- data/misc/BCP.xml +40 -0
- data/misc/BCQ.xml +34 -0
- data/misc/BCS.xml +39 -0
- data/misc/BCT.xml +37 -0
- data/misc/BCU.xml +34 -0
- data/misc/BDD.xml +30 -0
- data/misc/BDS.xml +30 -0
- data/misc/BEG.xml +39 -0
- data/misc/BEN.xml +33 -0
- data/misc/BEP.xml +29 -0
- data/misc/BFR.xml +40 -0
- data/misc/BFS.xml +37 -0
- data/misc/BGF.xml +30 -0
- data/misc/BGN.xml +36 -0
- data/misc/BGP.xml +36 -0
- data/misc/BHT.xml +33 -0
- data/misc/BIA.xml +33 -0
- data/misc/BIG.xml +38 -0
- data/misc/BIN.xml +29 -0
- data/misc/BIX.xml +38 -0
- data/misc/BJF.xml +34 -0
- data/misc/BL.xml +44 -0
- data/misc/BLI.xml +45 -0
- data/misc/BLN.xml +33 -0
- data/misc/BLR.xml +30 -0
- data/misc/BLS.xml +33 -0
- data/misc/BMA.xml +35 -0
- data/misc/BMG.xml +30 -0
- data/misc/BMM.xml +37 -0
- data/misc/BMP.xml +31 -0
- data/misc/BMS.xml +36 -0
- data/misc/BNR.xml +33 -0
- data/misc/BNX.xml +31 -0
- data/misc/BOL.xml +38 -0
- data/misc/BOR.xml +37 -0
- data/misc/BOS.xml +33 -0
- data/misc/BOX.xml +42 -0
- data/misc/BPA.xml +32 -0
- data/misc/BPP.xml +41 -0
- data/misc/BPR.xml +48 -0
- data/misc/BPT.xml +37 -0
- data/misc/BQR.xml +35 -0
- data/misc/BQT.xml +38 -0
- data/misc/BR.xml +38 -0
- data/misc/BRA.xml +34 -0
- data/misc/BRC.xml +32 -0
- data/misc/BRR.xml +33 -0
- data/misc/BSC.xml +31 -0
- data/misc/BSD.xml +36 -0
- data/misc/BSF.xml +30 -0
- data/misc/BSI.xml +36 -0
- data/misc/BSN.xml +34 -0
- data/misc/BSR.xml +39 -0
- data/misc/BSS.xml +38 -0
- data/misc/BT1.xml +38 -0
- data/misc/BTA.xml +31 -0
- data/misc/BTC.xml +39 -0
- data/misc/BTI.xml +41 -0
- data/misc/BTP.xml +37 -0
- data/misc/BTR.xml +35 -0
- data/misc/BTS.xml +42 -0
- data/misc/BUY.xml +32 -0
- data/misc/BVA.xml +52 -0
- data/misc/BVB.xml +34 -0
- data/misc/BVP.xml +38 -0
- data/misc/BVS.xml +39 -0
- data/misc/BW.xml +30 -0
- data/misc/BX.xml +41 -0
- data/misc/C001.xml +43 -0
- data/misc/C002.xml +33 -0
- data/misc/C003.xml +35 -0
- data/misc/C004.xml +32 -0
- data/misc/C005.xml +33 -0
- data/misc/C006.xml +33 -0
- data/misc/C007.xml +38 -0
- data/misc/C022.xml +37 -0
- data/misc/C023.xml +31 -0
- data/misc/C024.xml +33 -0
- data/misc/C028.xml +48 -0
- data/misc/C030.xml +31 -0
- data/misc/C033.xml +30 -0
- data/misc/C034.xml +30 -0
- data/misc/C035.xml +31 -0
- data/misc/C036.xml +33 -0
- data/misc/C037.xml +30 -0
- data/misc/C040.xml +34 -0
- data/misc/C042.xml +30 -0
- data/misc/C043.xml +32 -0
- data/misc/C045.xml +33 -0
- data/misc/C046.xml +33 -0
- data/misc/C047.xml +33 -0
- data/misc/C048.xml +32 -0
- data/misc/C050.xml +40 -0
- data/misc/C052.xml +32 -0
- data/misc/C053.xml +33 -0
- data/misc/C055.xml +36 -0
- data/misc/C056.xml +31 -0
- data/misc/C057.xml +29 -0
- data/misc/C2.xml +34 -0
- data/misc/C3.xml +31 -0
- data/misc/C4.xml +29 -0
- data/misc/C8.xml +31 -0
- data/misc/C8C.xml +30 -0
- data/misc/C998.xml +29 -0
- data/misc/C999.xml +29 -0
- data/misc/CA1.xml +29 -0
- data/misc/CAD.xml +36 -0
- data/misc/CAI.xml +34 -0
- data/misc/CAL.xml +43 -0
- data/misc/CAS.xml +46 -0
- data/misc/CAT.xml +34 -0
- data/misc/CB1.xml +29 -0
- data/misc/CBS.xml +30 -0
- data/misc/CCI.xml +37 -0
- data/misc/CD.xml +38 -0
- data/misc/CD1.xml +58 -0
- data/misc/CD2.xml +35 -0
- data/misc/CD3.xml +41 -0
- data/misc/CDA.xml +49 -0
- data/misc/CDD.xml +41 -0
- data/misc/CDI.xml +38 -0
- data/misc/CDS.xml +38 -0
- data/misc/CED.xml +32 -0
- data/misc/CF1.xml +33 -0
- data/misc/CF2.xml +37 -0
- data/misc/CFI.xml +34 -0
- data/misc/CFT.xml +36 -0
- data/misc/CGS.xml +32 -0
- data/misc/CHB.xml +36 -0
- data/misc/CHR.xml +30 -0
- data/misc/CI.xml +41 -0
- data/misc/CIC.xml +32 -0
- data/misc/CID.xml +34 -0
- data/misc/CIV.xml +45 -0
- data/misc/CL1.xml +31 -0
- data/misc/CLD.xml +32 -0
- data/misc/CLI.xml +33 -0
- data/misc/CLM.xml +48 -0
- data/misc/CLP.xml +41 -0
- data/misc/CLR.xml +31 -0
- data/misc/CM.xml +44 -0
- data/misc/CMA.xml +38 -0
- data/misc/CMC.xml +29 -0
- data/misc/CN1.xml +33 -0
- data/misc/COB.xml +31 -0
- data/misc/COM.xml +30 -0
- data/misc/CON_.xml +30 -0
- data/misc/CPR.xml +32 -0
- data/misc/CQ.xml +37 -0
- data/misc/CR1.xml +37 -0
- data/misc/CR2.xml +39 -0
- data/misc/CR3.xml +32 -0
- data/misc/CR4.xml +56 -0
- data/misc/CR5.xml +45 -0
- data/misc/CR6.xml +48 -0
- data/misc/CR7.xml +30 -0
- data/misc/CR8.xml +36 -0
- data/misc/CRC.xml +34 -0
- data/misc/CRD.xml +31 -0
- data/misc/CRI.xml +37 -0
- data/misc/CRO.xml +33 -0
- data/misc/CRS.xml +47 -0
- data/misc/CRT.xml +37 -0
- data/misc/CRV.xml +34 -0
- data/misc/CS.xml +45 -0
- data/misc/CSB.xml +29 -0
- data/misc/CSC.xml +36 -0
- data/misc/CSD.xml +36 -0
- data/misc/CSE.xml +39 -0
- data/misc/CSF.xml +30 -0
- data/misc/CSH.xml +37 -0
- data/misc/CSI.xml +31 -0
- data/misc/CSM.xml +30 -0
- data/misc/CSS.xml +34 -0
- data/misc/CST.xml +31 -0
- data/misc/CSU.xml +37 -0
- data/misc/CT.xml +30 -0
- data/misc/CTB.xml +34 -0
- data/misc/CTC.xml +37 -0
- data/misc/CTP.xml +38 -0
- data/misc/CTT.xml +34 -0
- data/misc/CTX.xml +33 -0
- data/misc/CUR.xml +48 -0
- data/misc/CV.xml +41 -0
- data/misc/CYC.xml +33 -0
- data/misc/D9.xml +39 -0
- data/misc/DAD.xml +42 -0
- data/misc/DAI.xml +30 -0
- data/misc/DAM.xml +43 -0
- data/misc/DB.xml +33 -0
- data/misc/DD.xml +37 -0
- data/misc/DDI.xml +28 -0
- data/misc/DED.xml +36 -0
- data/misc/DEF.xml +33 -0
- data/misc/DEG.xml +32 -0
- data/misc/DEL.xml +32 -0
- data/misc/DEP.xml +35 -0
- data/misc/DEX.xml +33 -0
- data/misc/DFI.xml +31 -0
- data/misc/DH.xml +30 -0
- data/misc/DIS.xml +33 -0
- data/misc/DK.xml +37 -0
- data/misc/DL.xml +38 -0
- data/misc/DLV.xml +32 -0
- data/misc/DM.xml +48 -0
- data/misc/DMA.xml +36 -0
- data/misc/DMG.xml +38 -0
- data/misc/DMI.xml +39 -0
- data/misc/DN.xml +31 -0
- data/misc/DN1.xml +31 -0
- data/misc/DN2.xml +32 -0
- data/misc/DOS.xml +34 -0
- data/misc/DP.xml +44 -0
- data/misc/DPN.xml +31 -0
- data/misc/DR.xml +33 -0
- data/misc/DRT.xml +33 -0
- data/misc/DSB.xml +35 -0
- data/misc/DTM.xml +33 -0
- data/misc/DTP.xml +30 -0
- data/misc/DVI.xml +41 -0
- data/misc/E01.xml +31 -0
- data/misc/E03.xml +34 -0
- data/misc/E1.xml +30 -0
- data/misc/E10.xml +32 -0
- data/misc/E13.xml +37 -0
- data/misc/E20.xml +31 -0
- data/misc/E22.xml +39 -0
- data/misc/E24.xml +34 -0
- data/misc/E30.xml +36 -0
- data/misc/E34.xml +31 -0
- data/misc/E4.xml +31 -0
- data/misc/E40.xml +31 -0
- data/misc/E41.xml +31 -0
- data/misc/E5.xml +31 -0
- data/misc/E6.xml +36 -0
- data/misc/E8.xml +29 -0
- data/misc/EA.xml +30 -0
- data/misc/EB.xml +40 -0
- data/misc/EC.xml +33 -0
- data/misc/ED.xml +35 -0
- data/misc/EDF.xml +38 -0
- data/misc/EFI.xml +43 -0
- data/misc/EI.xml +33 -0
- data/misc/EIA.xml +33 -0
- data/misc/ELV.xml +33 -0
- data/misc/EM.xml +34 -0
- data/misc/EMP.xml +37 -0
- data/misc/EMS.xml +42 -0
- data/misc/EMT.xml +35 -0
- data/misc/ENE.xml +32 -0
- data/misc/ENM.xml +35 -0
- data/misc/ENR.xml +47 -0
- data/misc/ENT.xml +36 -0
- data/misc/EQ.xml +31 -0
- data/misc/ER.xml +38 -0
- data/misc/ERI.xml +36 -0
- data/misc/ERP.xml +32 -0
- data/misc/ES.xml +33 -0
- data/misc/ESI.xml +36 -0
- data/misc/ETD.xml +32 -0
- data/misc/EXI.xml +35 -0
- data/misc/F01.xml +36 -0
- data/misc/F02.xml +36 -0
- data/misc/F04.xml +37 -0
- data/misc/F05.xml +30 -0
- data/misc/F07.xml +49 -0
- data/misc/F09.xml +39 -0
- data/misc/F10.xml +31 -0
- data/misc/F11.xml +37 -0
- data/misc/F12.xml +35 -0
- data/misc/F13.xml +33 -0
- data/misc/F14.xml +29 -0
- data/misc/F6X.xml +35 -0
- data/misc/F9.xml +39 -0
- data/misc/FA1.xml +30 -0
- data/misc/FA2.xml +29 -0
- data/misc/FAA.xml +42 -0
- data/misc/FAC.xml +33 -0
- data/misc/FBB.xml +34 -0
- data/misc/FC.xml +32 -0
- data/misc/FCL.xml +32 -0
- data/misc/FDA.xml +36 -0
- data/misc/FGS.xml +30 -0
- data/misc/FH.xml +31 -0
- data/misc/FIR.xml +39 -0
- data/misc/FIS.xml +31 -0
- data/misc/FK.xml +41 -0
- data/misc/FNA.xml +33 -0
- data/misc/FOB.xml +36 -0
- data/misc/FOS.xml +34 -0
- data/misc/FPT.xml +29 -0
- data/misc/FRM.xml +32 -0
- data/misc/FSA.xml +36 -0
- data/misc/FST.xml +40 -0
- data/misc/FTH.xml +31 -0
- data/misc/G01.xml +35 -0
- data/misc/G05.xml +35 -0
- data/misc/G07.xml +33 -0
- data/misc/G08.xml +31 -0
- data/misc/G1.xml +30 -0
- data/misc/G11.xml +37 -0
- data/misc/G12.xml +34 -0
- data/misc/G13.xml +33 -0
- data/misc/G14.xml +29 -0
- data/misc/G15.xml +31 -0
- data/misc/G17.xml +41 -0
- data/misc/G18.xml +31 -0
- data/misc/G19.xml +36 -0
- data/misc/G2.xml +29 -0
- data/misc/G20.xml +36 -0
- data/misc/G21.xml +37 -0
- data/misc/G22.xml +32 -0
- data/misc/G23.xml +43 -0
- data/misc/G24.xml +28 -0
- data/misc/G25.xml +30 -0
- data/misc/G26.xml +33 -0
- data/misc/G27.xml +33 -0
- data/misc/G28.xml +33 -0
- data/misc/G29.xml +30 -0
- data/misc/G3.xml +33 -0
- data/misc/G30.xml +29 -0
- data/misc/G31.xml +38 -0
- data/misc/G32.xml +32 -0
- data/misc/G33.xml +28 -0
- data/misc/G35.xml +30 -0
- data/misc/G36.xml +31 -0
- data/misc/G37.xml +30 -0
- data/misc/G38.xml +30 -0
- data/misc/G39.xml +56 -0
- data/misc/G4.xml +33 -0
- data/misc/G40.xml +36 -0
- data/misc/G42.xml +30 -0
- data/misc/G43.xml +31 -0
- data/misc/G45.xml +44 -0
- data/misc/G46.xml +39 -0
- data/misc/G47.xml +29 -0
- data/misc/G48.xml +36 -0
- data/misc/G49.xml +30 -0
- data/misc/G5.xml +44 -0
- data/misc/G50.xml +34 -0
- data/misc/G51.xml +35 -0
- data/misc/G53.xml +28 -0
- data/misc/G54.xml +33 -0
- data/misc/G55.xml +60 -0
- data/misc/G61.xml +32 -0
- data/misc/G62.xml +32 -0
- data/misc/G63.xml +31 -0
- data/misc/G66.xml +34 -0
- data/misc/G68.xml +42 -0
- data/misc/G69.xml +28 -0
- data/misc/G70.xml +37 -0
- data/misc/G72.xml +38 -0
- data/misc/G73.xml +28 -0
- data/misc/G76.xml +37 -0
- data/misc/G82.xml +39 -0
- data/misc/G83.xml +40 -0
- data/misc/G84.xml +30 -0
- data/misc/G85.xml +28 -0
- data/misc/G86.xml +29 -0
- data/misc/G87.xml +33 -0
- data/misc/G88.xml +32 -0
- data/misc/G89.xml +37 -0
- data/misc/G91.xml +29 -0
- data/misc/G92.xml +30 -0
- data/misc/G93.xml +35 -0
- data/misc/G94.xml +29 -0
- data/misc/G95.xml +34 -0
- data/misc/GA.xml +45 -0
- data/misc/GDP.xml +34 -0
- data/misc/GE.xml +29 -0
- data/misc/GF.xml +36 -0
- data/misc/GH.xml +31 -0
- data/misc/GID.xml +30 -0
- data/misc/GR.xml +49 -0
- data/misc/GR2.xml +39 -0
- data/misc/GR4.xml +38 -0
- data/misc/GR5.xml +32 -0
- data/misc/GRI.xml +38 -0
- data/misc/GRP.xml +31 -0
- data/misc/GS.xml +35 -0
- data/misc/GY.xml +42 -0
- data/misc/H1.xml +36 -0
- data/misc/H2.xml +29 -0
- data/misc/H3.xml +32 -0
- data/misc/H5.xml +30 -0
- data/misc/H6.xml +34 -0
- data/misc/HAD.xml +33 -0
- data/misc/HC.xml +34 -0
- data/misc/HCP.xml +42 -0
- data/misc/HCR.xml +31 -0
- data/misc/HD.xml +38 -0
- data/misc/HI.xml +39 -0
- data/misc/HL.xml +31 -0
- data/misc/HLH.xml +34 -0
- data/misc/HPL.xml +33 -0
- data/misc/HS.xml +32 -0
- data/misc/HSD.xml +35 -0
- data/misc/IC.xml +36 -0
- data/misc/ICH.xml +39 -0
- data/misc/ICM.xml +33 -0
- data/misc/ID.xml +30 -0
- data/misc/ID1.xml +61 -0
- data/misc/ID2.xml +35 -0
- data/misc/ID3.xml +48 -0
- data/misc/ID4.xml +36 -0
- data/misc/IDB.xml +32 -0
- data/misc/IDC.xml +31 -0
- data/misc/IEA.xml +29 -0
- data/misc/IGI.xml +33 -0
- data/misc/III.xml +36 -0
- data/misc/IIS.xml +41 -0
- data/misc/IK3.xml +30 -0
- data/misc/IK4.xml +30 -0
- data/misc/IK5.xml +32 -0
- data/misc/IM.xml +30 -0
- data/misc/IMA.xml +31 -0
- data/misc/IMM.xml +33 -0
- data/misc/IMP.xml +29 -0
- data/misc/IN1.xml +34 -0
- data/misc/IN2.xml +30 -0
- data/misc/INC.xml +32 -0
- data/misc/IND.xml +39 -0
- data/misc/INI.xml +30 -0
- data/misc/INQ.xml +29 -0
- data/misc/INR.xml +30 -0
- data/misc/INS.xml +44 -0
- data/misc/INT.xml +33 -0
- data/misc/INV.xml +34 -0
- data/misc/INX.xml +29 -0
- data/misc/IRA.xml +30 -0
- data/misc/IRP.xml +34 -0
- data/misc/IS1.xml +34 -0
- data/misc/IS2.xml +44 -0
- data/misc/ISA.xml +43 -0
- data/misc/ISC.xml +37 -0
- data/misc/ISD.xml +31 -0
- data/misc/ISI.xml +33 -0
- data/misc/ISR.xml +30 -0
- data/misc/ISS.xml +35 -0
- data/misc/IT1.xml +52 -0
- data/misc/IT3.xml +32 -0
- data/misc/IT8.xml +54 -0
- data/misc/ITA.xml +44 -0
- data/misc/ITC.xml +39 -0
- data/misc/ITD.xml +42 -0
- data/misc/IV1.xml +32 -0
- data/misc/JCT.xml +36 -0
- data/misc/JID.xml +33 -0
- data/misc/JIL.xml +34 -0
- data/misc/JIT.xml +29 -0
- data/misc/JL.xml +31 -0
- data/misc/JS.xml +31 -0
- data/misc/K1.xml +29 -0
- data/misc/K2.xml +28 -0
- data/misc/K3.xml +30 -0
- data/misc/L0.xml +42 -0
- data/misc/L1.xml +49 -0
- data/misc/L10.xml +30 -0
- data/misc/L11.xml +32 -0
- data/misc/L12.xml +29 -0
- data/misc/L13.xml +43 -0
- data/misc/L1A.xml +29 -0
- data/misc/L3.xml +42 -0
- data/misc/L4.xml +33 -0
- data/misc/L5.xml +37 -0
- data/misc/L7.xml +43 -0
- data/misc/L8.xml +38 -0
- data/misc/L9.xml +29 -0
- data/misc/LAD.xml +41 -0
- data/misc/LC.xml +34 -0
- data/misc/LC1.xml +39 -0
- data/misc/LCD.xml +33 -0
- data/misc/LCT.xml +39 -0
- data/misc/LDT.xml +31 -0
- data/misc/LE.xml +28 -0
- data/misc/LEP.xml +31 -0
- data/misc/LEQ.xml +36 -0
- data/misc/LET.xml +31 -0
- data/misc/LFG.xml +33 -0
- data/misc/LFH.xml +34 -0
- data/misc/LFI.xml +35 -0
- data/misc/LH.xml +33 -0
- data/misc/LH1.xml +38 -0
- data/misc/LH2.xml +40 -0
- data/misc/LH3.xml +31 -0
- data/misc/LH4.xml +39 -0
- data/misc/LH6.xml +31 -0
- data/misc/LHE.xml +32 -0
- data/misc/LHR.xml +30 -0
- data/misc/LHT.xml +30 -0
- data/misc/LIC.xml +35 -0
- data/misc/LID.xml +36 -0
- data/misc/LIE.xml +31 -0
- data/misc/LIN.xml +58 -0
- data/misc/LM.xml +29 -0
- data/misc/LN.xml +38 -0
- data/misc/LN1.xml +50 -0
- data/misc/LN2.xml +39 -0
- data/misc/LOC.xml +51 -0
- data/misc/LOD.xml +33 -0
- data/misc/LP.xml +34 -0
- data/misc/LQ.xml +29 -0
- data/misc/LRQ.xml +48 -0
- data/misc/LS.xml +28 -0
- data/misc/LS1.xml +34 -0
- data/misc/LT.xml +31 -0
- data/misc/LTE.xml +31 -0
- data/misc/LTR.xml +39 -0
- data/misc/LUC.xml +31 -0
- data/misc/LUI.xml +32 -0
- data/misc/LV.xml +29 -0
- data/misc/LX.xml +28 -0
- data/misc/M0.xml +31 -0
- data/misc/M1.xml +39 -0
- data/misc/M10.xml +41 -0
- data/misc/M11.xml +46 -0
- data/misc/M12.xml +38 -0
- data/misc/M13.xml +39 -0
- data/misc/M14.xml +38 -0
- data/misc/M15.xml +43 -0
- data/misc/M2.xml +35 -0
- data/misc/M20.xml +36 -0
- data/misc/M21.xml +42 -0
- data/misc/M3.xml +31 -0
- data/misc/M7.xml +32 -0
- data/misc/M7A.xml +33 -0
- data/misc/MAN.xml +33 -0
- data/misc/MBL.xml +32 -0
- data/misc/MC.xml +32 -0
- data/misc/MCD.xml +31 -0
- data/misc/MCT.xml +35 -0
- data/misc/MEA.xml +39 -0
- data/misc/MI.xml +32 -0
- data/misc/MI1.xml +30 -0
- data/misc/MIA.xml +51 -0
- data/misc/MIC.xml +45 -0
- data/misc/MIN.xml +43 -0
- data/misc/MIR.xml +39 -0
- data/misc/MIS.xml +32 -0
- data/misc/MIT.xml +31 -0
- data/misc/MKS.xml +30 -0
- data/misc/MLA.xml +35 -0
- data/misc/MLS.xml +31 -0
- data/misc/MNC.xml +44 -0
- data/misc/MOA.xml +36 -0
- data/misc/MPI.xml +34 -0
- data/misc/MPP.xml +35 -0
- data/misc/MRC.xml +36 -0
- data/misc/MS.xml +33 -0
- data/misc/MS1.xml +35 -0
- data/misc/MS2.xml +31 -0
- data/misc/MS3.xml +32 -0
- data/misc/MS4.xml +31 -0
- data/misc/MS5.xml +32 -0
- data/misc/MS6.xml +31 -0
- data/misc/MSG.xml +30 -0
- data/misc/MSI.xml +29 -0
- data/misc/MSS.xml +34 -0
- data/misc/MTX.xml +33 -0
- data/misc/N1.xml +33 -0
- data/misc/N10.xml +40 -0
- data/misc/N11.xml +30 -0
- data/misc/N12.xml +29 -0
- data/misc/N2.xml +29 -0
- data/misc/N3.xml +29 -0
- data/misc/N4.xml +34 -0
- data/misc/N5.xml +36 -0
- data/misc/N7.xml +51 -0
- data/misc/N7A.xml +36 -0
- data/misc/N7B.xml +33 -0
- data/misc/N8.xml +38 -0
- data/misc/N8A.xml +37 -0
- data/misc/N9.xml +34 -0
- data/misc/NA.xml +39 -0
- data/misc/NCA.xml +32 -0
- data/misc/NCD.xml +34 -0
- data/misc/NM1.xml +38 -0
- data/misc/NTE.xml +29 -0
- data/misc/NX1.xml +32 -0
- data/misc/NX2.xml +30 -0
- data/misc/OBI.xml +33 -0
- data/misc/OD.xml +31 -0
- data/misc/OI.xml +33 -0
- data/misc/OID.xml +38 -0
- data/misc/OOI.xml +31 -0
- data/misc/OPS.xml +33 -0
- data/misc/OPX.xml +32 -0
- data/misc/OQS.xml +29 -0
- data/misc/ORI.xml +28 -0
- data/misc/OTI.xml +44 -0
- data/misc/P1.xml +34 -0
- data/misc/P2.xml +30 -0
- data/misc/P4.xml +32 -0
- data/misc/P5.xml +30 -0
- data/misc/PAD.xml +32 -0
- data/misc/PAI.xml +32 -0
- data/misc/PAL.xml +44 -0
- data/misc/PAM.xml +42 -0
- data/misc/PAS.xml +37 -0
- data/misc/PAT.xml +36 -0
- data/misc/PBI.xml +35 -0
- data/misc/PCL.xml +34 -0
- data/misc/PCR.xml +29 -0
- data/misc/PCS.xml +38 -0
- data/misc/PCT.xml +29 -0
- data/misc/PD.xml +37 -0
- data/misc/PDD.xml +32 -0
- data/misc/PDE.xml +31 -0
- data/misc/PDI.xml +31 -0
- data/misc/PDL.xml +39 -0
- data/misc/PDP.xml +30 -0
- data/misc/PDR.xml +31 -0
- data/misc/PDS.xml +30 -0
- data/misc/PEN.xml +36 -0
- data/misc/PER.xml +36 -0
- data/misc/PEX.xml +35 -0
- data/misc/PI.xml +42 -0
- data/misc/PID.xml +36 -0
- data/misc/PIN.xml +34 -0
- data/misc/PKD.xml +32 -0
- data/misc/PKG.xml +33 -0
- data/misc/PKL.xml +40 -0
- data/misc/PL.xml +33 -0
- data/misc/PLA.xml +32 -0
- data/misc/PLB.xml +41 -0
- data/misc/PLC.xml +29 -0
- data/misc/PLD.xml +31 -0
- data/misc/PLI.xml +36 -0
- data/misc/PM.xml +33 -0
- data/misc/PO1.xml +52 -0
- data/misc/PO3.xml +35 -0
- data/misc/PO4.xml +45 -0
- data/misc/POC.xml +54 -0
- data/misc/POD.xml +30 -0
- data/misc/PPA.xml +33 -0
- data/misc/PPD.xml +40 -0
- data/misc/PPL.xml +32 -0
- data/misc/PPY.xml +35 -0
- data/misc/PR.xml +36 -0
- data/misc/PR1.xml +40 -0
- data/misc/PR2.xml +36 -0
- data/misc/PRC.xml +39 -0
- data/misc/PRD.xml +38 -0
- data/misc/PRF.xml +34 -0
- data/misc/PRI.xml +41 -0
- data/misc/PRJ.xml +31 -0
- data/misc/PRM.xml +40 -0
- data/misc/PRR.xml +38 -0
- data/misc/PRS.xml +29 -0
- data/misc/PRT.xml +31 -0
- data/misc/PRV.xml +33 -0
- data/misc/PS.xml +41 -0
- data/misc/PS1.xml +30 -0
- data/misc/PSA.xml +32 -0
- data/misc/PSC.xml +52 -0
- data/misc/PSD.xml +36 -0
- data/misc/PT.xml +38 -0
- data/misc/PTD.xml +33 -0
- data/misc/PTF.xml +34 -0
- data/misc/PTS.xml +38 -0
- data/misc/PUN.xml +32 -0
- data/misc/PWK.xml +36 -0
- data/misc/PYD.xml +32 -0
- data/misc/PYM.xml +34 -0
- data/misc/PYT.xml +35 -0
- data/misc/Q2.xml +43 -0
- data/misc/Q3.xml +29 -0
- data/misc/Q5.xml +45 -0
- data/misc/Q7.xml +30 -0
- data/misc/Q8.xml +37 -0
- data/misc/QTY.xml +31 -0
- data/misc/R1.xml +40 -0
- data/misc/R11.xml +34 -0
- data/misc/R12.xml +37 -0
- data/misc/R13.xml +39 -0
- data/misc/R2.xml +40 -0
- data/misc/R2A.xml +37 -0
- data/misc/R2B.xml +30 -0
- data/misc/R2C.xml +31 -0
- data/misc/R2D.xml +29 -0
- data/misc/R3.xml +39 -0
- data/misc/R4.xml +35 -0
- data/misc/R9.xml +36 -0
- data/misc/RA.xml +37 -0
- data/misc/RAB.xml +37 -0
- data/misc/RAP.xml +34 -0
- data/misc/RB.xml +35 -0
- data/misc/RC.xml +36 -0
- data/misc/RCD.xml +48 -0
- data/misc/RCR.xml +29 -0
- data/misc/RD.xml +31 -0
- data/misc/RDD.xml +32 -0
- data/misc/RDI.xml +32 -0
- data/misc/RDM.xml +32 -0
- data/misc/RDR.xml +32 -0
- data/misc/RDT.xml +33 -0
- data/misc/REA.xml +41 -0
- data/misc/REC.xml +40 -0
- data/misc/RED.xml +33 -0
- data/misc/REF.xml +31 -0
- data/misc/REL.xml +29 -0
- data/misc/REN.xml +34 -0
- data/misc/REP.xml +47 -0
- data/misc/REQ.xml +29 -0
- data/misc/RES.xml +34 -0
- data/misc/RET.xml +32 -0
- data/misc/RH.xml +30 -0
- data/misc/RIC.xml +45 -0
- data/misc/RLD.xml +31 -0
- data/misc/RLT.xml +39 -0
- data/misc/RMR.xml +35 -0
- data/misc/RMT.xml +37 -0
- data/misc/RO.xml +36 -0
- data/misc/RP.xml +36 -0
- data/misc/RPA.xml +32 -0
- data/misc/RQS.xml +32 -0
- data/misc/RRA.xml +29 -0
- data/misc/RS.xml +33 -0
- data/misc/RSC.xml +31 -0
- data/misc/RSD.xml +30 -0
- data/misc/RST.xml +29 -0
- data/misc/RT.xml +39 -0
- data/misc/RT1.xml +35 -0
- data/misc/RTE.xml +32 -0
- data/misc/RTT.xml +29 -0
- data/misc/RU1.xml +36 -0
- data/misc/RU2.xml +35 -0
- data/misc/RU3.xml +56 -0
- data/misc/RYL.xml +31 -0
- data/misc/S1.xml +33 -0
- data/misc/S2.xml +30 -0
- data/misc/S4A.xml +38 -0
- data/misc/S5.xml +38 -0
- data/misc/S9.xml +35 -0
- data/misc/SA.xml +32 -0
- data/misc/SAC.xml +43 -0
- data/misc/SAD.xml +34 -0
- data/misc/SAL.xml +34 -0
- data/misc/SB.xml +28 -0
- data/misc/SBR.xml +36 -0
- data/misc/SBT.xml +30 -0
- data/misc/SC.xml +29 -0
- data/misc/SCA.xml +34 -0
- data/misc/SCD.xml +34 -0
- data/misc/SCH.xml +39 -0
- data/misc/SCL.xml +37 -0
- data/misc/SCM.xml +31 -0
- data/misc/SCN.xml +32 -0
- data/misc/SCP.xml +31 -0
- data/misc/SCR.xml +51 -0
- data/misc/SCS.xml +29 -0
- data/misc/SCT.xml +38 -0
- data/misc/SD1.xml +35 -0
- data/misc/SDP.xml +35 -0
- data/misc/SDQ.xml +50 -0
- data/misc/SE.xml +29 -0
- data/misc/SER.xml +38 -0
- data/misc/SES.xml +41 -0
- data/misc/SFC.xml +29 -0
- data/misc/SG.xml +33 -0
- data/misc/SHD.xml +41 -0
- data/misc/SHI.xml +32 -0
- data/misc/SHP.xml +34 -0
- data/misc/SHR.xml +29 -0
- data/misc/SI.xml +48 -0
- data/misc/SID.xml +33 -0
- data/misc/SII.xml +34 -0
- data/misc/SIN.xml +33 -0
- data/misc/SL1.xml +36 -0
- data/misc/SLA.xml +35 -0
- data/misc/SLI.xml +49 -0
- data/misc/SLN.xml +55 -0
- data/misc/SMA.xml +32 -0
- data/misc/SMB.xml +36 -0
- data/misc/SMD.xml +30 -0
- data/misc/SMO.xml +34 -0
- data/misc/SMR.xml +31 -0
- data/misc/SMS.xml +40 -0
- data/misc/SN1.xml +35 -0
- data/misc/SOI.xml +32 -0
- data/misc/SOM.xml +40 -0
- data/misc/SP.xml +32 -0
- data/misc/SPA.xml +38 -0
- data/misc/SPE.xml +31 -0
- data/misc/SPI.xml +42 -0
- data/misc/SPK.xml +32 -0
- data/misc/SPR.xml +36 -0
- data/misc/SPS.xml +33 -0
- data/misc/SPY.xml +30 -0
- data/misc/SR.xml +38 -0
- data/misc/SRA.xml +29 -0
- data/misc/SRD.xml +47 -0
- data/misc/SRE.xml +29 -0
- data/misc/SRM.xml +43 -0
- data/misc/SRT.xml +40 -0
- data/misc/SS.xml +36 -0
- data/misc/SSC.xml +35 -0
- data/misc/SSD.xml +31 -0
- data/misc/SSE.xml +32 -0
- data/misc/SSS.xml +36 -0
- data/misc/SST.xml +36 -0
- data/misc/ST.xml +30 -0
- data/misc/STA.xml +35 -0
- data/misc/STC.xml +39 -0
- data/misc/STP.xml +36 -0
- data/misc/STS.xml +32 -0
- data/misc/SUM.xml +45 -0
- data/misc/SUP.xml +31 -0
- data/misc/SV.xml +31 -0
- data/misc/SV1.xml +48 -0
- data/misc/SV2.xml +37 -0
- data/misc/SV3.xml +38 -0
- data/misc/SV4.xml +45 -0
- data/misc/SV5.xml +34 -0
- data/misc/SV6.xml +34 -0
- data/misc/SV7.xml +33 -0
- data/misc/SVA.xml +30 -0
- data/misc/SVC.xml +34 -0
- data/misc/SVD.xml +33 -0
- data/misc/SW.xml +36 -0
- data/misc/T1.xml +36 -0
- data/misc/T1002.xml +30 -0
- data/misc/T1004.xml +305 -0
- data/misc/T1005.xml +107 -0
- data/misc/T1006.xml +35 -0
- data/misc/T1007.xml +31 -0
- data/misc/T1008.xml +58 -0
- data/misc/T1009.xml +116 -0
- data/misc/T1012.xml +53 -0
- data/misc/T1013.xml +113 -0
- data/misc/T1015.xml +33 -0
- data/misc/T1016.xml +33 -0
- data/misc/T1017.xml +82 -0
- data/misc/T1019.xml +30 -0
- data/misc/T102.xml +32 -0
- data/misc/T1020.xml +30 -0
- data/misc/T1023.xml +31 -0
- data/misc/T1025.xml +30 -0
- data/misc/T1026.xml +34 -0
- data/misc/T1029.xml +68 -0
- data/misc/T103.2.xml +84 -0
- data/misc/T1030.xml +41 -0
- data/misc/T1031.xml +40 -0
- data/misc/T1032.xml +75 -0
- data/misc/T1033.xml +36 -0
- data/misc/T104.xml +31 -0
- data/misc/T1042.xml +32 -0
- data/misc/T1044.xml +41 -0
- data/misc/T1045.xml +32 -0
- data/misc/T1046.xml +34 -0
- data/misc/T1047.xml +40 -0
- data/misc/T1048.xml +36 -0
- data/misc/T1053.xml +29 -0
- data/misc/T1054.xml +30 -0
- data/misc/T1062.xml +47 -0
- data/misc/T1065.xml +43 -0
- data/misc/T1066.xml +45 -0
- data/misc/T1067.xml +39 -0
- data/misc/T1068.xml +34 -0
- data/misc/T1069.xml +181 -0
- data/misc/T107.xml +64 -0
- data/misc/T1070.xml +42 -0
- data/misc/T1071.xml +104 -0
- data/misc/T1072.xml +31 -0
- data/misc/T1073.xml +31 -0
- data/misc/T1074.xml +101 -0
- data/misc/T1075.xml +40 -0
- data/misc/T1076.xml +31 -0
- data/misc/T1077.xml +31 -0
- data/misc/T1078.xml +43 -0
- data/misc/T1079.xml +31 -0
- data/misc/T108.xml +59 -0
- data/misc/T1080.xml +31 -0
- data/misc/T1081.xml +72 -0
- data/misc/T1082.xml +48 -0
- data/misc/T1083.xml +76 -0
- data/misc/T1084.xml +29 -0
- data/misc/T1085.xml +58 -0
- data/misc/T1086.xml +34 -0
- data/misc/T1089.xml +98 -0
- data/misc/T1090.xml +30 -0
- data/misc/T1091.xml +39 -0
- data/misc/T1093.xml +45 -0
- data/misc/T1097.xml +31 -0
- data/misc/T1098.xml +30 -0
- data/misc/T1099.xml +31 -0
- data/misc/T11.xml +47 -0
- data/misc/T110.xml +47 -0
- data/misc/T1100.xml +36 -0
- data/misc/T1101.xml +34 -0
- data/misc/T1102.xml +30 -0
- data/misc/T1103.xml +35 -0
- data/misc/T1104.xml +49 -0
- data/misc/T1105.xml +32 -0
- data/misc/T1106.xml +101 -0
- data/misc/T1107.xml +43 -0
- data/misc/T1108.xml +39 -0
- data/misc/T1109.xml +50 -0
- data/misc/T1113.xml +43 -0
- data/misc/T1122.xml +34 -0
- data/misc/T1123.xml +46 -0
- data/misc/T1127.xml +60 -0
- data/misc/T1129.xml +184 -0
- data/misc/T1130.xml +29 -0
- data/misc/T1131.xml +120 -0
- data/misc/T1132.xml +68 -0
- data/misc/T1133.xml +112 -0
- data/misc/T1134.xml +36 -0
- data/misc/T1135.xml +40 -0
- data/misc/T1136.xml +447 -0
- data/misc/T1138.xml +33 -0
- data/misc/T1139.xml +42 -0
- data/misc/T1140.xml +32 -0
- data/misc/T1141.xml +43 -0
- data/misc/T1142.xml +65 -0
- data/misc/T1143.xml +36 -0
- data/misc/T1146.xml +33 -0
- data/misc/T1147.xml +47 -0
- data/misc/T115.xml +60 -0
- data/misc/T1150.xml +30 -0
- data/misc/T1152.xml +30 -0
- data/misc/T1153.xml +41 -0
- data/misc/T1154.xml +31 -0
- data/misc/T1156.xml +38 -0
- data/misc/T1157.xml +31 -0
- data/misc/T1159.xml +56 -0
- data/misc/T1160.xml +41 -0
- data/misc/T1161.xml +57 -0
- data/misc/T1162.xml +35 -0
- data/misc/T1163.xml +35 -0
- data/misc/T1164.xml +36 -0
- data/misc/T1165.xml +30 -0
- data/misc/T1166.xml +77 -0
- data/misc/T1168.xml +43 -0
- data/misc/T1172.xml +109 -0
- data/misc/T1173.xml +46 -0
- data/misc/T1176.xml +97 -0
- data/misc/T1179.xml +29 -0
- data/misc/T1181.xml +46 -0
- data/misc/T1185.xml +48 -0
- data/misc/T1186.xml +144 -0
- data/misc/T1187.xml +60 -0
- data/misc/T1188.xml +144 -0
- data/misc/T1189.xml +33 -0
- data/misc/T1193.xml +61 -0
- data/misc/T1196.xml +189 -0
- data/misc/T1197.xml +46 -0
- data/misc/T1198.xml +30 -0
- data/misc/T1199.xml +32 -0
- data/misc/T120.xml +31 -0
- data/misc/T1201.xml +37 -0
- data/misc/T1202.xml +32 -0
- data/misc/T1203.xml +143 -0
- data/misc/T1205.xml +79 -0
- data/misc/T1207.xml +45 -0
- data/misc/T1209.xml +34 -0
- data/misc/T121.xml +52 -0
- data/misc/T1211.xml +35 -0
- data/misc/T1212.xml +32 -0
- data/misc/T1213.xml +40 -0
- data/misc/T1215.xml +32 -0
- data/misc/T1216.xml +33 -0
- data/misc/T1218.xml +32 -0
- data/misc/T1219.xml +38 -0
- data/misc/T122.xml +204 -0
- data/misc/T1220.xml +30 -0
- data/misc/T1221.xml +53 -0
- data/misc/T1222.xml +38 -0
- data/misc/T1223.xml +35 -0
- data/misc/T1224.xml +62 -0
- data/misc/T1225.xml +39 -0
- data/misc/T1226.xml +43 -0
- data/misc/T1227.xml +34 -0
- data/misc/T1229.xml +32 -0
- data/misc/T1230.xml +87 -0
- data/misc/T1231.xml +38 -0
- data/misc/T1232.xml +50 -0
- data/misc/T1233.xml +49 -0
- data/misc/T1234.xml +31 -0
- data/misc/T1236.xml +31 -0
- data/misc/T1237.xml +32 -0
- data/misc/T1238.xml +30 -0
- data/misc/T1239.xml +36 -0
- data/misc/T1240.xml +57 -0
- data/misc/T1241.xml +36 -0
- data/misc/T1246.xml +30 -0
- data/misc/T125.xml +47 -0
- data/misc/T1250.xml +68 -0
- data/misc/T1254.xml +41 -0
- data/misc/T1257.xml +52 -0
- data/misc/T1262.xml +98 -0
- data/misc/T1264.xml +59 -0
- data/misc/T1265.xml +34 -0
- data/misc/T1266.xml +43 -0
- data/misc/T1267.xml +33 -0
- data/misc/T1268.xml +30 -0
- data/misc/T1270.xml +917 -0
- data/misc/T1273.xml +30 -0
- data/misc/T1275.xml +31 -0
- data/misc/T1277.xml +31 -0
- data/misc/T1278.xml +29 -0
- data/misc/T128.xml +1712 -0
- data/misc/T1280.xml +43 -0
- data/misc/T1292.xml +41 -0
- data/misc/T1293.xml +56 -0
- data/misc/T1294.xml +41 -0
- data/misc/T1295.xml +55 -0
- data/misc/T1297.xml +33 -0
- data/misc/T1300.xml +1116 -0
- data/misc/T1303.xml +35 -0
- data/misc/T1304.xml +37 -0
- data/misc/T1307.xml +216 -0
- data/misc/T1308.xml +38 -0
- data/misc/T1309.xml +144 -0
- data/misc/T1310.xml +30 -0
- data/misc/T1311.xml +38 -0
- data/misc/T1312.xml +30 -0
- data/misc/T1316.xml +31 -0
- data/misc/T1317.xml +33 -0
- data/misc/T1319.xml +37 -0
- data/misc/T132.xml +33 -0
- data/misc/T1320.xml +31 -0
- data/misc/T1321.xml +1327 -0
- data/misc/T1322.xml +41 -0
- data/misc/T1327.xml +31 -0
- data/misc/T1329.xml +37 -0
- data/misc/T133.xml +50 -0
- data/misc/T1330.xml +100 -0
- data/misc/T1332.xml +29 -0
- data/misc/T1333.xml +33 -0
- data/misc/T1335.xml +31 -0
- data/misc/T1336.xml +74 -0
- data/misc/T1337.xml +35 -0
- data/misc/T1338.xml +44 -0
- data/misc/T1340.xml +30 -0
- data/misc/T1342.xml +34 -0
- data/misc/T1343.xml +74 -0
- data/misc/T1344.xml +30 -0
- data/misc/T1345.xml +36 -0
- data/misc/T1346.xml +30 -0
- data/misc/T1347.xml +31 -0
- data/misc/T1348.xml +33 -0
- data/misc/T1349.xml +34 -0
- data/misc/T1350.xml +30 -0
- data/misc/T1351.xml +32 -0
- data/misc/T1355.xml +35 -0
- data/misc/T1356.xml +31 -0
- data/misc/T1357.xml +35 -0
- data/misc/T1358.xml +29 -0
- data/misc/T1359.xml +31 -0
- data/misc/T1360.xml +34 -0
- data/misc/T1361.xml +43 -0
- data/misc/T1362.xml +33 -0
- data/misc/T1363.xml +33 -0
- data/misc/T1364.xml +35 -0
- data/misc/T1365.xml +210 -0
- data/misc/T1366.xml +37 -0
- data/misc/T1367.xml +55 -0
- data/misc/T1368.xml +31 -0
- data/misc/T1369.xml +34 -0
- data/misc/T1370.xml +37 -0
- data/misc/T1373.xml +41 -0
- data/misc/T1376.xml +55 -0
- data/misc/T1378.xml +36 -0
- data/misc/T1379.xml +49 -0
- data/misc/T1382.xml +32 -0
- data/misc/T1383.xml +45 -0
- data/misc/T1384.xml +42 -0
- data/misc/T1387.xml +61 -0
- data/misc/T139.xml +40 -0
- data/misc/T1390.xml +66 -0
- data/misc/T1393.xml +31 -0
- data/misc/T1395.xml +35 -0
- data/misc/T1396.xml +30 -0
- data/misc/T1398.xml +68 -0
- data/misc/T1401.xml +44 -0
- data/misc/T1402.xml +56 -0
- data/misc/T1403.xml +30 -0
- data/misc/T1404.xml +29 -0
- data/misc/T1407.xml +29 -0
- data/misc/T1408.xml +30 -0
- data/misc/T1413.xml +30 -0
- data/misc/T1420.xml +41 -0
- data/misc/T1422.xml +32 -0
- data/misc/T1423.xml +89 -0
- data/misc/T1425.xml +36 -0
- data/misc/T1426.xml +43 -0
- data/misc/T1428.xml +29 -0
- data/misc/T1429.xml +76 -0
- data/misc/T143.xml +341 -0
- data/misc/T1431.xml +33 -0
- data/misc/T1432.xml +51 -0
- data/misc/T1434.xml +34 -0
- data/misc/T1439.xml +37 -0
- data/misc/T146.xml +58 -0
- data/misc/T1465.xml +48 -0
- data/misc/T1466.xml +49 -0
- data/misc/T1468.xml +64 -0
- data/misc/T1469.xml +33 -0
- data/misc/T147.xml +62 -0
- data/misc/T1473.xml +42 -0
- data/misc/T1476.xml +38 -0
- data/misc/T1484.xml +37 -0
- data/misc/T1485.xml +29 -0
- data/misc/T1487.xml +58 -0
- data/misc/T1488.xml +44 -0
- data/misc/T1489.xml +39 -0
- data/misc/T1491.xml +30 -0
- data/misc/T1492.xml +37 -0
- data/misc/T1493.xml +35 -0
- data/misc/T1496.xml +81 -0
- data/misc/T1499.xml +29 -0
- data/misc/T150.xml +1125 -0
- data/misc/T1511.xml +34 -0
- data/misc/T1514.xml +41 -0
- data/misc/T152.xml +577 -0
- data/misc/T1520.xml +52 -0
- data/misc/T1521.xml +41 -0
- data/misc/T1522.xml +52 -0
- data/misc/T1523.xml +35 -0
- data/misc/T1525.xml +34 -0
- data/misc/T1526.xml +32 -0
- data/misc/T1527.xml +33 -0
- data/misc/T1540.xml +31 -0
- data/misc/T1543.xml +29 -0
- data/misc/T1546.xml +32 -0
- data/misc/T1549.xml +34 -0
- data/misc/T1550.xml +31 -0
- data/misc/T1552.xml +41 -0
- data/misc/T1553.xml +41 -0
- data/misc/T1554.xml +47 -0
- data/misc/T1555.xml +31 -0
- data/misc/T1556.xml +30 -0
- data/misc/T1557.xml +32 -0
- data/misc/T1558.xml +31 -0
- data/misc/T1559.xml +50 -0
- data/misc/T1560.xml +38 -0
- data/misc/T1561.xml +29 -0
- data/misc/T157.xml +206 -0
- data/misc/T1570.xml +35 -0
- data/misc/T1572.xml +30 -0
- data/misc/T1574.xml +34 -0
- data/misc/T1575.xml +33 -0
- data/misc/T1576.xml +30 -0
- data/misc/T1577.xml +30 -0
- data/misc/T1578.xml +36 -0
- data/misc/T1579.xml +30 -0
- data/misc/T1585.xml +33 -0
- data/misc/T1588.xml +47 -0
- data/misc/T1590.xml +151 -0
- data/misc/T1591.xml +159 -0
- data/misc/T1592.xml +60 -0
- data/misc/T1594.xml +69 -0
- data/misc/T1595.xml +42 -0
- data/misc/T1596.xml +82 -0
- data/misc/T1599.xml +151 -0
- data/misc/T16.xml +33 -0
- data/misc/T160.xml +31 -0
- data/misc/T1600.xml +36 -0
- data/misc/T1601.xml +39 -0
- data/misc/T1602.xml +59 -0
- data/misc/T1606.xml +39 -0
- data/misc/T1607.xml +47 -0
- data/misc/T1609.xml +51 -0
- data/misc/T1610.xml +31 -0
- data/misc/T1611.xml +38 -0
- data/misc/T1612.xml +32 -0
- data/misc/T1617.xml +31 -0
- data/misc/T1619.xml +30 -0
- data/misc/T1620.xml +49 -0
- data/misc/T1621.xml +29 -0
- data/misc/T1622.xml +35 -0
- data/misc/T1626.xml +30 -0
- data/misc/T1627.xml +29 -0
- data/misc/T1629.xml +41 -0
- data/misc/T163.xml +49 -0
- data/misc/T1630.xml +61 -0
- data/misc/T1631.xml +44 -0
- data/misc/T1632.xml +96 -0
- data/misc/T1633.xml +32 -0
- data/misc/T1634.xml +128 -0
- data/misc/T1635.xml +39 -0
- data/misc/T1636.xml +54 -0
- data/misc/T1637.xml +29 -0
- data/misc/T1638.xml +57 -0
- data/misc/T1642.xml +37 -0
- data/misc/T1644.xml +34 -0
- data/misc/T1650.xml +73 -0
- data/misc/T1651.xml +111 -0
- data/misc/T1652.xml +36 -0
- data/misc/T1656.xml +31 -0
- data/misc/T1657.xml +30 -0
- data/misc/T1658.xml +34 -0
- data/misc/T1675.xml +31 -0
- data/misc/T1678.xml +34 -0
- data/misc/T1679.xml +30 -0
- data/misc/T1680.xml +30 -0
- data/misc/T1681.xml +43 -0
- data/misc/T1685.xml +30 -0
- data/misc/T1691.xml +81 -0
- data/misc/T1693.xml +28 -0
- data/misc/T1698.xml +30 -0
- data/misc/T1699.xml +30 -0
- data/misc/T1701.xml +30 -0
- data/misc/T1703.xml +32 -0
- data/misc/T1706.xml +33 -0
- data/misc/T1713.xml +39 -0
- data/misc/T1714.xml +40 -0
- data/misc/T1719.xml +31 -0
- data/misc/T1720.xml +46 -0
- data/misc/T1721.xml +67 -0
- data/misc/T1722.xml +38 -0
- data/misc/T1727.xml +30 -0
- data/misc/T1729.xml +48 -0
- data/misc/T1730.xml +37 -0
- data/misc/T1731.xml +40 -0
- data/misc/T176.xml +70 -0
- data/misc/T181.xml +75 -0
- data/misc/T184.xml +43 -0
- data/misc/T187.xml +79 -0
- data/misc/T188.xml +35 -0
- data/misc/T190.xml +29 -0
- data/misc/T192.xml +30 -0
- data/misc/T195.xml +33 -0
- data/misc/T197.xml +34 -0
- data/misc/T199.xml +31 -0
- data/misc/T2.xml +39 -0
- data/misc/T201.xml +39 -0
- data/misc/T202.xml +66 -0
- data/misc/T208.xml +41 -0
- data/misc/T210.xml +29 -0
- data/misc/T211.xml +161 -0
- data/misc/T214.xml +31 -0
- data/misc/T216.xml +28 -0
- data/misc/T221.xml +74 -0
- data/misc/T226.xml +29 -0
- data/misc/T23.xml +53 -0
- data/misc/T231.xml +42 -0
- data/misc/T235.xml +544 -0
- data/misc/T236.xml +194 -0
- data/misc/T240.xml +46 -0
- data/misc/T241.xml +36 -0
- data/misc/T242.xml +35 -0
- data/misc/T246.xml +86 -0
- data/misc/T248.xml +34 -0
- data/misc/T249.xml +32 -0
- data/misc/T253.xml +33 -0
- data/misc/T256.xml +48 -0
- data/misc/T257.xml +37 -0
- data/misc/T259.xml +48 -0
- data/misc/T261.xml +44 -0
- data/misc/T262.xml +37 -0
- data/misc/T263.xml +48 -0
- data/misc/T271.xml +29 -0
- data/misc/T272.xml +29 -0
- data/misc/T283.xml +31 -0
- data/misc/T284.xml +93 -0
- data/misc/T286.xml +37 -0
- data/misc/T287.xml +30 -0
- data/misc/T288.xml +34 -0
- data/misc/T290.xml +51 -0
- data/misc/T291.xml +30 -0
- data/misc/T292.xml +29 -0
- data/misc/T293.xml +30 -0
- data/misc/T295.xml +36 -0
- data/misc/T3.xml +34 -0
- data/misc/T304.xml +138 -0
- data/misc/T305.xml +50 -0
- data/misc/T306.xml +347 -0
- data/misc/T308.xml +28 -0
- data/misc/T309.xml +209 -0
- data/misc/T311.xml +32 -0
- data/misc/T312.xml +32 -0
- data/misc/T313.xml +37 -0
- data/misc/T321.xml +35 -0
- data/misc/T322.xml +32 -0
- data/misc/T33.xml +34 -0
- data/misc/T331.xml +49 -0
- data/misc/T333.xml +44 -0
- data/misc/T334.xml +30 -0
- data/misc/T335.xml +52 -0
- data/misc/T336.xml +104 -0
- data/misc/T340.xml +153 -0
- data/misc/T344.xml +87 -0
- data/misc/T345.xml +59 -0
- data/misc/T346.xml +111 -0
- data/misc/T349.xml +30 -0
- data/misc/T353.xml +93 -0
- data/misc/T355.xml +831 -0
- data/misc/T363.xml +376 -0
- data/misc/T365.xml +69 -0
- data/misc/T366.xml +265 -0
- data/misc/T368.xml +129 -0
- data/misc/T371.xml +57 -0
- data/misc/T372.xml +29 -0
- data/misc/T374.xml +1283 -0
- data/misc/T375.xml +106 -0
- data/misc/T377.xml +31 -0
- data/misc/T378.xml +39 -0
- data/misc/T379.xml +36 -0
- data/misc/T381.xml +44 -0
- data/misc/T39.xml +35 -0
- data/misc/T392.xml +30 -0
- data/misc/T393.xml +44 -0
- data/misc/T399.xml +32 -0
- data/misc/T40.xml +164 -0
- data/misc/T400.xml +39 -0
- data/misc/T407.xml +31 -0
- data/misc/T412.xml +42 -0
- data/misc/T422.xml +103 -0
- data/misc/T423.xml +34 -0
- data/misc/T426.xml +508 -0
- data/misc/T432.xml +166 -0
- data/misc/T433.xml +31 -0
- data/misc/T436.xml +33 -0
- data/misc/T437.xml +28 -0
- data/misc/T441.xml +61 -0
- data/misc/T444.xml +33 -0
- data/misc/T445.xml +37 -0
- data/misc/T448.xml +43 -0
- data/misc/T455.xml +29 -0
- data/misc/T456.xml +31 -0
- data/misc/T460.xml +40 -0
- data/misc/T461.xml +30 -0
- data/misc/T465.xml +28 -0
- data/misc/T47.xml +29 -0
- data/misc/T473.xml +40 -0
- data/misc/T478.xml +29 -0
- data/misc/T479.xml +288 -0
- data/misc/T48.xml +31 -0
- data/misc/T480.xml +72 -0
- data/misc/T481.xml +30 -0
- data/misc/T482.xml +36 -0
- data/misc/T483.xml +32 -0
- data/misc/T484.xml +32 -0
- data/misc/T485.xml +38 -0
- data/misc/T486.xml +35 -0
- data/misc/T487.xml +33 -0
- data/misc/T491.xml +31 -0
- data/misc/T501.xml +44 -0
- data/misc/T503.xml +30 -0
- data/misc/T506.xml +32 -0
- data/misc/T51.xml +29 -0
- data/misc/T511.xml +36 -0
- data/misc/T512.xml +31 -0
- data/misc/T514.xml +40 -0
- data/misc/T516.xml +31 -0
- data/misc/T519.xml +33 -0
- data/misc/T52.xml +55 -0
- data/misc/T521.xml +84 -0
- data/misc/T522.xml +1767 -0
- data/misc/T529.xml +43 -0
- data/misc/T533.xml +31 -0
- data/misc/T534.xml +34 -0
- data/misc/T535.xml +33 -0
- data/misc/T536.xml +40 -0
- data/misc/T537.xml +29 -0
- data/misc/T538.xml +36 -0
- data/misc/T54.xml +36 -0
- data/misc/T544.xml +29 -0
- data/misc/T545.xml +36 -0
- data/misc/T546.xml +208 -0
- data/misc/T547.xml +47 -0
- data/misc/T548.xml +86 -0
- data/misc/T558.xml +37 -0
- data/misc/T559.xml +218 -0
- data/misc/T56.xml +46 -0
- data/misc/T560.xml +196 -0
- data/misc/T562.xml +74 -0
- data/misc/T563.xml +83 -0
- data/misc/T566.xml +36 -0
- data/misc/T568.xml +34 -0
- data/misc/T569.xml +73 -0
- data/misc/T570.xml +29 -0
- data/misc/T571.xml +29 -0
- data/misc/T572.xml +32 -0
- data/misc/T575.xml +28 -0
- data/misc/T578.xml +45 -0
- data/misc/T579.xml +36 -0
- data/misc/T580.xml +34 -0
- data/misc/T584.xml +117 -0
- data/misc/T585.xml +46 -0
- data/misc/T587.xml +42 -0
- data/misc/T590.xml +30 -0
- data/misc/T591.xml +81 -0
- data/misc/T592.xml +34 -0
- data/misc/T594.xml +50 -0
- data/misc/T595.xml +33 -0
- data/misc/T6.xml +34 -0
- data/misc/T604.xml +30 -0
- data/misc/T605.xml +31 -0
- data/misc/T608.xml +34 -0
- data/misc/T611.xml +52 -0
- data/misc/T612.xml +31 -0
- data/misc/T615.xml +65 -0
- data/misc/T617.xml +51 -0
- data/misc/T618.xml +50 -0
- data/misc/T620.xml +39 -0
- data/misc/T621.xml +39 -0
- data/misc/T623.xml +78 -0
- data/misc/T625.xml +31 -0
- data/misc/T626.xml +50 -0
- data/misc/T627.xml +32 -0
- data/misc/T629.xml +33 -0
- data/misc/T632.xml +38 -0
- data/misc/T635.xml +47 -0
- data/misc/T639.xml +118 -0
- data/misc/T640.xml +553 -0
- data/misc/T641.xml +463 -0
- data/misc/T644.xml +31 -0
- data/misc/T645.xml +29 -0
- data/misc/T647.xml +227 -0
- data/misc/T648.xml +33 -0
- data/misc/T650.xml +109 -0
- data/misc/T653.xml +39 -0
- data/misc/T654.xml +31 -0
- data/misc/T656.xml +29 -0
- data/misc/T659.xml +47 -0
- data/misc/T66.xml +266 -0
- data/misc/T662.xml +32 -0
- data/misc/T665.xml +29 -0
- data/misc/T666.xml +47 -0
- data/misc/T668.xml +53 -0
- data/misc/T669.xml +33 -0
- data/misc/T670.xml +57 -0
- data/misc/T672.xml +35 -0
- data/misc/T673.xml +1123 -0
- data/misc/T674.xml +32 -0
- data/misc/T675.xml +38 -0
- data/misc/T676.xml +31 -0
- data/misc/T678.xml +72 -0
- data/misc/T679.xml +36 -0
- data/misc/T680.xml +48 -0
- data/misc/T681.xml +38 -0
- data/misc/T682.xml +58 -0
- data/misc/T683.xml +32 -0
- data/misc/T687.xml +89 -0
- data/misc/T688.xml +38 -0
- data/misc/T689.xml +44 -0
- data/misc/T692.xml +61 -0
- data/misc/T693.xml +34 -0
- data/misc/T695.xml +39 -0
- data/misc/T698.xml +30 -0
- data/misc/T699.xml +29 -0
- data/misc/T701.xml +118 -0
- data/misc/T703.xml +45 -0
- data/misc/T704.xml +41 -0
- data/misc/T705.xml +30 -0
- data/misc/T706.xml +151 -0
- data/misc/T707.xml +115 -0
- data/misc/T708.xml +125 -0
- data/misc/T709.xml +29 -0
- data/misc/T714.xml +30 -0
- data/misc/T715.xml +34 -0
- data/misc/T716.xml +47 -0
- data/misc/T717.xml +33 -0
- data/misc/T718.xml +50 -0
- data/misc/T72.xml +30 -0
- data/misc/T720.xml +35 -0
- data/misc/T723.xml +44 -0
- data/misc/T726.xml +46 -0
- data/misc/T728.xml +38 -0
- data/misc/T73.xml +30 -0
- data/misc/T731.xml +34 -0
- data/misc/T732.xml +37 -0
- data/misc/T735.xml +277 -0
- data/misc/T736.xml +29 -0
- data/misc/T737.xml +191 -0
- data/misc/T738.xml +1018 -0
- data/misc/T743.xml +31 -0
- data/misc/T744.xml +39 -0
- data/misc/T745.xml +28 -0
- data/misc/T747.xml +30 -0
- data/misc/T748.xml +51 -0
- data/misc/T749.xml +51 -0
- data/misc/T750.xml +263 -0
- data/misc/T752.xml +136 -0
- data/misc/T753.xml +72 -0
- data/misc/T755.xml +560 -0
- data/misc/T756.xml +82 -0
- data/misc/T759.xml +28 -0
- data/misc/T760.xml +28 -0
- data/misc/T762.xml +42 -0
- data/misc/T771.xml +41 -0
- data/misc/T772.xml +30 -0
- data/misc/T78.xml +31 -0
- data/misc/T783.xml +42 -0
- data/misc/T786.xml +44 -0
- data/misc/T789.xml +44 -0
- data/misc/T792.xml +42 -0
- data/misc/T795.xml +36 -0
- data/misc/T797.xml +32 -0
- data/misc/T8.xml +34 -0
- data/misc/T808.xml +46 -0
- data/misc/T811.xml +45 -0
- data/misc/T812.xml +38 -0
- data/misc/T813.xml +39 -0
- data/misc/T814.xml +29 -0
- data/misc/T815.xml +40 -0
- data/misc/T816.xml +37 -0
- data/misc/T820.xml +58 -0
- data/misc/T821.xml +180 -0
- data/misc/T829.xml +48 -0
- data/misc/T83.xml +55 -0
- data/misc/T831.xml +41 -0
- data/misc/T835.xml +28 -0
- data/misc/T836.xml +63 -0
- data/misc/T837.xml +38 -0
- data/misc/T844.xml +30 -0
- data/misc/T845.xml +34 -0
- data/misc/T846.xml +66 -0
- data/misc/T847.xml +35 -0
- data/misc/T848.xml +30 -0
- data/misc/T849.xml +30 -0
- data/misc/T850.xml +39 -0
- data/misc/T852.xml +31 -0
- data/misc/T853.xml +48 -0
- data/misc/T854.xml +47 -0
- data/misc/T855.xml +29 -0
- data/misc/T856.xml +31 -0
- data/misc/T859.xml +69 -0
- data/misc/T868.xml +29 -0
- data/misc/T875.xml +150 -0
- data/misc/T88.xml +48 -0
- data/misc/T883.xml +36 -0
- data/misc/T886.xml +36 -0
- data/misc/T887.xml +42 -0
- data/misc/T888.xml +34 -0
- data/misc/T889.xml +37 -0
- data/misc/T890.xml +43 -0
- data/misc/T891.xml +47 -0
- data/misc/T892.xml +52 -0
- data/misc/T893.xml +29 -0
- data/misc/T894.xml +39 -0
- data/misc/T897.xml +31 -0
- data/misc/T9.xml +50 -0
- data/misc/T90.xml +31 -0
- data/misc/T901.xml +234 -0
- data/misc/T902.xml +31 -0
- data/misc/T903.xml +30 -0
- data/misc/T904.xml +33 -0
- data/misc/T906.xml +31 -0
- data/misc/T91.xml +107 -0
- data/misc/T912.xml +32 -0
- data/misc/T913.xml +43 -0
- data/misc/T92.xml +98 -0
- data/misc/T921.xml +33 -0
- data/misc/T922.xml +33 -0
- data/misc/T923.xml +35 -0
- data/misc/T924.xml +29 -0
- data/misc/T927.xml +29 -0
- data/misc/T934.xml +34 -0
- data/misc/T935.xml +157 -0
- data/misc/T936.xml +86 -0
- data/misc/T937.xml +47 -0
- data/misc/T938.xml +35 -0
- data/misc/T939.xml +29 -0
- data/misc/T940.xml +32 -0
- data/misc/T943.xml +53 -0
- data/misc/T944.xml +43 -0
- data/misc/T945.xml +56 -0
- data/misc/T950.xml +75 -0
- data/misc/T951.xml +36 -0
- data/misc/T952.xml +30 -0
- data/misc/T955.xml +32 -0
- data/misc/T959.xml +29 -0
- data/misc/T960.xml +40 -0
- data/misc/T962.xml +38 -0
- data/misc/T963.xml +129 -0
- data/misc/T964.xml +46 -0
- data/misc/T969.xml +38 -0
- data/misc/T974.xml +28 -0
- data/misc/T976.xml +32 -0
- data/misc/T98.xml +1511 -0
- data/misc/T980.xml +35 -0
- data/misc/T981.xml +46 -0
- data/misc/T982.xml +32 -0
- data/misc/T983.xml +29 -0
- data/misc/T984.xml +30 -0
- data/misc/T985.xml +28 -0
- data/misc/T986.xml +28 -0
- data/misc/T987.xml +36 -0
- data/misc/T988.xml +48 -0
- data/misc/T990.xml +34 -0
- data/misc/T998.xml +30 -0
- data/misc/T999.xml +39 -0
- data/misc/TA.xml +34 -0
- data/misc/TA1.xml +32 -0
- data/misc/TAX.xml +40 -0
- data/misc/TBI.xml +35 -0
- data/misc/TC2.xml +29 -0
- data/misc/TCD.xml +43 -0
- data/misc/TD1.xml +37 -0
- data/misc/TD3.xml +37 -0
- data/misc/TD4.xml +32 -0
- data/misc/TD5.xml +42 -0
- data/misc/TDS.xml +31 -0
- data/misc/TDT.xml +31 -0
- data/misc/TED.xml +35 -0
- data/misc/TEM.xml +32 -0
- data/misc/TER.xml +33 -0
- data/misc/TF.xml +31 -0
- data/misc/TFR.xml +31 -0
- data/misc/TFS.xml +35 -0
- data/misc/THE.xml +32 -0
- data/misc/TI.xml +34 -0
- data/misc/TI01.xml +34 -0
- data/misc/TI03.xml +29 -0
- data/misc/TI05.xml +65 -0
- data/misc/TI10.xml +28 -0
- data/misc/TI11.xml +41 -0
- data/misc/TI13.xml +29 -0
- data/misc/TI14.xml +30 -0
- data/misc/TI40.xml +36 -0
- data/misc/TI43.xml +61 -0
- data/misc/TI58.xml +32 -0
- data/misc/TI60.xml +29 -0
- data/misc/TI61.xml +30 -0
- data/misc/TI62.xml +30 -0
- data/misc/TI63.xml +33 -0
- data/misc/TIA.xml +34 -0
- data/misc/TID.xml +36 -0
- data/misc/TII.xml +32 -0
- data/misc/TIS.xml +31 -0
- data/misc/TLN.xml +49 -0
- data/misc/TMD.xml +36 -0
- data/misc/TOA.xml +32 -0
- data/misc/TOO.xml +30 -0
- data/misc/TOV.xml +33 -0
- data/misc/TPB.xml +31 -0
- data/misc/TPD.xml +31 -0
- data/misc/TRF.xml +32 -0
- data/misc/TRL.xml +32 -0
- data/misc/TRN.xml +31 -0
- data/misc/TRS.xml +32 -0
- data/misc/TS.xml +34 -0
- data/misc/TS2.xml +46 -0
- data/misc/TS3.xml +51 -0
- data/misc/TSD.xml +29 -0
- data/misc/TSI.xml +31 -0
- data/misc/TSP.xml +31 -0
- data/misc/TST.xml +44 -0
- data/misc/TSU.xml +35 -0
- data/misc/TT.xml +29 -0
- data/misc/TUD.xml +30 -0
- data/misc/TXI.xml +37 -0
- data/misc/TXN.xml +37 -0
- data/misc/TXP.xml +37 -0
- data/misc/UC.xml +31 -0
- data/misc/UCS.xml +35 -0
- data/misc/UD.xml +44 -0
- data/misc/UDA.xml +34 -0
- data/misc/UIT.xml +30 -0
- data/misc/UM.xml +37 -0
- data/misc/UQS.xml +31 -0
- data/misc/UR.xml +29 -0
- data/misc/USD.xml +39 -0
- data/misc/USI.xml +30 -0
- data/misc/UWI.xml +31 -0
- data/misc/V1.xml +36 -0
- data/misc/V2.xml +44 -0
- data/misc/V3.xml +31 -0
- data/misc/V4.xml +28 -0
- data/misc/V5.xml +30 -0
- data/misc/V9.xml +47 -0
- data/misc/VAD.xml +38 -0
- data/misc/VAR.xml +34 -0
- data/misc/VAT.xml +39 -0
- data/misc/VC.xml +40 -0
- data/misc/VC1.xml +42 -0
- data/misc/VDI.xml +42 -0
- data/misc/VEH.xml +43 -0
- data/misc/VID.xml +40 -0
- data/misc/VR.xml +36 -0
- data/misc/VRC.xml +32 -0
- data/misc/W01.xml +43 -0
- data/misc/W03.xml +34 -0
- data/misc/W04.xml +42 -0
- data/misc/W05.xml +35 -0
- data/misc/W06.xml +39 -0
- data/misc/W07.xml +38 -0
- data/misc/W08.xml +36 -0
- data/misc/W09.xml +36 -0
- data/misc/W1.xml +28 -0
- data/misc/W10.xml +36 -0
- data/misc/W12.xml +49 -0
- data/misc/W13.xml +32 -0
- data/misc/W14.xml +32 -0
- data/misc/W15.xml +33 -0
- data/misc/W17.xml +36 -0
- data/misc/W18.xml +30 -0
- data/misc/W19.xml +45 -0
- data/misc/W2.xml +43 -0
- data/misc/W20.xml +37 -0
- data/misc/W27.xml +37 -0
- data/misc/W28.xml +35 -0
- data/misc/W3.xml +33 -0
- data/misc/W4.xml +32 -0
- data/misc/W5.xml +33 -0
- data/misc/W6.xml +31 -0
- data/misc/W66.xml +37 -0
- data/misc/W76.xml +33 -0
- data/misc/WLD.xml +37 -0
- data/misc/WS.xml +30 -0
- data/misc/X01.xml +37 -0
- data/misc/X02.xml +32 -0
- data/misc/X1.xml +44 -0
- data/misc/X2.xml +33 -0
- data/misc/X4.xml +46 -0
- data/misc/X7.xml +29 -0
- data/misc/XD.xml +32 -0
- data/misc/XH.xml +34 -0
- data/misc/XPO.xml +31 -0
- data/misc/XQ.xml +32 -0
- data/misc/Y1.xml +36 -0
- data/misc/Y2.xml +37 -0
- data/misc/Y3.xml +38 -0
- data/misc/Y4.xml +37 -0
- data/misc/Y5.xml +28 -0
- data/misc/Y6.xml +30 -0
- data/misc/Y7.xml +32 -0
- data/misc/YNQ.xml +37 -0
- data/misc/ZA.xml +35 -0
- data/misc/ZC1.xml +36 -0
- data/misc/ZD.xml +36 -0
- data/misc/ZR.xml +43 -0
- data/misc/ZT.xml +33 -0
- data/misc/rdoc_template.rb +697 -0
- data/test/tc_factory_270.rb +170 -0
- data/test/tc_factory_270interchange.rb +306 -0
- data/test/tc_factory_271.rb +235 -0
- data/test/tc_factory_276.rb +42 -0
- data/test/tc_factory_277.rb +43 -0
- data/test/tc_factory_834.rb +265 -0
- data/test/tc_factory_837p.rb +285 -0
- data/test/tc_factory_997.rb +138 -0
- data/test/tc_factory_999.rb +128 -0
- data/test/tc_parse_270.rb +98 -0
- data/test/tc_parse_270interchange.rb +184 -0
- data/test/tc_parse_271.rb +158 -0
- data/test/tc_parse_276.rb +151 -0
- data/test/tc_parse_277.rb +128 -0
- data/test/tc_parse_834.rb +49 -0
- data/test/tc_parse_835.rb +215 -0
- data/test/tc_parse_837p.rb +82 -0
- data/test/tc_parse_997.rb +147 -0
- data/test/tc_parse_999.rb +89 -0
- data/x12.gemspec +21 -0
- 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
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
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
|
data/example/factory.rb
ADDED
|
@@ -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
|