nl_tokens: Read keyword index part of keyword section .
pl_tokens: function read_keyword_index ( input , keyword_summary ) { var scanner = Scanner ( input ) . readBlock ( keyword_summary . key_index_comp_len , keyword_summary . key_index_decomp_len , _decryptors [ 1 ] ) , keyword_index = <mask> ( keyword_summary . num_blocks ) , offset = 0 ; for ( var i = 0 , size ; i < keyword_summary . num_blocks ; i ++ ) { keyword_index [ i ] = { num_entries : conseq ( scanner . readNum ( ) , size = scanner . readShort ( ) ) , // UNUSED, can be ignored         //          first_size:  size = scanner.readShort(), first_word : conseq ( scanner . readTextSized ( size ) , size = scanner . readShort ( ) ) , // UNUSED, can be ignored //          last_size:   size = scanner.readShort(), last_word : scanner . readTextSized ( size ) , comp_size : size = scanner . readNum ( ) , decomp_size : scanner . readNum ( ) , // extra fields offset : offset , // offset of the first byte for the target key block in mdx/mdd file index : i // index of this key index, used to search previous/next block } ; offset += size ; } return spreadus ( keyword_summary , keyword_index ) ; }