/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cloudsoft.MastercardFileReader;

/**
 *
 * @author Lisewski
 */
public class IpmDataElements {

    private static DataElement[] _DataElements
            = {
                new DataElement(0, new DataElementLengthData(8, 8, 0), "BIT MAP, PRIMARY", IpmSpecificationConstants.DataElementFormat.Binary, true, 1),
                new DataElement(1, new DataElementLengthData(8, 8, 0), "BIT MAP, SECONDARY", IpmSpecificationConstants.DataElementFormat.Binary, true, 65),
                new DataElement(2, new DataElementLengthData(6, 19, 2), "PRIMARY ACCOUNT NUMBER (PAN)", IpmSpecificationConstants.DataElementFormat.NumericSecure),
                new DataElement(3, new DataElementLengthData(6, 6, 0), "PROCESSING CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(4, new DataElementLengthData(12, 12, 0), "AMOUNT, TRANSACTION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(5, new DataElementLengthData(12, 12, 0), "AMOUNT, RECONCILIATION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(6, new DataElementLengthData(12, 12, 0), "AMOUNT, CARDHOLDER BILLING", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(7, new DataElementLengthData(10, 10, 0), "DATE AND TIME, TRANSMISSION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(8, new DataElementLengthData(8, 8, 0), "AMOUNT, ICCR (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(9, new DataElementLengthData(8, 8, 0), "CONVERSION RATE, RECONCILIATION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(10, new DataElementLengthData(8, 8, 0), "SYSTEMS TRACE AUDIT NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(11, new DataElementLengthData(6, 6, 0), "AMOUNT, TRANSACTION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(12, new DataElementLengthData(12, 12, 0), "DATE AND TIME, LOCAL TRANSACTION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(13, new DataElementLengthData(4, 4, 0), "DATE, EFFECTIVE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(14, new DataElementLengthData(4, 4, 0), "DATE, EXPIRATION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(15, new DataElementLengthData(6, 6, 0), "DATE, SETTLEMENT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(16, new DataElementLengthData(4, 4, 0), "DATE, CONVERSION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(17, new DataElementLengthData(4, 4, 0), "DATE, CAPTURE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(18, new DataElementLengthData(4, 4, 0), "MERCHANT TYPE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(19, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, ACQUIRING INSTITUTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(20, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, PRIMARY ACCOUNT NUMBER (PAN) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(21, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, FORWARDING INSTITUTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(22, new DataElementLengthData(12, 12, 0), "POINT OF SERVICE DATA CODE", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(23, new DataElementLengthData(3, 3, 0), "CARD SEQUENCE NUMBER", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(24, new DataElementLengthData(3, 3, 0), "FUNCTION CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(25, new DataElementLengthData(4, 4, 0), "MESSAGE REASON CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(26, new DataElementLengthData(4, 4, 0), "CARD ACCEPTOR BUSINESS CODE (MCC)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(27, new DataElementLengthData(1, 1, 0), "APPROVAL CODE LENGTH (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(28, new DataElementLengthData(6, 6, 0), "DATE, RECONCILIATION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(29, new DataElementLengthData(3, 3, 0), "RECONCILIATION INDICATOR (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(30, new DataElementLengthData(24, 24, 0), "AMOUNTS, ORIGINAL", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(31, new DataElementLengthData(23, 23, 2), "ACQUIRER REFERENCE DATA", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(32, new DataElementLengthData(1, 11, 2), "ACQUIRING INSTITUTION IDENTIFICATION CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(33, new DataElementLengthData(6, 11, 2), "FORWARDING INSTITUTION IDENTIFICATION CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(34, new DataElementLengthData(1, 28, 2), "PRIMARY ACCOUNT NUMBER (PAN), EXTENDED (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(35, new DataElementLengthData(1, 37, 2), "TRACK 2 DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(36, new DataElementLengthData(1, 30, 3), "TRACK 3 DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(37, new DataElementLengthData(12, 12, 0), "RETRIEVAL REFERENCE NUMBER", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(38, new DataElementLengthData(6, 6, 0), "APPROVAL CODE", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(39, new DataElementLengthData(3, 3, 0), "ACTION CODE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(40, new DataElementLengthData(3, 3, 0), "SERVICE CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(41, new DataElementLengthData(8, 8, 0), "CARD ACCEPTOR TERMINAL ID", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(42, new DataElementLengthData(15, 15, 0), "CARD ACCEPTOR ID CODE", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(43, new DataElementLengthData(20, 99, 2), "CARD ACCEPTOR NAME/LOCATION", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(44, new DataElementLengthData(1, 99, 2), "ADDITIONAL RESPONSE DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(45, new DataElementLengthData(1, 76, 2), "TRACK 1 DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(46, new DataElementLengthData(1, 204, 3), "AMOUNTS, FEES (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(47, new DataElementLengthData(1, 999, 3), "ADDITIONAL DATA (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(48, new DataElementLengthData(8, 999, 3), "ADDITIONAL DATA (PRIVATE)", IpmSpecificationConstants.DataElementFormat.PrivateDataSubElement),
                new DataElement(49, new DataElementLengthData(3, 3, 0), "CURRENCY CODE, TRANSACTION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(50, new DataElementLengthData(3, 3, 0), "CURRENCY CODE, RECONCILIATION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(51, new DataElementLengthData(3, 3, 0), "CURRENCY CODE, CARDHOLDER BILLING", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(52, new DataElementLengthData(8, 8, 0), "PERSONAL IDENTIFICATION NUMBER (PIN) DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary),
                new DataElement(53, new DataElementLengthData(1, 48, 2), "SECURITY RELATED CONTROL INFORMATION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary),
                new DataElement(54, new DataElementLengthData(20, 120, 3), "AMOUNTS, ADDITIONAL", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(55, new DataElementLengthData(1, 255, 3), "INTEGRATED CIRCUIT CARD (ICC) RELATED DATA", IpmSpecificationConstants.DataElementFormat.HexadecimalBinary),
                new DataElement(56, new DataElementLengthData(1, 35, 2), "ORIGINAL DATA ELEMENTS (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(57, new DataElementLengthData(3, 3, 0), "AUTORIZATION LIFE CYCLE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(58, new DataElementLengthData(1, 11, 2), "AUTHORIZING AGENT INSTITUTION ID CODE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(59, new DataElementLengthData(1, 999, 3), "TRANSPORT DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(60, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(61, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(62, new DataElementLengthData(8, 999, 3), "ADDITIONAL DATA 2", IpmSpecificationConstants.DataElementFormat.PrivateDataSubElement),
                new DataElement(63, new DataElementLengthData(16, 16, 3), "TRANSACTION LIFE CYCLE ID", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(64, new DataElementLengthData(8, 8, 0), "MESSAGE AUTHENTICATION CODE (MAC) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary),
                // Going to treat this as not a BitMap, as it is currently not in use
                new DataElement(65, new DataElementLengthData(8, 8, 0), "BITMAP, THIRD (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary),
                new DataElement(66, new DataElementLengthData(1, 204, 3), "AMOUNTS, ORIGINAL FEES (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(67, new DataElementLengthData(2, 2, 0), "EXTENDED PAYMENT DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(68, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, RECEIVING INSTITUTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(69, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, SETTLEMENT INSTITUTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(70, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, AUTHORIZING AGENT INSTITUTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(71, new DataElementLengthData(8, 8, 0), "MESSAGE NUMBER", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(72, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(73, new DataElementLengthData(6, 6, 0), "DATA RECORD", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(74, new DataElementLengthData(10, 10, 0), "DATE, ACTION", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(75, new DataElementLengthData(10, 10, 0), "CREDITS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(76, new DataElementLengthData(10, 10, 0), "CREDITS, REVERSAL NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(77, new DataElementLengthData(10, 10, 0), "DEBITS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(78, new DataElementLengthData(10, 10, 0), "TRANSFERS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(79, new DataElementLengthData(10, 10, 0), "TRANSFERS, REVERSAL NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(80, new DataElementLengthData(10, 10, 0), "INQUIRIES, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(81, new DataElementLengthData(10, 10, 0), "AUTHORIZATIONS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(82, new DataElementLengthData(10, 10, 0), "INQUIRIES, REVERSAL NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(83, new DataElementLengthData(10, 10, 0), "PAYMENTS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(84, new DataElementLengthData(10, 10, 0), "PAYMENTS, REVERSAL NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(85, new DataElementLengthData(10, 10, 0), "FEE COLLECTIONS, NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(86, new DataElementLengthData(16, 16, 0), "CREDITS, AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(87, new DataElementLengthData(16, 16, 0), "CREDITS, REVERSAL AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(88, new DataElementLengthData(16, 16, 0), "DEBITS, AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(89, new DataElementLengthData(16, 16, 0), "DEBITS, REVERSAL AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(90, new DataElementLengthData(10, 10, 0), "AUTHORIZATIONS, REVERSAL NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(91, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, TRANSACTION DESTINATION INST (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(92, new DataElementLengthData(3, 3, 0), "COUNTRY CODE, TRANSACTION ORIGINATOR INST (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(93, new DataElementLengthData(6, 11, 2), "TRANSACTION DESTINATION INSTITUTION ID CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(94, new DataElementLengthData(6, 11, 2), "TRANSACTION ORIGINATOR INSTITUTION ID CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(95, new DataElementLengthData(10, 10, 2), "CARD ISSUER REFERENCE DATA", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(96, new DataElementLengthData(1, 999, 3), "KEY MANAGEMENT DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary),
                new DataElement(97, new DataElementLengthData(17, 17, 0), "AMOUNT, NET RECONCILIATION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(98, new DataElementLengthData(25, 25, 0), "PAYEE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(99, new DataElementLengthData(1, 11, 2), "SETTLEMENT INSTITUTION ID CODE (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(100, new DataElementLengthData(6, 11, 2), "RECEIVING INSTITUTION ID CODE", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(101, new DataElementLengthData(1, 17, 2), "FILE NAME (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(102, new DataElementLengthData(1, 28, 2), "ACCOUNT ID 1 (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(103, new DataElementLengthData(1, 28, 2), "ACCOUNT ID 2 (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(104, new DataElementLengthData(1, 100, 3), "TRANSACTION DESCRIPTION (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(105, new DataElementLengthData(16, 16, 0), "CREDITS, CHARGEBACK AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(106, new DataElementLengthData(16, 16, 0), "DEBITS, CHARGEBACK AMOUNT (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(107, new DataElementLengthData(10, 10, 0), "CREDITS, CHARGEBACK NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(108, new DataElementLengthData(10, 10, 0), "DEBITS, CHARGEBACK NUMBER (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(109, new DataElementLengthData(1, 84, 2), "CREDITS, FEE AMOUNTS (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(110, new DataElementLengthData(1, 84, 2), "DEBITS, FEE AMOUNTS (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(111, new DataElementLengthData(12, 12, 3), "AMOUNT, CCA", IpmSpecificationConstants.DataElementFormat.Numeric),
                new DataElement(112, new DataElementLengthData(1, 999, 3), "RESERVED (ISO) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(113, new DataElementLengthData(1, 999, 3), "RESERVED (ISO) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(114, new DataElementLengthData(1, 999, 3), "RESERVED (ISO) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(115, new DataElementLengthData(1, 999, 3), "RESERVED (ISO) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(116, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(117, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(118, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(119, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(120, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(121, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(122, new DataElementLengthData(1, 999, 3), "RESERVED (NATIONAL) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(123, new DataElementLengthData(8, 999, 3), "ADDITIONAL DATA 3", IpmSpecificationConstants.DataElementFormat.PrivateDataSubElement),
                new DataElement(124, new DataElementLengthData(8, 999, 3), "ADDITIONAL DATA 4", IpmSpecificationConstants.DataElementFormat.PrivateDataSubElement),
                new DataElement(125, new DataElementLengthData(8, 999, 3), "ADDITIONAL DATA 5", IpmSpecificationConstants.DataElementFormat.PrivateDataSubElement),
                new DataElement(126, new DataElementLengthData(8, 999, 3), "CONVERSION DATA (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(127, new DataElementLengthData(8, 999, 3), "NETWORK DATA", IpmSpecificationConstants.DataElementFormat.Alphanumeric),
                new DataElement(128, new DataElementLengthData(8, 999, 3), "MSG AUTHENTICATION CODE (MAC) (NOT IN USE)", IpmSpecificationConstants.DataElementFormat.Binary)
            };

    public static DataElement[] DataElements = _DataElements;

}
