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
|
@@ -0,0 +1,37 @@
|
|
|
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: Composite.rb 35 2008-11-13 18:33:44Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Class implementing a composite field.
|
|
29
|
+
|
|
30
|
+
class Composite < Base
|
|
31
|
+
|
|
32
|
+
# Make a printable representation of the composite
|
|
33
|
+
def inspect
|
|
34
|
+
"Composite "+super.inspect
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
data/lib/x12/empty.rb
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
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: Empty.rb 35 2008-11-13 18:33:44Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Class indicating the absense of any X12 element, be it loop, segment, or anything else like that.
|
|
29
|
+
|
|
30
|
+
class Empty < Base
|
|
31
|
+
|
|
32
|
+
# Create a new empty
|
|
33
|
+
def initialize
|
|
34
|
+
super(nil, [])
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Returns an empty string
|
|
38
|
+
def to_s
|
|
39
|
+
''
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end # Empty
|
|
43
|
+
end # X12
|
data/lib/x12/field.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
|
+
module X12
|
|
25
|
+
|
|
26
|
+
# $Id: Field.rb 90 2009-05-13 19:51:27Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Class to represent a segment field. Please note, it's not a descendant of Base.
|
|
29
|
+
|
|
30
|
+
class Field
|
|
31
|
+
attr_reader :name, :type, :required, :min_length, :max_length, :validation
|
|
32
|
+
attr_writer :content
|
|
33
|
+
|
|
34
|
+
# Create a new field with given parameters
|
|
35
|
+
def initialize(name, type, required, min_length, max_length, validation)
|
|
36
|
+
@name = name
|
|
37
|
+
@type = type
|
|
38
|
+
@required = required
|
|
39
|
+
@min_length = min_length.to_i
|
|
40
|
+
@max_length = max_length.to_i
|
|
41
|
+
@validation = validation
|
|
42
|
+
@content = nil
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns printable string with field's content
|
|
46
|
+
def inspect
|
|
47
|
+
"Field #{name}|#{type}|#{required}|#{min_length}-#{max_length}|#{validation} <#{@content}>"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Synonym for 'render'
|
|
51
|
+
def to_s
|
|
52
|
+
render
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def render
|
|
56
|
+
unless @content
|
|
57
|
+
@content = $1 if self.type =~ /"(.*)"/ # If it's a constant
|
|
58
|
+
end
|
|
59
|
+
@content || ''
|
|
60
|
+
end # render
|
|
61
|
+
|
|
62
|
+
# Check if it's been set yet and it's not a constant
|
|
63
|
+
def has_content?
|
|
64
|
+
!@content.nil? && ('"'+@content+'"' != self.type)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Erase the content
|
|
68
|
+
def set_empty!
|
|
69
|
+
@content = nil
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Returns simplified string regexp for this field, takes field separator and segment separator as arguments
|
|
73
|
+
def simple_regexp(field_sep, segment_sep)
|
|
74
|
+
case self.type
|
|
75
|
+
when /"(.*)"/ then $1
|
|
76
|
+
else "[^#{Regexp.escape(field_sep)}#{Regexp.escape(segment_sep)}]*"
|
|
77
|
+
end # case
|
|
78
|
+
end # simple_regexp
|
|
79
|
+
|
|
80
|
+
# Returns proper validating string regexp for this field, takes field separator and segment separator as arguments
|
|
81
|
+
def proper_regexp(field_sep, segment_sep)
|
|
82
|
+
case self.type
|
|
83
|
+
when 'I' then "\\d{#{@min_length},#{@max_length}}"
|
|
84
|
+
when 'S' then "[^#{Regexp.escape(field_sep)}#{Regexp.escape(segment_sep)}]{#{@min_length},#{@max_length}}"
|
|
85
|
+
when /C.*/ then "[^#{Regexp.escape(field_sep)}#{Regexp.escape(segment_sep)}]{#{@min_length},#{@max_length}}"
|
|
86
|
+
when /"(.*)"/ then $1
|
|
87
|
+
else "[^#{Regexp.escape(field_sep)}#{Regexp.escape(segment_sep)}]*"
|
|
88
|
+
end # case
|
|
89
|
+
end # str_regexp
|
|
90
|
+
|
|
91
|
+
end
|
|
92
|
+
end
|
data/lib/x12/loop.rb
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
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: Loop.rb 59 2009-03-19 22:32:13Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Implements nested loops of segments
|
|
29
|
+
|
|
30
|
+
class Loop < Base
|
|
31
|
+
|
|
32
|
+
# def regexp
|
|
33
|
+
# @regexp ||=
|
|
34
|
+
# Regexp.new(inject(''){|s, i|
|
|
35
|
+
# puts i.class
|
|
36
|
+
# s += case i
|
|
37
|
+
# when X12::Segment: "(#{i.regexp.source}){#{i.repeats.begin},#{i.repeats.end}}"
|
|
38
|
+
# when X12::Loop: "(.*?)"
|
|
39
|
+
# else
|
|
40
|
+
# ''
|
|
41
|
+
# end
|
|
42
|
+
# })
|
|
43
|
+
# end
|
|
44
|
+
|
|
45
|
+
# Parse a string and fill out internal structures with the pieces of it. Returns
|
|
46
|
+
# an unparsed portion of the string or the original string if nothing was parsed out.
|
|
47
|
+
def parse(str)
|
|
48
|
+
#puts "Parsing loop #{name}: "+str
|
|
49
|
+
s = str
|
|
50
|
+
nodes.each{|i|
|
|
51
|
+
m = i.parse(s)
|
|
52
|
+
s = m if m
|
|
53
|
+
}
|
|
54
|
+
if str == s
|
|
55
|
+
return nil
|
|
56
|
+
else
|
|
57
|
+
self.parsed_str = str[0..-s.length-1]
|
|
58
|
+
s = do_repeats(s)
|
|
59
|
+
end
|
|
60
|
+
#puts 'Parsed loop '+self.inspect
|
|
61
|
+
return s
|
|
62
|
+
end # parse
|
|
63
|
+
|
|
64
|
+
# Render all components of this loop as string suitable for EDI
|
|
65
|
+
def render
|
|
66
|
+
if self.has_content?
|
|
67
|
+
self.to_a.inject(''){|loop_str, i|
|
|
68
|
+
loop_str += i.nodes.inject(''){|nodes_str, j|
|
|
69
|
+
nodes_str += j.render
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else
|
|
73
|
+
''
|
|
74
|
+
end
|
|
75
|
+
end # render
|
|
76
|
+
|
|
77
|
+
end # Loop
|
|
78
|
+
end # X12
|
data/lib/x12/parser.rb
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
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
|
+
|
|
25
|
+
require "rexml/document"
|
|
26
|
+
|
|
27
|
+
require 'pp'
|
|
28
|
+
|
|
29
|
+
module X12
|
|
30
|
+
|
|
31
|
+
# $Id: Parser.rb 89 2009-05-13 19:36:20Z ikk $
|
|
32
|
+
#
|
|
33
|
+
# Main class for creating X12 parsers and factories.
|
|
34
|
+
|
|
35
|
+
class Parser
|
|
36
|
+
|
|
37
|
+
# These constitute prohibited file names under Microsoft
|
|
38
|
+
MS_DEVICES = [
|
|
39
|
+
'CON',
|
|
40
|
+
'PRN',
|
|
41
|
+
'AUX',
|
|
42
|
+
'CLOCK$',
|
|
43
|
+
'NUL',
|
|
44
|
+
'COM1',
|
|
45
|
+
'LPT1',
|
|
46
|
+
'LPT2',
|
|
47
|
+
'LPT3',
|
|
48
|
+
'COM2',
|
|
49
|
+
'COM3',
|
|
50
|
+
'COM4',
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
# Creates a parser out of a definition
|
|
54
|
+
def initialize(file_name)
|
|
55
|
+
save_definition = @x12_definition
|
|
56
|
+
|
|
57
|
+
# Deal with Microsoft devices
|
|
58
|
+
# get the current working directory
|
|
59
|
+
@dir_name = Dir.pwd + "/misc/"
|
|
60
|
+
file_name = @dir_name + file_name
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
base_name = File.basename(file_name, '.xml')
|
|
64
|
+
if MS_DEVICES.find{|i| i == base_name}
|
|
65
|
+
file_name = File.join(File.dirname, "#{base_name}_.xml")
|
|
66
|
+
end
|
|
67
|
+
#puts "Reading definition from #{file_name}"
|
|
68
|
+
|
|
69
|
+
# Read and parse the definition
|
|
70
|
+
str = File.open(file_name, 'r').read
|
|
71
|
+
#@dir_name = File.dirname(File.expand_path(file_name)) # to look up other files if needed
|
|
72
|
+
@x12_definition = X12::XMLDefinitions.new(str)
|
|
73
|
+
|
|
74
|
+
# Populate fields in all segments found in all the loops
|
|
75
|
+
@x12_definition[X12::Loop].each_pair{|k, v|
|
|
76
|
+
#puts "Populating definitions for loop #{k}"
|
|
77
|
+
process_loop(v)
|
|
78
|
+
} if @x12_definition[X12::Loop]
|
|
79
|
+
|
|
80
|
+
# Merge the newly parsed definition into a saved one, if any.
|
|
81
|
+
if save_definition
|
|
82
|
+
@x12_definition.keys.each{|t|
|
|
83
|
+
save_definition[t] ||= {}
|
|
84
|
+
@x12_definition[t].keys.each{|u|
|
|
85
|
+
save_definition[t][u] = @x12_definition[t][u]
|
|
86
|
+
}
|
|
87
|
+
@x12_definition = save_definition
|
|
88
|
+
}
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
#puts PP.pp(self, '')
|
|
92
|
+
end # initialize
|
|
93
|
+
|
|
94
|
+
# Parse a loop of a given name out of a string. Throws an exception if the loop name is not defined.
|
|
95
|
+
def parse(loop_name, str)
|
|
96
|
+
loop = @x12_definition[X12::Loop][loop_name]
|
|
97
|
+
#puts "Loops to parse #{@x12_definition[X12::Loop].keys}"
|
|
98
|
+
throw Exception.new("Cannot find a definition for loop #{loop_name}") unless loop
|
|
99
|
+
loop = loop.dup
|
|
100
|
+
loop.parse(str)
|
|
101
|
+
return loop
|
|
102
|
+
end # parse
|
|
103
|
+
|
|
104
|
+
# Make an empty loop to be filled out with information
|
|
105
|
+
def factory(loop_name)
|
|
106
|
+
loop = @x12_definition[X12::Loop][loop_name]
|
|
107
|
+
throw Exception.new("Cannot find a definition for loop #{loop_name}") unless loop
|
|
108
|
+
loop = loop.dup
|
|
109
|
+
return loop
|
|
110
|
+
end # factory
|
|
111
|
+
|
|
112
|
+
private
|
|
113
|
+
|
|
114
|
+
# Recursively scan the loop and instantiate fields' definitions for all its
|
|
115
|
+
# segments
|
|
116
|
+
def process_loop(loop)
|
|
117
|
+
loop.nodes.each{|i|
|
|
118
|
+
case i
|
|
119
|
+
when X12::Loop then process_loop(i)
|
|
120
|
+
when X12::Segment then process_segment(i) unless i.nodes.size > 0
|
|
121
|
+
else return
|
|
122
|
+
end
|
|
123
|
+
}
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Instantiate segment's fields as previously defined
|
|
127
|
+
def process_segment(segment)
|
|
128
|
+
#puts "Trying to process segment #{segment.inspect}"
|
|
129
|
+
unless @x12_definition[X12::Segment] && @x12_definition[X12::Segment][segment.name]
|
|
130
|
+
# Try to find it in a separate file if missing from the @x12_definition structure
|
|
131
|
+
initialize(segment.name+'.xml')
|
|
132
|
+
segment_definition = @x12_definition[X12::Segment][segment.name]
|
|
133
|
+
throw Exception.new("Cannot find a definition for segment #{segment.name}") unless segment_definition
|
|
134
|
+
else
|
|
135
|
+
segment_definition = @x12_definition[X12::Segment][segment.name]
|
|
136
|
+
end
|
|
137
|
+
segment_definition.nodes.each_index{|i|
|
|
138
|
+
segment.nodes[i] = segment_definition.nodes[i]
|
|
139
|
+
# Make sure we have the validation table if any for this field. Try to read one in if missing.
|
|
140
|
+
table = segment.nodes[i].validation
|
|
141
|
+
if table
|
|
142
|
+
unless @x12_definition[X12::Table] && @x12_definition[X12::Table][table]
|
|
143
|
+
initialize(table+'.xml')
|
|
144
|
+
throw Exception.new("Cannot find a definition for table #{table}") unless @x12_definition[X12::Table] && @x12_definition[X12::Table][table]
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
}
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
end # Parser
|
|
151
|
+
end
|
data/lib/x12/segment.rb
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
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: Segment.rb 82 2009-05-13 18:07:22Z ikk $
|
|
27
|
+
#
|
|
28
|
+
# Implements a segment containing fields or composites
|
|
29
|
+
|
|
30
|
+
class Segment < Base
|
|
31
|
+
|
|
32
|
+
# Parses this segment out of a string, puts the match into value, returns the rest of the string - nil
|
|
33
|
+
# if cannot parse
|
|
34
|
+
def parse(str)
|
|
35
|
+
s = str
|
|
36
|
+
#puts "Parsing segment #{name} from #{s} with regexp [#{regexp.source}]"
|
|
37
|
+
m = regexp.match(s)
|
|
38
|
+
#puts "Matched #{m ? m[0] : 'nothing'}"
|
|
39
|
+
|
|
40
|
+
return nil unless m
|
|
41
|
+
|
|
42
|
+
s = m.post_match
|
|
43
|
+
self.parsed_str = m[0]
|
|
44
|
+
s = do_repeats(s)
|
|
45
|
+
|
|
46
|
+
#puts "Parsed segment "+self.inspect
|
|
47
|
+
return s
|
|
48
|
+
end # parse
|
|
49
|
+
|
|
50
|
+
# Render all components of this segment as string suitable for EDI
|
|
51
|
+
def render
|
|
52
|
+
self.to_a.inject(''){|repeat_str, i|
|
|
53
|
+
if i.repeats.begin < 1 and !i.has_content?
|
|
54
|
+
# Skip optional empty segments
|
|
55
|
+
repeat_str
|
|
56
|
+
else
|
|
57
|
+
# Have to render no matter how empty
|
|
58
|
+
repeat_str += i.name+i.nodes.reverse.inject(''){|nodes_str, j|
|
|
59
|
+
field = j.render
|
|
60
|
+
(j.required or nodes_str != '' or field != '') ? field_separator+field+nodes_str : nodes_str
|
|
61
|
+
} + segment_separator
|
|
62
|
+
end
|
|
63
|
+
}
|
|
64
|
+
end # render
|
|
65
|
+
|
|
66
|
+
# Returns a regexp that matches this particular segment
|
|
67
|
+
def regexp
|
|
68
|
+
unless @regexp
|
|
69
|
+
if self.nodes.find{|i| i.type =~ /^".+"$/ }
|
|
70
|
+
# It's a very special regexp if there are constant fields
|
|
71
|
+
re_str = self.nodes.inject("^#{name}#{Regexp.escape(field_separator)}"){|s, i|
|
|
72
|
+
field_re = i.simple_regexp(field_separator, segment_separator)+Regexp.escape(field_separator)+'?'
|
|
73
|
+
field_re = "(#{field_re})?" unless i.required
|
|
74
|
+
s+field_re
|
|
75
|
+
} + Regexp.escape(segment_separator)
|
|
76
|
+
@regexp = Regexp.new(re_str)
|
|
77
|
+
else
|
|
78
|
+
# Simple match
|
|
79
|
+
@regexp = Regexp.new("^#{name}#{Regexp.escape(field_separator)}[^#{Regexp.escape(segment_separator)}]*#{Regexp.escape(segment_separator)}")
|
|
80
|
+
end
|
|
81
|
+
#puts sprintf("%s %p", name, @regexp)
|
|
82
|
+
end
|
|
83
|
+
@regexp
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Finds a field in the segment. Returns EMPTY if not found.
|
|
87
|
+
def find_field(str)
|
|
88
|
+
#puts "Finding field [#{str}] in #{self.class} #{name}"
|
|
89
|
+
# If there is such a field to begin with
|
|
90
|
+
field_num = nil
|
|
91
|
+
self.nodes.each_index{|i|
|
|
92
|
+
field_num = i if str == self.nodes[i].name
|
|
93
|
+
}
|
|
94
|
+
return EMPTY if field_num.nil?
|
|
95
|
+
#puts field_num
|
|
96
|
+
|
|
97
|
+
# Parse the segment if not parsed already
|
|
98
|
+
unless @fields
|
|
99
|
+
@fields = self.to_s.chop.split(Regexp.new(Regexp.escape(field_separator)))
|
|
100
|
+
self.nodes.each_index{|i| self.nodes[i].content = @fields[i+1] }
|
|
101
|
+
end
|
|
102
|
+
#puts self.nodes[field_num].inspect
|
|
103
|
+
return self.nodes[field_num]
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
end # Segment
|
|
107
|
+
end # X12
|