547. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/5/2017 4:25:29 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

547.1 Files compared

# Location File Last Modified
1 C:\working_scrub\Unredacted\VAP Code Base\VAP_Bld2_Source_Code_CIF_2017-02-14\nvap-common\src\main\java\gov\va\nvap\common\util IcnChecksum.java Wed Feb 1 18:37:28 2017 UTC
2 eHX-CIF.zip\eHX-CIF\VAP Code Base\VAP_Bld2_Source_Code_CIF_2017-02-14\nvap-common\src\main\java\gov\va\nvap\common\util IcnChecksum.java Mon Apr 3 14:00:49 2017 UTC

547.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 266
Changed 1 2
Inserted 0 0
Removed 0 0

547.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

547.4 Active regular expressions

No regular expressions were active.

547.5 Comparison detail

  1   package go v.va.nvap. common.uti l;
  2  
  3   /**
  4    * @author  
D NS     ELLISD
  5    * 
  6    *          <p>
  7    *          Class con tains algo rithm for  generating  checksums  for ICNs  that
  8    *          conforms  to the M r outine tha t does the  same thin g.
  9    */
  10   public cla ss IcnChec ksum {
  11  
  12           /* * Arrays o f integers  that are  used to ge nerate the  checksum.  */
  13           pr ivate stat ic final i nt TABLE[] [][] = {
  14                             { { 4,  9, 7, 4,  4, 4, 4, 0 , 9, 9, 7,  7, 8, 4,  6, 8 },
  15                                               { 5, 0, 6,  5, 1, 1,  2, 3, 6, 5 , 3, 5, 7,  6, 5, 5 } ,
  16                                               { 9, 4, 2,  0, 3, 7,  5, 1, 7, 1 , 0, 9, 0,  3, 2, 2 } ,
  17                                               { 3, 2, 1,  7, 7, 0,  6, 9, 2, 4 , 1, 1, 3,  8, 1, 0 } ,
  18                                               { 2, 3, 3,  9, 5, 9,  9, 2, 3, 8 , 6, 0, 1,  9, 8, 1 } ,
  19                                               { 1, 6, 8,  2, 0, 6,  1, 7, 4, 3 , 5, 4, 4,  2, 3, 3 } ,
  20                                               { 7, 8, 9,  1, 2, 2,  0, 8, 1, 6 , 8, 6, 9,  0, 0, 4 } ,
  21                                               { 6, 7, 0,  8, 8, 8,  3, 4, 5, 2 , 4, 3, 5,  1, 4, 6 } ,
  22                                               { 0, 1, 5,  6, 6, 3,  8, 5, 0, 0 , 9, 2, 2,  5, 9, 7 } ,
  23                                               { 8, 5, 4,  3, 9, 5,  7, 6, 8, 7 , 2, 8, 6,  7, 7, 9 }  },
  24  
  25                             { { 4,  7, 3, 4,  6, 0, 0, 1 , 2, 9, 5,  6, 2, 6,  1, 1 },
  26                                               { 0, 1, 9,  2, 2, 6,  4, 7, 9, 8 , 4, 9, 7,  8, 0, 7 } ,
  27                                               { 2, 6, 4,  8, 9, 2,  8, 6, 7, 0 , 9, 3, 5,  0, 8, 4 } ,
  28                                               { 8, 0, 5,  1, 3, 8,  2, 3, 4, 1 , 0, 0, 9,  1, 3, 0 } ,
  29                                               { 5, 3, 7,  0, 7, 9,  9, 9, 6, 2 , 1, 2, 8,  9, 4, 8 } ,
  30                                               { 1, 9, 8,  5, 1, 5,  1, 0, 5, 7 , 2, 8, 6,  7, 7, 9 } ,
  31                                               { 9, 5, 1,  9, 5, 4,  6, 5, 0, 6 , 3, 4, 1,  3, 9, 2 } ,
  32                                               { 3, 4, 0,  3, 8, 1,  3, 4, 8, 5 , 6, 5, 4,  2, 5, 5 } ,
  33                                               { 7, 2, 6,  6, 0, 3,  7, 8, 1, 4 , 7, 1, 0,  4, 6, 3 } ,
  34                                               { 6, 8, 2,  7, 4, 7,  5, 2, 3, 3 , 8, 7, 3,  5, 2, 6 }  },
  35  
  36                             { { 8,  5, 2, 3,  2, 7, 3, 4 , 6, 3, 6,  1, 6, 4,  5, 0 },
  37                                               { 9, 7, 3,  9, 9, 6,  0, 7, 5, 9 , 4, 5, 1,  8, 6, 2 } ,
  38                                               { 1, 4, 4,  5, 0, 0,  4, 2, 2, 6 , 1, 2, 8,  9, 8, 6 } ,
  39                                               { 4, 1, 0,  6, 3, 3,  7, 6, 8, 8 , 3, 8, 3,  1, 1, 4 } ,
  40                                               { 0, 0, 9,  0, 5, 1,  5, 3, 4, 0 , 5, 7, 7,  2, 9, 3 } ,
  41                                               { 3, 6, 6,  2, 6, 4,  6, 8, 7, 1 , 7, 4, 2,  7, 7, 9 } ,
  42                                               { 5, 8, 1,  4, 7, 2,  8, 0, 1, 7 , 2, 3, 0,  0, 4, 8 } ,
  43                                               { 2, 9, 7,  7, 4, 9,  9, 1, 3, 5 , 0, 9, 9,  6, 0, 1 } ,
  44                                               { 7, 2, 8,  1, 8, 5,  1, 5, 0, 2 , 9, 0, 5,  3, 2, 7 } ,
  45                                               { 6, 3, 5,  8, 1, 8,  2, 9, 9, 4 , 8, 6, 4,  5, 3, 5 }  },
  46  
  47                             { { 5,  0, 3, 6,  4, 0, 6, 7 , 1, 6, 4,  3, 5, 5,  6, 6 },
  48                                               { 0, 9, 7,  7, 1, 3,  4, 5, 2, 9 , 6, 6, 9,  6, 7, 1 } ,
  49                                               { 2, 3, 5,  5, 9, 2,  5, 6, 4, 4 , 8, 1, 3,  4, 2, 4 } ,
  50                                               { 4, 5, 4,  1, 0, 4,  2, 4, 6, 7 , 5, 2, 0,  1, 5, 3 } ,
  51                                               { 7, 1, 2,  3, 6, 6,  3, 0, 0, 5 , 9, 8, 2,  9, 9, 2 } ,
  52                                               { 3, 4, 0,  4, 8, 8,  9, 9, 9, 0 , 7, 0, 4,  2, 0, 0 } ,
  53                                               { 6, 7, 6,  9, 2, 5,  1, 3, 5, 8 , 2, 4, 8,  3, 8, 5 } ,
  54                                               { 1, 8, 8,  8, 3, 7,  0, 2, 3, 2 , 3, 9, 7,  0, 4, 9 } ,
  55                                               { 9, 6, 9,  0, 5, 1,  7, 1, 8, 3 , 0, 7, 1,  7, 1, 8 } ,
  56                                               { 8, 2, 1,  2, 7, 9,  8, 8, 7, 1 , 1, 5, 6,  8, 3, 7 }  },
  57  
  58                             { { 4,  4, 0, 2,  2, 9, 3, 2 , 2, 6, 5,  1, 2, 7,  2, 7 },
  59                                               { 8, 3, 6,  9, 0, 3,  9, 7, 4, 7 , 6, 6, 4,  9, 0, 0 } ,
  60                                               { 2, 7, 1,  8, 3, 5,  2, 5, 1, 8 , 9, 0, 9,  3, 6, 2 } ,
  61                                               { 7, 0, 5,  0, 9, 4,  1, 1, 6, 1 , 7, 8, 8,  2, 3, 4 } ,
  62                                               { 5, 1, 7,  7, 4, 6,  0, 8, 7, 5 , 2, 2, 1,  5, 4, 9 } ,
  63                                               { 1, 6, 9,  3, 6, 1,  8, 9, 0, 4 , 4, 3, 7,  0, 1, 8 } ,
  64                                               { 0, 9, 2,  1, 5, 0,  4, 0, 3, 9 , 1, 7, 0,  6, 7, 3 } ,
  65                                               { 9, 2, 8,  4, 8, 7,  7, 6, 5, 0 , 0, 9, 3,  1, 8, 6 } ,
  66                                               { 3, 5, 3,  6, 1, 8,  6, 3, 8, 3 , 3, 5, 6,  8, 9, 5 } ,
  67                                               { 6, 8, 4,  5, 7, 2,  5, 4, 9, 2 , 8, 4, 5,  4, 5, 1 }  },
  68  
  69                             { { 6,  2, 8, 2,  7, 3, 3, 8 , 4, 9, 2,  4, 4, 1,  6, 1 },
  70                                               { 8, 1, 9,  3, 1, 6,  7, 9, 2, 4 , 7, 5, 9,  6, 2, 0 } ,
  71                                               { 5, 3, 2,  9, 0, 1,  9, 4, 8, 7 , 4, 6, 3,  7, 8, 9 } ,
  72                                               { 0, 7, 0,  5, 8, 2,  6, 7, 6, 5 , 0, 7, 1,  9, 9, 4 } ,
  73                                               { 2, 9, 1,  4, 9, 9,  4, 0, 1, 3 , 9, 3, 0,  2, 5, 6 } ,
  74                                               { 7, 0, 3,  8, 6, 8,  0, 1, 3, 0 , 5, 9, 2,  8, 3, 8 } ,
  75                                               { 9, 6, 5,  6, 3, 4,  2, 6, 7, 6 , 3, 2, 7,  4, 1, 3 } ,
  76                                               { 4, 8, 6,  7, 4, 5,  1, 3, 5, 1 , 6, 1, 6,  3, 0, 5 } ,
  77                                               { 3, 5, 4,  1, 5, 7,  5, 5, 9, 2 , 8, 0, 8,  5, 7, 7 } ,
  78                                               { 1, 4, 7,  0, 2, 0,  8, 2, 0, 8 , 1, 8, 5,  0, 4, 2 }  } };
  79  
  80           /* *
  81            *  Adds the  'V' and th e checksum  to the IC N passed i n as a par ameter and
  82            *  returns i t.
  83            *  
  84            *  @param ic n
  85            *              The ICN  to calcula te and app end the ch eck sum to .
  86            *  @return T he ICN wit h the chec k sum appe nded.
  87            * /
  88           pu blic stati c String a ddChecksum ToIcn(fina l String i cn) {
  89                    retu rn icn + " V" + IcnCh ecksum.gen erateIcnCh ecksum(icn );
  90           }
  91  
  92           /* *
  93            *  Generates  the check sum for th e ICN pass ed in as a  parameter .
  94            *  
  95            *  @param ic n
  96            *              The icn  to generat e the chec ksum for.
  97            *  @return T he checksu m for the  ICN.
  98            * /
  99           pu blic stati c String g enerateIcn Checksum(f inal Strin g icn) {
  100  
  101                    fina l StringBu ilder out  = new Stri ngBuilder( );
  102                    fina l StringBu ilder buf  = new Stri ngBuilder( icn);
  103                    fina l int map[ ] = { 0, 0 , 0, 0, 0,  0, 0, 0,  0, 0, 0, 0 , 0, 0, 0,  0, 0 };
  104  
  105                    whil e (buf.len gth() < 16 ) {
  106                             buf.in sert(0, "0 ");
  107                    }
  108  
  109                    for  (int i = 0 ; i < 6; i ++) {
  110  
  111                             for (i nt j = 0;  j < 16; j+ +) {
  112  
  113                                      final St ring s = b uf.substri ng(j, j +  1);
  114                                      int n;
  115  
  116                                      try {
  117                                               n = Intege r.parseInt (s);
  118                                      } catch  (final Num berFormatE xception e ) {
  119                                               n = 0;
  120                                      }
  121  
  122                                      final in t sum = (n  + map[j])  % 10;
  123                                      map[j +  1] = IcnCh ecksum.TAB LE[i][sum] [j];
  124                             }
  125  
  126                             out.ap pend(map[1 6]);
  127  
  128                    }
  129  
  130                    retu rn out.toS tring();
  131  
  132           }
  133  
  134   }