PD_x12 1.3.1
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.
- data/.gitignore +17 -0
- data/.project +13 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +70 -0
- data/Rakefile +26 -0
- data/example/factory.rb +92 -0
- data/example/parse.rb +57 -0
- data/lib/x12.rb +42 -0
- data/lib/x12/base.rb +210 -0
- data/lib/x12/composite.rb +37 -0
- data/lib/x12/empty.rb +43 -0
- data/lib/x12/field.rb +92 -0
- data/lib/x12/loop.rb +78 -0
- data/lib/x12/parser.rb +151 -0
- data/lib/x12/segment.rb +107 -0
- data/lib/x12/table.rb +44 -0
- data/lib/x12/version.rb +3 -0
- data/lib/x12/xmldefinitions.rb +159 -0
- data/misc/270.xml +152 -0
- data/misc/270interchange.xml +163 -0
- data/misc/837p.xml +252 -0
- data/misc/997.xml +50 -0
- data/misc/997single.xml +835 -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 +29 -0
- data/misc/AK2.xml +29 -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/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/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/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/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 +39 -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/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_837p.rb +285 -0
- data/test/tc_factory_997.rb +134 -0
- data/test/tc_parse_270.rb +98 -0
- data/test/tc_parse_270interchange.rb +184 -0
- data/test/tc_parse_837p.rb +82 -0
- data/test/tc_parse_997.rb +146 -0
- data/x12.gemspec +17 -0
- metadata +1893 -0
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/Gemfile
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2012 MJPete3
|
|
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,70 @@
|
|
|
1
|
+
# X12
|
|
2
|
+
|
|
3
|
+
This project originated from App Design's X12 parser. The website is located: http://www.appdesign.com/x12parser. Project was forked by Sean Walberg, creating version 1.2.0 in April 2012.
|
|
4
|
+
Current version has been upgraded to run under ruby version >= 1.9.1
|
|
5
|
+
|
|
6
|
+
Changes welcome, especially new document types or better tests.
|
|
7
|
+
|
|
8
|
+
# License
|
|
9
|
+
|
|
10
|
+
This library is free software; you can redistribute it and/or
|
|
11
|
+
modify it under the terms of the GNU Lesser General Public
|
|
12
|
+
License as published by the Free Software Foundation; either
|
|
13
|
+
version 2.1 of the License, or (at your option) any later version.
|
|
14
|
+
|
|
15
|
+
This library is distributed in the hope that it will be useful,
|
|
16
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
18
|
+
Lesser General Public License for more details.
|
|
19
|
+
|
|
20
|
+
You should have received a copy of the GNU Lesser General Public
|
|
21
|
+
License along with this library; if not, write to the Free Software
|
|
22
|
+
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
Add this line to your application's Gemfile:
|
|
27
|
+
|
|
28
|
+
gem 'X12'
|
|
29
|
+
|
|
30
|
+
And then execute:
|
|
31
|
+
|
|
32
|
+
$ bundle
|
|
33
|
+
|
|
34
|
+
Or install it yourself as:
|
|
35
|
+
|
|
36
|
+
$ gem install X12
|
|
37
|
+
|
|
38
|
+
# Usage
|
|
39
|
+
|
|
40
|
+
TODO: Write usage instructions here
|
|
41
|
+
|
|
42
|
+
# Change Log
|
|
43
|
+
|
|
44
|
+
11/23/12 - release 1.3.0
|
|
45
|
+
* Updated to work with Ruby version >= 1.9.1
|
|
46
|
+
* includes bundle gem_tasks
|
|
47
|
+
* In misc/T105.xml escaped ampersand in Dun & Bradstreet
|
|
48
|
+
|
|
49
|
+
4/18/12 - Release 1.2.0
|
|
50
|
+
* Works with Ruby version >= 1.8.6
|
|
51
|
+
* All the gem info has been changed to use bundler
|
|
52
|
+
* Everything has been renamed to be lower case and work on case sensitive systems
|
|
53
|
+
* Stopped including REXML, which was causing problems with Rails 3 and mailer
|
|
54
|
+
* To use version 1.2.0, install with "$gem install sx12"
|
|
55
|
+
|
|
56
|
+
5/15/09 - Release 1.1.0
|
|
57
|
+
* Ported X12 definitions and definition parser from proprietary d12 language to XML.
|
|
58
|
+
* Added X12 definitions for 270 message and all its dependent segments and validation tables.
|
|
59
|
+
|
|
60
|
+
3/19/09 - Release 0.1.0
|
|
61
|
+
* Implemented field constants.
|
|
62
|
+
* Implemented separate definition files for segments and validation tables.
|
|
63
|
+
|
|
64
|
+
11/15/08 - Release 0.0.5, first public one
|
|
65
|
+
* Added comments.
|
|
66
|
+
* Added examples.
|
|
67
|
+
* Wrote README
|
|
68
|
+
|
|
69
|
+
4/10/08 - Release 0.0.1
|
|
70
|
+
* Internal release for testing
|
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/lib/x12.rb
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
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 "x12/version"
|
|
29
|
+
require 'x12/base'
|
|
30
|
+
require 'x12/empty'
|
|
31
|
+
require 'x12/field'
|
|
32
|
+
require 'x12/composite'
|
|
33
|
+
require 'x12/segment'
|
|
34
|
+
require 'x12/table'
|
|
35
|
+
require 'x12/loop'
|
|
36
|
+
require 'x12/xmldefinitions'
|
|
37
|
+
require 'x12/parser'
|
|
38
|
+
|
|
39
|
+
module X12
|
|
40
|
+
EMPTY = Empty.new()
|
|
41
|
+
TEST_REPEAT = 100
|
|
42
|
+
end
|
data/lib/x12/base.rb
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
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
|
+
# $Id: Base.rb 70 2009-03-26 19:25:39Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Base class for Segment, Composite, and Loop. Contains setable
|
|
29
|
+
# segment_separator, field_separator, and composite_separator fields.
|
|
30
|
+
|
|
31
|
+
class Base
|
|
32
|
+
|
|
33
|
+
attr_reader :name, :repeats
|
|
34
|
+
attr_reader :segment_separator, :field_separator, :composite_separator, :next_repeat, :parsed_str, :nodes
|
|
35
|
+
attr_writer :segment_separator, :field_separator, :composite_separator, :next_repeat, :parsed_str, :nodes
|
|
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
|
+
|
|
49
|
+
#puts "Created #{name} #{object_id} #{self.class} "
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Formats a printable string containing the base element's content
|
|
53
|
+
def inspect
|
|
54
|
+
"#{self.class.to_s.sub(/^.*::/, '')} (#{name}) #{repeats} #{super.inspect[1..-2]} =<#{parsed_str}, #{next_repeat.inspect}> ".gsub(/\\*\"/, '"')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Prints a tree-like representation of the element
|
|
58
|
+
def show(ind = '')
|
|
59
|
+
count = 0
|
|
60
|
+
self.to_a.each{|i|
|
|
61
|
+
#puts "#{ind}#{i.name} #{i.object_id} #{i.super.object_id} [#{count}]: #{i.parsed_str} #{i.super.class}"
|
|
62
|
+
puts "#{ind}#{i.name} [#{count}]: #{i.to_s.sub(/^(.{30})(.*?)(.{30})$/, '\1...\3')}"
|
|
63
|
+
# Force parsing a segment
|
|
64
|
+
if i.kind_of?(X12::Segment) && i.nodes[0]
|
|
65
|
+
i.find_field(i.nodes[0].name)
|
|
66
|
+
end
|
|
67
|
+
i.nodes.each{|j|
|
|
68
|
+
case
|
|
69
|
+
when j.kind_of?(X12::Base) then j.show(ind+' ')
|
|
70
|
+
when j.kind_of?(X12::Field) then puts "#{ind+' '}#{j.name} -> '#{j.to_s}'"
|
|
71
|
+
end
|
|
72
|
+
}
|
|
73
|
+
count += 1
|
|
74
|
+
}
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Try to parse the current element one more time if required. Returns the rest of the string
|
|
78
|
+
# or the same string if no more repeats are found or required.
|
|
79
|
+
def do_repeats(s)
|
|
80
|
+
if self.repeats.end > 1
|
|
81
|
+
possible_repeat = self.dup
|
|
82
|
+
p_s = possible_repeat.parse(s)
|
|
83
|
+
if p_s
|
|
84
|
+
s = p_s
|
|
85
|
+
self.next_repeat = possible_repeat
|
|
86
|
+
end # if parsed
|
|
87
|
+
end # more repeats
|
|
88
|
+
s
|
|
89
|
+
end # do_repeats
|
|
90
|
+
|
|
91
|
+
# Empty out the current element
|
|
92
|
+
def set_empty!
|
|
93
|
+
@next_repeat = nil
|
|
94
|
+
@parsed_str = nil
|
|
95
|
+
self
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Make a deep copy of the element
|
|
99
|
+
def dup
|
|
100
|
+
n = clone
|
|
101
|
+
n.set_empty!
|
|
102
|
+
n.nodes = n.nodes.dup
|
|
103
|
+
n.nodes.each_index{|i|
|
|
104
|
+
n.nodes[i] = n.nodes[i].dup
|
|
105
|
+
n.nodes[i].set_empty!
|
|
106
|
+
}
|
|
107
|
+
#puts "Duped #{self.class} #{self.name} #{self.object_id} #{super.object_id} -> #{n.name} #{n.super.object_id} #{n.object_id} "
|
|
108
|
+
n
|
|
109
|
+
end # dup
|
|
110
|
+
|
|
111
|
+
# Recursively find a sub-element, which also has to be of type Base.
|
|
112
|
+
def find(e)
|
|
113
|
+
#puts "Finding [#{e}] in #{self.class} #{name}"
|
|
114
|
+
case self
|
|
115
|
+
when X12::Loop
|
|
116
|
+
# Breadth first
|
|
117
|
+
res = nodes.find{|i| e==i.name }
|
|
118
|
+
return res if res
|
|
119
|
+
# Depth now
|
|
120
|
+
nodes.each{|i|
|
|
121
|
+
res = i.find(e) if i.kind_of?(X12::Loop)
|
|
122
|
+
return res unless res.nil? or EMPTY==res # otherwise keep looping
|
|
123
|
+
}
|
|
124
|
+
when X12::Segment
|
|
125
|
+
return find_field(e).to_s
|
|
126
|
+
end # case
|
|
127
|
+
return EMPTY
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Present self and all repeats as an array with self being #0
|
|
131
|
+
def to_a
|
|
132
|
+
res = [self]
|
|
133
|
+
nr = self.next_repeat
|
|
134
|
+
while nr do
|
|
135
|
+
res << nr
|
|
136
|
+
nr = nr.next_repeat
|
|
137
|
+
end
|
|
138
|
+
res
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Returns a parsed string representation of the element
|
|
142
|
+
def to_s
|
|
143
|
+
@parsed_str || ''
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# The main method implementing Ruby-like access methods for nested elements
|
|
147
|
+
def method_missing(meth, *args, &block)
|
|
148
|
+
str = meth.id2name
|
|
149
|
+
str = str[1..str.length] if str =~ /^_\d+$/ # to avoid pure number names like 270, 997, etc.
|
|
150
|
+
#puts "Missing #{str}"
|
|
151
|
+
if str =~ /=$/
|
|
152
|
+
# Assignment
|
|
153
|
+
str.chop!
|
|
154
|
+
#puts str
|
|
155
|
+
case self
|
|
156
|
+
when X12::Segment
|
|
157
|
+
res = find_field(str)
|
|
158
|
+
throw Exception.new("No field '#{str}' in segment '#{self.name}'") if EMPTY == res
|
|
159
|
+
res.content = args[0].to_s
|
|
160
|
+
#puts res.inspect
|
|
161
|
+
else
|
|
162
|
+
throw Exception.new("Illegal assignment to #{meth} of #{self.class}")
|
|
163
|
+
end # case
|
|
164
|
+
else
|
|
165
|
+
# Retrieval
|
|
166
|
+
res = find(str)
|
|
167
|
+
yield res if block_given?
|
|
168
|
+
res
|
|
169
|
+
end # if assignment
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# The main method implementing Ruby-like access methods for repeating elements
|
|
173
|
+
def [](*args)
|
|
174
|
+
#puts "squares #{args.inspect}"
|
|
175
|
+
return self.to_a[args[0]] || EMPTY
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# Yields to accompanying block passing self as a parameter.
|
|
179
|
+
def with(&block)
|
|
180
|
+
if block_given?
|
|
181
|
+
yield self
|
|
182
|
+
else
|
|
183
|
+
throw Exception.new("Method 'with' requires a block.")
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# Returns number of repeats
|
|
188
|
+
def size
|
|
189
|
+
return self.to_a.size
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Check if any of the fields has been set yet
|
|
193
|
+
def has_content?
|
|
194
|
+
self.nodes.find{|i| i.has_content?}
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Adds a repeat to a segment or loop. Returns a new segment/loop or self if empty.
|
|
198
|
+
def repeat
|
|
199
|
+
res = if self.has_content? # Do not repeat an empty segment
|
|
200
|
+
last_repeat = self.to_a[-1]
|
|
201
|
+
last_repeat.next_repeat = last_repeat.dup
|
|
202
|
+
else
|
|
203
|
+
self
|
|
204
|
+
end
|
|
205
|
+
yield res if block_given?
|
|
206
|
+
res
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
end # Base
|
|
210
|
+
end
|